From 247128582c8f2fe7cec1436deb63e026703272c7 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 29 Apr 2021 14:26:32 -0700 Subject: [PATCH 001/217] show ranked option --- .../TitleMenu/HandleOnlineLockedOptions.asm | 2 - Online/Menus/TitleMenu/OnMenuPrep.asm | 5 +- Output/Netplay/GALE01r2.ini | 47 +++++++++---------- Output/Netplay/GALJ01r2.ini | 47 +++++++++---------- 4 files changed, 46 insertions(+), 55 deletions(-) diff --git a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm index aa126919..dae0aa7a 100644 --- a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +++ b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm @@ -48,8 +48,6 @@ beq RETURN_LOCKED b EXIT LOGGED_IN_STATE: -cmpwi r4, OPTION_RANKED_IDX -beq RETURN_LOCKED cmpwi r4, OPTION_LOGIN_IDX beq RETURN_LOCKED cmpwi r4, OPTION_UPDATE_IDX diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index 9af9265b..92cb3676 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -309,9 +309,8 @@ b FN_OnlineSubmenuThink_INPUT_HANDLERS_END # Option Selected Handlers ################################################################################ FN_OnlineSubmenuThink_HANDLE_RANKED: -li r3, 3 -branchl r12, SFX_Menu_CommonSound -b FN_OnlineSubmenuThink_INPUT_HANDLERS_END +li r3, ONLINE_MODE_RANKED +b FN_OnlineSubmenuThink_GO_TO_CSS FN_OnlineSubmenuThink_HANDLE_UNRANKED: li r3, ONLINE_MODE_UNRANKED diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 6197f27f..0434704b 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4015,19 +4015,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4083,7 +4082,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4091,11 +4090,11 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 90640000 3C60803E 6063B750 48000209 7C8802A6 90830010 -480005AD 7C8802A6 +4800059D 7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 3C60803E -6063B750 4800059D +6063B750 4800058D 7C8802A6 90830008 3C60803E 6063B66C 38800644 B0830004 @@ -4108,7 +4107,7 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A5C 4E800021 +48000A4C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4158,13 +4157,13 @@ BA810008 800100B4 7C0802A6 90010004 9421FF50 BE810008 7C731B78 80730008 -2C030000 40820354 +2C030000 40820344 3C60804A 3BA304F0 38600004 3D808022 618C9624 7D8903A6 4E800421 907D000C 3BC00000 93DD0008 -546006F7 4182018C +546006F7 4182017C 38000005 B00DB528 3BE00001 3B9E0000 9BFD0011 5783063E @@ -4180,15 +4179,13 @@ BA810008 800100B4 7D8903A6 4E800421 A01D0002 2C000000 41820038 2C000001 -41820048 2C000002 -41820048 2C000003 -41820048 2C000004 -41820048 2C000005 -4182005C 2C000006 -41820078 4800027C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000264 +41820038 2C000002 +41820038 2C000003 +41820038 2C000004 +41820038 2C000005 +4182004C 2C000006 +41820068 4800026C +38600000 48000078 38600001 48000070 38600002 48000068 38600003 48000060 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 709e8e16..abd79293 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4015,19 +4015,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4083,7 +4082,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4091,11 +4090,11 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 90640000 3C60803E 6063B750 48000209 7C8802A6 90830010 -480005AD 7C8802A6 +4800059D 7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 3C60803E -6063B750 4800059D +6063B750 4800058D 7C8802A6 90830008 3C60803E 6063B66C 38800644 B0830004 @@ -4108,7 +4107,7 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A5C 4E800021 +48000A4C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4158,13 +4157,13 @@ BA810008 800100B4 7C0802A6 90010004 9421FF50 BE810008 7C731B78 80730008 -2C030000 40820354 +2C030000 40820344 3C60804A 3BA304F0 38600004 3D808022 618C9624 7D8903A6 4E800421 907D000C 3BC00000 93DD0008 -546006F7 4182018C +546006F7 4182017C 38000005 B00DB528 3BE00001 3B9E0000 9BFD0011 5783063E @@ -4180,15 +4179,13 @@ BA810008 800100B4 7D8903A6 4E800421 A01D0002 2C000000 41820038 2C000001 -41820048 2C000002 -41820048 2C000003 -41820048 2C000004 -41820048 2C000005 -4182005C 2C000006 -41820078 4800027C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000264 +41820038 2C000002 +41820038 2C000003 +41820038 2C000004 +41820038 2C000005 +4182004C 2C000006 +41820068 4800026C +38600000 48000078 38600001 48000070 38600002 48000068 38600003 48000060 From 71a431c757ccd2aa9f453a588482c7da69738880 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 6 May 2021 04:40:24 -0700 Subject: [PATCH 002/217] add m-ex and custom scene --- .gitignore | 1 + Binary/m-ex.bin | Bin 0 -> 48128 bytes Bootloader/main.asm | 9 +- Online/Menus/CSS/HandleInputsOnCSS.asm | 2 + Online/Slippi Online Scene/main.asm | 20 +- Output/Bootloader/bootloader.gct | Bin 1312 -> 1344 bytes Output/Bootloader/bootloader.txt | 66 +- Output/Netplay/GALE01r2.ini | 6072 +++++++++++++++++++++++- Output/Netplay/GALJ01r2.ini | 6072 +++++++++++++++++++++++- netplay.json | 5 + 10 files changed, 12162 insertions(+), 85 deletions(-) create mode 100644 Binary/m-ex.bin diff --git a/.gitignore b/.gitignore index 2f3d06a6..a2674788 100644 --- a/.gitignore +++ b/.gitignore @@ -221,5 +221,6 @@ pip-log.txt Output/Netplay/build-netplay.bat - Shortcut.lnk Output/Playback/build-playback.bat - Shortcut.lnk +Output/Bootloader/build-bootloader.bat - Shortcut.lnk ./build-netplay0.sh ./netplay0.json \ No newline at end of file diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin new file mode 100644 index 0000000000000000000000000000000000000000..1d949a944ca2baeeeea4929b077dfc211888efdb GIT binary patch literal 48128 zcmd_T4}2Tdl`nor8rzdZNd$;Q*h(Thw%33f3^i1VO`;If8tU{JaKWXf9YuCx6DKi= zp$d$nu_ZthvDG74*4=f8APJkkhHP3wn^Gu72{i1c@A9(&%3Zl>NN-`@BiyGjrztIrrRi&pr3tKa(td(8n07S0u|5ae;|DDpTwSLriJ} zHoS|8>KZoU8fB6asB(mNGcmOL&0q^-cPLTI6IZLM*B`TX3_f6e;&ZB4soYbsb>%Rt z4+UNc;@#E$SpR_Wj&SO*5L6?~7P|K}O5--%>s6%_8^=Tug? zcHq-@ZVU|cZraEgJ+EJr{k)+&*ybMy^q?$E>8l7T4=fHUPh1*QCz)-im9eG3BdvB< z50eH1%N*)@JjhJ&4KueZz(gh7vIIC$3Eb##JptHt@e+i0s}JHna-%~DyW83$!ZTfw z78Vclw8W(n6VyItS0pD}siyXUF1M$GG4Q~p4ll4*rdpUaPO=8lvaXbVnUDhR`S1TP z?+TU6RGyD~OX;o-HV-W6@()lV^o+LI>>u!J_n+tv8h9o$F_mHxWBjj;|8?-c8s5e4 ztMS*VhwjXq#(OyPf3{x`z^M)6l-&HQf* z$He&GIRCqY|D_ykJdBM|IudK=e>?EEo~K{WX>{s;iAEcX$s8O*^g0>Q$9PDQ z#}zr9b^N}LQi;lrQ7yFltqdk$%h7pGpY2G}Y3*J=t3$i4BwYmEP>=S{{ISd5Hgpx&`AU^Jkq-5R^Zc=rRwJxOWEX1TOQ`)63x6UneEFys;jPe*K{dc6{A3sU zbp`bB^vXw3{H*s~Iq&Oo-gjobx2$Nxd&|(U(5YBuCgXvwq-8}vKp}jb@aizzp+wjc z84q+NFMP`da8Yjmr_=2SA7Nq`^fxBZ@2L?nrboOK7y* z(fAw_lm#cLUp^fQbDa-cr9?IAoccr~EpuGd0rlSwO2dnGtCTyLZ;07V>776xY$U`4 zt$O_v>M zc(y5!2}I*p^0G7FB0E2qFHN$# zS`KXJgq)JS_W6SLLx|g%)ZQ#1hq-Udc zzGmHqJlc`g93m_^@3$&IB$qCvy+h{0Vf3O{%D^9z0ALZv& z@k{WwzSJKRGIrTE*lRL#BhOFyV}E$v$Ws~Qb{yfMzh00HeCP?-&_}=rm5EIW^;7cR zKO96Dq&dsbHI?)p_SVz74kY~onRqX4ufbM(BLo`=`C5>UfcN0ty7YTRfu7xodWW4e z;$kghjf{;qF&m%=XxH)AAzl`rbUAjA-Ou%4*u8|><5<Ib!bzKj%UgsC)=hnywGZQ-$6me(UeA^2gro zH1aTLLOkH7o;Blv13fe93>==Jn-8RI`lyu&?d*S~ppP85XYJ^(a4(U(fj=(rrwMX$ zl^oc!kL0>Z9a|wsV7FV{T-P9sd#sarCoAojAgoubD>fVTrINhn$|C8G@GqGs{5-1* zKT7RHxR~mW#!|VoW^h-e#{-1(4lxzHuz1H(Da3(Yzp&aUpX$du6?}S(Meq)?_O0W_ zyRoa8XY7m20a~laR81}`!?P?2?AfOhtI{=>GUGcgXy{> zy##*N>v|k=*?H8UN7tRGYfHL*!1p}8OuC79x$0jSyQU8Eaqq&z&!db@i~nV&50HK< zWyW5>ub7U2jLpYuekCj3sm6_jdM%d&Z4RwoeZ#0%JJl=bwWIGE0G@0Q3GIs76#D;b zrVQFCp=9l>698^?!{HOU{+-ON?{E@&{uk_2V*>hrjnIZM`Sh5kANkmDY%%z}ib*f* zVzw7T%>GtPy5z0(_Dj&Oxk9V{-SNUQ;LDkP>}Sj|_6~DS+gg0EGg_u?J|D{Mo1W#R zXYcf^dU~#>I>^=S%0LClR;@o~bL;fGQ7&`8xFa`?7Jl{~BRuidhr;?i$A2^i2;Qxb z1G9*a;6p2tW9K&>f!&qig`z%6d_;K{Gd9-DJd-OSKY+Ne*YE3b-=N=-+6K0tlu|L8v}i4*O_*KxV(Q@p)w|e7`l?RtM>s&%T{I4RiCEmMx7?W zu^V-o0CBI;1gNEBivi9smCcL$lW2z{-a|~FcG&vT<-?#Ut1aq0KV|SRI{Q1H*V6mU zG@vh&o-oO20-ewYKjJ)C3?5K>tNQ15k`evB0r!%2|4(#p)9(|xa<^haT@gslst!L6 z`FjrXH%2`8j+=Bx^m$fNjAqgwYM42oUxc%WOHb7GkpWS zGxZJNvypzLZ_vY3$&uepAb$~QWc7{I9w3LJ`UA9M@Br_#`wr5lDl0`?chea3{7Wls zutli7BV4Oww0B*%W%VV6+st)_F6KIGB`SKQov{_jd+80|oxf}cJ0$~0SF*M@0x%Qx zQV;pPxRA}E>lJq#?FwOdni!Mc)ZNz|7+BS_nbHCO8NH`;=s8(??b`q)8Tn!kln3qq zGt-7FB2F2i@k?BNbadruiZ}ZV5LPYhOv7L0mbG9^tepYBif~LU-TJIoT|AvEecz2& z7S+0V(t{frKf02oqZ0rnp7|&{bSd%@;&(5e1pQ?5GrF(CJKXXsIWGndvGcf%v_?>r z!07|>SUEvSD>C? z1H^m=FG#mZWu=Vjm=_C&KCP)cN$~PN(JKt@LP5bVEkeIwnGhK>|y2gQK#37Z`?Q@}Z&zlAUU+xWT z+=61|+3VEr6FxbU^#gQ!7F`fssal<$Mf3a7m$^NQDmnn0Jc|}l-`3$-w73p%0Cw)% z7;f&xY&JQaPeo!K7LHOotL>EVT7f-PR9#`8PvmcY3aPaPYYA!HKp?f zJxraJ&cs-OFjwkfT3Fe#OkFDnzLr2eK(~DJ zm{I3sH+$E!86y}oZlA{3e_P4vTV(fDN`NhiE3i!~g$QghJ75&h0T=^xjxA>%K-XB+ zLua6OC-nMsk1dp%$G#-BOuJbd^0N42o_ZrMgoh3D!ib@3ULQXoz0pO7;o-f>O&al{9(hksU-Q^VDeR7yLt1b z&CA?td)M_0bZ>Uobh*1Wb#HNR+%(|s@!!?$uG!-5Ub`0h6t8ANzIgmiUEO`S?;i;C zt?S;1ewlIGgy_tr2|n!qdM-455FH@mnr=|kyJ>T~e@$OE(E^>*Bm>fwEFDk)zK|93pX@L% z>S0cp+Dr|2e4Xj{0PfAdy`*DZ-=sO6OC0JRDCiQ>XTrYry}~nuQ?$7($dmwG!CE2z zHZN>Yef}eBEW~{sd(ihkhVjxbn9KVi1?_HtkhtNUZAoWz^_vO+JI z+B4dVyFmMgez?;ZFXg=_c@~%6d(`!>*3-$76kHJOH@R}{b-jBn^w2H7p)$$iqCTRG zd0cuQ;o^OS&*S2KgzRzgK0<9_rKiZRHvA~_EIXz56FZm~vbqn1tVhsKl-#TLjS9jE zS~y+Sv%}q{g|kj(($nRAN0rx<-j#ZKo=keW%x8z2t*1BY3R>aUM4$W>^d0l4?5`7==mLI`4C2-k!I=3B^yxyMp^m6d41%0(6SB{i# z@OfUh*Ke7I?j-vb{eEp)XR1duJCb}fO{#s399jKiB~tf@61l1$VPVt%+y0CWwj3&& z&Tjbn;jbazo+dZP97a6YcbH?g1TnuVhQq9`Xc_^G7h!XZ!(O8P2IX!p8ul#tA)f7{ z#M9^$#&hVjI?wcX&@H)q6MP0eW0t4{-nhpq zSapU+LeaYAdF$ziy7_!>f%Msgk$$lY=dp#*qtjsM@;&dHJy9B7t?+w(3j^^B0n7J6FO>vF~)P7 z+NGqmOQ9d_(x$gd(&t~mPssV9ZL&WUZj+X_zoboK%?2Oa6>pPg(qjbOrgFhI$Ho_P zADswThi3`U0~&jZ^6tn7 zV4jxz71iJoI}2|Z<+l{;jldro^Bx6%_>e4OT8!Kfi8rn@wO3uI-SlHr6YtVes}|^X&Dc6C9f#m2Y`8A;3Fpd{GagfIz4|* zr!)VjWWO2dXYkIAtwr!11@RT#GT}Kr;Z%wq=t@?6ormXmYwCTOV>zDqtA)?PulJ?# zfz-P)9_UIstD*p=pm z2Qc_&&Sw(%kC0D)g3{yi0y<NR+acQ7x31o@pk!~ZsBqK0g$=ME|d3wR27_+H1)Zn&OtWzxgS|@x@ zo#F*Y#`&|<@wSHl>LmKmPEq>&B>ejbcR#K5>=etaG`G>2ly2npd$mt(@?T%`woHlQ z5~Ujt4_WYj)@hO(YTtZKCw!?1{=W1*{Q0C6_`M^bsu{@_|8Ls|%|KSnV&7F~NmXQa-c zlaHId7+V>%B5WOvr3nW*&-2H=-)FodpE%x=Oyv1TNk)(zmE$Bpd9iZ9*B2SH?3^I_ zTYVP{gVvZ{wtiE&?Elx5tMtFsp5%dRdZPO8z11YWZ4wShgq(u zei`t*eVgR1gX2qK!GO1rrG4t(@wSM1avJsIrujpo9#AhB1AN_U$dg*mM41x7CC>U? z9rCXiOXFtXzdLz?rMAk;(lG5x^j?c(D2Ok+fyBvN{yrYQ?1p#|{8T}_ zbld^F1lpdZ^%2lHD5t62WS3L&$Bt*pxhPZ4q;y0^I%P=bP=Rz@CSD?qBGSy6nO`!TS^F^kFlhVAS041o;{gl4aRH$v4V98xbH!m|2N!MD}f5LTtLq>9yZc7+A2?f?yW&U z(8)%i&ocUa?yZR;_+v%z69w^7C-D{Q{@6j)g?a^Vm4L+oy{Ys2i{rWPLq|+{Sn3?( z?}sz-NzW)v&;zOG~fEFNVc6YlIe>UxB@y zptwy5^;&uF$YD($ZZdoZZiY*gZt+q%0Gl*=ZyE4*Gf}+!MLuGD zS9L>tSE)nA+Cv$E=}J2GIRVa=kC>IuWg}FdC0+&N8I{j*Tm7+`%v@3z=8~SnJG`eW zdD-6*U2}8$70ef((#PX1!(sSLp+CGs@Q)|7H4fly*7^oxtb$ZMjU>-phPC^=IZ({aXXNOz zfE)SE$m9Po>&M#O10QBC8|h%a`oRW(nYrm@ty4u^(i&^e5dE%YMV zBvM7$vevO+U5?;c#LA!#4?`C7{BV@M3}Wa?&i_&?z&WpPpmiBYllwSx+o#?Jrqksh zA2;cY=h;QY)+a(=I`I=RmnuQGP+6|@$9|D8>PasP`Ew5G{^ENJwLfJWUrVfV{$=vL z=B)XCaGu1!bJiod?T38)GMGzOa{gD20epPzyyg`Z=`G5YV_H{+4vhB09W}|;Vd$f> zv+0uYN){pB8SBDOXIGw;cLCUV_>Cc+R%fS~QD=PJm{zYm48nC`o$!Pvr#IQm;eg9p zN2S+y3FXjKb1Le(TGzRyMb`k*TCxDv!Y;h%r^+taDSqq~#JnKp)2=kd7mLPU zgMKVLbs!T@cn@*Uq~$EZK2bDo(Y%H4nc`nsG=6^GLs&}-+x}md8W?bqp*=tpJ zW)C&EP#E@FKFGMd#-^0wkLwUuZ7549ES=kSy>-d6OrVm0XF+(!Gt zTyfOklj}K@XD`aL*ZOo(eih|6yRJYwhl-|?$9L}IpU#t2)83g)M^t0Y-VS}uUL0%o z;ay4h{<9sS^Eyj$4%0d%)%OwPZu(_6u2dRn6~ZkWm)h&9)Go+ahWE8Fl%S^gKKA z$Mf$8^t#R1Wwo;pB7TV%tLw-nqdpWi0r{A+;>!p`SF+}nAb?fpNjkhtFL7bLD2l@cy7!xxq&fd+H0?dxi~eN{jbR z#nL(p4_(E^d%5kA@{++Ux*-3=x4-%e`1X?z$+y-VnO;JAwOD!2$~&#SWaRI8_Q|uQ zRg8Bgo4XHkaL#-r{)siO416`hex59Scp8u7r)|M}<-6(m!P19MoAB?X@wOlKnegu_ zRvC||58Dsh0E~3rN#kez%mKWO(#QPVv|{D@!K**Nr$5)}&nf-ci80D7`1fe8mDZxq z1eDb7D$;ke{IQ=k<>^=H@iV6UGjvIhpD^JwbX}MvyNvvnEtp4rSH=Tf$qSFT0Se*w z6viJl^C^?>g~jkU94eg7O^}L0`L-9y_h|$#5We(;O8C6`wEgu+LHvdP?99SjWjs=S z4zvOo>Aat={|l4U?hO89<~uJ;zFruAq_Z&I(Nq}!`0>K{JtRj3^4+Tz#Fw6k5nktm zNq+x2UIfqioEQGW7dicDyj4bYl9QJv05a)YWjqr8hy4Hr@W&1o#=m@~F#eyOEsQ^A zFN}Y=tsuVaN9J@=>3S^t@8)ze`1vn;jdZftBfMO1!cWV1petFsH4adhYj?n2kD?7< zx)OF3;A4Q*fa8E3z_$Qt-AOa~ZPh2g6Tv;LXZQ*ESMfZ8=O#RV8P5`)<9PPqxgO89 zri6OEymzh)oD;YUfV0Dw9aZ--nw%9~R@M|cYHuCKq^hwrQAmBgrTJ>&it$Oc3_XfT|y?0~pK(D{A_wH`KG(B&w5P8=6V|Pal9j5Vd zfb@}w`2xwqIDcr5uN23+{wzDR_C9bde|`~bj-_+txvxo8u^-mqL|J{rbM5)EIy~1C z&$Z{pw6?-cJlCFE_u<)&`&v2j`{TH`5q}lTUBMPZ-w!)Zv+1+;0q6GNTG{V!G0HBZ zFmxs7&YJ|7r6w^)AlB2|Zj(!7m|GTnrg>$|J7COwFI%F=C;Oh}ljizk^Nju6ZtdAQ zW#qxrpY!{pfcbtMi%{>%o`XyKJ#uN!s)xDd`#8Pm*A(U^dc7`{)7vzNJ=gj?cs21P zpVsn&25lOx6&=R2j6~^5&aIdN!2F&-^ET!=LOX>e9~+$krNwu-a^s70=V9JNXaI}> zdXw{h1y<$zo5SFD;{@8^8ljFFK0j;1TDgR53uVz6nyWdJ%Lgw@rEty%=?|8i^Hv9d z1?Op;qWHkO0hl=F_i=9}s}|?HHHPy*+{rn=SAqUy_%Y_r)fHO%6nb>O;WrA}W#@L* zRWnO>_b4y>gk9@?;GaV~h`iq6CwAB9Dmq`5WtY6ve_iJ$?_M%@n^iH$GPU zNQn@$z()i+Z*_3GkROFJXnXKT;XGu@1Xr?ZX98e;uB>A3>;(4FQn{ny_nBQ=SIg(y zZZ2fQWBh%+91zdYe#arm4`^~IedWZPIVL}Eo-c*`aNq&P_J3|LWLC$)4_l@hxZJjh z`fSqZ|K3SJY3L!)Yvc5KhOp)_3i;rCj#(Udmhdd#SsKK1G{!8bFG-18GV6n?zPAtQ z(7sfozGy$FfN*?YD4^(78Iuu+F0tx+2^lb1^>>v2hluxg<66AGmk_VaM0Xw0{lFmT zo(1{P>2@v5p?Q}@nLJ zg?CFWG6K_;tokjaB%5#O>#vq0{bYOLTqUVP3zr~0G0Vh<7ETvzEQ2mQORjrRKjAeF z=mzWA6`e<>A&OL()Zq_@e+Ib zb^3o@kMtMk>J8|DV&_)u2YpZLw&*AQv8{bZ+t&9|$MF7d_+CZK(c%8vb=n^u@HkwlX#XnM+u4j=~})$P@@yvTB6lU!0MDp&_@f z&2#uGRQ3A6sEB!#!@U17^hJpJM+JE(O!)h0__tMTo@heyDZcj&~uprAG5-uA6gM*7=MYi$%;2ib1pWK(H<=~D?qM(_+9-FCuw#y(<2 z!)4BNp}L0b2(ay`AIdr(!q5wNM|M@#*$wJLFN}hw*==g=cSZnn`zNvmh+jyaU&*RR z>Gq0T9)^Ep^s|CY{cK}`+L>@UwF6~0&KlT@vj$4|nU$UCKDdZK4m6@4{SU*IsHA?B z+C}IMtn(ZzFfWg@%&;F}hn6RMxj>#xA2v@q&y4msq~j&fo(j;5`s=3ru=k1)o!AHD zHN`1tV;~Oa3*v}+91n1H)JAV^|NMP_6S2_RH`sk`G9ht^(#@}9{%|}Ah({hziHv9L z9bqf=yXTSaMVq3&;|8h^$owjt=g;3{l&_4F`#`f-D@0Nj? z*th?y%=$ghNqUj!v@4O5X*#hkj@I4Ulk*-v#ow=C9a;9uyoV1K!E5~D;j1$C&Af*r z1;dwF_W|$9ZJ)FT6uh;eI{12WeZ8EWXuvu&n+H@A|8Tw-*66WLvc>5PL_M67!l7Qs zUvpcbahEgODiW!Ies$UFP%9LpI$hjM=XEahyYvgze)_UO6GM z|4PdZ_C55$PlIqBU64l`=lY6W_4lfL(xnb0vpd6*MObpQ1L-p62HRQa@bH@6vl_5PyD=l!)l-}-1(3+=7f!enGiKc{Pk zKX$6!h=;bs=a$TJ0y-GcS3tg~t_JkDZUp03vgG|ZZb%=yR4Yr%PqO6D8Q^Ded54aG z|4(+kf$`A&7cHT)q?M9-?t|j*RrHB#a3;wc&^bBpQH~OS?CBG^`HH2R4?-?oV(FGq z4oiM;68mLbV#y&ozl-nk1Dl1drv5|UTmO;zjsoYR=x3j3T}T)AI`?hzcj*pi^=j(%{;!Zohci5q<@MY=t|ZWOUI_*HPO$MM@{`` z?d)d4uNcF6u3yY-QMNsUo{-YHvWf6Se>OevKo-Pb>Mnv;i{K{;<2}B@_)8BJ#up1u zJ$fPfJp%>tHSfL-ycOf06@gLkVe|@|@q0z4-PcSX=JAHXkI3&#`1gAXr}uu$2=9%U z>Zc}UCp_eng;M5pQj?i@w=(#=#3nx~Zc zc+o23k?>m*02%y38IKhI_5|7EV(ogn4%;+119|{<`aH1>!6;sB2dwT<&wrE!NJ0z8BiW+S#vb@tp?!ZAytbzB5BlsTsd0 zhUB&S%A)_W>B9JWL$2Dg%hfPhIDDg07+;&ACoA7eT!q4;-SlJ5r!84C-JX7L;*VH+ z{VD#w_H&#L>=SB(UJ_&krYl+V@B0C?a#oniU-PrV<*a#SBpv=jbNExyG~Q~)|FSiW zHR#WQPtx4b!{;epWBRS^{(gzphjx)or z;yeSHpV^T$M!-ITAn2$L4-4)_88!hT#}_cROog$Eb&K0}Pb~4^1pk%8%oPX3Ph5uc z50^cSaj1jOYfd)agR@begAIqNR`|-sa&1|Rjoe6@U!a@xAIkAoH6Y42N&3%$`PB)O zyIP!UKgjto_kw8+Uii8O&pWKa^G|SS-+lso17F_T!JlWGm>`&(^9Ls~vfRAKzKr-v zV`a)%ob$&h=kwgTZ}WI_XC-*NInz-MzN>IJ*Kt~VKl_;Wd>+l|R*N%E)@kA1*XWxu zu4?bgd>a0pe(hOm<#5KodbH>BU0VECI<;qZT7$yd8no@_aK?}I{6w4f{J(TQSeX`X zj#lm&KWo;WOLTft$F=bPV%PAc4H}#o(eVFsM0=jmqdos*N_)P*$LX5$rkg|i)9o63 zYD9y7Q>Vel>=;W_i}qbU4(Gf{YYFgdg!}9L+Vew4v++AxwCC-6%rJTWk9hsSej|TU zzf6^b3;22fvg>m3Ek*Eh5qz)+KF;yONI#O5@3RHN+aG@2gip(F(yp!Z)9EzfxAT6r z0NztLo$bv<@SPm5(P>Vf>#uW8e{P3TFrB&f4&Y0M)(Fm_N2|OGFc&u1*RkXQ_zG}u zA6&o2p?=e}?_%x+r0+gN_zOv&o_qK*ONJhtlbEJw)I`rLGd<^#K0WvJ=bo>AnDC-- z8^*UnM1;Ab!7q+Mej`cYAxftVXCu&@fd%@I&Q7rcN)S*NbZe;>AuxW%I_i#bW6V$C z=@NyGGn9@f_`Qf%CJJ9}3%^R~ewpg^LZq>j#bM|wF4193R6nofB`JQ zk8q{zkz)W9kH@EYZv4t*{GkiwIH{H6OU`hT^NIQ;l;aDB@Y=al1vC1u!y>r1>%O@lAnie?wQR&oFCg(!1{49C080Sd5Jyr`|BBV(P!{lW*P4_CRw{b~ z@RCvv+z{5ym2;dsE4+(`w<#|EP9*yebNI9lUe@@0>+w84hwz1n=OU_~FYdtlcEB$< zw0hb~^X?(c}|EaMy;BBGFcd2YXniFpi2+P3- z$%pTW(Ojyr{$R|5^X2G!1|FO*N8c~-;C#8O`8q&5!Z8Zx8%~X(jPQ?*?K8@V^jWg< z;d%i0@o*jqtqF{JHUEi8!f2$jQ%@mAsZ z^ZR@h9Pj%Tm-_%{neUJF#SB_xyrfH-=B+C;_>Fa84y2_Tw1P)CKO~hZ zWNT1D$yvWO_-xQWN_f#W^AO@TiMAQz#Alqp-3PQp`C#2P)>X?4dAX67V&nzdac1x; z!`EA>;w&)uge3Y79`OwE@!g<%j{(fayf7Q85<0MNAN%x~jPvA0bvO8Y1pd?4Xbm>j ze09N&f*(D;7Qc0{xv(w`K049+5`MqY&eKw$RUoG)wY=|>bNQCE+_i)9Bb^gEhW*Xo zcr%DHbdZdz64z0*C(^0TpnEmOY@j~?2wfWQ$~FekF)AFGpBs8A;5Va)#DiQ zN<#XC& zdY$78iBu{h$Gua?H*Xzs82lkSKb!<_AlEp<)P^$}?Tr)Q%|hr^^dZpK%__zYByYI) z(j22MdmfyxNpc0>{)2`r)7nAm1E5IICJ>L#+QxSlL>fzAu0+(U$br8Z*WcUpdLVy4tyMt&57isE9NMu?_yg%Uk*jZzChB|r8Kb^YUHnQ~ zE^opO{82&&$$(4zD?7bNTCOC013MRZ)P>7x;6KIt7ueVx&;x?2)WA1Vzfd52n1>I) z%6b}8zjw(9L>KfBT0i`66KZ21^%QGT8QB3$wDe3sj(Q;PJ@j6Eob@PJ(=F3WT%u*& z1f`X0K51K^z7Q22!< zq)!y<%S&k9URf|fb$NQ33Y~S~5gstB zM?1Ka&gFMvoDAC0U!g7feE2>neeaBP^* z-_w(Uqzm!{b<3M>CA_vj({39(@!pi*$w!pCjr^LNdHI#!{5HbRM!V2; z)+Ucprf7)uL#Jx~GOJ8{r2de;H;cJI-k0NSiOjk5Xsh&Xlxo;Z{7guc5#I~C#b{@4 zGOI~yaL_*!Ly#;Ch zE7By}`3*oCZ_s%wHgAHygXPov>;828>2W@-$N5Z79PF316^sMkRGGi!hx&$nCrC;J z>ukI59g_{i`1a5CmfUa@hQjLm$|>zE`M@*k_l_Qe=b+zJOiycJ2ckw;lo@?QDo^jG z<-YuuX~@-##5OkXBhUpo?QrOMxseX!G$I0!A3}zIg3g`d7w~Sv4?!2f#&)Q-G~Snk zr}&f($-6ncq~l31nDIO%gdZV%e!hK898WqB`*UPG&;>nC>C-t`M5oPlFKl@6qO?B8 z`-6CI!5pouzGPYlW9ifSnOA{_Z6hNPUGQI$s;2o9o{utE$^B+Xr%3qwweWiW89v?L zPwD7wnnVo)$!CX8s(<*5e+=VBpsg8G4N)-QaUH~bmW|L4E#t= zItG5f2~X+h_49znw@kSV{Ap8oqDRNyubS|-IIm4A@BK#!uh);M-tIrf@fx3DeQOuO zALsbT!T-JH`nrFd@jw^seX2J@J|&ruxRREEb^rr!&&cgS7suzNa}UY$Y~lmP*mf2EFBNsK9)~`i zAe$hS8nOr-`ko92_Koo|MI0WIIBb5?*uogE2}+rdkD)Z(rHp3llfhP^!&FbY{0+7d z-c(OIUNOs=4RWT}ld?Z29Rq*RjE7z_@Y7~|roF)s&(2qCSJGe;@aO4!GVFk}S7Q9w zg7G5Cg>wc6gGRZu=aA7qyHPgx&^6fiEc105E*JbfN&sut17!PQjsWjzY^BUs-A3T*t1xFA#^}4qId!R3LRPVW|qxC!c$nK z#A#}OTd4kx@MipB6F!|E?BTjJ-YT2$clgqHSl==p=n^e`4H{kj5+1dDDl+ermreBp zKa=PJZ!a2OA&}p_6Zf-mzXQ;N^)qjq*81aHjr^NlBF+a9>3k6Q9{65H)pU-V=nYR{ zobjoorAMWFdAac&Tp15^iI$Cf$UZ`Q@!*l#3(k8vZR#&J+6&_!AbNRtw9}I^9_WI; z0;y?yIv?ntaTETyj0d`)|HlA~bWH8{0k;WnYVXS%47`H9kuo0W5-nF?egjR?vhGwE zW6`ALZk`|R4_&Y`j zpPzoXhlgLo^^~dnU7dyT;eAEY;c^FiXq6mjs+JLmE{x;i02ZA8(k#DZ?~)0L3;22f z!mpBFYBJ&PJ4pC^I=4}|E#X(epOl$D{Tkmiyov9dj`8rrT<@FkeRYM?U&s47oW(4M zpEIXFFiPRM{gK7b)jWL_;nB~T_;yzxPoL8HIrh{%XYjw5*Gt#}yca$Pd?Oy=aPHq{ zrU69Qo`xT@4K}ES&YLFNP{vETlC_7Z{EIyzeM1MftOWnLz(lk$ZCp!Z);*I!@c%kF z@atpnYtTGl5Pc8rr?a_6aYiWlvG0K{Tfo;+*5O`s?bPyuEJh()4%$DB{Bdq1-`7Zc zP563eI(Jb2_U~WpAJe~~wK~{5kXh^;*tBuL-@DPxcTLxHxz}#m?A|iqUxy{pv}-!o zUqQTSqJ7`Q99&74O!aXo*62C%c!RUG%zU90R{Gx3I}5GB)xP(qA3tJWI%fX|oktW|as-Mk4=lEppFAd$w_j5%+cjdaxpT2WrV4!!?M$`qq zpFsXFbrO3zS~0#yA&_3Hs|Wjy0?TOLfwjww`#@b`CgK@B?i(FS*L9Sy8{a$t4R{W_ z+u9?-GhLAuhVOk+8vJ_(WE&`wllm+Etu}p~>bdU+1wTO&)-Qa05+H9qG<+y5yhdo( zc~#JlLSsyP!_cjSUv;S1J4F59N|n`NEJoiv#29&%F~+8GC-t+oZ9D&PfP5G3dz^E6aR$KJ?m|1K887 z$KyV1enu+j$nuBKKJ7v>CxZ!eC2O7{yXDEEdxncvgTO{fX1B+?FsYu zXnQ!fjO3Qyi&Z!5LH{a>RX2(nyx|y!CB4&#V;4(q_o$C^*rmf!9iGtOdYcZLIjq?= zfqgbJ#F}sSKb&F-z=7x@whwRz_A3$G7v06aA=Z5BbYsfm1{{C*msW&3*!=LcK(Hn1 z5)kfS&xi(<=%|43|9G%*mmrHZ2TsK+uwJz0zy$nTb%4{*A9(&pH=ZvBBz=PC@B37d zxso-Bw^7WQL&HM5VwI^*J=~wA-Md{@@Fax2O99N4WWEzhJ^}LM;0&zCP8xO;)@w5v ziP4p;dBOug_DDPIB%e%3T*;bUhX6GELfI646s;>w^9eYyRP|2KV~l`@-|CquAFDI66XgB-T9H=bF#qDEy0fK6n~_GQg)CTKIpA z!sqA%oqBqS!&>@@DJ}lviYr3lA8n;)*g2$6h(7H9K>hE=6E4_wXHae_Y1uk~$IN^9 zP3V2nHGdz+4+}O$J9nAT=)lS%NXsU=N@@NUa3QrLThjGuEj->)K4^P-__?$`5#i>> zG$_&f6FgrgYtQu_Eq>h@M8G~H!PYpM%GiHZOY4EB@9UC&Py2#sj~``_tl6IccuL*y z^xG{={CT1NMbmL5J@F0K7wpI36Qe!UXZsd2`5K|GGJ6B){7CZEo#S_yan2VTMjBaX zb5Q&y_|87yJIr=3N{IO6AG^vQd$-f*8;5_+?Awk!6&$O2c}#mZ^{nxZ@EXlC>I~fQ zPcat^zcuD~j}Jq}mmytsfPbqHeL{0ypWsD(KtD);!iWRk1mD5jSieQ*h_@>j@;>h9 zGSD@Q_7GlxF){G4XHxVXu$99C=7&CzuT-XNzTTPP>$bh$q%weKMZa%Nd<|=1ihkdk zWCwlHd+i1vw(b7rS-)>h??d7d^m&$@4}TZ)RP*_nFf`}15B=zVdLR8;Hlq;Vu^-t& zV=(yPGv8FMdin4%0pC@2OLY_%vPS1Dqb~n+&`c9>;6Whtl zW>a2BH|tDB5xPadyoDQfvE*@*OuXOxf%UcF=_#~pqWwR+&cs4>2EG~RFy^%dvOVaG zR`qen;8@{r%M(9TgaMCUr29hkXYdT~rv8FDVq{k?b*J};qpmY&Z=#(r=)iV-Cn`m{ zdfT3hmgL$#$Q%9SQ!ZUT++@dM|IccFe=`nchaHlg2!9C7w}NN1F{f zBfZt6#+e*plJ@RE+<5051b-jpdIoWhXYe85cN%zCS_kLSOtuze2z%78r*E`~U;*@V zg8Cm(edu~g|5li7_p{tymT(qLwTzc^!Jg;>5Y@L3u8eV;RQ(6OKT*QCnv&&Laz4K$ zo0h)AMz+g*f6O~+@Tomex|{+g%iHz?pkHGrh%T9sxRT}9B6qeRmwziJ)T;xj{dw@3T#m>jvX@~iJ7DvkiPCqx4csVm5{|wJiSJE|fD)ht zXalqX+5zo3>CGvSo`yTe^m6N=al&N3l{XvqQI}GYvEM}Dztj55F7TrV{2;rkOJSM! z$?{c5MaPR~d~+;~&kDc7uoJV=5zDWYVYfKN@>M6{0|ji3XmCX};gjX7xqX8Cd$RLy zOHe+jzmw+r6U$fI5Z?j%Ch`8$x%CL!m9HB^|1*iY%sS6O8KAR-gcB47@37u3vtEwu zI`AU`{Wga57qtgi1IDF6?8oN!q3@T|xF^8zgXIqOafH2>jp4g0ZCI0Ylyq)<_LFtg zr<0!IXR4k;+?QB`cY;+y9|%{wk>|z!&ZR!yme42t#|cBuG6U=-<(&nVv;F(;0KrR_Q&-xf|z|l5WO#a=+GQq=~fpi;TPLOyh1o&c^tfK__Bg zA0Kb$j;VQD=DP6q%$T0)4RvNGzGEzYD7QUO-N^XSl`Qui1GqF#ZtgbL7z))Y?zQ?@ zKVg)C^yXRlt(~iXTA%AL#&0@TDVyK=_d@dceK#ZiX83(K_-p3(-CUm(`HIO!}2c9dL*@&=Z%ykcyyts5)J2QmR-nb<^P;ng#6rB3K{Q>-tNV8Vd?L5~q5QLa zDx)=)v|wd5emCIvdHm@6!MEY($FCc|Ui>!TcL#plpNQ`i!6&DE-#+&n-p~y#2sZ)P z3P@{^+W^N&{s52Rxet)mYWD*k25bjB2uSbuAso%IkZ-^SI09(+cEeFIkNYgk z)z@}>`7_-EWb4&koN?Or`0wg=cLB-WwY^=%eYG+%8yEQ915kpxy$;{GJ%%+1QCcfc zxut(whK>g9Z2!96mr-MK6 zj_UsG*I`59Y(UWQ7yGl*=Xb2@8R*^&9^^1ccWKY0@)VLq!lRsI$K=_8WbdVY*Sm9k z`Z$aG1InwW%S-hN=b@6zBZw3XXGP(OAc-8{d) zQ4h*pJ z{o5@lN73{5A)|?5*rUr5kX`DZF#n4&uITz3^od7sMl5_`!1d_9vMig8<|C+IBp(#= zxI^i!2oBwaIis7?b4Jy!DAw}txzz#NL$h7)&DgG3D=(;brRRc9lHW|ZFhPB!igAR1 z^GyQSW?M!`I1AKV=9BACv;hvuXje8gF`T5Vd zx8t6l`;2=!Q?rTkCYwp8*ADzn8kbO5)4hm$zV?5x`-}hiGUwm8mCtW(;oT*Udg4=? zWOr8TBFOK#Vug@>fc{hwq$gJnfBXVdfBYDW07i{AnwpT}sWE#zm2k$x&tuI$WDa~5 zeZ!WX@NHFI)Mc{^-&iFb3_R*e@X;Iq?_1Ugbvf@M>L`~hC(S35T*5Z|x2A-f`-G?6 zQ}JovnfSDPI*vAs@3L-B`z}bn;)9rD-X_EWwLK(*C3|QdTF-YNK3EdRvn@Voom6p8 z>F1~U=4rzw)Y7!RPT{otetXDxH)e?rOtUE;?D2a2J-!DjO2&H~2OIMWpMirsI5YT9 zrpLChBS2GS0?-aP3g`gb1Ly?Y2j~LaPwfY3Tugi5pl=1l~%lS-dv^wX@iF?T=EtqC~tsN{L<AQjO zdzjAHq&)?d@J(FA^;|WLKT+S=`WraX-=OPCjOX3>rg5HMf_xo?==?ax&N3Am7s?$6 z*i)$7E5>j}W|27L|-PH z0PUh`oU^H&e~dH0FgJNO^0Bfq=nwDE*Ad>v>zC^@Di8FYKxeM&`U3Mpne#GRnDw9@ zpY}aEh93Hk!=MlEcIfXaNjFhiC_}YB_9J87xmcQ=>Q=)qgmrJdv~RCy{`ELpjiLMk zUBYTB#m=jkstZE z(DpuDU3`3eXJfY{%4ok_C(@)nYFWH|95gT6kxFe-%NqE;x*^CM`qX9NRO;-qmpZP? zo{aRLL;4-X(}%2Mjkn@(Lq0J-3|@ag+T(iK1${)QUec2T08NGTWcZg%f<48;_?~%q z4V$7d5A=n@rwUDtKHwX%hpd91mF!f57!O&e$hNXI-im!jPS{)J$EY2hrg$_C_I@Ah z?q0ii2|dGqEW`m}SFrZ2pI+V`uq+P+e#gh9?eeFu!sLbuUf4pbe&;~Dl){~`p)TUK zc^x2)iwTwjx&dbb%7Ep7Oy7hcw2k7xLo-e z?0qdQhn|*5;Sk?;%PNtecn~xK)+zTOPC$4@{d<%%usBGx18*n1eouQL>1?+YUzpjAJIY5@nlpkU8rZ&5M-yoJZ8=qI%|)RD}a4& zfp=)$!sUrvEL7Z{S@GW5Kry7d*I!>C$ zVCpW|^_ZtX;&e`n;S;nq!Otc~etit@qL|0X_&F-Lf6NK_5?z0T zc~Gugd+kHnVJ4d~dmPSPhq)e({4o#a#?b5X`jG+V34wAgaWWKX`Dp5BXnjJm09SlbCiL`C?keF zq&{j|zgl)f)D+%&4&l!j;rUwe4^02i7{U+dw&(DBP(bicK&CQhL@(gy_iE?!9>F*S zbCj^%?kF_ROftQ4*t!GqE~yx_pr54Y2;IjQEPmUijZw1NU3_ry6xj-74|08|&rx}0 zZu4b@Rqn#PJi_yNtRun_^bLj2@P%)V_IYbaG-4o3tfS{S?>BccGV(}oWCaCT#Ij!rXCBWIomNIc1gaJx`BA^XW z0<;6#befzxO;H+OlDuehi0_?&Pp6G^z4^Rj=$02XzX|Gj0s2tr8U_1%qMEGYY5 z1IU{P)7mHIK?~0z?@&V}r>R|`9>p!L%RXh)3oOc_?MZ?RWe@F+RFI7Zt zfA&F7@^3rw=ONbFhzy7S%$x}4a*Z(CU>Nfx6emVwC){V^YWfWG<5_r&ooTNx^h6!T zk%HnpOuRV6&#$-@VO=NbnS71C^lczOKDS2c=9Y){8e-j>fU$-IJ?hiWL`so;+dysI z-Fl<@Cd~3LbGvWSUB+Ao)N}w-!&L%*{@i6N^K4+P&3snW+k_j%2ERXh0w8Zb@$9@5 zMm{<(({XcnspE;4v2)_(mHPbAf#_v@Q_T*!1ezD9t;TL literal 0 HcmV?d00001 diff --git a/Bootloader/main.asm b/Bootloader/main.asm index 6238e30f..17ab138f 100644 --- a/Bootloader/main.asm +++ b/Bootloader/main.asm @@ -13,6 +13,7 @@ # r5 = read (0x0) or write (0x1) ################################################################################ .include "Common/Common.s" +.include "Online/Online.s" .set REG_HeapLo,31 .set REG_FileSize,28 @@ -62,7 +63,7 @@ backup rlwinm REG_FileSize, REG_FileSize, 0, 0, 26 #Create heap of this size add r4,REG_HeapLo,REG_FileSize #heap hi = start + filesize - addi r4,r4, 32 #heap hi, 32 bytes padding? + addi r4,r4,32+32+128 #heap hi, 32 bytes per allocation? Also add space for file buffer mr r3,REG_HeapLo #heap lo = start mr REG_HeapLo,r4 #new start = heap hi branchl r12,0x803440e8 @@ -100,6 +101,12 @@ backup mflr r4 branchl r12, FN_ProcessGecko +#Alloc from this heap + mr r3,REG_HeapID + li r4,128 + branchl r12,0x80343ef0 + stw r3,OFST_R13_SB_ADDR(r13) + b Exit Callback_ProcessGeckoCode: diff --git a/Online/Menus/CSS/HandleInputsOnCSS.asm b/Online/Menus/CSS/HandleInputsOnCSS.asm index b4f58de2..f4cfa2ef 100644 --- a/Online/Menus/CSS/HandleInputsOnCSS.asm +++ b/Online/Menus/CSS/HandleInputsOnCSS.asm @@ -156,6 +156,8 @@ beq SKIP_START_MATCH # Check which mode we are playing. direct mode should launch text entry lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +beq HANDLE_IDLE_UNRANKED cmpwi r3, ONLINE_MODE_UNRANKED beq HANDLE_IDLE_UNRANKED cmpwi r3, ONLINE_MODE_DIRECT diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 73605f37..3eb9fcbc 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -237,6 +237,16 @@ bl SplashSceneDecide .align 2 .long 0x80490880 #Minor Data 1 .long 0x804d68d0 #Minor Data 2 +#GameSetup +.byte 5 #Minor Scene ID +.byte 3 #Amount of persistent heaps +.align 2 +.long 0x00000000 #ScenePrep, previously 0x801b3500 +.long 0x00000000 +.byte 80 #Common Minor ID (Classic Mode Splash) +.align 2 +.long 0x00000000 #Minor Data 1 +.long 0x00000000 #Minor Data 2 #End .byte -1 .align 2 @@ -354,14 +364,14 @@ b CSSSceneDecide_Exit CSSSceneDecide_Advance: # Check for direct mode lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +beq CSSSceneDecide_Adv_IsRanked cmpwi r3, ONLINE_MODE_UNRANKED beq CSSSceneDecide_Adv_IsUnranked cmpwi r3, ONLINE_MODE_DIRECT beq CSSSceneDecide_Adv_IsDirect cmpwi r3, ONLINE_MODE_TEAMS beq CSSSceneDecide_Adv_IsDirect -cmpwi r3, ONLINE_MODE_RANKED -beq CSSSceneDecide_Adv_IsRanked ################################################################################ # Unranked Mode Logic @@ -373,7 +383,11 @@ b CSSSceneDecide_LoadSplash # Ranked Mode Logic ################################################################################ CSSSceneDecide_Adv_IsRanked: -b CSSSceneDecide_LoadSplash +# Set next scene as Splash +load r4, 0x80479d30 +li r3, 0x06 +stb r3, 0x5(r4) +b CSSSceneDecide_Exit ################################################################################ # Direct Mode Logic diff --git a/Output/Bootloader/bootloader.gct b/Output/Bootloader/bootloader.gct index a46c729ff0ee287b10afa17311448a3260dce6e6..5effb38c7d09f880b5d5e0c918d5b3a8fcd5ae3f 100644 GIT binary patch delta 80 zcmZ3$b%1MvIAg#>iT#WRCf=BAXj#+2w9K}lfg!Oc^iORk^D@5%7R7q!%M}(43=KeW elf)jo4>0iwx$BQiZeaYvlEA>gu(^b34HE$VU>@rL delta 47 zcmV+~0MP%y3ZM#*7XeI>7{37^k=T Date: Sun, 30 May 2021 01:21:41 -0700 Subject: [PATCH 003/217] build codeset --- Output/Netplay/GALE01r2.ini | 6121 ++++++++++++++++++++++++++++++++++- Output/Netplay/GALJ01r2.ini | 6121 ++++++++++++++++++++++++++++++++++- 2 files changed, 12140 insertions(+), 102 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 8a8cd210..8bed1a3d 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2172,14 +2172,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000168 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E -2C030008 40820AF8 +2C030008 40820B00 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2197,21 +2197,22 @@ BE810008 3C608048 38600000 48000008 38600003 3D808002 618C4030 7D8903A6 -4E800421 480004C9 +4E800421 480004D1 887A0000 2C030000 40810020 2C030003 -40810084 2C030004 -41820088 2C030005 -418201E0 48000A20 +4081008C 2C030004 +41820090 2C030005 +418201E8 48000A28 88780014 2C030000 -40820A14 576004E7 -41820A0C 3C608048 +40820A1C 576004E7 +41820A14 3C608048 80639D60 2C030000 -418209FC 3860FFFF +41820A04 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 -2C030000 418209E0 -886DAFA0 2C030001 +2C030000 418209E8 +886DAFA0 2C030000 +41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE 48000355 @@ -4064,19 +4065,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4132,7 +4132,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4140,11 +4140,11 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 90640000 3C60803E 6063B750 48000209 7C8802A6 90830010 -480005AD 7C8802A6 +4800059D 7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 3C60803E -6063B750 4800059D +6063B750 4800058D 7C8802A6 90830008 3C60803E 6063B66C 38800644 B0830004 @@ -4157,7 +4157,7 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A5C 4E800021 +48000A4C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4207,13 +4207,13 @@ BA810008 800100B4 7C0802A6 90010004 9421FF50 BE810008 7C731B78 80730008 -2C030000 40820354 +2C030000 40820344 3C60804A 3BA304F0 38600004 3D808022 618C9624 7D8903A6 4E800421 907D000C 3BC00000 93DD0008 -546006F7 4182018C +546006F7 4182017C 38000005 B00DB528 3BE00001 3B9E0000 9BFD0011 5783063E @@ -4229,15 +4229,13 @@ BA810008 800100B4 7D8903A6 4E800421 A01D0002 2C000000 41820038 2C000001 -41820048 2C000002 -41820048 2C000003 -41820048 2C000004 -41820048 2C000005 -4182005C 2C000006 -41820078 4800027C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000264 +41820038 2C000002 +41820038 2C000003 +41820038 2C000004 +41820038 2C000005 +4182004C 2C000006 +41820068 4800026C +38600000 48000078 38600001 48000070 38600002 48000068 38600003 48000060 @@ -4706,18 +4704,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000172 #Online/Slippi Online Scene/main.asm +C21A45B8 00000177 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 48000215 +6084DC1C 4800022D 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 38600008 4800016D 7C8802A6 4800002D -48000B24 80830000 +48000B4C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4762,21 +4760,24 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -48000081 480000F5 +48000099 4800010D 08000000 80497758 80497758 01030000 -480001B5 480001E5 +480001DD 4800020D 09000000 80480668 80480668 02030000 -801B1588 4800027D +801B1588 480002A5 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000411 48000751 +48000439 48000779 20000000 80490880 -804D68D0 FF000000 +804D68D0 05030000 +00000000 00000000 +50000000 00000000 +00000000 FF000000 4E800021 81940000 7C0802A6 90010004 9421FF50 BE810008 @@ -4799,13 +4800,15 @@ BE810008 38600012 618CAAD0 7D8903A6 4E800421 809E0014 88840003 2C040002 -40820008 4800008C -886DAFA0 2C030001 -4182001C 2C030002 -4182001C 2C030003 -41820014 2C030000 -41820008 48000038 -48000034 886DAFC9 +40820008 4800009C +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +41820024 2C030003 +4182001C 48000048 +3C808047 60849D30 +38600006 98640005 +48000060 886DAFC9 7C630774 2C03FFFF 41820024 2C030001 4182001C 2C030000 @@ -5429,6 +5432,6022 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C2068B40 00000030 #m-ex codeset +7C0802A6 90010004 +9421FF00 BE810008 +3B400000 839F0004 +80620098 1C9C0008 +7C632214 83A30004 +7FA3EB78 48000071 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820030 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084000C 7F85E378 +4800005D 3B400001 +7FA3EB78 7F84E378 +38A00000 3D80803D +618C7070 7D8903A6 +4E800421 7F5A1B78 +480000B0 4E800021 +66744675 6E637469 +6F6E0000 4E800021 +6B624675 6E637469 +6F6E0000 4E800021 +6D657850 61746368 +00000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1B0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38000000 00000000 +C23753B0 000000A9 +7C0802A6 90010004 +9421FF00 BE810008 +480002B1 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3B830000 3B9C001F +579C0034 7C9FE214 +388400A0 7FE3FB78 +7C9F2378 3D808034 +618C40E8 7D8903A6 +4E800421 7C7A1B78 +38800044 3D808034 +618C3EF0 7D8903A6 +4E800421 7C791B78 +7F43D378 7F84E378 +3D808034 618C3EF0 +7D8903A6 4E800421 +7C7B1B78 48000235 +7C6802A6 7F64DB78 +38A10080 3D808001 +618C668C 7D8903A6 +4E800421 80A10080 +7F23CB78 7F64DB78 +3D808001 618C6A54 +7D8903A6 4E800421 +7F23CB78 48000205 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C781B78 +93020178 480001FD +7D2802A6 3929FFFE +39000000 1CE80004 +A0690002 7C630734 +2C03FFFF 4182002C +7F06C378 A4690002 +7C630734 2C03FFFF +4182000C 7CC3302E +4BFFFFEC 7CC7112E +39080001 4BFFFFC8 +8062014C 3C80803B +6084A648 38A00000 +90640000 38840008 +38A50001 2C050008 +4180FFF0 7F63DB78 +7F84E378 3D808032 +618C8F50 7D8903A6 +4E800421 4800001D +7C6802A6 90620184 +480000E9 7C6802A6 +906200F8 48000390 +4E800021 00000000 +00000000 00000000 +00000000 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +4E800021 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +4E800021 4D784474 +2E646174 00000000 +4E800021 6D657844 +61746100 4E800021 +6D2D6578 00000000 +4E800021 00040004 +FFFF0008 0000FFFF +0008000C FFFF0008 +0014FFFF 00080004 +FFFF0008 001CFFFF +00080024 FFFF0018 +0000FFFF 00080038 +FFFF0010 0000FFFF +00080020 FFFF000C +000CFFFF 000C0000 +FFFF000C 0004FFFF +000C0028 FFFF000C +002CFFFF 000C0018 +FFFF000C 001CFFFF +000C0010 FFFF000C +0014FFFF 000C0020 +FFFF000C 0024FFFF +00080010 FFFF0008 +003CFFFF 0010000C +FFFF0010 0000FFFF +00100004 FFFF0008 +0028FFFF 00080008 +FFFF0008 002CFFFF +00080018 FFFF0008 +0034FFFF 00080030 +FFFF0018 0020FFFF +001CFFFF 0008FFFF +00100008 FFFF0014 +0000FFFF 00080040 +FFFF000C 007CFFFF +000C0080 FFFF000C +0084FFFF 000C0088 +FFFF0008 0044FFFF +00080048 FFFF000C +008CFFFF 000C0090 +FFFF000C 0094FFFF +000C0034 FFFF000C +0044FFFF 000C0040 +FFFF0008 0054FFFF +00080058 FFFF0030 +0000FFFF 00300004 +FFFF0018 0004FFFF +00180008 FFFF0018 +000CFFFF 00180010 +FFFF0018 0014FFFF +00180018 FFFF0018 +001CFFFF 00000004 +FFFF0004 0000FFFF +00040008 FFFF0028 +0000FFFF 00280004 +FFFF002C FFFF0028 +0008FFFF 00200000 +FFFF0020 0008FFFF +00200010 FFFF0020 +000CFFFF 00200004 +FFFF0020 0014FFFF +00240000 FFFF0024 +0004FFFF 00240008 +FFFF0024 000CFFFF +00240010 FFFF0024 +0014FFFF 00240018 +FFFF0000 0004FFFF +00000008 FFFF0000 +000CFFFF 00000018 +FFFF0000 001CFFFF +00000020 FFFF0000 +0024FFFF 0000002C +FFFF0000 0030FFFF +00000010 FFFF0000 +0014FFFF 0000FFFF +FFFF0000 7FE3FB78 +BA810008 80010104 +38210100 7C0803A6 +7C7F1B78 93EDC018 +7FE3FB78 7FA4EB78 +60000000 00000000 +C20186A8 0000000C +90010054 38610028 +48000021 7C8802A6 +38A00030 3D808000 +618C31F4 7D8903A6 +4E800421 48000038 +4E800021 02000000 +804D37EC 00000000 +03000000 803BA6C8 +0000001F 03000000 +803BA6D8 00000000 +02000000 804D37E4 +00000000 00000000 +043BA3AC 005D12E0 +041A6440 38600008 +C21A6454 00000005 +80820178 80840008 +80840068 1C630004 +7C63202E 3D80801A +618C6468 7D8903A6 +4E800420 00000000 +C21604F0 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C054C +7D8903A6 4E800420 +2C040015 00000000 +C2160578 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C05D4 +7D8903A6 4E800420 +2C040015 00000000 +C21A9C38 00000003 +80620178 80630008 +80630060 1C9F0004 +7C63202E 00000000 +C21A9C48 00000003 +80620178 80630008 +80630064 1C9F0004 +7C63202E 00000000 +C21A9C28 00000003 +80620178 80630008 +8063005C 1C9F0004 +7C63202E 00000000 +C2023F50 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F70 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F90 00000002 +80820094 7C84002E +60000000 00000000 +C215ED1C 00000019 +7C0802A6 90010004 +9421FF00 BE810008 +80620178 80630014 +83C30004 83630008 +3BA00000 3B800000 +2C1B0000 4082000C +38600034 48000074 +1C7D0004 7C83F214 +A0640002 7F9C1A14 +3BBD0001 7C1DD800 +4180FFE8 7F83E378 +3D808038 618C0580 +7D8903A6 4E800421 +7C7A1B78 3BA00000 +3B800000 1C7D0004 +7C83F214 A0640002 +2C030000 41820014 +7F9C1A14 387CFFFF +7C1A1800 40810010 +3BBD0001 7C1DD800 +4180FFD4 A0640000 +987F0001 48000004 +BA810008 80010104 +38210100 7C0803A6 +8001001C 00000000 +041C2A48 4800007C +C21C24F8 00000022 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +3D808022 618C519C +7D8903A6 4E800421 +80820178 80840028 +80840014 1C630008 +7F832214 831C0000 +837C0004 2C180000 +41820098 3B400000 +3B200000 1C7A0004 +7C83DA14 A0640002 +7F391A14 3B5A0001 +7C1AC000 4180FFE8 +7F23CB78 3D808038 +618C0580 7D8903A6 +4E800421 7C771B78 +3B400000 3B200000 +1C7A0004 7C83DA14 +A0640002 2C030000 +41820014 7F391A14 +3879FFFF 7C171800 +40810010 3B5A0001 +7C1AC000 4180FFD4 +A0640000 907D0000 +38600000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +7FE3FB78 7FC4F378 +7FA5EB78 BA810008 +80010104 38210100 +7C0803A6 7C0802A6 +60000000 00000000 +C22FF064 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60636D5C +80630000 48000055 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7F1B79 +41820040 38600002 +7FC4F378 38A0000E +38C0000F 38E00000 +3900000F 39200000 +39400013 3D80803A +618C611C 7D8903A6 +4E800421 4800000C +4E800021 62676D00 +BA810008 80010104 +38210100 7C0803A6 +3860000E 00000000 +C216E980 00000084 +7C0802A6 90010004 +9421FF00 BE810008 +3D80801C 618C5A94 +7D8903A6 4E800421 +2C03FFFF 418203E0 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480003BD 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7F1B79 418203A8 +3860000E 3880000E +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 7C7E1B78 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +38800020 3D808000 +618CC160 7D8903A6 +4E800421 7FA6EB78 +7FC3F378 38800004 +3CA08037 60A5F1B0 +3D808039 618C0B68 +7D8903A6 4E800421 +7FC3F378 480001B5 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +480002E5 7F6802A6 +38600002 38800001 +3D80803A 618C6754 +7D8903A6 4E800421 +7C7C1B78 939D0000 +38000001 981C0048 +C03B0000 D03C000C +C03B0004 D03C0010 +38000001 981C0049 +3D80801C 618C5A94 +7D8903A6 4E800421 +80820178 80840014 +8084000C 1C630004 +7C83202E 7F83E378 +C022E0C8 C042E0C8 +3D80803A 618C6B98 +7D8903A6 4E800421 +807F0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7C1B78 +7FC3F378 38800003 +7F85E378 3D808039 +618C0A70 7D8903A6 +4E800421 7FC3F378 +3C808039 60841070 +38A0000F 38C00000 +3D808039 618C069C +7D8903A6 4E800421 +7F83E378 809F0004 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7F83E378 C022E0C8 +3D808036 618CF8BC +7D8903A6 4E800421 +7F83E378 3D808037 +618C0928 7D8903A6 +4E800421 3D808016 +618CAE50 7D8903A6 +4E800421 88030001 +5400CFFF 40820014 +88030000 5400FFFF +40820008 4800000C +C03B001C D03C003C +3C608036 6063A4A8 +80630000 3C80C03F +60840034 7C032000 +41820014 C03B0020 +C05C0038 EC21102A +D03C0038 7FC3F378 +4800000D 48000180 +4E800021 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +83DF002C 83BF0028 +839E0000 48000129 +7F6802A6 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +7FA3EB78 3D808037 +618C32E8 7D8903A6 +4E800421 7FA3EB78 +38810080 38A00002 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 38A10084 +3D808000 618CB1CC +7D8903A6 4E800421 +C03D002C C05B0014 +EC211024 C0410084 +EC21102A D03C0000 +C03D0030 C05B0014 +EC211024 C0410088 +EC211028 D03C0004 +C03D002C C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0024 +C03D0030 C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0028 +7FA3EB78 3D808000 +618CB09C 7D8903A6 +4E800421 2C030000 +40820030 7F83E378 +3D80803A 618C5CC4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 4E800021 +43D70000 42280000 +3D851EB8 BF800000 +3C23D70A 40800000 +40800000 41600000 +C1600000 4E800021 +62676D00 BA810008 +80010104 38210100 +7C0803A6 3C808017 +60000000 00000000 +C21BFA24 00000008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +40820010 80620174 +80630028 48000008 +38600001 3D80801A +618C42F8 7D8903A6 +4E800421 00000000 +C2260BD4 00000020 +806DB8D4 2C030000 +418200EC 7C0802A6 +90010004 9421FF00 +BE810008 83C20000 +3BDE00DC 3BA00000 +83620150 806200FC +C0630000 480000B1 +7C6802A6 C0230004 +C0430008 C19F000C +C17F0010 ED8C082A +ED6B102A 1C7D001C +7F43F214 C13A000C +C11A0010 C0DA0014 +C0FA0018 FC0C4840 +41800048 FC0C4040 +40800040 FC0B3840 +41800038 FC0B3040 +40800030 7FA3EB78 +BA810008 80010104 +38210100 7C0803A6 +7C741B78 3D808026 +618C0C20 7D8903A6 +4E800420 48000010 +3BBD0001 7C1DD800 +4180FF94 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C0DA4 7D8903A6 +4E800420 4E800021 +40000000 402CCCCD +C0000000 3C60803F +60630B24 00000000 +C2264C48 00000012 +3BC30000 806DB8D4 +2C030000 4182007C +809E0010 806200FC +C0230000 C044002C +EC4100B2 D044002C +C0440030 EC4100B2 +D0440030 C0440034 +EC4100B2 D0440034 +48000041 7C6802A6 +C0630000 EC230828 +C042CB40 EC4100B2 +D0440038 C042CB44 +EC4100B2 D044003C +7FC3F378 3D808037 +618C32E8 7D8903A6 +4E800421 4800000C +4E800021 3F800000 +60000000 00000000 +C2264DA8 00000008 +3A430000 806DB8D4 +2C030000 41820030 +806200FC C0230000 +C052002C EC4100B2 +D052002C C0520030 +EC4100B2 D0520030 +C0520034 EC4100B2 +D0520034 00000000 +C2260C8C 00000009 +806DB8D4 2C030000 +41820038 806DB8D8 +38810098 38B40001 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +3D808026 618C0CDC +7D8903A6 4E800420 +880DB655 00000000 +C22647FC 00000040 +806DB8D4 2C030000 +418201EC 806200FC +C0430000 480001CD +7C6802A6 C0230000 +EC2100B2 D022CB54 +C0230004 EC2100B2 +D022CB34 C0230008 +EC2100B2 D022CA34 +C023000C EC2100B2 +D022CAA0 7C0802A6 +90010004 9421FF00 +BE810008 3FE0803F +63FF0B24 83A20000 +3BBD00DC 3BC00000 +806DB620 38810080 +88BF0005 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80830014 38A00001 +50A426F6 90830014 +38600002 987D0002 +3BDE0001 3BFF001C +3BBD001C 2C1E0019 +4180FFB0 83CDB8D4 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C741B78 +807E0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7D1B78 +93ADB8D8 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00001 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7FA3EB78 +38800006 38A00020 +3CC08036 60C6410C +38E00001 3D808036 +618C4C08 7D8903A6 +4E800421 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C4924 +7D8903A6 4E800420 +4E800021 41000000 +41100000 3FC00000 +3951B717 3A9400DC +60000000 00000000 +C2266984 0000000A +806DB630 48000029 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820020 906DB8D4 +48000020 4E800021 +6D657853 656C6563 +74436872 00000000 +38600000 906DB8D4 +806DB630 00000000 +C22645F4 00000005 +806DB8D4 2C030000 +41820014 3D808026 +618C47FC 7D8903A6 +4E800420 38600007 +60000000 00000000 +044DC49C 41E80000 +C2260DF0 00000003 +3D808026 618C0AD8 +7D8903A6 4E800420 +60000000 00000000 +042609F8 480001C8 +040679BC 388023FC +C206FE20 00000002 +800323EC 2C000000 +60000000 00000000 +C2069CE0 00000005 +2C170000 41820010 +38600001 907A23EC +4800000C 38600000 +907A23EC 28170000 +60000000 00000000 +C2168C10 00000011 +7C7D1B78 3862017C +7C63E8AE 7C630774 +2C03FFFF 4182006C +7C0802A6 90010004 +9421FF00 BE810008 +808DB8DC 8084000C +1C630008 7C632214 +88630000 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +BA810008 80010104 +38210100 7C0803A6 +3D808016 618C8C40 +7D8903A6 4E800420 +4E800021 08070600 +7FA3EB78 00000000 +C216E7BC 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000111 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820104 +3B800000 480000E0 +1C1C0024 387F0060 +7FA30214 3882017C +3860FFFF 7C64E1AE +881D0001 2C000000 +408200B8 7F83E378 +3D808003 618C345C +7D8903A6 4E800421 +3C80804C 608420BC +1C630044 7C632214 +83430000 3A800000 +82BB0008 82DB000C +887D000A 3D808023 +618C754C 7D8903A6 +4E800421 7C771B78 +48000060 1C740008 +7F03B214 80780004 +2C030000 41820028 +2C170000 41820040 +7EE4BB78 3D808032 +618C58E8 7D8903A6 +4E800421 2C030000 +40820024 80780000 +5463023E 7C60D038 +7C030000 40820010 +3862017C 7E83E1AE +48000010 3A940001 +7C14A800 4180FFA0 +3B9C0001 2C1C0006 +4180FF20 48000014 +4E800021 5374635F +69636E73 00000000 +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C20A0070 00000065 +2C1F1388 41800318 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +480002F4 39000000 +399FEC78 80620018 +809E0004 7D2320AE +7D234B78 480001A1 +7C6A1B78 48000070 +39000001 399FE890 +80620018 809E0004 +7D2320AE 7D234B78 +4800017D 7C6A1B78 +48000064 39000000 +399FE4A8 80620018 +809E2238 7D2320AE +7D234B78 48000159 +7C6A1B78 48000028 +39000001 399FE0C0 +80620018 809E2238 +7D2320AE 7D234B78 +48000135 7C6A1B78 +4800001C 806A0000 +7C0C1800 40800138 +806A0004 7D6360AE +4800001C 806A0008 +7C0C1800 40800120 +806A000C 7D6360AE +48000004 7C0802A6 +90010004 9421FF00 +BE810008 3C608045 +60638FA0 3D808037 +618CABC8 7D8903A6 +4E800421 7C7C1B78 +386B0009 987C0004 +93FC0008 807E05E8 +57602036 7C63002E +907C000C C0210184 +D03C0010 C0210188 +D03C0014 C021018C +D03C0018 C03E002C +D03C001C C0228DF0 +807E00E0 2C030000 +40820020 C01E0844 +C05E0848 FC200050 +3D808002 618C2C30 +7D8903A6 4E800421 +D03C0020 806DC198 +2C030000 41820020 +8803000C 2C000009 +40800014 801E060C +901C0000 939E060C +4800001C 7FA3EB78 +7F84E378 3D808006 +618C744C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D80800A +618C0084 7D8903A6 +4E800420 80820084 +1C630004 7C63202E +2C030000 418200B0 +4E800020 48000061 +7C6802A6 809E0004 +48000089 7CA802A6 +1CC80008 7CA53214 +7D866378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +25732065 66666563 +74202564 0A000000 +4E800021 6D6F6465 +6C000000 7074636C +67656E00 48000041 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +4BFFFF91 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +65666642 65686176 +696F7254 61626C65 +0A000000 3C60803C +60000000 00000000 +C206747C 00000059 +7C0802A6 90010004 +9421FF00 BE810008 +2C1F1388 418002A0 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +4800027C 839D002C +399FEC78 80620018 +809C0004 7D2320AE +7D234B78 48000231 +7C6A1B78 48000070 +839D002C 399FE890 +80620018 809C0004 +7D2320AE 7D234B78 +4800020D 7C6A1B78 +4800011C 839D002C +399FE4A8 80620018 +809C2238 7D2320AE +7D234B78 480001E9 +7C6A1B78 48000028 +839D002C 399FE0C0 +80620018 809C2238 +7D2320AE 7D234B78 +480001C5 7C6A1B78 +480000D4 806A0004 +7D6360AE 48000025 +48000049 48000049 +48000049 48000089 +48000089 48000089 +48000089 480000A5 +7C8802A6 1CAB0004 +7C842A14 80A40000 +2C050000 418201A8 +54A501BA 7C842A14 +7C8903A6 4E800420 +48000174 4800004C +807E000C 389E0010 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7FE3FB78 +7FA4EB78 38A10080 +38DE001C 38FE0020 +3D808005 618CFDDC +7D8903A6 4E800421 +4800012C 4BFFFFBC +4BFFFFB8 4BFFFFB4 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000100 +4BFFFFE0 806A000C +7D6360AE 48000021 +48000045 48000085 +48000085 48000085 +48000085 48000085 +480000A1 7C8802A6 +1CAB0004 7C842A14 +80A40000 2C050000 +418200DC 54A501BA +7C842A14 7C8903A6 +4E800420 807E000C +389E0010 38A10080 +3D808000 618CB1CC +7D8903A6 4E800421 +7FE3FB78 7FA4EB78 +38A10080 38DE001C +38FE0020 3D808005 +618CFDDC 7D8903A6 +4E800421 48000068 +48000064 48000060 +4800005C 48000058 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000038 +7FE3FB78 7FA4EB78 +80BE000C 38DE001C +3D808005 618CFDDC +7D8903A6 4E800421 +48000014 80820084 +1C630004 7C63202E +4E800020 BA810008 +80010104 38210100 +7C0803A6 3D808006 +618C75F8 7D8903A6 +4E800420 BA810008 +80010104 38210100 +7C0803A6 00000000 +043985C4 1CD903E8 +C205FF38 000000E7 +7C0802A6 90010004 +9421FF00 BE810008 +381CFB45 2C000057 +40810708 2C1C1388 +41800700 2C1C1770 +41800020 2C1C1B58 +41800040 2C1C1F40 +41800060 2C1C2328 +41800080 480006DC +3B200000 829E002C +3ADCEC78 80620018 +80940004 7F0320AE +7F03C378 48000585 +7C771B78 4800007C +3B200001 829E002C +3ADCE890 80620018 +80940004 7F0320AE +7F03C378 4800055D +7C771B78 480003EC +3B200000 829E002C +3ADCE4A8 80620018 +80942238 7F0320AE +7F03C378 48000535 +7C771B78 4800002C +3B200001 829E002C +3ADCE0C0 80620018 +80942238 7F0320AE +7F03C378 4800050D +7C771B78 4800039C +1C7803E8 7F83B214 +80770000 7C161800 +40800508 80770004 +7EA3B0AE 48000025 +4800005D 480000A1 +4800010D 48000141 +480001AD 48000225 +480002CD 48000301 +7C8802A6 1CB50004 +7C842A14 80A40000 +2C050000 418205E4 +54A0463E 2C000048 +40820014 54A501BA +7C842A14 7C8903A6 +4E800420 7CA903A6 +4E800420 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80C30000 +38600000 7F85E378 +3C801062 60844DD3 +7C842896 7C843670 +3D808039 618CEFAC +7D8903A6 4E800421 +480002B4 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820278 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0030000 +D01C0024 7FA3EB78 +48000244 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +4800020C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418201D0 +807D0004 83830028 +386102FC 38800002 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +D03C0024 7FA3EB78 +4800019C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 83630000 +7F63DB78 38800000 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7F83E378 +7FC4F378 38A10080 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820140 +807D0004 83830028 +C0028808 D01C0020 +C01B0024 D01C0024 +7FA3EB78 48000120 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83630000 7F83E378 +7FC4F378 7F65DB78 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418200E0 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +C0028830 FC010040 +4080000C C8028848 +48000008 C8028850 +FC200018 D03C0020 +807E0028 C023002C +D03C002C C0230030 +D03C0030 C0230034 +D03C0034 7FA3EB78 +48000074 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC3DC +7D8903A6 4E800421 +4800003C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC5C4 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +1C7803E8 7F83B214 +80770008 7C161800 +40800170 8077000C +7EA3B0AE 48000021 +48000059 48000001 +48000001 48000001 +48000001 480000AD +480000F1 7C8802A6 +1CB50004 7C842A14 +80A40000 2C050000 +41820250 54A0463E +2C000048 40820014 +54A501BA 7C842A14 +7C8903A6 4E800420 +7CA903A6 4E800420 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83A30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CF05C 7D8903A6 +4E800421 2C030000 +4182001C C03D0000 +D0230024 C03D0004 +D0230028 C03D0008 +D023002C 48000068 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80C30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CEFAC 7D8903A6 +4E800421 48000020 +7F83E378 388102FC +3D808005 618CCF40 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +80820084 1C630004 +7C63202E 2C030000 +418200B0 4E800020 +48000061 7C6802A6 +80940004 48000089 +7CA802A6 1CD90008 +7CA53214 7EC6B378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 25732065 +66666563 74202564 +0A000000 4E800021 +6D6F6465 6C000000 +7074636C 67656E00 +48000041 7C6802A6 +80940004 3D808034 +618C56A8 7D8903A6 +4E800421 4BFFFF91 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 65666642 +65686176 696F7254 +61626C65 0A000000 +BA810008 80010104 +38210100 7C0803A6 +381CFB45 00000000 +C21B5204 0000000D +3D80803D 618CE650 +8062014C 3943FFF9 +886C0000 2C0300FF +41820048 38E00000 +7C8C3A14 8924000A +2C090021 41820020 +2C09001A 41800018 +2C090020 41810010 +3869FFE6 7D2A1A14 +9924000A 38E70001 +2C070003 4180FFCC +398C0010 4BFFFFB4 +8001000C 00000000 +C21B34F0 00000015 +3C60803D 6063E178 +48000039 3C60803D +6063E134 4800002D +3C60803D 6063E080 +48000021 3C60803D +6063DF94 48000015 +3C60803D 6063DF88 +48000009 48000064 +7C6C1B78 8062014C +3943FFF9 A06C0000 +2C030148 41820048 +38E00000 7C8C3A14 +89240002 2C090021 +41820020 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240002 +38E70001 2C070004 +4180FFCC 398C0006 +4BFFFFB4 4E800020 +8001000C 00000000 +C21BADC4 0000000E +39000000 818DB260 +8062014C 3943FFF9 +816C0000 38E00000 +7C8C3A14 808B0014 +2C040000 41820024 +89240000 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240000 +38E70001 396B0004 +2C070006 4180FFC4 +398C0004 39080001 +2C080033 4180FFAC +828DB260 00000000 +C22F62FC 00000007 +8182014C 386CFFF9 +7C1C1800 41820014 +386CFFFD 7C1C1800 +41820008 48000008 +3B80001B 3D80802F +618C6314 7D8903A6 +4E800420 00000000 +C217D5A0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217D5F0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217C134 00000002 +8182014C 380CFFFD +60000000 00000000 +C217D578 00000002 +8182014C 398CFFFC +7C006000 00000000 +C2320698 00000002 +8062014C 3863FFFC +60000000 00000000 +C23206A8 00000002 +8082014C 3884FFFC +60000000 00000000 +C217D598 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C217D638 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E4C 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E58 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C21B6560 00000002 +8062014C 3883FFFF +60000000 00000000 +C21B9958 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B99FC 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B6B40 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182288 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B6B34 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B70AC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21822EC 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B70A0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7BDC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21823B4 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B7BD0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7658 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182350 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B764C 00000002 +8182014C 380CFFFA +60000000 00000000 +C218247C 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B8698 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B86A4 00000002 +8062014C 3863FFFB +60000000 00000000 +C21B8178 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182418 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B816C 00000002 +8182014C 380CFFFA +60000000 00000000 +C202305C 00000006 +2C030000 4180001C +1C630004 1C840002 +80A200CC 7C632A14 +7C63222E 48000008 +3860005D 4E800020 +60000000 00000000 +C20D1448 00000002 +81820178 818C000C +800C0064 00000000 +04085830 8002005C +04068F5C 8062005C +0413C3D0 8002005C +040858F4 8002005C +04068AEC 8082005C +040855EC 83A2005C +04068704 8062005C +04070330 8062005C +C20852D0 00000002 +3D40803C 614A25F4 +60000000 00000000 +040852B8 8102005C +C20BE8B4 00000002 +80820178 8084000C +808400A0 00000000 +04068B60 80C2002C +041609A8 80020004 +C2160A24 00000002 +80820004 7C64002E +60000000 00000000 +C2160B08 00000002 +80620004 7C63002E +60000000 00000000 +C206D654 00000002 +81820178 818C000C +800C0030 00000000 +C207FB9C 00000002 +80620178 8063000C +8003004C 00000000 +04068660 80020034 +C20CBA30 00000009 +801E0004 806200A0 +1C000004 7D83002E +2C0C0000 41820020 +7FA3EB78 7D8903A6 +4E800421 3D80800C +618CBA9C 7D8903A6 +4E800420 3D80800C +618CBAA4 7D8903A6 +4E800420 00000000 +C211BA54 00000018 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +806DAEB4 C0030088 +FC000050 C03E0624 +FC010040 41810078 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C211BAD8 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +C03E0084 C0029DE0 +FC010040 4C401382 +4082008C 806DAEB4 +C0030070 C03E0624 +FC010040 41810010 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C206AA28 00000002 +80620178 8063000C +8003005C 00000000 +04094860 800200C0 +04094924 800200C0 +0407E740 800200C8 +C207F830 00000002 +81820178 818C000C +800C0054 00000000 +C207F878 00000002 +81820178 818C000C +800C0058 00000000 +C2069924 00000008 +806200A8 809A0004 +1C840004 7D84182E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808006 +618C9938 7D8903A6 +4E800420 801A0004 +60000000 00000000 +040BEA28 80020030 +040690F0 80020030 +C207F918 00000002 +80820178 8084000C +80040050 00000000 +C2080D9C 00000002 +80620178 8063000C +80030068 00000000 +C2080BA0 00000002 +80620178 8063000C +80030068 00000000 +C207512C 00000002 +80620178 8063000C +8003006C 00000000 +C2075190 00000002 +80620178 8063000C +8003006C 00000000 +C20751F8 00000002 +80620178 8063000C +8003006C 00000000 +C208CC14 00000008 +800200BC 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CCC38 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C208C360 00000007 +800200B4 809F0004 +1C840004 7D84002E +2C0C0000 4182001C +7D8903A6 4E800421 +3D808008 618CC3CC +7D8903A6 4E800420 +809F0004 00000000 +C208C900 00000008 +800200B8 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CC924 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C20C0158 00000002 +80620178 8063000C +80030060 00000000 +C20816C4 00000005 +806200AC 809F0004 +7C6418AE 2C030000 +40820014 3D808008 +618C1918 7D8903A6 +4E800420 00000000 +C20C3B54 0000000B +800200A4 809F0004 +1C840004 7D84002E +2C0C0000 4182003C +801F065C 54000001 +41820030 801F0668 +540005EF 41820024 +7C631B78 7D8903A6 +4E800421 3D80800C +618C3BB8 7D8903A6 +4E800420 48000008 +38600000 00000000 +C20F5A78 00000002 +80620098 80630020 +60000000 00000000 +C20F5AA0 00000002 +80620098 80630020 +60000000 00000000 +C20F5AC8 00000002 +80620098 80630020 +60000000 00000000 +C20F5AE0 00000002 +80620098 80630020 +60000000 00000000 +C2085C04 00000003 +806200B0 801C0004 +1C000008 7C630214 +80030004 00000000 +C2085BD0 00000003 +806200B0 801C0004 +1C000008 7FC3002E +60000000 00000000 +C2085CC0 00000003 +808200B0 801C0004 +1C000008 38600000 +7C64012E 00000000 +C20BEB88 00000003 +83E200B0 1C030008 +7FFF0214 801F0000 +60000000 00000000 +C2085A24 00000002 +7C661B78 1CA30008 +60000000 00000000 +04085A3C 80620098 +04068B2C 1C840008 +04068B1C 80020098 +040852C0 80A20098 +C20852D4 00000012 +39800000 81220028 +814200B0 38600000 +90670000 90670004 +90690000 906A0000 +39600000 48000020 +80680000 1C8B0018 +7C832214 38600000 +90640000 90640008 +396B0001 88680004 +7C0B1800 4180FFDC +39290008 39080008 +38E70008 394A0008 +398C0001 80620148 +7C0C1800 4180FFA0 +38600000 3CA08045 +60A598B8 3D808008 +618C53DC 7D8903A6 +4E800420 00000000 +04085738 1CA30008 +0408573C 80020098 +04085774 38650004 +0431C9A4 800200D0 +C214A42C 00000004 +80820178 80840034 +80840000 881F0619 +1C000008 7C840214 +60000000 00000000 +C214A7F8 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630000 90640000 +4E800020 00000000 +C214A364 00000006 +881F0619 1C000008 +80820178 80840034 +80840000 7C840214 +80840004 909F2434 +909F0614 8001001C +60000000 00000000 +C214A818 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630004 90640000 +4E800020 00000000 +C22F9888 00000005 +387C0000 38800000 +3D808003 618C25C8 +7D8903A6 4E800421 +7C641B78 38BD0000 +387C0000 00000000 +C22F9764 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FC3F378 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387E0000 00000000 +C22F6770 00000011 +3C60804D 60636D5C +80630000 48000049 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8DC +3C60804D 60636D5C +80630000 48000031 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8E0 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 80010024 +60000000 00000000 +C2266994 0000000D +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000035 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 4182000C +906DB8DC 48000020 +38600000 906DB8DC +48000014 4E800021 +5374635F 69636E73 +00000000 806DB614 +60000000 00000000 +C22F6320 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C2168B34 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FC3F378 +7FA4EB78 3D80803D +618C7060 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C22FA0B4 00000006 +7C7FE214 8863047F +38800000 3D808003 +618C25C8 7D8903A6 +4E800421 7C641B78 +7CBFE214 8865047F +88A503FD 00000000 +C22F9FD4 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FA3EB78 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387D0000 00000000 +C22F62F8 00000010 +3D808000 618CC07C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +83ADB8E0 2C1D0000 +41820044 7FC3F378 +38810080 38A00001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FA5EB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 00000000 +C22F99C0 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +4182005C 83C30004 +3BE00000 7FA3EB78 +38810080 38BF0001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FC5F378 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0007 4180FFB8 +48000004 BA810008 +80010104 38210100 +7C0803A6 7FA3EB78 +60000000 00000000 +C2175E4C 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7D1B78 480000F1 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +418200FC 83C30004 +3BE00000 7F63DB78 +38810080 38BF0019 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809E0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +3BFF0001 2C1F0004 +4180FFB4 7FA3EB78 +48000085 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 41820080 +3BE00000 7F63DB78 +38810080 38BF0042 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 809E0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FFB8 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 7F63DB78 +60000000 00000000 +C21777C8 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C225DB80 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C1F000C +60000000 00000000 +C2260DB4 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C13000C +60000000 00000000 +C225D5AC 00000078 +7C0802A6 90010004 +9421FF00 BE810008 +7C7D1B78 7C9F2378 +7CBE2B78 7CDC3378 +3F60803F 637B0A48 +880DB655 2C000001 +408201F0 2C1D0000 +41820080 806DB624 +38810080 38A00006 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +806DB8D4 80630010 +7C1E19D6 7C9F0214 +80610080 7F85E378 +48000235 806DB624 +38810080 38A00004 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +80620070 7C83F8AE +80610080 7F85E378 +480001FD 480002F0 +806DB620 38810080 +38A0002D 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 480001B9 +806DB620 38810080 +38A0002B 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000181 +1C7D0024 7C63DA14 +886303C2 1C63001C +80820000 7C632214 +886300DD 80020008 +1C630003 7C6300AE +1C9D0024 7C84DA14 +888403C1 3D80803D +618C7060 7D8903A6 +4E800421 D0210084 +3B400000 806DB620 +38810080 38BA0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 C0210084 +3D808035 618CE800 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +80630064 C022E0E0 +3D808036 618C530C +7D8903A6 4E800421 +80610080 3D808037 +618C0928 7D8903A6 +4E800421 3B5A0001 +2C1A0005 4180FF78 +7F83E378 3D808025 +618CC020 7D8903A6 +4E800421 48000188 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B5 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 48000049 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B4 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000009 +480000FC 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +6FC38000 C822CA08 +90610094 3C604330 +90610090 C8410090 +EC220828 7FE3FB78 +38800006 38A00400 +3CC08036 60C6410C +38E00001 4CC63242 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 3D808037 +618C0928 7D8903A6 +4E800421 7FE3FB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 38800010 +2C1D0000 41820018 +3D808037 618C1D9C +7D8903A6 4E800421 +48000018 3D808037 +618C1F00 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225EE60 00000007 +88A30073 7FE3FB78 +7E84A378 38C00000 +3D808025 618CD5AC +7D8903A6 4E800421 +3D808025 618CEE74 +7D8903A6 4E800420 +60000000 00000000 +C2260DB0 00000005 +38730000 38800000 +38A00000 38C00001 +3D808025 618CD5AC +7D8903A6 4E800421 +60000000 00000000 +C225DB78 00000003 +7FE3FB78 38800000 +38A00000 38C00001 +60000000 00000000 +C2264548 00000038 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7A1B78 48000145 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820008 837B0004 +7F43D378 4800012D +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7D1B79 +838DB8D4 2C1C0000 +41820008 839C000C +2C1B0000 41820054 +3BE00000 806DB620 +38810080 38BF0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7F65DB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0005 4180FFB8 +2C1D0000 41820048 +806DB620 38810080 +38A0002B 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38A0002D +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 4800002C +4E800021 5374635F +69636E73 00000000 +4E800021 45626C6D +5F6D6174 616E696D +5F6A6F69 6E740000 +BA810008 80010104 +38210100 7C0803A6 +60000000 00000000 +C2264A74 00000026 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +41820048 806DB624 +38810080 38A00004 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809D0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +2C1D0000 41820044 +806DB624 38810080 +38A00006 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +7F84E378 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 806DB624 +60000000 00000000 +C2264574 00000027 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000D5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +4182004C 3BE00000 +806DB620 38810080 +38BF002E 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38BF0033 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FF6C +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 00000000 +0425DB74 8A8400DD +C20692FC 00000002 +81820148 398CFFFB +7C006000 00000000 +C20692E8 00000002 +81820148 398CFFFA +7C006000 00000000 +C20CC76C 00000002 +81820148 398CFFFB +7C036000 00000000 +C20CC750 00000002 +81820148 398CFFFA +7C036000 00000000 +C20BDA14 0000000C +81820148 380CFFFC +7C030000 41820038 +81820148 380CFFFD +7C030000 41820028 +81820148 380CFFFF +7C030000 41820018 +2C03000B 41820008 +48000010 3860000A +48000008 80652238 +3D80800B 618CDA3C +7D8903A6 4E800420 +60000000 00000000 +C208A2F0 00000002 +81820148 398CFFFB +7C036000 00000000 +C208A2D4 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C2AC 00000002 +80620148 3863FFFB +60000000 00000000 +C215C320 00000002 +80620148 3863FFFB +60000000 00000000 +C215C3A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C21551B4 00000002 +80620148 3863FFFB +60000000 00000000 +C215531C 00000002 +80620148 3863FFFB +60000000 00000000 +C21554A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215B500 00000002 +80620148 3863FFFB +60000000 00000000 +C206D480 00000002 +81820148 398CFFFB +7C006000 00000000 +C20C8E98 00000002 +81820148 398CFFFB +7C006000 00000000 +C215CB18 00000002 +81820148 398CFFFB +7C036000 00000000 +C20C744C 00000002 +81820148 398CFFFE +7C006000 00000000 +C215C274 00000002 +80620148 3863FFFA +60000000 00000000 +C215C2E4 00000002 +80620148 3863FFFA +60000000 00000000 +C215C35C 00000002 +80620148 3863FFFA +60000000 00000000 +C215143C 00000002 +80620148 3863FFFA +60000000 00000000 +C215A2CC 00000002 +80620148 3863FFFA +60000000 00000000 +C215A414 00000002 +80620148 3863FFFA +60000000 00000000 +C215A580 00000002 +80620148 3863FFFA +60000000 00000000 +C206D48C 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8E90 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8EA4 00000002 +81820148 398CFFFA +7C006000 00000000 +C215C55C 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C6E0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C770 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C8B0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C9F0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215CABC 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C810 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C950 00000002 +81820148 398CFFFA +7C036000 00000000 +C207CDBC 00000002 +81820148 398CFFFF +7C006000 00000000 +C207CE10 00000002 +81820148 398CFFFF +7C006000 00000000 +C217C938 00000002 +81820148 380CFFFD +60000000 00000000 +C217C930 00000002 +81820148 380CFFFC +60000000 00000000 +C2267990 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +80820088 2C03002B +41800020 2C0300A1 +41800024 2C0300D0 +4180002C 2C0300ED +41800034 48000044 +80840000 80ADB684 +4800004C 3863FFD5 +80840004 80ADB698 +4800003C 3863FF5F +80840008 80ADB690 +4800002C 3863FF30 +8084000C 3CA0804A +60A50F60 48000018 +3863FF13 80840010 +80A20088 80A50014 +48000004 1C03003C +7FC40214 1C030004 +7FA5002E 2C1D0000 +41820010 93DF00B8 +93BF00C4 48000070 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2069 74656D20 +6E6F7420 696E6974 +69616C69 7A65640A +00000000 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C7A88 7D8903A6 +4E800420 00000000 +C22674AC 00000004 +80030008 2C0000ED +41800010 38000008 +9003000C 4E800020 +60000000 00000000 +C2268684 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +807E0008 80820088 +2C03002B 41800020 +2C0300A1 41800024 +2C0300D0 4180002C +2C0300ED 41800034 +48000040 3C80803F +60841418 48000040 +3863FFD5 3C80803F +60842F28 48000030 +3863FF5F 3C80803F +60842310 48000020 +3863FF30 3C80803F +60844CA8 48000010 +3C808026 6084EECC +4800000C 1C030004 +7C84002E 38A00006 +38C00000 7FE3FB78 +3D808039 618C069C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C8748 +7D8903A6 4E800420 +60000000 00000000 +C20F16EC 0000000B +80C20148 7C043040 +4181003C 1C040004 +80620140 7D83002E +2C0C0000 41820018 +7C832378 7C85002E +7D8903A6 4E800421 +48000014 3D80800F +618C16F0 7D8903A6 +4E800420 3D80800F +618C18F8 7D8903A6 +4E800420 00000000 +C20EEEC4 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80020130 1C840004 +7D84002E 2C0C0000 +4182000C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C20F1AA8 0000000B +80820148 7C002040 +41810038 1C800004 +8062013C 7D83202E +2C0C0000 41820024 +7FE3FB78 7D8903A6 +4E800421 48000014 +3D80800F 618C1AB0 +7D8903A6 4E800420 +3D80800F 618C1B58 +7D8903A6 4E800420 +60000000 00000000 +C20F1BF8 00000007 +8002012C 1C840004 +7D84002E 2C0C0000 +41820010 7D8903A6 +7FA3EB78 4E800421 +3D80800F 618C1C1C +7D8903A6 4E800420 +60000000 00000000 +040F163C 80020134 +040F168C 80020138 +C216E148 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +83C20148 3BE00000 +80620128 38000000 +1C9F0004 7C03212E +3BFF0001 7C1FF000 +4180FFF0 BA810008 +80010104 38210100 +7C0803A6 3800FFFF +90010010 00000000 +C20EED58 00000002 +9421FFDC 38000000 +90010020 00000000 +040EEE90 38210024 +040EEDC0 38610020 +C20EEE80 00000033 +83A10020 7C0802A6 +90010004 9421FF00 +BE810008 2C1D0000 +41820168 7FA3EB78 +480000A9 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820030 +7F63DB78 3D80803D +618C7074 7D8903A6 +4E800421 7F63DB78 +80820178 80840024 +7FC5F378 48000081 +3B400001 7FA3EB78 +7FC4F378 38A00000 +3D80803D 618C7070 +7D8903A6 4E800421 +2C030000 41820008 +3B400001 7FA3EB78 +48000041 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7C1B79 41820010 +80620128 1C9E0004 +7F83212E 4800009C +4E800021 6B624675 +6E637469 6F6E0000 +4E800021 6674636D +64000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80010028 00000000 +C222C010 0000000C +810DB8E0 2C080000 +41820050 7C671B78 +7C862378 80680004 +1C070014 7D830214 +806C0008 1C060008 +7D430214 2C070000 +4182000C 886C000F +4800001C 880A0001 +80680004 1C000014 +7C630214 8863000F +48000004 4E800020 +2C030000 00000000 +C222C170 00000007 +806DB8E0 2C030000 +41820028 80630004 +881F0000 1C000014 +7D830214 8BCC000F +3D808022 618CC1B4 +7D8903A6 4E800420 +28040021 00000000 +C222C168 0000000C +806DB8E0 2C030000 +4182004C 80630004 +881F0000 1C000014 +7D830214 816C0008 +A07F0002 1C630008 +7D435A14 880A0001 +806DB8E0 80630004 +1C000014 7C630214 +8BC3000F 3D808022 +618CC1B4 7D8903A6 +4E800420 28040021 +60000000 00000000 +C2229DA0 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820088 83FE0010 +7F83E378 38810080 +38A00056 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +3C60804A 606304F0 +88630000 819E0004 +1C630014 7C6C1A14 +8863000E 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +80610080 3D808036 +618CF934 7D8903A6 +4E800421 80610080 +3D808037 618C0780 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +8001003C 00000000 +C222B9D8 00000008 +818DB8E0 2C0C0000 +4182002C 818C0004 +881A0000 1C000014 +7D8C0214 818C0008 +881A0001 1C000008 +7D8C0214 888C0002 +48000008 7C90022E +60000000 00000000 +C222B9A8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +0422B9A0 60000000 +C2229AD8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +04229AD0 60000000 +C2229B08 00000007 +818DB8E0 2C0C0000 +41820028 818C0004 +897D0000 1C0B0014 +7D8C0214 818C0008 +1C1E0008 7D8C0214 +888C0002 48000008 +7C9F022E 00000000 +C222DB1C 00000004 +818DB8E0 2C0C0000 +41820010 806C0004 +38630000 48000008 +3863B6B0 00000000 +C222DC18 00000005 +818DB8E0 2C0C0000 +41820014 818C0004 +1C7F0014 7C6C1A14 +48000008 7C630214 +60000000 00000000 +C222A638 00000006 +818DB8E0 2C0C0000 +4182001C 806C0004 +881C0000 1C000014 +7C630214 8B63000C +48000008 8B630854 +60000000 00000000 +C222B3F4 00000006 +818DB8E0 2C0C0000 +41820020 80AC0004 +1C750014 7C632A14 +83E30000 8AC3000C +7C731B78 48000008 +8AC40854 00000000 +C222B224 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 880C000C +48000008 88030854 +60000000 00000000 +C222AE48 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 83AC0000 +48000008 83A30848 +60000000 00000000 +C222E90C 00000004 +818DB8E0 2C0C0000 +41820010 3C80803D +60847090 48000008 +80840858 00000000 +C222A010 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881D0000 1C000014 +7D8C0214 818C0008 +1C7B0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7F83E378 48000008 +EC22002A 00000000 +C222A4D0 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881F0000 1C000014 +7D8C0214 818C0008 +1C7C0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7FA3EB78 48000008 +EC22002A 00000000 +C222B7DC 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881E0000 1C000014 +7D8C0214 818C0008 +1C710008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +38760000 48000008 +EC21002A 00000000 +C222E630 00000023 +7C0802A6 90010004 +9421FF00 BE810008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +408200AC 480000B5 +7C6802A6 3D808033 +618C796C 7D8903A6 +4E800421 2C03FFFF +4182008C 48000095 +7C6802A6 38810080 +48000099 7CA802A6 +38C00000 4CC63182 +3D808001 618C6C64 +7D8903A6 4E800421 +7C7F1B78 83C10080 +93CDB8E0 38600001 +38800000 38A00007 +38C00008 38E00080 +39000005 39200080 +39400000 3D80803A +618C611C 7D8903A6 +4E800421 3C60804D +60631110 93E30004 +807E0008 3C80804D +60841124 90640004 +4800002C 38600000 +906DB8E0 48000020 +4E800021 4D784D6E +2E646174 00000000 +4E800021 6D65784D +656E7500 BA810008 +80010104 38210100 +7C0803A6 38600003 +60000000 00000000 +C2266980 00000002 +906DB634 38000000 +900DB8E0 00000000 +C2229C14 00000004 +818DB8E0 2C0C0000 +41820010 83EC0000 +3BFFFFDC 48000008 +3BE5AE68 00000000 +C2229DEC 00000004 +818DB8E0 2C0C0000 +41820010 83AC0000 +3BBDFFDC 48000008 +3BA4AE68 00000000 +C2229D98 00000002 +3C80803E 6084B354 +60000000 00000000 +C2229E94 00000002 +3D80803E 618CAE68 +C02C04EC 00000000 +C21B1368 00000004 +3C60804A 606304F0 +88030000 981F0000 +A0030002 981F0001 +60000000 00000000 +C2229894 00000029 +818DB8E0 2C0C0000 +41820134 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +3F80804A 639C04F0 +806DB8E0 80630004 +881C0000 1C000014 +7F630214 887C0000 +987C0001 9BFC0000 +39800000 893C0001 +806DB8E0 80630004 +881C0000 1C1F0014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19C0002 +48000010 398C0001 +7C0C5800 4180FFD0 +7FA3EB78 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 806DC17C +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C0802A6 +60000000 00000000 +C2229E60 00000032 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820160 83FE0010 +3BA00000 48000131 +7C6802A6 7CA3E8AE +7CA50774 2C05FFFF +4182005C 7F83E378 +38810080 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 3D808036 +618CF6B4 7D8903A6 +4E800421 80610080 +38800000 7FE5FB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BBD0001 +4BFFFF94 3BA00000 +480000C9 7C6802A6 +7CA3E8AE 7CA50774 +2C05FFFF 4182003C +7F83E378 38810080 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +3D808036 618CF6B4 +7D8903A6 4E800421 +3BBD0001 4BFFFFB4 +7F83E378 38810080 +38A0002C 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +48000065 7C6802A6 +C0230000 80610080 +D0230038 7F83E378 +38810080 38A00056 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 48000031 +7C6802A6 C0230004 +80610080 D023002C +48000028 4E800021 +56545552 53FF0000 +4E800021 2C2D2E2F +FF000000 4E800021 +00000000 3F666666 +BA810008 80010104 +38210100 7C0803A6 +387C0000 00000000 +C222B750 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8E0 2C030000 +41820048 83E3000C +7E038378 38810080 +38A00003 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7FE5FB78 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38700000 00000000 +04167978 8002014C +C2085A44 00000002 +83820028 7F9C0214 +801C0000 00000000 +04085B5C 80620028 +C2085A58 00000002 +80820014 1CA60004 +7C84282E 00000000 +C208602C 00000002 +80620098 80630050 +60000000 00000000 +040856E4 800200D0 +C20856E4 00000002 +80820014 7C84D02E +60000000 00000000 +C2017924 00000011 +2C03FFFF 40820078 +48000051 7C6802A6 +3C808043 60842058 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6C626669 6C650000 +4E800021 6572726F +723A2066 696C6520 +25732064 6F657320 +6E6F7420 65786973 +740A0000 93E10008 +60000000 00000000 +C2085614 00000002 +80820010 7C84D82E +60000000 00000000 +04085760 80020010 +C21692DC 00000002 +80620058 7C630214 +60000000 00000000 +C21692B0 00000002 +80620058 7C630214 +60000000 00000000 +C2169258 00000002 +80620058 7C632214 +60000000 00000000 +C2169284 00000002 +80620058 7C630214 +60000000 00000000 +C20703A8 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820078 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +4800005D 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820038 +80630004 2C030000 +4182002C 80630000 +BA810008 80010104 +38210100 7C0803A6 +7C601B78 3D808007 +618C03B8 7D8903A6 +4E800420 7E83A378 +48000014 4E800021 +6D657843 6F737475 +6D650000 BA810008 +80010104 38210100 +7C0803A6 7C601B78 +60000000 00000000 +C20749E8 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820090 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +48000099 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820050 +80630000 2C030000 +41820044 389F05AC +38A00000 38DF05EC +38FF203C 3D808007 +618C487C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D808007 +618C4A04 7D8903A6 +4E800420 807F010C +389F05AC 7E85A378 +BA810008 80010104 +38210100 7C0803A6 +3D808007 618C49F4 +7D8903A6 4E800420 +4E800021 6D657843 +6F737475 6D650000 +60000000 00000000 +04085674 1F800010 +040856BC 3B9C0010 +C2085680 00000002 +8362000C 7F7BD214 +60000000 00000000 +0408586C 1C040010 +04085864 8002000C +040857A8 80A2005C +040857C0 80A2005C +C213C384 00000040 +7C7C1B78 83DC002C +887E000C 3D808003 +618C2330 7D8903A6 +4E800421 3D808016 +618C9238 7D8903A6 +4E800421 889E0619 +7C041800 40800008 +48000014 3D808013 +618CC46C 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF00 +BE810008 881E0004 +8062000C 1C000004 +7C63002E 881E0619 +1C000010 7C630214 +8363000C 807E0004 +8082005C 1C630008 +7C63202E 881E0619 +1C000018 7C630214 +83230014 7F23CB78 +48000121 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 40820114 +3C60803D 606305B4 +1C1B0004 7F43002E +2C1A0000 418200FC +7F23CB78 7F44D378 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 807E010C +80630048 80630004 +3B030004 3C608045 +60639080 3D808037 +618CABC8 7D8903A6 +4E800421 907E2244 +7F43D378 3D808037 +618C0E44 7D8903A6 +4E800421 907E223C +3D808007 618C4148 +7D8903A6 4E800421 +38600001 881E2225 +50602EB4 981E2225 +3D808007 618C4170 +7D8903A6 4E800421 +7F83E378 809E223C +38BE2240 3D808007 +618C5650 7D8903A6 +4E800421 38DE2240 +38E60000 7F65DB78 +389E2248 7F03C378 +3D808007 618C487C +7D8903A6 4E800421 +7FC3F378 3D808009 +618CDC54 7D8903A6 +4E800421 4800001C +4E800021 6D657843 +6F737475 6D650000 +38600000 907E223C +BA810008 80010104 +38210100 7C0803A6 +3D808013 618CC474 +7D8903A6 4E800420 +60000000 00000000 +C205FE90 00000002 +8062001C 80030014 +60000000 00000000 +C205B4F0 0000000B +38A00000 38630008 +80C20160 1CE5000C +7C87192E 38A50001 +7C053000 4180FFF0 +38A00000 38800000 +80620084 1CE50004 +7C87192E 38A50001 +7C053000 4180FFF0 +3D808005 618CB5D4 +7D8903A6 4E800420 +60000000 00000000 +040672B0 8002001C +0406739C 8002001C +0405BED8 80C2001C +0405B4EC 8062001C +04067334 8062001C +04067384 9421FFE4 +C2067430 00000018 +901F0008 80610018 +48000029 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +80820084 1CBE0004 +7C64292E 48000090 +4E800021 65666642 +65686176 696F7254 +61626C65 00000000 +4800004D 7C6802A6 +7FC4F378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2065 +66666563 74206669 +6C652025 64206E6F +74206C6F 61646564 +0A000000 00000000 +04067440 3821001C +040673DC 38610018 +04067434 80010020 +040BE8B8 80020018 +04068F38 80020018 +C20856D0 00000002 +80620018 7C63F8AE +60000000 00000000 +040325F8 80620008 +C2032634 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +040325D8 80020008 +04031CCC 80020008 +04031D48 80020008 +04031D70 80020008 +04031D48 80020008 +C2036E34 00000002 +80620008 3803FFE0 +60000000 00000000 +C2036F5C 00000002 +83C20008 3BDEFFE0 +60000000 00000000 +C2031AE8 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +C22601D4 00000002 +80620000 386300DD +7C6300AE 00000000 +C22600F0 00000002 +80620000 386300DD +7C6300AE 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260D6C 00000002 +80620000 7E630214 +60000000 00000000 +C2260A60 00000002 +80620000 386300DC +60000000 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260C7C 00000002 +83C20000 7C9E2214 +60000000 00000000 +C2260D44 00000002 +3FC0803F 63DE0A48 +7C7EBA14 00000000 +C226353C 00000002 +80620000 7C630214 +60000000 00000000 +C2263B40 00000002 +80620000 7C630214 +60000000 00000000 +C2262B20 00000002 +80620000 7C630214 +60000000 00000000 +C2262B80 00000002 +80620000 7C630214 +60000000 00000000 +C2262BE0 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262BB4 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262C14 00000002 +80620000 7C630214 +60000000 00000000 +C2262C74 00000002 +80620000 7C630214 +60000000 00000000 +C225FBE4 00000003 +3F80803F 639C0A48 +7C9C3214 7F9C3214 +60000000 00000000 +C225FCB8 00000002 +80820000 7C84EA14 +60000000 00000000 +C225FE68 00000002 +80620000 7C630214 +60000000 00000000 +C225FE8C 00000002 +80820000 388400DC +60000000 00000000 +C225FF10 00000002 +83E20000 7FFFEA14 +60000000 00000000 +C225FFEC 00000002 +80620000 7C63EA14 +60000000 00000000 +C226005C 00000002 +83620000 7F7B0214 +60000000 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C2264D58 00000002 +3FE0803F 63FF0A48 +3BFF03B4 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C225F308 00000002 +3EE0803F 62F70A48 +3BF703B4 00000000 +C225F78C 00000002 +3EE0803F 62F70A48 +38B70483 00000000 +C225DB70 00000002 +80820000 7C840214 +60000000 00000000 +C225DBE0 00000002 +80620000 7C630214 +60000000 00000000 +C225EDE0 00000002 +80620000 7C632214 +60000000 00000000 +C2264114 00000002 +3C60803F 60630A48 +7C630214 00000000 +0425FB6C 83C20000 +042640FC 83820000 +0425F128 82E20000 +C20672B4 00000002 +81820160 398C0001 +7C036000 00000000 +C20673A0 00000002 +81820160 398C0001 +7C1E6000 00000000 +04266AA0 8002014C +04266B10 8002014C +04266B50 8002014C +042609D8 8002014C +C2160450 00000002 +8182014C 7C006000 +60000000 00000000 +C2160464 00000002 +8182014C 7C006000 +60000000 00000000 +C2160428 00000002 +8182014C 7C006000 +60000000 00000000 +C225FE4C 00000002 +81820150 398C0001 +7C046000 00000000 +C2264914 00000002 +81820150 7C116000 +60000000 00000000 +C2264EDC 00000002 +81820150 7C116000 +60000000 00000000 +C2264ED0 00000002 +81820150 7C116000 +60000000 00000000 +C22600C4 00000002 +81820150 7C006000 +60000000 00000000 +C22600D0 00000002 +81820150 7C006000 +60000000 00000000 +C226015C 00000002 +81820150 7C036000 +60000000 00000000 +C226022C 00000002 +81820150 7C036000 +60000000 00000000 +C21692C0 00000002 +81820150 398C0001 +7C006000 00000000 +C2169294 00000002 +81820150 398C0001 +7C006000 00000000 +C216923C 00000002 +8182014C 7C006000 +60000000 00000000 +C2169268 00000002 +81820150 398C0001 +7C006000 00000000 +C22605B8 00000002 +81820150 7C006000 +60000000 00000000 +C22620CC 00000002 +81820150 7C006000 +60000000 00000000 +C22621E0 00000002 +81820150 7C006000 +60000000 00000000 +04260994 80020150 +C2260AD0 00000002 +81820150 7C046000 +60000000 00000000 +C2260B58 00000002 +81820150 7C036000 +60000000 00000000 +04260BCC 80020150 +04260DE4 80020150 +C226183C 00000002 +81820150 7C056000 +60000000 00000000 +C22618CC 00000002 +81820150 7C066000 +60000000 00000000 +C2261F8C 00000002 +81820150 7C006000 +60000000 00000000 +C2262FFC 00000002 +81820150 7C006000 +60000000 00000000 +C2263050 00000002 +81820150 7C006000 +60000000 00000000 +C22634EC 00000002 +81820150 7C006000 +60000000 00000000 +C2263B7C 00000002 +81820150 7C006000 +60000000 00000000 +C22626CC 00000002 +81820150 7C006000 +60000000 00000000 +C2262A1C 00000002 +81820150 7C006000 +60000000 00000000 +0425FB70 80620150 +C225FC54 00000002 +81820150 7C046000 +60000000 00000000 +04264ADC 80620150 +C2264EEC 00000002 +80820150 38840001 +60000000 00000000 +C225F2AC 00000002 +81820150 7C1B6000 +60000000 00000000 +C225DAFC 00000002 +81820150 7C006000 +60000000 00000000 +C225DB98 00000002 +81820150 7C156000 +60000000 00000000 +C225DC88 00000002 +81820150 7C036000 +60000000 00000000 +C225DF4C 00000002 +81820150 7C006000 +60000000 00000000 +C225ED78 00000002 +81820150 7C006000 +60000000 00000000 +C225EDA4 00000002 +81820150 7C046000 +60000000 00000000 +C2026E8C 00000002 +8182014C 7C036000 +60000000 00000000 +C2023064 00000002 +8182014C 7C036000 +60000000 00000000 +0406FD08 83A2014C +040EF070 80620120 +040EE538 80820124 +040EE53C 80A20120 +040EEE70 8002011C +040EEDA4 80020124 +040EEDD4 80020118 +040EEE10 1C1F0010 +040EECCC 1FA00010 +040EEDEC 80020120 +040EED88 80020114 +C20EE528 00000013 +7C0802A6 90010004 +9421FF00 BE810008 +83E2014C 38600004 +3D808016 618C9238 +7D8903A6 4E800421 +7C7E1B78 83A20124 +83820120 3B600000 +38000000 901D0000 +3A800000 1C7B0004 +7EA3E02E 2C150000 +4182001C 90150000 +90150004 3A940001 +3AB50008 7C14F000 +4180FFEC 3B7B0001 +3BBD0004 7C1BF800 +4180FFC0 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +040EECA0 80020118 +040EED24 8002011C +040EEC50 80020114 +040F16E0 80A20124 +040F10B0 80820124 +040F13FC 80820124 +040F15E4 80820124 +040F11B8 80820124 +040F12D4 80820124 +041093D4 80620124 +040EFD94 80820124 +0409D4E0 80820124 +C20EF118 00000002 +56A4103A 80620120 +7C63202E 00000000 +040EF388 80620120 +040F0FF4 80620124 +040F0BA0 80820124 +040EFC88 80820124 +040EFB7C 80820124 +040F14E8 80620124 +040F0DC8 80820124 +040F1100 80620124 +0409D828 80820124 +040EFEB0 80820124 +0409D080 80820124 +040F0740 80820124 +040EFA70 80820124 +040F084C 80820124 +0409D92C 80820124 +040F121C 80620124 +0409DB5C 80820124 +040F00E8 80820124 +040F01F4 80820124 +040F0CAC 80820124 +0409D3C8 80820124 +040F040C 80820124 +0409D2B0 80820124 +040F0300 80820124 +040F0ED4 80820124 +0409DA44 80820124 +040F0528 80820124 +040EFFCC 80820124 +0409D710 80820124 +040F0634 80820124 +040F0A84 80820124 +0409D198 80820124 +040F0968 80820124 +0409D5F8 80820124 +040F1340 80620124 +040EEB20 80620124 +0410B554 80620124 +0410B398 80620124 +04109528 80620124 +0410A110 80C20124 +04109F40 80C20124 +040EEB04 80620124 +0410B398 80620124 +04108EAC 80620124 +04108DC4 80620124 +0410B398 80620124 +04109448 80620124 +041093A4 80620124 +041093A4 80620124 +C212CD18 00000002 +80620098 80630070 +60000000 00000000 +C212CD30 00000002 +80620098 80630070 +60000000 00000000 +C212CD48 00000002 +80620098 80630070 +60000000 00000000 +C212CD60 00000002 +80620098 80630070 +60000000 00000000 +C212CD78 00000002 +80620098 80630070 +60000000 00000000 +C212CD90 00000002 +80820098 80840070 +60000000 00000000 +C212CDBC 00000002 +80620098 80630070 +60000000 00000000 +C21092E4 00000002 +80620098 80630020 +60000000 00000000 +C21092FC 00000002 +80620098 80630020 +60000000 00000000 +C2109314 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C2109344 00000002 +80620098 80630020 +60000000 00000000 +C210935C 00000002 +80820098 80840020 +60000000 00000000 +C2109388 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C20F587C 00000002 +80820098 80840020 +60000000 00000000 +C20F1058 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F13A4 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F154C 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C2070258 00000005 +81620118 819C2238 +1D8C0004 7D6C582E +899C0619 1D8C0010 +7D6B6214 800B000C +60000000 00000000 +C20F1164 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F1280 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +04015D9C 80020184 +04015C00 80020184 +04015BC0 80620184 +C2018D80 00000007 +801E0000 2C000002 +41820010 2C000003 +41820008 4800001C +38600006 38800000 +3D808001 618C58D0 +7D8903A6 4E800421 +801E0000 00000000 +040158F0 80620184 +04016138 2C000007 +04015F50 83E20184 +C2015F88 00000015 +48000039 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3C800041 6084C644 +7C632214 48000025 +7C8802A6 9064001C +7C802378 4800006C +4E800021 4966416C +6C2E7573 64000000 +4E800021 00000002 +00000001 00000006 +00000800 00000003 +00000001 00000002 +004FA690 00000004 +00000002 00000006 +005D12E0 00000005 +00000004 00000006 +0096C800 00000006 +00000001 00000003 +00000020 00000007 +60000000 00000000 +040158D8 80620184 +04015E18 83C20184 +04015CD4 80020184 +C20159B4 00000018 +39800000 1C6C001C +389F0048 7D632214 +806B0014 2C030000 +40820084 806B0010 +2C030000 41820078 +2C030001 41820024 +2C030002 41820038 +2C030003 41820060 +2C030004 4182003C +2C030005 41820050 +806B0008 800B000C +7C030214 7C1D0040 +4080003C 7C1D0378 +48000034 800B0008 +7C1A0040 40810028 +7C1A0378 48000020 +806B0008 800B000C +7C030214 7C1C0040 +4080000C 7C1C0378 +48000004 398C0001 +2C0C0005 4180FF60 +3D808001 618C5ACC +7D8903A6 4E800420 +60000000 00000000 +04015984 2C190007 +04015B94 2C1C0007 +04015914 83E20184 +C20179B4 00000002 +8182014C 7C036000 +60000000 00000000 +C20179F0 00000002 +8182014C 7C1D6000 +60000000 00000000 +C2017A08 00000002 +8182014C 7C006000 +60000000 00000000 +C2017A38 00000002 +8182014C 7C1A6000 +60000000 00000000 +C237C050 0000000C +7FECFB78 48000040 +806C0004 5463013E +2C030008 4082002C +818C0008 2C0C0000 +4182002C C02C002C +D03D002C C02C0030 +D03D0030 C02C0034 +D03D0034 48000010 +818C0000 2C0C0000 +4082FFC0 3D808037 +618CC0A8 7D8903A6 +4E800420 00000000 +C2219230 00000004 +80820178 80840008 +8084006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C20BEC18 00000002 +81820178 818C000C +800C0098 00000000 +040BEBD0 80020078 +C2160438 00000003 +8082006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C2176C40 00000004 +80820070 7C1C20AE +3D808017 618C6C8C +7D8903A6 4E800420 +60000000 00000000 +0417A890 80020074 +C2160400 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +8182014C 7C036000 +41810014 80820080 +1C630004 7C63202E +48000008 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C20BE938 00000002 +81820178 818C000C +800C009C 00000000 +040C0AB4 4800003C +040C09D0 48000040 +C2168C6C 00000008 +8182014C 398CFFFC +7C036000 41810020 +8082007C 1C630004 +7C63202E 3D808002 +618C43F4 7D8903A6 +4E800421 8001000C +38210008 7C0803A6 +4E800020 00000000 +C20285C8 0000000D +39000000 81220158 +39290001 80620060 +80830004 80A30008 +80C3000C 80E30010 +3860FFFF 90640000 +90650000 90660000 +90670000 38840004 +38A50004 38C60004 +38E70004 39080001 +7C084800 4180FFD8 +3D808002 618C8660 +7D8903A6 4E800420 +60000000 00000000 +C2027694 0000000D +38800000 7FC8F378 +7FA9EB78 81820158 +398C0001 80080000 +2C000001 40820018 +80090000 2C00FFFF +4082000C 38000001 +48000024 39080004 +39290004 38840001 +7C046000 4180FFD0 +354AFFFF 4080FFB4 +38000000 3D808002 +618C7838 7D8903A6 +4E800420 00000000 +C2388A34 00000011 +7C7E1B78 2C1EFFFF +4082007C 4800004D +7C6802A6 7FA4EB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2061 7564696F +2066696C 65202573 +20646F65 73206E6F +74206578 6973740A +00000000 00000000 +C20272DC 00000008 +38A00000 81820158 +398C0001 80030000 +90040000 38630004 +38840004 38A50001 +7C056000 4180FFE8 +3D808002 618C73D4 +7D8903A6 4E800420 +60000000 00000000 +C2026CBC 00000012 +81620158 396B0001 +38800000 80A20090 +80E20060 80C70008 +80E7000C 39800000 +88050001 7C000774 +7C030000 4082002C +80060000 2C000001 +40820020 80070000 +2C00FFFF 40820014 +3D808002 618C6DF8 +7D8903A6 4E800420 +38840001 38A50004 +38C60004 38E70004 +398C0001 7C0C5800 +4180FFB0 3463FFFF +4080FF88 3D808002 +618C6DF4 7D8903A6 +4E800420 00000000 +C2026680 0000000E +38600000 80E20090 +7CA82B78 7C892378 +81620158 396B0001 +88070001 7C000774 +7C0A0000 40820020 +80080000 2C000001 +40820014 80090000 +2C00FFFF 40820008 +4E800020 38E70004 +39080004 39290004 +38630001 7C035800 +4180FFC0 354AFFFF +4080FFA0 3860FFFF +4E800020 00000000 +C20269F8 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +83620158 3B7B0001 +83C20090 80620060 +8383000C 83A30010 +3BE00000 881E0001 +2C000005 41820044 +801D0000 2C00FFFF +41820038 801C0000 +2C00FFFF 4082002C +807D0000 3D808038 +618C8B60 7D8903A6 +4E800421 2C030001 +41820004 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFA0 +83C20090 80620060 +8383000C 83A30010 +3D808038 618C8B50 +7D8903A6 4E800421 +2C030000 41820064 +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +38600002 3D808038 +618C8D30 7D8903A6 +4E800421 3BE00000 +881E0001 2C000005 +41820010 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFD4 +BA810008 80010104 +38210100 7C0803A6 +3D808002 618C6BF0 +7D8903A6 4E800420 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C202356C 00000002 +80620158 38630001 +1C032710 00000000 +C20237B4 00000002 +80C20158 38C60001 +1C062710 00000000 +C2023B50 00000002 +80620158 38630001 +1C032710 00000000 +C20283B4 00000002 +83E20068 3BFFEE1C +60000000 00000000 +C2028508 00000002 +3FE0803B 63FFB300 +3C800001 00000000 +040268E0 80E20068 +C2026C68 00000002 +80A20068 7CA5002E +60000000 00000000 +040267E0 83E20068 +C2023254 00000028 +7C0802A6 90010004 +9421FE00 BE810008 +7C7A1B78 83020060 +83180014 83820158 +1C7C0004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3B3E0000 +1C7D0004 7F83C12E +38000000 7C03C92E +3BBD0001 7C1DE000 +4180FFE8 3A800000 +7F15C378 3BA00000 +83620090 7FD6F378 +82E20068 881B0000 +7C000774 7C1A0000 +4082006C 80160000 +2C000000 40820060 +80170000 80750000 +54631838 80820068 +7C63202E 7C030040 +40800044 387CFFFF +1C630004 7D63C214 +7D94E050 398CFFFF +7C14E000 4080001C +800BFFFC 900B0000 +396BFFFC 398CFFFF +2C0C0000 4181FFEC +93B50000 38000001 +90160000 3AD60004 +3B7B0004 3AF70008 +3BBD0001 7C1DE000 +4081FF74 3A940001 +3AB50004 7C14E000 +4081FF54 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 80010204 +38210200 7C0803A6 +4E800020 00000000 +C2023578 00000005 +3C6068DB 60638BAD +7C63F096 7C636670 +3D808002 618C3634 +7D8903A6 4E800420 +60000000 00000000 +C2088008 00000003 +38802710 7C6419D6 +90610018 38600000 +60000000 00000000 +C2023148 00000003 +3C8068DB 60848BAD +7C841896 7C836670 +4E800020 00000000 +C2023B5C 00000005 +3C6068DB 60638BAD +7C63D896 7C7A6670 +3D808002 618C3C18 +7D8903A6 4E800420 +60000000 00000000 +C21A56F4 0000000D +38600014 3D808002 +618C6F2C 7D8903A6 +4E800421 887F0070 +81820150 398C0001 +7C036000 40800020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3B9C0001 +3BFF0024 2C1C0006 +4180FFC4 3D80801A +618C5730 7D8903A6 +4E800420 00000000 +C202785C 0000004A +7C0802A6 90010004 +9421FF00 BE810008 +3860000C 3D808002 +618C6F2C 7D8903A6 +4E800421 3D808016 +618CB184 7D8903A6 +4E800421 2C030000 +41820090 38600000 +3D808003 618C2330 +7D8903A6 4E800421 +8082014C 7C032000 +41810070 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A800000 7E83A378 +3D808016 618C9370 +7D8903A6 4E800421 +8082014C 7C032000 +41810020 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A940001 2C140003 +4180FFBC 4800006C +3A800000 7E83A378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820040 +7E83A378 3D808003 +618C2330 7D8903A6 +4E800421 8082014C +7C032000 41810020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140004 4180FFA0 +806D9348 2C0300D9 +41820010 2C0300E5 +41820008 48000020 +3860000C 38A00002 +38C04000 3D808002 +618C702C 7D8903A6 +4E800421 806D9348 +2C030046 41820010 +2C030047 41820008 +48000020 3860000C +38A00000 38C00C00 +3D808002 618C702C +7D8903A6 4E800421 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 1C630003 +80820108 7C841A14 +88640001 906D8238 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D808002 +618C7168 7D8903A6 +4E800421 4800001C +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +3D808002 618C7488 +7D8903A6 4E800421 +2C030001 4182FFD4 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C21A57FC 00000009 +A07E0016 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D80801A +618C5814 7D8903A6 +4E800420 00000000 +C2028404 00000002 +80620060 80630014 +80030000 00000000 +C2028420 00000002 +81820060 818C0014 +800C0000 00000000 +C2028440 00000002 +81820060 818C0014 +800C0004 00000000 +C202845C 00000002 +81820060 818C0014 +800C0008 00000000 +C2028478 00000002 +81820060 818C0014 +800C000C 00000000 +C2028498 00000002 +80620060 80630014 +80030000 00000000 +C2026C3C 00000002 +80820060 80840010 +60000000 00000000 +C2026C5C 00000003 +80620060 8063000C +1C850004 7C04192E +60000000 00000000 +C2026CB0 00000002 +80C20060 80C60008 +60000000 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2026E38 00000002 +80820060 80840010 +7C7D212E 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2028738 00000002 +80620060 8063000C +80030000 00000000 +C2028770 00000002 +81820060 818C0010 +906C0000 00000000 +C202890C 00000002 +81820060 818C000C +3BAC0004 00000000 +C2028910 00000002 +80620060 8063000C +80030004 00000000 +C2028948 00000002 +81820060 818C0010 +906C0004 00000000 +C202895C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2028960 00000002 +80620060 8063000C +800300D8 00000000 +C2028998 00000002 +81820060 818C0010 +906C00D8 00000000 +C20289AC 00000002 +81820060 818C000C +3BAC0008 00000000 +C20289B0 00000002 +80620060 8063000C +80030008 00000000 +C20289E8 00000002 +81820060 818C0010 +906C0008 00000000 +C2028780 00000002 +81820060 818C000C +900C0000 00000000 +C20287C4 00000002 +80620060 80630010 +60000000 00000000 +C20287C8 00000002 +80820060 80840004 +60000000 00000000 +C20287CC 00000002 +80A20060 80A50008 +60000000 00000000 +C20287D0 00000002 +80C20060 80C6000C +60000000 00000000 +C20288BC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C20288C0 00000002 +80620060 8063000C +800300CC 00000000 +C20288F8 00000002 +81820060 818C0010 +906C00CC 00000000 +C20267F4 00000002 +83420060 835A0008 +60000000 00000000 +C20267F0 00000002 +83820060 839C000C +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C202719C 00000002 +80C20060 80C6000C +60000000 00000000 +C2027290 00000002 +80820060 80840004 +60000000 00000000 +C20272D4 00000002 +80620060 80630004 +60000000 00000000 +C20272D8 00000002 +80820060 80840008 +60000000 00000000 +C2027454 00000002 +80820060 80840010 +7C7D212E 00000000 +C2027464 00000002 +80620060 80630004 +60000000 00000000 +C2027BB4 0000000D +81820060 806C0010 +808C0004 80AC0008 +80CC000C 38E00000 +3800FFFF 81020158 +2C070000 41820014 +90030000 90040000 +90050000 90060000 +38630004 38840004 +38A50004 38C60004 +38E70001 7C074000 +4180FFD0 3D808002 +618C7C9C 7D8903A6 +4E800420 00000000 +C2027D4C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2027D50 00000002 +80620060 8063000C +800300D8 00000000 +C2027CE8 00000002 +81820060 818C000C +906C00CC 00000000 +C2027CAC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C2027CB0 00000002 +81820060 818C000C +800C00CC 00000000 +C2027CFC 00000002 +81820060 818C000C +3BAC0004 00000000 +C2027D00 00000002 +80620060 8063000C +80030004 00000000 +C2087D3C 00000011 +2C1E0000 41820010 +2C1E000D 41820018 +48000024 3D808008 +618C7D78 7D8903A6 +4E800420 3D808008 +618C7F84 7D8903A6 +4E800420 81820020 +81420148 39600000 +4800001C 1C6B0010 +7C636214 88630000 +7C03F000 41820020 +396B0001 7C0B5000 +4180FFE4 3D808008 +618C803C 7D8903A6 +4E800420 3D808008 +618C7FFC 7D8903A6 +4E800420 00000000 +C20230D8 00000002 +80020158 2C030000 +60000000 00000000 +04023630 80620158 +040268B8 80020158 +C2027288 00000002 +81820158 7C056000 +60000000 00000000 +C2027278 00000002 +80620158 7C051810 +60000000 00000000 +C20273B4 00000002 +81820158 7C056010 +60000000 00000000 +C20273B8 00000002 +81820158 7C056000 +60000000 00000000 +C2023228 00000002 +81820158 7C036000 +60000000 00000000 +C2027140 00000002 +81820158 7C1C6000 +60000000 00000000 +04026C34 80020158 +C2027008 00000002 +81820158 7C1B6000 +60000000 00000000 +C22FF870 0000000A +80620158 48000019 +D03F0154 8062015C +4800000D D03F0194 +4800002C 9421FFF4 +6C638000 C822CA08 +90610008 3C604330 +90610004 C8410004 +EC220828 3821000C +4E800020 80010024 +60000000 00000000 +043883F8 38840037 +C2026880 00000002 +80620158 7C171800 +60000000 00000000 +04026EA4 80820020 +C202742C 00000002 +80820024 7C84E82E +60000000 00000000 +C2026E10 00000002 +80820024 7C84E82E +60000000 00000000 +C2028970 00000002 +80820024 808400D8 +60000000 00000000 +C2028748 00000002 +80820024 80840000 +60000000 00000000 +C20288D0 00000002 +80820024 808400CC +60000000 00000000 +C20289C0 00000002 +80820024 80840008 +60000000 00000000 +C2028920 00000002 +80820024 80840004 +60000000 00000000 +C2023E34 00000002 +80820024 7C84002E +60000000 00000000 +04023234 80820090 +040267DC 83C20090 +C2027AD0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2026664 00000002 +80820060 80A40008 +8084000C 00000000 +C2026E60 00000002 +80820060 8004000C +60000000 00000000 +C20268DC 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2027198 00000002 +83C20060 83DE0000 +60000000 00000000 +C2028368 00000002 +80620060 80630000 +60000000 00000000 +C202645C 00000002 +80620060 80630000 +60000000 00000000 +C20283A8 00000002 +83C20060 83DE0000 +60000000 00000000 +C20283B8 00000002 +3C608043 60633C24 +60000000 00000000 +C2028590 00000002 +3CC08044 60C61064 +60000000 00000000 +C2028530 00000002 +3CC08043 60C63C64 +60000000 00000000 +C20286B0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2027E0C 00000002 +83E20060 83FF0000 +60000000 00000000 +C20270D0 00000002 +83E20060 83FF0004 +60000000 00000000 +C2026FC8 00000002 +83820060 839C0004 +60000000 00000000 +C2026C28 00000002 +83C20060 83DE0000 +60000000 00000000 +C20267C4 00000002 +83A20060 83BD0000 +60000000 00000000 +C202749C 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2024DC8 00000002 +80A20060 80A50000 +60000000 00000000 +C202766C 00000002 +83A20060 83DD0008 +83BD000C 00000000 +C20269DC 00000002 +83020060 8338000C +83180010 00000000 +C21647FC 00000004 +80820178 80840008 +80840050 1C630002 +7C63222E 4E800020 +60000000 00000000 +C226B40C 00000023 +2C041388 41800108 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3BA4EC78 +3C608049 6063E6C8 +83830088 80620178 +80630028 8063000C +1C9C0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 4800008C +48000051 7C6802A6 +7FA4EB78 7F85E378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20737461 +67652025 640A0000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 3CA0804A +60000000 00000000 +C21C60C8 0000002B +80610014 7C0802A6 +90010004 9421FF00 +BE810008 7C7D1B78 +3C608049 6063E6C8 +83830088 3B400000 +7FA3EB78 48000075 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820034 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084002C 1CBC0004 +7C84282E 4800003D +3B400001 7FA3EB78 +7F84E378 38A00001 +3D80803D 618C7070 +7D8903A6 4E800421 +7F5A1B78 48000084 +4E800021 67724675 +6E637469 6F6E0000 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 4800004C +1C680008 7D633A14 +806B0000 54600001 +40820018 1C830004 +806B0004 7C635214 +7C64492E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFB0 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80610014 00000000 +C22599EC 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83820100 83620154 +7F63DB78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3A800000 +1C740020 7C83E214 +80640004 2C030000 +41800028 8864000A +3D808016 618C4330 +7D8903A6 4E800421 +2C030000 4182000C +7E9DF1AE 3BBD0001 +3A940001 7C14D800 +4180FFC0 2C1D0000 +4082002C 7F65DB78 +48000014 1C850020 +7C84E214 38600000 +90640004 38A5FFFF +2C050000 4080FFE8 +4BFFFF8C 7FA3EB78 +3D808038 618C0580 +7D8903A6 4E800421 +7FE3F0AE 1C9F0020 +7C84E214 3860FFFF +90640004 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +7FE3FB78 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225B39C 00000003 +80C20178 80C60004 +80C60000 38C60004 +60000000 00000000 +C225BC08 00000003 +80820100 1C630020 +7C632214 8063001C +4E800020 00000000 +042251A4 80020104 +04225204 80020104 +042251C8 80020104 +040569FC 80820110 +04056A2C 80A20110 +04056A64 80A20110 +04056A9C 80A20110 +04056AD4 80A20110 +04056B0C 80A20110 +04056B44 80A20110 +04259FE0 88030009 +0425B270 92FF00A0 +0425B274 881F00A8 +0425B294 981F00A8 +0425B2A8 889F00A9 +0425B1E8 3BFF0220 +0425B1D0 92DF03A0 +0425B044 92FC01A0 +0425B048 881C01A8 +0425B068 981C01A8 +0425B07C 889C01A9 +0425AFB0 3B9F0160 +0425AEDC 901B0020 +0425AEE0 881B0028 +0425AEFC 807B0020 +0425AF20 881B0029 +0425AF28 807B0020 +0425BB40 8004001C +C225A0F4 0000000A +81820154 7C036000 +4182002C 398CFFFF +7C036000 41820020 +1C030020 7C7F0214 +88630009 7C630774 +2C03FFFF 41820008 +48000014 3D808025 +618CA1D8 7D8903A6 +4E800420 807E0000 +60000000 00000000 +C225A62C 00000002 +81820154 7C056040 +60000000 00000000 +C2259FB4 00000002 +81820154 7C1E6000 +60000000 00000000 +C2259C4C 0000000A +81820154 7C036000 +41820020 398CFFFF +7C036000 41820024 +3D808025 618C9C84 +7D8903A6 4E800420 +3D808025 618C9C64 +7D8903A6 4E800420 +3D808025 618C9C74 +7D8903A6 4E800420 +60000000 00000000 +C2259C90 00000002 +81820154 7C036000 +60000000 00000000 +C2259E44 00000002 +81820154 7C036040 +60000000 00000000 +0425A0D4 80620154 +0425AA10 80E20154 +0425B580 80020154 +0425A578 83E20100 +0425A4C4 83E20100 +04259FCC 80020100 +04259CA0 80620100 +0425BB30 80820100 +0425A0A4 83E20100 +04259E54 80620100 +C225A9FC 00000002 +7C7C1B78 83E20100 +60000000 00000000 +C225A53C 00000002 +80620154 7C1E1800 +60000000 00000000 +0425A5A0 1C050020 +0425A634 1C050020 +0425A738 1C000020 +0425A7B8 1C000020 +0425A540 3BFF0020 +04259FC4 1C9E0020 +04259C98 1C030020 +0425AD6C 1C170020 +0425AD9C 3AD60020 +0425B0E8 3B9C0020 +0425B314 3BFF0020 +0425AF88 3B7B0040 +0425BB38 1C000020 +0425A0B8 1C050020 +0425A0F8 1C030020 +0425A27C 1C840020 +04259E4C 1C030020 +C2027A14 00000002 +80620108 7C630214 +88A30000 00000000 +04026EF0 80020108 +C20279E0 00000002 +80620108 7C630214 +88030001 00000000 +C21C17A8 00000002 +8082010C 7C840214 +80840000 00000000 +041C0784 8062010C +041C06D4 8002010C +041C1EC8 8002010C +C21C46A8 00000002 +8062010C 7C630214 +80630000 00000000 +041C0FD8 8002010C +041C0F8C 8002010C +041C0828 8082010C +041C2F60 8002010C +041C302C 8002010C +C21C28F0 00000002 +8382010C 3B9CFFCC +60000000 00000000 +C2223930 00000003 +3D80803D 618C7068 +7D8903A6 4E800421 +7C7F1B78 00000000 +C225ACA0 000000B3 +806DB5F4 480004DD +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820568 906D4A08 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E000C +3D808037 618C0E44 +7D8903A6 4E800421 +7C7D1B78 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00082 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0010 38A00000 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 82DD0010 +7EC3B378 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EC3B378 3D808037 +618C0928 7D8903A6 +4E800421 82D60008 +2C160000 4082FFCC +82820100 3AA00000 +8074001C 3D808016 +618C4430 7D8903A6 +4E800421 2C030000 +4182000C 38000002 +48000008 38000001 +98140008 3A940020 +3AB50001 80620154 +7C151800 4180FFC4 +3AC00000 82E20100 +831D0010 80620154 +3863FFFF 7C161800 +418201A0 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E0000 +3D808037 618C0E44 +7D8903A6 4E800421 +7C751B78 7E83A378 +888DC1A9 7EA5AB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00083 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00003 3D808038 +618CFD54 7D8903A6 +4E800421 7EA3AB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7EA3AB78 +7F04C378 4800029D +92B70000 88170008 +2C000001 418200A8 +418000AC 7EA3AB78 +88970009 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +38760002 6C638000 +90610084 3C604330 +90610080 C822C9B8 +C8010080 EC200828 +7EA3AB78 38800010 +3D808036 618CF7B0 +7D8903A6 4E800421 +7EA3AB78 3D808037 +618C0928 7D8903A6 +4E800421 7EA3AB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +48000028 38000000 +98170008 7EA3AB78 +38800010 3D808037 +618C1D9C 7D8903A6 +4E800421 48000004 +3AD60001 3AF70020 +83180008 2C180000 +4082FE44 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 806DB5F8 +80630010 3D808037 +618C0E44 7D8903A6 +4E800421 7C751B78 +7E83A378 888DC1A9 +7EA5AB78 3D808039 +618C0A70 7D8903A6 +4E800421 7E83A378 +3C808039 60841070 +38A00004 38C00083 +3D808039 618C069C +7D8903A6 4E800421 +7E83A378 3C808022 +6084EAE0 38A00004 +3D808038 618CFD54 +7D8903A6 4E800421 +7EA3AB78 38800000 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7FA3EB78 38810080 +80A20154 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 7EA3AB78 +80810080 480000C5 +7EA3AB78 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EA3AB78 38800010 +C022C9F8 3D808036 +618CF7B0 7D8903A6 +4E800421 7EA3AB78 +3D808037 618C0928 +7D8903A6 4E800421 +7EA3AB78 38800006 +38A00400 3CC08036 +60C6414C 38E00000 +39000000 39200000 +4CC63182 3D808036 +618C4C08 7D8903A6 +4E800421 80620100 +80820154 3884FFFF +1C840020 7EA4192E +BA810008 80010104 +38210100 7C0803A6 +3D808025 618CB31C +7D8903A6 4E800420 +4E800021 6D65784D +61704461 74610000 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +3D808000 618CC2F8 +7D8903A6 4E800421 +3D808037 618CC444 +7D8903A6 4E800421 +7C7D1B78 3C809000 +60840008 3D808037 +618CAE90 7D8903A6 +4E800421 387D0000 +389E0000 3D808037 +618CCC90 7D8903A6 +4E800421 387F0000 +389D0000 3D808037 +618C1C68 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +38600000 906D4A08 +38600004 00000000 +C225A014 00000004 +808D4A08 2C040000 +4182000C A3BC0000 +48000008 83A10024 +60000000 00000000 +C2259F64 00000004 +80ED4A08 2C070000 +4182000C 80A70014 +48000008 80A60038 +60000000 00000000 +C2173860 00000004 +2C03001A 41800014 +3D808017 618C38EC +7D8903A6 4E800420 +5463063E 00000000 +C21A50AC 00000002 +806200D4 4E800020 +60000000 00000000 +C21A45BC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3FE0803D 63FFACA4 +3D80801A 618C50AC +7D8903A6 4E800421 +7C7E1B78 7FFDFB78 +7FDCF378 889D0001 +2C040008 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C040008 +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 7FFDFB78 +7FDCF378 889D0001 +2C04000E 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C04000E +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 BA810008 +80010104 38210100 +7C0803A6 3BE00000 +60000000 00000000 +C21A4444 00000002 +81820164 7C1B6040 +60000000 00000000 +0401CEAC 80620164 +C21A4568 00000002 +81820164 7C006040 +60000000 00000000 +C21A43E0 00000002 +81820164 7C046040 +60000000 00000000 +C21A448C 00000002 +81820164 7C006040 +60000000 00000000 +C21A3F2C 00000002 +81820164 7C006040 +60000000 00000000 +041A4560 3BFF0018 +041A43D8 38630018 +041A4484 38630018 +041A3F24 3BFF0018 +C21A4D14 00000002 +81820168 7C006040 +60000000 00000000 +C21A50A0 00000002 +806200D8 4E800020 +60000000 00000000 +041A4D0C 38630014 +C21A43EC 00000046 +7C0802A6 90010004 +9421FF00 BE810008 +807E0014 2C030000 +418201EC 3D808033 +618C796C 7D8903A6 +4E800421 7C741B79 +418201D4 807E0014 +3D808001 618C63D8 +7D8903A6 4E800421 +7C7C1B78 80620184 +806300C0 3863001F +54630034 7C7B1B78 +387C001F 54630034 +7FBB1A14 38600063 +54630034 7C7D1A14 +80A20184 808500C0 +7C641850 906500C4 +38000000 900DAD28 +7E83A378 38800000 +7F65DB78 38DC001F +54C60034 38E00021 +39000001 3D208001 +6129615C 39400000 +3D808038 618CF6D4 +7D8903A6 4E800421 +3D808001 618C61A0 +7D8903A6 4E800421 +2C030000 4182FFEC +7FA3EB78 7F64DB78 +7F85E378 3D808001 +618C6A54 7D8903A6 +4E800421 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 418200F8 +7F43D378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A00014 +3D808000 618C3100 +7D8903A6 4E800421 +7F43D378 38810080 +48000051 80610080 +2C030000 41820008 +907E0010 80610084 +2C030000 41820008 +907E0004 80610088 +2C030000 41820008 +907E0008 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000070 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6A4675 6E637469 +6F6E0000 80620184 +38630010 38800000 +908300B4 BA810008 +80010104 38210100 +7C0803A6 38000000 +60000000 00000000 +C21A40C8 0000002B +7C0802A6 90010004 +9421FF00 BE810008 +807A0010 2C030000 +41820124 807A0010 +3D808001 618C6BE0 +7D8903A6 4E800421 +7C7D1B78 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 418200E8 +7FC3F378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A0000F +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 38810080 +48000051 80610080 +2C030000 41820008 +907A0004 80610084 +2C030000 41820008 +907A0008 80610088 +2C030000 41820008 +907A000C 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000060 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6E4675 6E637469 +6F6E0000 BA810008 +80010104 38210100 +7C0803A6 7F23CB78 +60000000 00000000 +C20056BC 00000003 +3D808025 618CD5AC +7D8903A6 4E800420 +4E800020 00000000 +C20056B8 00000002 +80620000 4E800020 +60000000 00000000 +C200561C 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3CA08048 8BC59D30 +8BE59D33 83A200D4 +38800000 1CA40018 +7CBD2A14 88C50001 +7C06F000 4082000C +80650010 48000010 +38840001 2C04002C +4081FFDC 38800000 +1CA40018 7CA32A14 +88C50000 7C06F800 +4082000C 8865000C +48000010 38840001 +2C0600FF 4082FFDC +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +040D6968 80020050 +040D69D0 80020054 +040966A8 80020054 +040D68CC 80020038 +04096704 8002003C +040D6830 80020048 +04096800 8002004C +04096878 8002004C +0409655C 80020040 +0409660C 80020040 +040967C4 80020044 +0409677C 80020044 +C20056A8 00000005 +2C030037 41820018 +81820060 818C0004 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 +C23D7098 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 3A800000 +4800006C 807F23F8 +1C140004 7EA3002E +82F50000 2C170000 +41820050 2C1D0000 +41820008 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4D7C 7D8903A6 +4E800421 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4CA0 7D8903A6 +4E800421 48000004 +3A940001 801F23F4 +7C140000 4180FF90 +48000004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7094 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +2C03000B 408000B4 +48000031 4800004D +48000051 48000055 +48000059 4800005D +48000061 48000065 +48000069 4800006D +48000071 48000075 +7C8802A6 1CA30004 +7C842A14 80A40000 +54A501BA 7C842A14 +7C8903A6 4E800420 +80620148 480000E0 +8062014C 480000D8 +80620150 480000D0 +80620000 480000C8 +8062016C 480000C0 +80620170 480000B8 +80620154 480000B0 +80620100 480000A8 +8062005C 480000A0 +8062010C 48000098 +80620178 80630028 +80630000 48000088 +7C641B78 48000049 +7C6802A6 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +45585F47 65744461 +74612829 20646F65 +73206E6F 74206861 +76652064 61746120 +666F7220 69642025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7068 00000005 +3D808049 618CE6C8 +818C0088 1D8C0004 +8062010C 7C63602E +80630004 4E800020 +60000000 00000000 +C23D7088 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +80620178 80630008 +8063004C 1C9F0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000084 +48000051 7C6802A6 +7FE4FB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 6974656D +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D708C 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3C608049 +6063E6C8 83A30088 +80620178 80630028 +8063000C 1C9D0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000080 +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2073 74616765 +20256420 646F6573 +206E6F74 20686176 +65206974 656D2025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7084 00000003 +1C630004 80820124 +7C63202E 4E800020 +60000000 00000000 +C23D7064 00000025 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +A07F0000 2C030004 +41820010 2C030003 +41820020 480000E0 +807F002C 83A30004 +80620178 80630008 +8063004C 48000020 +3C608049 6063E6C8 +83A30088 80620178 +80630028 8063000C +48000004 1C9D0008 +7F832214 807C0000 +7C1E1800 41810014 +807C0004 1C9E0002 +7C63222E 4800008C +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 61727469 +636C6520 49442025 +640A0000 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D707C 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +3C608049 6063E6C8 +80630088 80820178 +80840028 80840014 +1C630008 7D432214 +806A0004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7058 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 80620178 +80630008 8063004C +1C9F0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 48000090 +48000051 7C6802A6 +7FA4EB78 7FE5FB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20666967 +68746572 2025640A +00000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7070 00000050 +7C0802A6 90010004 +9421FF00 BE810008 +7C9F2378 7CBE2B78 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 418200A0 +829D0000 3AA00000 +2C140000 41820090 +387D0004 1C950004 +7EC3202E 2C160000 +41820068 7EC3B378 +3D80803D 618C7074 +7D8903A6 4E800421 +7FE3FB78 7FC4F378 +7EA5AB78 48000071 +7C691B78 8176000C +81560000 39000000 +48000024 1C880008 +7CA45A14 80650004 +7C635214 80850000 +1C840004 7C64492E +39080001 80760010 +7C081800 4180FFD8 +3AB50001 7C15A000 +4180FF80 38600001 +48000194 38600000 +4800018C 4E800021 +69744675 6E637469 +6F6E0000 7C6B1B78 +7C8A2378 7CAC2B78 +2C0A0001 41820014 +80620178 80630008 +8063004C 48000014 +80620178 80630028 +8063000C 48000004 +1C8B0008 7C632214 +80630004 2C030000 +41820078 1C8C0002 +7C63222E 80820088 +2C03002B 41800020 +2C0300A1 41800020 +2C0300D0 41800024 +2C0300ED 41800028 +48000030 80840000 +48000034 3863FFD5 +80840004 48000028 +3863FF5F 80840008 +4800001C 3863FF30 +8084000C 48000010 +3863FF13 80840010 +48000004 1C63003C +7C632214 4E800020 +2C0A0001 41820010 +4800009D 7C8802A6 +48000010 4800009D +7C8802A6 48000004 +4800004D 7C6802A6 +7D655B78 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +78447420 646F6573 +206E6F74 20636F6E +7461696E 20616E79 +20697465 6D732066 +6F722025 73202564 +0A000000 4E800021 +66696768 74657200 +4E800021 73746167 +65000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7080 00000068 +7C0802A6 90010004 +9421FF00 BE810008 +D3C10080 D3A10084 +D3C10088 7C7F1B78 +7C9E2378 FFE00890 +FFC01090 FFA01890 +83BF002C 807D0004 +2C030004 40820268 +835D2238 80620144 +1C9A0004 7C63202E +2C030000 41820140 +1C9E0020 7F832214 +80620128 1C9A0004 +7C63202E 2C030000 +41820184 809C0000 +1C840018 7F632214 +7FE3FB78 388000EF +3CA02000 38C00000 +FC20F890 FC40F090 +FC60E890 3D808006 +618C93AC 7D8903A6 +4E800421 38600000 +907D0014 387E0190 +907D0010 3860FFFF +907D05A4 807B0004 +2C030000 41820174 +907D0590 807B000C +907D03EC 807D0590 +7FE3FB78 FC20F890 +FC40F090 FC60E890 +3D808006 618CEBE8 +7D8903A6 4E800421 +38600000 907D03E4 +7FE3FB78 3D808006 +618CE9B4 7D8903A6 +4E800421 C0028874 +FC00F840 40820030 +7FE3FB78 3D80800C +618C0408 7D8903A6 +4E800421 7FE3FB78 +3D808007 618C3240 +7D8903A6 4E800421 +48000018 7FE3FB78 +3D808007 618C3354 +7D8903A6 4E800421 +807C000C 907D21A0 +807C0010 907D219C +807C0014 907D21A4 +807C0018 907D21A8 +807C001C 907D21AC +4800018C 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +48000130 4E800021 +6572726F 723A206B +6266756E 6374696F +6E20696E 20257320 +6D697373 696E6720 +6D6F7665 5F6C6F67 +69632074 61626C65 +0A000000 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +480000D0 4E800021 +6572726F 723A2025 +73206D69 7373696E +67206674 636D6420 +73796D62 6F6C0A00 +4800002D 7C6802A6 +80820114 1CBA0008 +7C84282E 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000080 4E800021 +6572726F 723A2066 +74636D64 20696E20 +2573206D 69737369 +6E672061 6E696D61 +74696F6E 20666F72 +20737461 74652025 +640A0000 48000021 +7C6802A6 809D0004 +3D808034 618C56A8 +7D8903A6 4E800421 +48000028 4E800021 +6572726F 723A2066 +69676874 65722025 +64206973 206E6F74 +206B6972 62790A00 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +48000000 C3C10080 +C3A10084 C3C10088 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D709C 0000001E +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +38810080 7FA5EB78 +38C00000 3D808001 +618C6C64 7D8903A6 +4E800421 7C7A1B78 +83210080 2C190000 +41820024 7F23CB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F23CB78 7FC4F378 +48000035 807A0020 +809A0000 3D808032 +618C8F50 7D8903A6 +4E800421 7F43D378 +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C6C1B78 +7C892378 80EC000C +814C0000 39000000 +48000028 1C680008 +7D633A14 806B0004 +7C635214 808B0000 +1C840004 7C64492E +48000004 39080001 +806C0010 7C081800 +4180FFD4 4E800020 +60000000 00000000 +C23D7090 000000A4 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3FC0804A +63DE04F0 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +837C0008 A06DB528 +2C030000 40810010 +3863FFFF B06DB528 +480004C0 38600004 +3D808022 618C9624 +7D8903A6 4E800421 +7C7D1B78 93BE000C +38600000 907E0008 +57A006F7 4182028C +3A800000 4800003C +7E83A378 3D80801A +618C36A0 7D8903A6 +4E800421 5460063F +4182001C 7E83A378 +3D808016 618C77E8 +7D8903A6 4E800421 +48000010 3A940001 +2C140004 4180FFC4 +38600001 3D808002 +618C4030 7D8903A6 +4E800421 38600005 +B06DB528 38600001 +987E0011 A07E0002 +1C630008 7F43DA14 +887A0000 2C030000 +41820010 2C030001 +418201D4 48000404 +806DB8E0 80630004 +881A0001 1C000014 +7F230214 887A0001 +2C030007 40820038 +81990010 2C0C0000 +418200AC 7D8903A6 +38600000 38800001 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +480003B0 887A0001 +2C030008 40820014 +818DB614 7D8903A6 +4E800421 48000394 +887A0001 2C030021 +40820030 38600000 +3D808024 618CCD64 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 4800035C +80790010 2C030000 +41820024 7C6903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +48000330 887E0000 +987E0001 887A0001 +987E0000 3A800000 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182000C +B29E0002 48000010 +3A940001 7C145800 +4180FFD0 38600001 +3D808022 618CB3A0 +7D8903A6 4E800421 +3D808039 618C0CD4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +48000238 3D80801A +618C4B9C 7D8903A6 +4E800421 881A0001 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 4800020C +57A006B5 41820148 +38600000 3D808002 +618C4030 7D8903A6 +4E800421 887C000D +7C630774 2C03FFFF +40820030 3D80801A +618C4B9C 7D8903A6 +4E800421 38000000 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 480001B4 +38600000 987E0011 +887E0000 987E0001 +887C000D 987E0000 +39800000 893E0001 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19E0002 +48000010 398C0001 +7C0C5800 4180FFD0 +38600003 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +480000C0 57A007FF +4182005C 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A94FFFF +7E800734 2C00FFFF +4181000C 887C000C +3A83FFFF 887E0000 +7E84A378 3D808022 +618C9938 7D8903A6 +4E800421 2C030000 +4182FFCC B29E0002 +48000060 57A007BD +41820058 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A940001 +889C000C 7C142000 +41800008 3A800000 +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182FFD0 +B29E0002 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D7074 0000003C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF0008 +83BF0000 839F0004 +836200F8 807B0000 +2C030014 4080013C +3B400000 833B0000 +3B1B0004 48000018 +80780000 7C03F800 +4182010C 3B5A0001 +3B180004 7C1AC800 +4180FFE8 807B0000 +1C630004 38BB0004 +7FE3292E 807B0000 +38630001 907B0000 +807C0000 5479463E +5463023E 7F63EA14 +807C0004 54604636 +2C000080 4182000C +7F43EA14 48000008 +835C0004 2C190001 +41820028 2C190004 +41820028 2C190006 +41820020 2C19000A +41820060 2C19001A +41820070 48000078 +935B0000 48000070 +57438FFF 4182001C +5743843E 38630001 +5466801E 7C66D050 +5465043E 7CDA2B78 +2C190004 41820014 +2C190006 41820004 +5743843E 4800000C +5743043E 48000004 +B07B0000 48000028 +7C7BD050 546301BA +809B0000 7C632378 +907B0000 48000010 +7C7BD050 907B0000 +48000004 3B9C0008 +3BDEFFFF 2C1E0000 +4181FF28 BA810008 +80010104 38210100 +7C0803A6 4E800020 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A206F 76657220 +32302078 46756E63 +74696F6E 7320696E +64657865 640A0000 +60000000 00000000 +C23D7078 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3C608049 +6063E6C8 80630088 +80820108 1C630003 +7C632214 88630000 +1C632710 7C63FA14 +3D80801C 618C53EC +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C2268648 00000026 +7C0802A6 90010004 +9421FF00 BE810008 +837E0008 2C1B1388 +41800100 3B7BEC78 +83FE0000 2C1F0000 +41820034 A07F0000 +2C030004 41820010 +2C030003 41820020 +480000D8 80620178 +80630008 8063004C +809F002C 80840004 +4800001C 80620178 +80630028 8063000C +3C808049 6084E6C8 +80840088 1C840008 +7F832214 807C0000 +7C1B1800 40800018 +807C0004 1C9B0002 +7C63222E 907E0008 +48000080 4800004D +7C6802A6 7F64DB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20686176 65206172 +7469636C 65204944 +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +807E000C 00000000 +C23D7060 00000016 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +83ADB8DC 2C1D0000 +41820078 83820148 +387CFFFA 7C1F1800 +41800028 387CFFFF +7C1F1800 4181001C +387CFFFA 7C63F850 +48000045 7C8802A6 +7C6320AE 48000018 +A07D0000 A09D0002 +7C84F1D6 7C632214 +7C63FA14 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +48000010 4E800021 +03020101 05060000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D706C 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +38800000 7FE5FB78 +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C2088170 00000010 +3B830000 3CA068DB +60A58BAD 7C7D2896 +7C636670 2C030000 +4082005C 2C1D1388 +41800054 3CA068DB +60A58BAD 7CBD2896 +7CA35E70 7FA5FE70 +7CA51850 1CA51388 +7FA5E850 887C000C +3C808045 60843080 +1C630E90 7C632214 +80630004 80820020 +1C630010 7C6320AE +1C632710 7FA3EA14 +48000004 7F83E378 +7FA4EB78 00000000 +C2088204 0000000F +3CA068DB 60A58BAD +7C7E2896 7C636670 +2C030000 4082005C +2C1E1388 41800054 +3CA068DB 60A58BAD +7CBE2896 7CA35E70 +7FC5FE70 7CA51850 +1CA51388 7FC5F050 +887F000C 3C808045 +60843080 1C630E90 +7C632214 80630004 +80820020 1C630010 +7C6320AE 1C632710 +7FC3F214 48000004 +881F2225 00000000 +C20884B0 00000010 +3BA30000 3CA068DB +60A58BAD 7D642896 +7D6B6670 2C0B0000 +4082005C 2C041388 +41800054 3CA068DB +60A58BAD 7CA42896 +7CAB5E70 7C85FE70 +7CA55850 1CA51388 +7C852050 897D000C +3D808045 618C3080 +1D6B0E90 7D6B6214 +816B0004 81820020 +1D6B0010 7D6B60AE +1D6B2710 7C8B2214 +48000004 7FA3EB78 +60000000 00000000 +C20CBCB4 0000000E +80840014 3D8068DB +618C8BAD 7D646096 +7D6B6670 2C0B0000 +40820050 2C041388 +41800048 7D846096 +7D8B5E70 7C8CFE70 +7D8C5850 1D8C1388 +7C8C2050 897F000C +3D408045 614A3080 +1D6B0E90 7D6B5214 +816B0004 81420020 +1D6B0010 7D6B50AE +1D6B2710 7C8B2214 +60000000 00000000 +C2075124 00000005 +7FC3F378 38800002 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C2075188 00000005 +7FC3F378 38800003 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C20751F0 00000005 +7FC3F378 7FA4EB78 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C207B4C0 00000082 +7C0802A6 90010004 +9421FF00 BE810008 +83FD0000 807D0004 +8082005C 1C630008 +7C63202E 881D0619 +1C000018 7C630214 +83C30014 7FC3F378 +48000271 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820394 +3B830008 801C0000 +2C000000 41820384 +801C0000 901D23F4 +1C600004 3D808037 +618CF1E4 7D8903A6 +4E800421 907D23F8 +3A800000 4800020C +807C0004 1C140004 +7EA3002E 38600030 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C761B78 807D23F8 +1C140004 7EC3012E +3C608045 60639080 +3D808037 618CABC8 +7D8903A6 4E800421 +9076000C 80750000 +3D808037 618C0E44 +7D8903A6 4E800421 +90760000 80150004 +90160004 3D808007 +618C4148 7D8903A6 +4E800421 3D808007 +618C4170 7D8903A6 +4E800421 7FE3FB78 +80960000 38B60008 +3D808007 618C5650 +7D8903A6 4E800421 +38D60008 7CC73378 +38A00000 38960010 +38750010 3D808007 +618C487C 7D8903A6 +4E800421 3AE00000 +48000094 8075000C +1C170004 7F23002E +3B1D02F0 807D03E0 +1C030018 7F180214 +807D03E0 38630001 +907D03E0 2C03000A +40800128 80760000 +38810080 80B90000 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38980004 80B90008 +3D808000 618CFD48 +7D8903A6 4E800421 +38000000 90180000 +38790004 38980004 +3D808001 618C1710 +7D8903A6 4E800421 +3AF70001 80150008 +7C170000 4180FF68 +3D808021 618CB2D8 +7D8903A6 4E800421 +3AE00000 48000074 +8075001C 1C170004 +7F23002E 3B1D1670 +887D166C 1C030028 +7F180214 887D166C +38630001 987D166C +2C03000B 408000D0 +80790000 90780024 +80790000 809D05E8 +1C630010 7C63202E +90780010 C0390004 +D0380000 C0390008 +D0380004 C039000C +D0380008 C0390010 +D038000C 3AF70001 +80150018 7C170000 +4180FF88 3A940001 +801C0000 7C140000 +4180FDF0 48000150 +4E800021 6D657843 +6F737475 6D650000 +480000C5 7C6802A6 +8082000C 801D0004 +1C000004 7C84002E +881D0619 1C000010 +7C840214 80840000 +3D808034 618C56A8 +7D8903A6 4E800421 +48000081 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4800009D +7C6802A6 8082000C +801D0004 1C000004 +7C84002E 881D0619 +1C000010 7C840214 +80840000 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A2063 +6F737475 6D652025 +73207573 6573206D +6F726520 7468616E +20313020 64796E61 +6D696373 0A000000 +4E800021 6572726F +723A2063 6F737475 +6D652025 73207573 +6573206D 6F726520 +7468616E 20313120 +64796E61 6D696373 +20686974 730A0000 +38000000 901D23F4 +901D23F8 BA810008 +80010104 38210100 +7C0803A6 8001002C +60000000 00000000 +C2080DC8 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C2080BCC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C21A4C98 00000011 +818200F8 816DC018 +39400000 38E00000 +812C0000 390C0004 +48000028 80680000 +7C035800 40800014 +38AC0004 1C870004 +7C64292E 38E70001 +394A0001 39080004 +7C0A4800 4180FFD8 +90EC0000 818200F8 +386C0004 1C870004 +7C632214 38800000 +38A00050 1CC70004 +7CA62850 3D808000 +618C3100 7D8903A6 +4E800421 806DB08C +60000000 00000000 +C2394A74 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +48000105 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +3BE00000 83DC0004 +480000D0 83A200F8 +3B800000 837D0000 +3B5D0004 48000088 +833A0000 80790000 +809E0004 7C041800 +4180006C 80B90014 +7C632A14 7C041800 +4181005C 3B000000 +82F90018 8079001C +1C98000C 7D832214 +80790000 808C0000 +7C632214 809E0004 +7C041800 41800024 +80790000 808C0004 +7C632214 809E0004 +7C041800 4181000C +80AC0008 48000028 +3B180001 7C18B800 +4180FFB4 3B9C0001 +3B5A0004 7C1CD800 +4180FF78 48000069 +7CA802A6 48000051 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +83DE0000 3BFF0001 +2C1F0008 40800040 +2C1EFFFF 4082FF28 +48000034 4E800021 +204C5220 53617665 +3A202053 796D626F +6C0A0000 4E800021 +25583A20 2025730A +00000000 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 3D808039 +618C4B04 7D8903A6 +4E800420 00000000 +C2394BD4 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83A200F8 3B800000 +837D0000 3B5D0004 +48000088 833A0000 +80790000 809E0198 +7C041800 4180006C +80B90014 7C632A14 +7C041800 4181005C +3B000000 82F90018 +8079001C 1C98000C +7D832214 80790000 +808C0000 7C632214 +809E0198 7C041800 +41800024 80790000 +808C0004 7C632214 +809E0198 7C041800 +4181000C 808C0008 +48000028 3B180001 +7C18B800 4180FFB4 +3B9C0001 3B5A0004 +7C1CD800 4180FF78 +48000035 7C8802A6 +4800001D 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +4800001C 4E800021 +53796D62 6F6C3A20 +25730A00 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 5760018D +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 0cadcafd..b3fb416c 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2172,14 +2172,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000168 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E -2C030008 40820AF8 +2C030008 40820B00 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2197,21 +2197,22 @@ BE810008 3C608048 38600000 48000008 38600003 3D808002 618C4030 7D8903A6 -4E800421 480004C9 +4E800421 480004D1 887A0000 2C030000 40810020 2C030003 -40810084 2C030004 -41820088 2C030005 -418201E0 48000A20 +4081008C 2C030004 +41820090 2C030005 +418201E8 48000A28 88780014 2C030000 -40820A14 576004E7 -41820A0C 3C608048 +40820A1C 576004E7 +41820A14 3C608048 80639D60 2C030000 -418209FC 3860FFFF +41820A04 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 -2C030000 418209E0 -886DAFA0 2C030001 +2C030000 418209E8 +886DAFA0 2C030000 +41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE 48000355 @@ -4064,19 +4065,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4132,7 +4132,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4140,11 +4140,11 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 90640000 3C60803E 6063B750 48000209 7C8802A6 90830010 -480005AD 7C8802A6 +4800059D 7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 3C60803E -6063B750 4800059D +6063B750 4800058D 7C8802A6 90830008 3C60803E 6063B66C 38800644 B0830004 @@ -4157,7 +4157,7 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A5C 4E800021 +48000A4C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4207,13 +4207,13 @@ BA810008 800100B4 7C0802A6 90010004 9421FF50 BE810008 7C731B78 80730008 -2C030000 40820354 +2C030000 40820344 3C60804A 3BA304F0 38600004 3D808022 618C9624 7D8903A6 4E800421 907D000C 3BC00000 93DD0008 -546006F7 4182018C +546006F7 4182017C 38000005 B00DB528 3BE00001 3B9E0000 9BFD0011 5783063E @@ -4229,15 +4229,13 @@ BA810008 800100B4 7D8903A6 4E800421 A01D0002 2C000000 41820038 2C000001 -41820048 2C000002 -41820048 2C000003 -41820048 2C000004 -41820048 2C000005 -4182005C 2C000006 -41820078 4800027C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000264 +41820038 2C000002 +41820038 2C000003 +41820038 2C000004 +41820038 2C000005 +4182004C 2C000006 +41820068 4800026C +38600000 48000078 38600001 48000070 38600002 48000068 38600003 48000060 @@ -4706,18 +4704,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000172 #Online/Slippi Online Scene/main.asm +C21A45B8 00000177 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 48000215 +6084DC1C 4800022D 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 38600008 4800016D 7C8802A6 4800002D -48000B24 80830000 +48000B4C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4762,21 +4760,24 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -48000081 480000F5 +48000099 4800010D 08000000 80497758 80497758 01030000 -480001B5 480001E5 +480001DD 4800020D 09000000 80480668 80480668 02030000 -801B1588 4800027D +801B1588 480002A5 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000411 48000751 +48000439 48000779 20000000 80490880 -804D68D0 FF000000 +804D68D0 05030000 +00000000 00000000 +50000000 00000000 +00000000 FF000000 4E800021 81940000 7C0802A6 90010004 9421FF50 BE810008 @@ -4799,13 +4800,15 @@ BE810008 38600012 618CAAD0 7D8903A6 4E800421 809E0014 88840003 2C040002 -40820008 4800008C -886DAFA0 2C030001 -4182001C 2C030002 -4182001C 2C030003 -41820014 2C030000 -41820008 48000038 -48000034 886DAFC9 +40820008 4800009C +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +41820024 2C030003 +4182001C 48000048 +3C808047 60849D30 +38600006 98640005 +48000060 886DAFC9 7C630774 2C03FFFF 41820024 2C030001 4182001C 2C030000 @@ -5429,6 +5432,6022 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C2068B40 00000030 #m-ex codeset +7C0802A6 90010004 +9421FF00 BE810008 +3B400000 839F0004 +80620098 1C9C0008 +7C632214 83A30004 +7FA3EB78 48000071 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820030 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084000C 7F85E378 +4800005D 3B400001 +7FA3EB78 7F84E378 +38A00000 3D80803D +618C7070 7D8903A6 +4E800421 7F5A1B78 +480000B0 4E800021 +66744675 6E637469 +6F6E0000 4E800021 +6B624675 6E637469 +6F6E0000 4E800021 +6D657850 61746368 +00000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1B0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38000000 00000000 +C23753B0 000000A9 +7C0802A6 90010004 +9421FF00 BE810008 +480002B1 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3B830000 3B9C001F +579C0034 7C9FE214 +388400A0 7FE3FB78 +7C9F2378 3D808034 +618C40E8 7D8903A6 +4E800421 7C7A1B78 +38800044 3D808034 +618C3EF0 7D8903A6 +4E800421 7C791B78 +7F43D378 7F84E378 +3D808034 618C3EF0 +7D8903A6 4E800421 +7C7B1B78 48000235 +7C6802A6 7F64DB78 +38A10080 3D808001 +618C668C 7D8903A6 +4E800421 80A10080 +7F23CB78 7F64DB78 +3D808001 618C6A54 +7D8903A6 4E800421 +7F23CB78 48000205 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C781B78 +93020178 480001FD +7D2802A6 3929FFFE +39000000 1CE80004 +A0690002 7C630734 +2C03FFFF 4182002C +7F06C378 A4690002 +7C630734 2C03FFFF +4182000C 7CC3302E +4BFFFFEC 7CC7112E +39080001 4BFFFFC8 +8062014C 3C80803B +6084A648 38A00000 +90640000 38840008 +38A50001 2C050008 +4180FFF0 7F63DB78 +7F84E378 3D808032 +618C8F50 7D8903A6 +4E800421 4800001D +7C6802A6 90620184 +480000E9 7C6802A6 +906200F8 48000390 +4E800021 00000000 +00000000 00000000 +00000000 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +4E800021 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +4E800021 4D784474 +2E646174 00000000 +4E800021 6D657844 +61746100 4E800021 +6D2D6578 00000000 +4E800021 00040004 +FFFF0008 0000FFFF +0008000C FFFF0008 +0014FFFF 00080004 +FFFF0008 001CFFFF +00080024 FFFF0018 +0000FFFF 00080038 +FFFF0010 0000FFFF +00080020 FFFF000C +000CFFFF 000C0000 +FFFF000C 0004FFFF +000C0028 FFFF000C +002CFFFF 000C0018 +FFFF000C 001CFFFF +000C0010 FFFF000C +0014FFFF 000C0020 +FFFF000C 0024FFFF +00080010 FFFF0008 +003CFFFF 0010000C +FFFF0010 0000FFFF +00100004 FFFF0008 +0028FFFF 00080008 +FFFF0008 002CFFFF +00080018 FFFF0008 +0034FFFF 00080030 +FFFF0018 0020FFFF +001CFFFF 0008FFFF +00100008 FFFF0014 +0000FFFF 00080040 +FFFF000C 007CFFFF +000C0080 FFFF000C +0084FFFF 000C0088 +FFFF0008 0044FFFF +00080048 FFFF000C +008CFFFF 000C0090 +FFFF000C 0094FFFF +000C0034 FFFF000C +0044FFFF 000C0040 +FFFF0008 0054FFFF +00080058 FFFF0030 +0000FFFF 00300004 +FFFF0018 0004FFFF +00180008 FFFF0018 +000CFFFF 00180010 +FFFF0018 0014FFFF +00180018 FFFF0018 +001CFFFF 00000004 +FFFF0004 0000FFFF +00040008 FFFF0028 +0000FFFF 00280004 +FFFF002C FFFF0028 +0008FFFF 00200000 +FFFF0020 0008FFFF +00200010 FFFF0020 +000CFFFF 00200004 +FFFF0020 0014FFFF +00240000 FFFF0024 +0004FFFF 00240008 +FFFF0024 000CFFFF +00240010 FFFF0024 +0014FFFF 00240018 +FFFF0000 0004FFFF +00000008 FFFF0000 +000CFFFF 00000018 +FFFF0000 001CFFFF +00000020 FFFF0000 +0024FFFF 0000002C +FFFF0000 0030FFFF +00000010 FFFF0000 +0014FFFF 0000FFFF +FFFF0000 7FE3FB78 +BA810008 80010104 +38210100 7C0803A6 +7C7F1B78 93EDC018 +7FE3FB78 7FA4EB78 +60000000 00000000 +C20186A8 0000000C +90010054 38610028 +48000021 7C8802A6 +38A00030 3D808000 +618C31F4 7D8903A6 +4E800421 48000038 +4E800021 02000000 +804D37EC 00000000 +03000000 803BA6C8 +0000001F 03000000 +803BA6D8 00000000 +02000000 804D37E4 +00000000 00000000 +043BA3AC 005D12E0 +041A6440 38600008 +C21A6454 00000005 +80820178 80840008 +80840068 1C630004 +7C63202E 3D80801A +618C6468 7D8903A6 +4E800420 00000000 +C21604F0 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C054C +7D8903A6 4E800420 +2C040015 00000000 +C2160578 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C05D4 +7D8903A6 4E800420 +2C040015 00000000 +C21A9C38 00000003 +80620178 80630008 +80630060 1C9F0004 +7C63202E 00000000 +C21A9C48 00000003 +80620178 80630008 +80630064 1C9F0004 +7C63202E 00000000 +C21A9C28 00000003 +80620178 80630008 +8063005C 1C9F0004 +7C63202E 00000000 +C2023F50 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F70 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F90 00000002 +80820094 7C84002E +60000000 00000000 +C215ED1C 00000019 +7C0802A6 90010004 +9421FF00 BE810008 +80620178 80630014 +83C30004 83630008 +3BA00000 3B800000 +2C1B0000 4082000C +38600034 48000074 +1C7D0004 7C83F214 +A0640002 7F9C1A14 +3BBD0001 7C1DD800 +4180FFE8 7F83E378 +3D808038 618C0580 +7D8903A6 4E800421 +7C7A1B78 3BA00000 +3B800000 1C7D0004 +7C83F214 A0640002 +2C030000 41820014 +7F9C1A14 387CFFFF +7C1A1800 40810010 +3BBD0001 7C1DD800 +4180FFD4 A0640000 +987F0001 48000004 +BA810008 80010104 +38210100 7C0803A6 +8001001C 00000000 +041C2A48 4800007C +C21C24F8 00000022 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +3D808022 618C519C +7D8903A6 4E800421 +80820178 80840028 +80840014 1C630008 +7F832214 831C0000 +837C0004 2C180000 +41820098 3B400000 +3B200000 1C7A0004 +7C83DA14 A0640002 +7F391A14 3B5A0001 +7C1AC000 4180FFE8 +7F23CB78 3D808038 +618C0580 7D8903A6 +4E800421 7C771B78 +3B400000 3B200000 +1C7A0004 7C83DA14 +A0640002 2C030000 +41820014 7F391A14 +3879FFFF 7C171800 +40810010 3B5A0001 +7C1AC000 4180FFD4 +A0640000 907D0000 +38600000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +7FE3FB78 7FC4F378 +7FA5EB78 BA810008 +80010104 38210100 +7C0803A6 7C0802A6 +60000000 00000000 +C22FF064 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60636D5C +80630000 48000055 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7F1B79 +41820040 38600002 +7FC4F378 38A0000E +38C0000F 38E00000 +3900000F 39200000 +39400013 3D80803A +618C611C 7D8903A6 +4E800421 4800000C +4E800021 62676D00 +BA810008 80010104 +38210100 7C0803A6 +3860000E 00000000 +C216E980 00000084 +7C0802A6 90010004 +9421FF00 BE810008 +3D80801C 618C5A94 +7D8903A6 4E800421 +2C03FFFF 418203E0 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480003BD 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7F1B79 418203A8 +3860000E 3880000E +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 7C7E1B78 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +38800020 3D808000 +618CC160 7D8903A6 +4E800421 7FA6EB78 +7FC3F378 38800004 +3CA08037 60A5F1B0 +3D808039 618C0B68 +7D8903A6 4E800421 +7FC3F378 480001B5 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +480002E5 7F6802A6 +38600002 38800001 +3D80803A 618C6754 +7D8903A6 4E800421 +7C7C1B78 939D0000 +38000001 981C0048 +C03B0000 D03C000C +C03B0004 D03C0010 +38000001 981C0049 +3D80801C 618C5A94 +7D8903A6 4E800421 +80820178 80840014 +8084000C 1C630004 +7C83202E 7F83E378 +C022E0C8 C042E0C8 +3D80803A 618C6B98 +7D8903A6 4E800421 +807F0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7C1B78 +7FC3F378 38800003 +7F85E378 3D808039 +618C0A70 7D8903A6 +4E800421 7FC3F378 +3C808039 60841070 +38A0000F 38C00000 +3D808039 618C069C +7D8903A6 4E800421 +7F83E378 809F0004 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7F83E378 C022E0C8 +3D808036 618CF8BC +7D8903A6 4E800421 +7F83E378 3D808037 +618C0928 7D8903A6 +4E800421 3D808016 +618CAE50 7D8903A6 +4E800421 88030001 +5400CFFF 40820014 +88030000 5400FFFF +40820008 4800000C +C03B001C D03C003C +3C608036 6063A4A8 +80630000 3C80C03F +60840034 7C032000 +41820014 C03B0020 +C05C0038 EC21102A +D03C0038 7FC3F378 +4800000D 48000180 +4E800021 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +83DF002C 83BF0028 +839E0000 48000129 +7F6802A6 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +7FA3EB78 3D808037 +618C32E8 7D8903A6 +4E800421 7FA3EB78 +38810080 38A00002 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 38A10084 +3D808000 618CB1CC +7D8903A6 4E800421 +C03D002C C05B0014 +EC211024 C0410084 +EC21102A D03C0000 +C03D0030 C05B0014 +EC211024 C0410088 +EC211028 D03C0004 +C03D002C C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0024 +C03D0030 C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0028 +7FA3EB78 3D808000 +618CB09C 7D8903A6 +4E800421 2C030000 +40820030 7F83E378 +3D80803A 618C5CC4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 4E800021 +43D70000 42280000 +3D851EB8 BF800000 +3C23D70A 40800000 +40800000 41600000 +C1600000 4E800021 +62676D00 BA810008 +80010104 38210100 +7C0803A6 3C808017 +60000000 00000000 +C21BFA24 00000008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +40820010 80620174 +80630028 48000008 +38600001 3D80801A +618C42F8 7D8903A6 +4E800421 00000000 +C2260BD4 00000020 +806DB8D4 2C030000 +418200EC 7C0802A6 +90010004 9421FF00 +BE810008 83C20000 +3BDE00DC 3BA00000 +83620150 806200FC +C0630000 480000B1 +7C6802A6 C0230004 +C0430008 C19F000C +C17F0010 ED8C082A +ED6B102A 1C7D001C +7F43F214 C13A000C +C11A0010 C0DA0014 +C0FA0018 FC0C4840 +41800048 FC0C4040 +40800040 FC0B3840 +41800038 FC0B3040 +40800030 7FA3EB78 +BA810008 80010104 +38210100 7C0803A6 +7C741B78 3D808026 +618C0C20 7D8903A6 +4E800420 48000010 +3BBD0001 7C1DD800 +4180FF94 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C0DA4 7D8903A6 +4E800420 4E800021 +40000000 402CCCCD +C0000000 3C60803F +60630B24 00000000 +C2264C48 00000012 +3BC30000 806DB8D4 +2C030000 4182007C +809E0010 806200FC +C0230000 C044002C +EC4100B2 D044002C +C0440030 EC4100B2 +D0440030 C0440034 +EC4100B2 D0440034 +48000041 7C6802A6 +C0630000 EC230828 +C042CB40 EC4100B2 +D0440038 C042CB44 +EC4100B2 D044003C +7FC3F378 3D808037 +618C32E8 7D8903A6 +4E800421 4800000C +4E800021 3F800000 +60000000 00000000 +C2264DA8 00000008 +3A430000 806DB8D4 +2C030000 41820030 +806200FC C0230000 +C052002C EC4100B2 +D052002C C0520030 +EC4100B2 D0520030 +C0520034 EC4100B2 +D0520034 00000000 +C2260C8C 00000009 +806DB8D4 2C030000 +41820038 806DB8D8 +38810098 38B40001 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +3D808026 618C0CDC +7D8903A6 4E800420 +880DB655 00000000 +C22647FC 00000040 +806DB8D4 2C030000 +418201EC 806200FC +C0430000 480001CD +7C6802A6 C0230000 +EC2100B2 D022CB54 +C0230004 EC2100B2 +D022CB34 C0230008 +EC2100B2 D022CA34 +C023000C EC2100B2 +D022CAA0 7C0802A6 +90010004 9421FF00 +BE810008 3FE0803F +63FF0B24 83A20000 +3BBD00DC 3BC00000 +806DB620 38810080 +88BF0005 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80830014 38A00001 +50A426F6 90830014 +38600002 987D0002 +3BDE0001 3BFF001C +3BBD001C 2C1E0019 +4180FFB0 83CDB8D4 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C741B78 +807E0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7D1B78 +93ADB8D8 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00001 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7FA3EB78 +38800006 38A00020 +3CC08036 60C6410C +38E00001 3D808036 +618C4C08 7D8903A6 +4E800421 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C4924 +7D8903A6 4E800420 +4E800021 41000000 +41100000 3FC00000 +3951B717 3A9400DC +60000000 00000000 +C2266984 0000000A +806DB630 48000029 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820020 906DB8D4 +48000020 4E800021 +6D657853 656C6563 +74436872 00000000 +38600000 906DB8D4 +806DB630 00000000 +C22645F4 00000005 +806DB8D4 2C030000 +41820014 3D808026 +618C47FC 7D8903A6 +4E800420 38600007 +60000000 00000000 +044DC49C 41E80000 +C2260DF0 00000003 +3D808026 618C0AD8 +7D8903A6 4E800420 +60000000 00000000 +042609F8 480001C8 +040679BC 388023FC +C206FE20 00000002 +800323EC 2C000000 +60000000 00000000 +C2069CE0 00000005 +2C170000 41820010 +38600001 907A23EC +4800000C 38600000 +907A23EC 28170000 +60000000 00000000 +C2168C10 00000011 +7C7D1B78 3862017C +7C63E8AE 7C630774 +2C03FFFF 4182006C +7C0802A6 90010004 +9421FF00 BE810008 +808DB8DC 8084000C +1C630008 7C632214 +88630000 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +BA810008 80010104 +38210100 7C0803A6 +3D808016 618C8C40 +7D8903A6 4E800420 +4E800021 08070600 +7FA3EB78 00000000 +C216E7BC 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000111 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820104 +3B800000 480000E0 +1C1C0024 387F0060 +7FA30214 3882017C +3860FFFF 7C64E1AE +881D0001 2C000000 +408200B8 7F83E378 +3D808003 618C345C +7D8903A6 4E800421 +3C80804C 608420BC +1C630044 7C632214 +83430000 3A800000 +82BB0008 82DB000C +887D000A 3D808023 +618C754C 7D8903A6 +4E800421 7C771B78 +48000060 1C740008 +7F03B214 80780004 +2C030000 41820028 +2C170000 41820040 +7EE4BB78 3D808032 +618C58E8 7D8903A6 +4E800421 2C030000 +40820024 80780000 +5463023E 7C60D038 +7C030000 40820010 +3862017C 7E83E1AE +48000010 3A940001 +7C14A800 4180FFA0 +3B9C0001 2C1C0006 +4180FF20 48000014 +4E800021 5374635F +69636E73 00000000 +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C20A0070 00000065 +2C1F1388 41800318 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +480002F4 39000000 +399FEC78 80620018 +809E0004 7D2320AE +7D234B78 480001A1 +7C6A1B78 48000070 +39000001 399FE890 +80620018 809E0004 +7D2320AE 7D234B78 +4800017D 7C6A1B78 +48000064 39000000 +399FE4A8 80620018 +809E2238 7D2320AE +7D234B78 48000159 +7C6A1B78 48000028 +39000001 399FE0C0 +80620018 809E2238 +7D2320AE 7D234B78 +48000135 7C6A1B78 +4800001C 806A0000 +7C0C1800 40800138 +806A0004 7D6360AE +4800001C 806A0008 +7C0C1800 40800120 +806A000C 7D6360AE +48000004 7C0802A6 +90010004 9421FF00 +BE810008 3C608045 +60638FA0 3D808037 +618CABC8 7D8903A6 +4E800421 7C7C1B78 +386B0009 987C0004 +93FC0008 807E05E8 +57602036 7C63002E +907C000C C0210184 +D03C0010 C0210188 +D03C0014 C021018C +D03C0018 C03E002C +D03C001C C0228DF0 +807E00E0 2C030000 +40820020 C01E0844 +C05E0848 FC200050 +3D808002 618C2C30 +7D8903A6 4E800421 +D03C0020 806DC198 +2C030000 41820020 +8803000C 2C000009 +40800014 801E060C +901C0000 939E060C +4800001C 7FA3EB78 +7F84E378 3D808006 +618C744C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D80800A +618C0084 7D8903A6 +4E800420 80820084 +1C630004 7C63202E +2C030000 418200B0 +4E800020 48000061 +7C6802A6 809E0004 +48000089 7CA802A6 +1CC80008 7CA53214 +7D866378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +25732065 66666563 +74202564 0A000000 +4E800021 6D6F6465 +6C000000 7074636C +67656E00 48000041 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +4BFFFF91 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +65666642 65686176 +696F7254 61626C65 +0A000000 3C60803C +60000000 00000000 +C206747C 00000059 +7C0802A6 90010004 +9421FF00 BE810008 +2C1F1388 418002A0 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +4800027C 839D002C +399FEC78 80620018 +809C0004 7D2320AE +7D234B78 48000231 +7C6A1B78 48000070 +839D002C 399FE890 +80620018 809C0004 +7D2320AE 7D234B78 +4800020D 7C6A1B78 +4800011C 839D002C +399FE4A8 80620018 +809C2238 7D2320AE +7D234B78 480001E9 +7C6A1B78 48000028 +839D002C 399FE0C0 +80620018 809C2238 +7D2320AE 7D234B78 +480001C5 7C6A1B78 +480000D4 806A0004 +7D6360AE 48000025 +48000049 48000049 +48000049 48000089 +48000089 48000089 +48000089 480000A5 +7C8802A6 1CAB0004 +7C842A14 80A40000 +2C050000 418201A8 +54A501BA 7C842A14 +7C8903A6 4E800420 +48000174 4800004C +807E000C 389E0010 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7FE3FB78 +7FA4EB78 38A10080 +38DE001C 38FE0020 +3D808005 618CFDDC +7D8903A6 4E800421 +4800012C 4BFFFFBC +4BFFFFB8 4BFFFFB4 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000100 +4BFFFFE0 806A000C +7D6360AE 48000021 +48000045 48000085 +48000085 48000085 +48000085 48000085 +480000A1 7C8802A6 +1CAB0004 7C842A14 +80A40000 2C050000 +418200DC 54A501BA +7C842A14 7C8903A6 +4E800420 807E000C +389E0010 38A10080 +3D808000 618CB1CC +7D8903A6 4E800421 +7FE3FB78 7FA4EB78 +38A10080 38DE001C +38FE0020 3D808005 +618CFDDC 7D8903A6 +4E800421 48000068 +48000064 48000060 +4800005C 48000058 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000038 +7FE3FB78 7FA4EB78 +80BE000C 38DE001C +3D808005 618CFDDC +7D8903A6 4E800421 +48000014 80820084 +1C630004 7C63202E +4E800020 BA810008 +80010104 38210100 +7C0803A6 3D808006 +618C75F8 7D8903A6 +4E800420 BA810008 +80010104 38210100 +7C0803A6 00000000 +043985C4 1CD903E8 +C205FF38 000000E7 +7C0802A6 90010004 +9421FF00 BE810008 +381CFB45 2C000057 +40810708 2C1C1388 +41800700 2C1C1770 +41800020 2C1C1B58 +41800040 2C1C1F40 +41800060 2C1C2328 +41800080 480006DC +3B200000 829E002C +3ADCEC78 80620018 +80940004 7F0320AE +7F03C378 48000585 +7C771B78 4800007C +3B200001 829E002C +3ADCE890 80620018 +80940004 7F0320AE +7F03C378 4800055D +7C771B78 480003EC +3B200000 829E002C +3ADCE4A8 80620018 +80942238 7F0320AE +7F03C378 48000535 +7C771B78 4800002C +3B200001 829E002C +3ADCE0C0 80620018 +80942238 7F0320AE +7F03C378 4800050D +7C771B78 4800039C +1C7803E8 7F83B214 +80770000 7C161800 +40800508 80770004 +7EA3B0AE 48000025 +4800005D 480000A1 +4800010D 48000141 +480001AD 48000225 +480002CD 48000301 +7C8802A6 1CB50004 +7C842A14 80A40000 +2C050000 418205E4 +54A0463E 2C000048 +40820014 54A501BA +7C842A14 7C8903A6 +4E800420 7CA903A6 +4E800420 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80C30000 +38600000 7F85E378 +3C801062 60844DD3 +7C842896 7C843670 +3D808039 618CEFAC +7D8903A6 4E800421 +480002B4 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820278 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0030000 +D01C0024 7FA3EB78 +48000244 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +4800020C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418201D0 +807D0004 83830028 +386102FC 38800002 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +D03C0024 7FA3EB78 +4800019C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 83630000 +7F63DB78 38800000 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7F83E378 +7FC4F378 38A10080 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820140 +807D0004 83830028 +C0028808 D01C0020 +C01B0024 D01C0024 +7FA3EB78 48000120 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83630000 7F83E378 +7FC4F378 7F65DB78 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418200E0 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +C0028830 FC010040 +4080000C C8028848 +48000008 C8028850 +FC200018 D03C0020 +807E0028 C023002C +D03C002C C0230030 +D03C0030 C0230034 +D03C0034 7FA3EB78 +48000074 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC3DC +7D8903A6 4E800421 +4800003C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC5C4 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +1C7803E8 7F83B214 +80770008 7C161800 +40800170 8077000C +7EA3B0AE 48000021 +48000059 48000001 +48000001 48000001 +48000001 480000AD +480000F1 7C8802A6 +1CB50004 7C842A14 +80A40000 2C050000 +41820250 54A0463E +2C000048 40820014 +54A501BA 7C842A14 +7C8903A6 4E800420 +7CA903A6 4E800420 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83A30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CF05C 7D8903A6 +4E800421 2C030000 +4182001C C03D0000 +D0230024 C03D0004 +D0230028 C03D0008 +D023002C 48000068 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80C30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CEFAC 7D8903A6 +4E800421 48000020 +7F83E378 388102FC +3D808005 618CCF40 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +80820084 1C630004 +7C63202E 2C030000 +418200B0 4E800020 +48000061 7C6802A6 +80940004 48000089 +7CA802A6 1CD90008 +7CA53214 7EC6B378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 25732065 +66666563 74202564 +0A000000 4E800021 +6D6F6465 6C000000 +7074636C 67656E00 +48000041 7C6802A6 +80940004 3D808034 +618C56A8 7D8903A6 +4E800421 4BFFFF91 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 65666642 +65686176 696F7254 +61626C65 0A000000 +BA810008 80010104 +38210100 7C0803A6 +381CFB45 00000000 +C21B5204 0000000D +3D80803D 618CE650 +8062014C 3943FFF9 +886C0000 2C0300FF +41820048 38E00000 +7C8C3A14 8924000A +2C090021 41820020 +2C09001A 41800018 +2C090020 41810010 +3869FFE6 7D2A1A14 +9924000A 38E70001 +2C070003 4180FFCC +398C0010 4BFFFFB4 +8001000C 00000000 +C21B34F0 00000015 +3C60803D 6063E178 +48000039 3C60803D +6063E134 4800002D +3C60803D 6063E080 +48000021 3C60803D +6063DF94 48000015 +3C60803D 6063DF88 +48000009 48000064 +7C6C1B78 8062014C +3943FFF9 A06C0000 +2C030148 41820048 +38E00000 7C8C3A14 +89240002 2C090021 +41820020 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240002 +38E70001 2C070004 +4180FFCC 398C0006 +4BFFFFB4 4E800020 +8001000C 00000000 +C21BADC4 0000000E +39000000 818DB260 +8062014C 3943FFF9 +816C0000 38E00000 +7C8C3A14 808B0014 +2C040000 41820024 +89240000 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240000 +38E70001 396B0004 +2C070006 4180FFC4 +398C0004 39080001 +2C080033 4180FFAC +828DB260 00000000 +C22F62FC 00000007 +8182014C 386CFFF9 +7C1C1800 41820014 +386CFFFD 7C1C1800 +41820008 48000008 +3B80001B 3D80802F +618C6314 7D8903A6 +4E800420 00000000 +C217D5A0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217D5F0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217C134 00000002 +8182014C 380CFFFD +60000000 00000000 +C217D578 00000002 +8182014C 398CFFFC +7C006000 00000000 +C2320698 00000002 +8062014C 3863FFFC +60000000 00000000 +C23206A8 00000002 +8082014C 3884FFFC +60000000 00000000 +C217D598 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C217D638 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E4C 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E58 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C21B6560 00000002 +8062014C 3883FFFF +60000000 00000000 +C21B9958 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B99FC 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B6B40 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182288 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B6B34 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B70AC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21822EC 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B70A0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7BDC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21823B4 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B7BD0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7658 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182350 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B764C 00000002 +8182014C 380CFFFA +60000000 00000000 +C218247C 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B8698 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B86A4 00000002 +8062014C 3863FFFB +60000000 00000000 +C21B8178 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182418 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B816C 00000002 +8182014C 380CFFFA +60000000 00000000 +C202305C 00000006 +2C030000 4180001C +1C630004 1C840002 +80A200CC 7C632A14 +7C63222E 48000008 +3860005D 4E800020 +60000000 00000000 +C20D1448 00000002 +81820178 818C000C +800C0064 00000000 +04085830 8002005C +04068F5C 8062005C +0413C3D0 8002005C +040858F4 8002005C +04068AEC 8082005C +040855EC 83A2005C +04068704 8062005C +04070330 8062005C +C20852D0 00000002 +3D40803C 614A25F4 +60000000 00000000 +040852B8 8102005C +C20BE8B4 00000002 +80820178 8084000C +808400A0 00000000 +04068B60 80C2002C +041609A8 80020004 +C2160A24 00000002 +80820004 7C64002E +60000000 00000000 +C2160B08 00000002 +80620004 7C63002E +60000000 00000000 +C206D654 00000002 +81820178 818C000C +800C0030 00000000 +C207FB9C 00000002 +80620178 8063000C +8003004C 00000000 +04068660 80020034 +C20CBA30 00000009 +801E0004 806200A0 +1C000004 7D83002E +2C0C0000 41820020 +7FA3EB78 7D8903A6 +4E800421 3D80800C +618CBA9C 7D8903A6 +4E800420 3D80800C +618CBAA4 7D8903A6 +4E800420 00000000 +C211BA54 00000018 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +806DAEB4 C0030088 +FC000050 C03E0624 +FC010040 41810078 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C211BAD8 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +C03E0084 C0029DE0 +FC010040 4C401382 +4082008C 806DAEB4 +C0030070 C03E0624 +FC010040 41810010 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C206AA28 00000002 +80620178 8063000C +8003005C 00000000 +04094860 800200C0 +04094924 800200C0 +0407E740 800200C8 +C207F830 00000002 +81820178 818C000C +800C0054 00000000 +C207F878 00000002 +81820178 818C000C +800C0058 00000000 +C2069924 00000008 +806200A8 809A0004 +1C840004 7D84182E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808006 +618C9938 7D8903A6 +4E800420 801A0004 +60000000 00000000 +040BEA28 80020030 +040690F0 80020030 +C207F918 00000002 +80820178 8084000C +80040050 00000000 +C2080D9C 00000002 +80620178 8063000C +80030068 00000000 +C2080BA0 00000002 +80620178 8063000C +80030068 00000000 +C207512C 00000002 +80620178 8063000C +8003006C 00000000 +C2075190 00000002 +80620178 8063000C +8003006C 00000000 +C20751F8 00000002 +80620178 8063000C +8003006C 00000000 +C208CC14 00000008 +800200BC 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CCC38 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C208C360 00000007 +800200B4 809F0004 +1C840004 7D84002E +2C0C0000 4182001C +7D8903A6 4E800421 +3D808008 618CC3CC +7D8903A6 4E800420 +809F0004 00000000 +C208C900 00000008 +800200B8 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CC924 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C20C0158 00000002 +80620178 8063000C +80030060 00000000 +C20816C4 00000005 +806200AC 809F0004 +7C6418AE 2C030000 +40820014 3D808008 +618C1918 7D8903A6 +4E800420 00000000 +C20C3B54 0000000B +800200A4 809F0004 +1C840004 7D84002E +2C0C0000 4182003C +801F065C 54000001 +41820030 801F0668 +540005EF 41820024 +7C631B78 7D8903A6 +4E800421 3D80800C +618C3BB8 7D8903A6 +4E800420 48000008 +38600000 00000000 +C20F5A78 00000002 +80620098 80630020 +60000000 00000000 +C20F5AA0 00000002 +80620098 80630020 +60000000 00000000 +C20F5AC8 00000002 +80620098 80630020 +60000000 00000000 +C20F5AE0 00000002 +80620098 80630020 +60000000 00000000 +C2085C04 00000003 +806200B0 801C0004 +1C000008 7C630214 +80030004 00000000 +C2085BD0 00000003 +806200B0 801C0004 +1C000008 7FC3002E +60000000 00000000 +C2085CC0 00000003 +808200B0 801C0004 +1C000008 38600000 +7C64012E 00000000 +C20BEB88 00000003 +83E200B0 1C030008 +7FFF0214 801F0000 +60000000 00000000 +C2085A24 00000002 +7C661B78 1CA30008 +60000000 00000000 +04085A3C 80620098 +04068B2C 1C840008 +04068B1C 80020098 +040852C0 80A20098 +C20852D4 00000012 +39800000 81220028 +814200B0 38600000 +90670000 90670004 +90690000 906A0000 +39600000 48000020 +80680000 1C8B0018 +7C832214 38600000 +90640000 90640008 +396B0001 88680004 +7C0B1800 4180FFDC +39290008 39080008 +38E70008 394A0008 +398C0001 80620148 +7C0C1800 4180FFA0 +38600000 3CA08045 +60A598B8 3D808008 +618C53DC 7D8903A6 +4E800420 00000000 +04085738 1CA30008 +0408573C 80020098 +04085774 38650004 +0431C9A4 800200D0 +C214A42C 00000004 +80820178 80840034 +80840000 881F0619 +1C000008 7C840214 +60000000 00000000 +C214A7F8 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630000 90640000 +4E800020 00000000 +C214A364 00000006 +881F0619 1C000008 +80820178 80840034 +80840000 7C840214 +80840004 909F2434 +909F0614 8001001C +60000000 00000000 +C214A818 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630004 90640000 +4E800020 00000000 +C22F9888 00000005 +387C0000 38800000 +3D808003 618C25C8 +7D8903A6 4E800421 +7C641B78 38BD0000 +387C0000 00000000 +C22F9764 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FC3F378 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387E0000 00000000 +C22F6770 00000011 +3C60804D 60636D5C +80630000 48000049 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8DC +3C60804D 60636D5C +80630000 48000031 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8E0 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 80010024 +60000000 00000000 +C2266994 0000000D +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000035 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 4182000C +906DB8DC 48000020 +38600000 906DB8DC +48000014 4E800021 +5374635F 69636E73 +00000000 806DB614 +60000000 00000000 +C22F6320 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C2168B34 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FC3F378 +7FA4EB78 3D80803D +618C7060 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C22FA0B4 00000006 +7C7FE214 8863047F +38800000 3D808003 +618C25C8 7D8903A6 +4E800421 7C641B78 +7CBFE214 8865047F +88A503FD 00000000 +C22F9FD4 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FA3EB78 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387D0000 00000000 +C22F62F8 00000010 +3D808000 618CC07C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +83ADB8E0 2C1D0000 +41820044 7FC3F378 +38810080 38A00001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FA5EB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 00000000 +C22F99C0 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +4182005C 83C30004 +3BE00000 7FA3EB78 +38810080 38BF0001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FC5F378 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0007 4180FFB8 +48000004 BA810008 +80010104 38210100 +7C0803A6 7FA3EB78 +60000000 00000000 +C2175E4C 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7D1B78 480000F1 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +418200FC 83C30004 +3BE00000 7F63DB78 +38810080 38BF0019 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809E0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +3BFF0001 2C1F0004 +4180FFB4 7FA3EB78 +48000085 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 41820080 +3BE00000 7F63DB78 +38810080 38BF0042 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 809E0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FFB8 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 7F63DB78 +60000000 00000000 +C21777C8 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C225DB80 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C1F000C +60000000 00000000 +C2260DB4 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C13000C +60000000 00000000 +C225D5AC 00000078 +7C0802A6 90010004 +9421FF00 BE810008 +7C7D1B78 7C9F2378 +7CBE2B78 7CDC3378 +3F60803F 637B0A48 +880DB655 2C000001 +408201F0 2C1D0000 +41820080 806DB624 +38810080 38A00006 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +806DB8D4 80630010 +7C1E19D6 7C9F0214 +80610080 7F85E378 +48000235 806DB624 +38810080 38A00004 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +80620070 7C83F8AE +80610080 7F85E378 +480001FD 480002F0 +806DB620 38810080 +38A0002D 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 480001B9 +806DB620 38810080 +38A0002B 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000181 +1C7D0024 7C63DA14 +886303C2 1C63001C +80820000 7C632214 +886300DD 80020008 +1C630003 7C6300AE +1C9D0024 7C84DA14 +888403C1 3D80803D +618C7060 7D8903A6 +4E800421 D0210084 +3B400000 806DB620 +38810080 38BA0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 C0210084 +3D808035 618CE800 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +80630064 C022E0E0 +3D808036 618C530C +7D8903A6 4E800421 +80610080 3D808037 +618C0928 7D8903A6 +4E800421 3B5A0001 +2C1A0005 4180FF78 +7F83E378 3D808025 +618CC020 7D8903A6 +4E800421 48000188 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B5 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 48000049 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B4 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000009 +480000FC 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +6FC38000 C822CA08 +90610094 3C604330 +90610090 C8410090 +EC220828 7FE3FB78 +38800006 38A00400 +3CC08036 60C6410C +38E00001 4CC63242 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 3D808037 +618C0928 7D8903A6 +4E800421 7FE3FB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 38800010 +2C1D0000 41820018 +3D808037 618C1D9C +7D8903A6 4E800421 +48000018 3D808037 +618C1F00 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225EE60 00000007 +88A30073 7FE3FB78 +7E84A378 38C00000 +3D808025 618CD5AC +7D8903A6 4E800421 +3D808025 618CEE74 +7D8903A6 4E800420 +60000000 00000000 +C2260DB0 00000005 +38730000 38800000 +38A00000 38C00001 +3D808025 618CD5AC +7D8903A6 4E800421 +60000000 00000000 +C225DB78 00000003 +7FE3FB78 38800000 +38A00000 38C00001 +60000000 00000000 +C2264548 00000038 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7A1B78 48000145 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820008 837B0004 +7F43D378 4800012D +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7D1B79 +838DB8D4 2C1C0000 +41820008 839C000C +2C1B0000 41820054 +3BE00000 806DB620 +38810080 38BF0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7F65DB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0005 4180FFB8 +2C1D0000 41820048 +806DB620 38810080 +38A0002B 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38A0002D +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 4800002C +4E800021 5374635F +69636E73 00000000 +4E800021 45626C6D +5F6D6174 616E696D +5F6A6F69 6E740000 +BA810008 80010104 +38210100 7C0803A6 +60000000 00000000 +C2264A74 00000026 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +41820048 806DB624 +38810080 38A00004 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809D0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +2C1D0000 41820044 +806DB624 38810080 +38A00006 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +7F84E378 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 806DB624 +60000000 00000000 +C2264574 00000027 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000D5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +4182004C 3BE00000 +806DB620 38810080 +38BF002E 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38BF0033 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FF6C +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 00000000 +0425DB74 8A8400DD +C20692FC 00000002 +81820148 398CFFFB +7C006000 00000000 +C20692E8 00000002 +81820148 398CFFFA +7C006000 00000000 +C20CC76C 00000002 +81820148 398CFFFB +7C036000 00000000 +C20CC750 00000002 +81820148 398CFFFA +7C036000 00000000 +C20BDA14 0000000C +81820148 380CFFFC +7C030000 41820038 +81820148 380CFFFD +7C030000 41820028 +81820148 380CFFFF +7C030000 41820018 +2C03000B 41820008 +48000010 3860000A +48000008 80652238 +3D80800B 618CDA3C +7D8903A6 4E800420 +60000000 00000000 +C208A2F0 00000002 +81820148 398CFFFB +7C036000 00000000 +C208A2D4 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C2AC 00000002 +80620148 3863FFFB +60000000 00000000 +C215C320 00000002 +80620148 3863FFFB +60000000 00000000 +C215C3A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C21551B4 00000002 +80620148 3863FFFB +60000000 00000000 +C215531C 00000002 +80620148 3863FFFB +60000000 00000000 +C21554A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215B500 00000002 +80620148 3863FFFB +60000000 00000000 +C206D480 00000002 +81820148 398CFFFB +7C006000 00000000 +C20C8E98 00000002 +81820148 398CFFFB +7C006000 00000000 +C215CB18 00000002 +81820148 398CFFFB +7C036000 00000000 +C20C744C 00000002 +81820148 398CFFFE +7C006000 00000000 +C215C274 00000002 +80620148 3863FFFA +60000000 00000000 +C215C2E4 00000002 +80620148 3863FFFA +60000000 00000000 +C215C35C 00000002 +80620148 3863FFFA +60000000 00000000 +C215143C 00000002 +80620148 3863FFFA +60000000 00000000 +C215A2CC 00000002 +80620148 3863FFFA +60000000 00000000 +C215A414 00000002 +80620148 3863FFFA +60000000 00000000 +C215A580 00000002 +80620148 3863FFFA +60000000 00000000 +C206D48C 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8E90 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8EA4 00000002 +81820148 398CFFFA +7C006000 00000000 +C215C55C 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C6E0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C770 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C8B0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C9F0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215CABC 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C810 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C950 00000002 +81820148 398CFFFA +7C036000 00000000 +C207CDBC 00000002 +81820148 398CFFFF +7C006000 00000000 +C207CE10 00000002 +81820148 398CFFFF +7C006000 00000000 +C217C938 00000002 +81820148 380CFFFD +60000000 00000000 +C217C930 00000002 +81820148 380CFFFC +60000000 00000000 +C2267990 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +80820088 2C03002B +41800020 2C0300A1 +41800024 2C0300D0 +4180002C 2C0300ED +41800034 48000044 +80840000 80ADB684 +4800004C 3863FFD5 +80840004 80ADB698 +4800003C 3863FF5F +80840008 80ADB690 +4800002C 3863FF30 +8084000C 3CA0804A +60A50F60 48000018 +3863FF13 80840010 +80A20088 80A50014 +48000004 1C03003C +7FC40214 1C030004 +7FA5002E 2C1D0000 +41820010 93DF00B8 +93BF00C4 48000070 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2069 74656D20 +6E6F7420 696E6974 +69616C69 7A65640A +00000000 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C7A88 7D8903A6 +4E800420 00000000 +C22674AC 00000004 +80030008 2C0000ED +41800010 38000008 +9003000C 4E800020 +60000000 00000000 +C2268684 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +807E0008 80820088 +2C03002B 41800020 +2C0300A1 41800024 +2C0300D0 4180002C +2C0300ED 41800034 +48000040 3C80803F +60841418 48000040 +3863FFD5 3C80803F +60842F28 48000030 +3863FF5F 3C80803F +60842310 48000020 +3863FF30 3C80803F +60844CA8 48000010 +3C808026 6084EECC +4800000C 1C030004 +7C84002E 38A00006 +38C00000 7FE3FB78 +3D808039 618C069C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C8748 +7D8903A6 4E800420 +60000000 00000000 +C20F16EC 0000000B +80C20148 7C043040 +4181003C 1C040004 +80620140 7D83002E +2C0C0000 41820018 +7C832378 7C85002E +7D8903A6 4E800421 +48000014 3D80800F +618C16F0 7D8903A6 +4E800420 3D80800F +618C18F8 7D8903A6 +4E800420 00000000 +C20EEEC4 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80020130 1C840004 +7D84002E 2C0C0000 +4182000C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C20F1AA8 0000000B +80820148 7C002040 +41810038 1C800004 +8062013C 7D83202E +2C0C0000 41820024 +7FE3FB78 7D8903A6 +4E800421 48000014 +3D80800F 618C1AB0 +7D8903A6 4E800420 +3D80800F 618C1B58 +7D8903A6 4E800420 +60000000 00000000 +C20F1BF8 00000007 +8002012C 1C840004 +7D84002E 2C0C0000 +41820010 7D8903A6 +7FA3EB78 4E800421 +3D80800F 618C1C1C +7D8903A6 4E800420 +60000000 00000000 +040F163C 80020134 +040F168C 80020138 +C216E148 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +83C20148 3BE00000 +80620128 38000000 +1C9F0004 7C03212E +3BFF0001 7C1FF000 +4180FFF0 BA810008 +80010104 38210100 +7C0803A6 3800FFFF +90010010 00000000 +C20EED58 00000002 +9421FFDC 38000000 +90010020 00000000 +040EEE90 38210024 +040EEDC0 38610020 +C20EEE80 00000033 +83A10020 7C0802A6 +90010004 9421FF00 +BE810008 2C1D0000 +41820168 7FA3EB78 +480000A9 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820030 +7F63DB78 3D80803D +618C7074 7D8903A6 +4E800421 7F63DB78 +80820178 80840024 +7FC5F378 48000081 +3B400001 7FA3EB78 +7FC4F378 38A00000 +3D80803D 618C7070 +7D8903A6 4E800421 +2C030000 41820008 +3B400001 7FA3EB78 +48000041 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7C1B79 41820010 +80620128 1C9E0004 +7F83212E 4800009C +4E800021 6B624675 +6E637469 6F6E0000 +4E800021 6674636D +64000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80010028 00000000 +C222C010 0000000C +810DB8E0 2C080000 +41820050 7C671B78 +7C862378 80680004 +1C070014 7D830214 +806C0008 1C060008 +7D430214 2C070000 +4182000C 886C000F +4800001C 880A0001 +80680004 1C000014 +7C630214 8863000F +48000004 4E800020 +2C030000 00000000 +C222C170 00000007 +806DB8E0 2C030000 +41820028 80630004 +881F0000 1C000014 +7D830214 8BCC000F +3D808022 618CC1B4 +7D8903A6 4E800420 +28040021 00000000 +C222C168 0000000C +806DB8E0 2C030000 +4182004C 80630004 +881F0000 1C000014 +7D830214 816C0008 +A07F0002 1C630008 +7D435A14 880A0001 +806DB8E0 80630004 +1C000014 7C630214 +8BC3000F 3D808022 +618CC1B4 7D8903A6 +4E800420 28040021 +60000000 00000000 +C2229DA0 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820088 83FE0010 +7F83E378 38810080 +38A00056 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +3C60804A 606304F0 +88630000 819E0004 +1C630014 7C6C1A14 +8863000E 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +80610080 3D808036 +618CF934 7D8903A6 +4E800421 80610080 +3D808037 618C0780 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +8001003C 00000000 +C222B9D8 00000008 +818DB8E0 2C0C0000 +4182002C 818C0004 +881A0000 1C000014 +7D8C0214 818C0008 +881A0001 1C000008 +7D8C0214 888C0002 +48000008 7C90022E +60000000 00000000 +C222B9A8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +0422B9A0 60000000 +C2229AD8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +04229AD0 60000000 +C2229B08 00000007 +818DB8E0 2C0C0000 +41820028 818C0004 +897D0000 1C0B0014 +7D8C0214 818C0008 +1C1E0008 7D8C0214 +888C0002 48000008 +7C9F022E 00000000 +C222DB1C 00000004 +818DB8E0 2C0C0000 +41820010 806C0004 +38630000 48000008 +3863B6B0 00000000 +C222DC18 00000005 +818DB8E0 2C0C0000 +41820014 818C0004 +1C7F0014 7C6C1A14 +48000008 7C630214 +60000000 00000000 +C222A638 00000006 +818DB8E0 2C0C0000 +4182001C 806C0004 +881C0000 1C000014 +7C630214 8B63000C +48000008 8B630854 +60000000 00000000 +C222B3F4 00000006 +818DB8E0 2C0C0000 +41820020 80AC0004 +1C750014 7C632A14 +83E30000 8AC3000C +7C731B78 48000008 +8AC40854 00000000 +C222B224 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 880C000C +48000008 88030854 +60000000 00000000 +C222AE48 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 83AC0000 +48000008 83A30848 +60000000 00000000 +C222E90C 00000004 +818DB8E0 2C0C0000 +41820010 3C80803D +60847090 48000008 +80840858 00000000 +C222A010 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881D0000 1C000014 +7D8C0214 818C0008 +1C7B0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7F83E378 48000008 +EC22002A 00000000 +C222A4D0 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881F0000 1C000014 +7D8C0214 818C0008 +1C7C0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7FA3EB78 48000008 +EC22002A 00000000 +C222B7DC 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881E0000 1C000014 +7D8C0214 818C0008 +1C710008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +38760000 48000008 +EC21002A 00000000 +C222E630 00000023 +7C0802A6 90010004 +9421FF00 BE810008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +408200AC 480000B5 +7C6802A6 3D808033 +618C796C 7D8903A6 +4E800421 2C03FFFF +4182008C 48000095 +7C6802A6 38810080 +48000099 7CA802A6 +38C00000 4CC63182 +3D808001 618C6C64 +7D8903A6 4E800421 +7C7F1B78 83C10080 +93CDB8E0 38600001 +38800000 38A00007 +38C00008 38E00080 +39000005 39200080 +39400000 3D80803A +618C611C 7D8903A6 +4E800421 3C60804D +60631110 93E30004 +807E0008 3C80804D +60841124 90640004 +4800002C 38600000 +906DB8E0 48000020 +4E800021 4D784D6E +2E646174 00000000 +4E800021 6D65784D +656E7500 BA810008 +80010104 38210100 +7C0803A6 38600003 +60000000 00000000 +C2266980 00000002 +906DB634 38000000 +900DB8E0 00000000 +C2229C14 00000004 +818DB8E0 2C0C0000 +41820010 83EC0000 +3BFFFFDC 48000008 +3BE5AE68 00000000 +C2229DEC 00000004 +818DB8E0 2C0C0000 +41820010 83AC0000 +3BBDFFDC 48000008 +3BA4AE68 00000000 +C2229D98 00000002 +3C80803E 6084B354 +60000000 00000000 +C2229E94 00000002 +3D80803E 618CAE68 +C02C04EC 00000000 +C21B1368 00000004 +3C60804A 606304F0 +88030000 981F0000 +A0030002 981F0001 +60000000 00000000 +C2229894 00000029 +818DB8E0 2C0C0000 +41820134 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +3F80804A 639C04F0 +806DB8E0 80630004 +881C0000 1C000014 +7F630214 887C0000 +987C0001 9BFC0000 +39800000 893C0001 +806DB8E0 80630004 +881C0000 1C1F0014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19C0002 +48000010 398C0001 +7C0C5800 4180FFD0 +7FA3EB78 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 806DC17C +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C0802A6 +60000000 00000000 +C2229E60 00000032 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820160 83FE0010 +3BA00000 48000131 +7C6802A6 7CA3E8AE +7CA50774 2C05FFFF +4182005C 7F83E378 +38810080 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 3D808036 +618CF6B4 7D8903A6 +4E800421 80610080 +38800000 7FE5FB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BBD0001 +4BFFFF94 3BA00000 +480000C9 7C6802A6 +7CA3E8AE 7CA50774 +2C05FFFF 4182003C +7F83E378 38810080 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +3D808036 618CF6B4 +7D8903A6 4E800421 +3BBD0001 4BFFFFB4 +7F83E378 38810080 +38A0002C 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +48000065 7C6802A6 +C0230000 80610080 +D0230038 7F83E378 +38810080 38A00056 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 48000031 +7C6802A6 C0230004 +80610080 D023002C +48000028 4E800021 +56545552 53FF0000 +4E800021 2C2D2E2F +FF000000 4E800021 +00000000 3F666666 +BA810008 80010104 +38210100 7C0803A6 +387C0000 00000000 +C222B750 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8E0 2C030000 +41820048 83E3000C +7E038378 38810080 +38A00003 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7FE5FB78 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38700000 00000000 +04167978 8002014C +C2085A44 00000002 +83820028 7F9C0214 +801C0000 00000000 +04085B5C 80620028 +C2085A58 00000002 +80820014 1CA60004 +7C84282E 00000000 +C208602C 00000002 +80620098 80630050 +60000000 00000000 +040856E4 800200D0 +C20856E4 00000002 +80820014 7C84D02E +60000000 00000000 +C2017924 00000011 +2C03FFFF 40820078 +48000051 7C6802A6 +3C808043 60842058 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6C626669 6C650000 +4E800021 6572726F +723A2066 696C6520 +25732064 6F657320 +6E6F7420 65786973 +740A0000 93E10008 +60000000 00000000 +C2085614 00000002 +80820010 7C84D82E +60000000 00000000 +04085760 80020010 +C21692DC 00000002 +80620058 7C630214 +60000000 00000000 +C21692B0 00000002 +80620058 7C630214 +60000000 00000000 +C2169258 00000002 +80620058 7C632214 +60000000 00000000 +C2169284 00000002 +80620058 7C630214 +60000000 00000000 +C20703A8 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820078 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +4800005D 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820038 +80630004 2C030000 +4182002C 80630000 +BA810008 80010104 +38210100 7C0803A6 +7C601B78 3D808007 +618C03B8 7D8903A6 +4E800420 7E83A378 +48000014 4E800021 +6D657843 6F737475 +6D650000 BA810008 +80010104 38210100 +7C0803A6 7C601B78 +60000000 00000000 +C20749E8 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820090 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +48000099 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820050 +80630000 2C030000 +41820044 389F05AC +38A00000 38DF05EC +38FF203C 3D808007 +618C487C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D808007 +618C4A04 7D8903A6 +4E800420 807F010C +389F05AC 7E85A378 +BA810008 80010104 +38210100 7C0803A6 +3D808007 618C49F4 +7D8903A6 4E800420 +4E800021 6D657843 +6F737475 6D650000 +60000000 00000000 +04085674 1F800010 +040856BC 3B9C0010 +C2085680 00000002 +8362000C 7F7BD214 +60000000 00000000 +0408586C 1C040010 +04085864 8002000C +040857A8 80A2005C +040857C0 80A2005C +C213C384 00000040 +7C7C1B78 83DC002C +887E000C 3D808003 +618C2330 7D8903A6 +4E800421 3D808016 +618C9238 7D8903A6 +4E800421 889E0619 +7C041800 40800008 +48000014 3D808013 +618CC46C 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF00 +BE810008 881E0004 +8062000C 1C000004 +7C63002E 881E0619 +1C000010 7C630214 +8363000C 807E0004 +8082005C 1C630008 +7C63202E 881E0619 +1C000018 7C630214 +83230014 7F23CB78 +48000121 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 40820114 +3C60803D 606305B4 +1C1B0004 7F43002E +2C1A0000 418200FC +7F23CB78 7F44D378 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 807E010C +80630048 80630004 +3B030004 3C608045 +60639080 3D808037 +618CABC8 7D8903A6 +4E800421 907E2244 +7F43D378 3D808037 +618C0E44 7D8903A6 +4E800421 907E223C +3D808007 618C4148 +7D8903A6 4E800421 +38600001 881E2225 +50602EB4 981E2225 +3D808007 618C4170 +7D8903A6 4E800421 +7F83E378 809E223C +38BE2240 3D808007 +618C5650 7D8903A6 +4E800421 38DE2240 +38E60000 7F65DB78 +389E2248 7F03C378 +3D808007 618C487C +7D8903A6 4E800421 +7FC3F378 3D808009 +618CDC54 7D8903A6 +4E800421 4800001C +4E800021 6D657843 +6F737475 6D650000 +38600000 907E223C +BA810008 80010104 +38210100 7C0803A6 +3D808013 618CC474 +7D8903A6 4E800420 +60000000 00000000 +C205FE90 00000002 +8062001C 80030014 +60000000 00000000 +C205B4F0 0000000B +38A00000 38630008 +80C20160 1CE5000C +7C87192E 38A50001 +7C053000 4180FFF0 +38A00000 38800000 +80620084 1CE50004 +7C87192E 38A50001 +7C053000 4180FFF0 +3D808005 618CB5D4 +7D8903A6 4E800420 +60000000 00000000 +040672B0 8002001C +0406739C 8002001C +0405BED8 80C2001C +0405B4EC 8062001C +04067334 8062001C +04067384 9421FFE4 +C2067430 00000018 +901F0008 80610018 +48000029 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +80820084 1CBE0004 +7C64292E 48000090 +4E800021 65666642 +65686176 696F7254 +61626C65 00000000 +4800004D 7C6802A6 +7FC4F378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2065 +66666563 74206669 +6C652025 64206E6F +74206C6F 61646564 +0A000000 00000000 +04067440 3821001C +040673DC 38610018 +04067434 80010020 +040BE8B8 80020018 +04068F38 80020018 +C20856D0 00000002 +80620018 7C63F8AE +60000000 00000000 +040325F8 80620008 +C2032634 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +040325D8 80020008 +04031CCC 80020008 +04031D48 80020008 +04031D70 80020008 +04031D48 80020008 +C2036E34 00000002 +80620008 3803FFE0 +60000000 00000000 +C2036F5C 00000002 +83C20008 3BDEFFE0 +60000000 00000000 +C2031AE8 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +C22601D4 00000002 +80620000 386300DD +7C6300AE 00000000 +C22600F0 00000002 +80620000 386300DD +7C6300AE 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260D6C 00000002 +80620000 7E630214 +60000000 00000000 +C2260A60 00000002 +80620000 386300DC +60000000 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260C7C 00000002 +83C20000 7C9E2214 +60000000 00000000 +C2260D44 00000002 +3FC0803F 63DE0A48 +7C7EBA14 00000000 +C226353C 00000002 +80620000 7C630214 +60000000 00000000 +C2263B40 00000002 +80620000 7C630214 +60000000 00000000 +C2262B20 00000002 +80620000 7C630214 +60000000 00000000 +C2262B80 00000002 +80620000 7C630214 +60000000 00000000 +C2262BE0 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262BB4 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262C14 00000002 +80620000 7C630214 +60000000 00000000 +C2262C74 00000002 +80620000 7C630214 +60000000 00000000 +C225FBE4 00000003 +3F80803F 639C0A48 +7C9C3214 7F9C3214 +60000000 00000000 +C225FCB8 00000002 +80820000 7C84EA14 +60000000 00000000 +C225FE68 00000002 +80620000 7C630214 +60000000 00000000 +C225FE8C 00000002 +80820000 388400DC +60000000 00000000 +C225FF10 00000002 +83E20000 7FFFEA14 +60000000 00000000 +C225FFEC 00000002 +80620000 7C63EA14 +60000000 00000000 +C226005C 00000002 +83620000 7F7B0214 +60000000 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C2264D58 00000002 +3FE0803F 63FF0A48 +3BFF03B4 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C225F308 00000002 +3EE0803F 62F70A48 +3BF703B4 00000000 +C225F78C 00000002 +3EE0803F 62F70A48 +38B70483 00000000 +C225DB70 00000002 +80820000 7C840214 +60000000 00000000 +C225DBE0 00000002 +80620000 7C630214 +60000000 00000000 +C225EDE0 00000002 +80620000 7C632214 +60000000 00000000 +C2264114 00000002 +3C60803F 60630A48 +7C630214 00000000 +0425FB6C 83C20000 +042640FC 83820000 +0425F128 82E20000 +C20672B4 00000002 +81820160 398C0001 +7C036000 00000000 +C20673A0 00000002 +81820160 398C0001 +7C1E6000 00000000 +04266AA0 8002014C +04266B10 8002014C +04266B50 8002014C +042609D8 8002014C +C2160450 00000002 +8182014C 7C006000 +60000000 00000000 +C2160464 00000002 +8182014C 7C006000 +60000000 00000000 +C2160428 00000002 +8182014C 7C006000 +60000000 00000000 +C225FE4C 00000002 +81820150 398C0001 +7C046000 00000000 +C2264914 00000002 +81820150 7C116000 +60000000 00000000 +C2264EDC 00000002 +81820150 7C116000 +60000000 00000000 +C2264ED0 00000002 +81820150 7C116000 +60000000 00000000 +C22600C4 00000002 +81820150 7C006000 +60000000 00000000 +C22600D0 00000002 +81820150 7C006000 +60000000 00000000 +C226015C 00000002 +81820150 7C036000 +60000000 00000000 +C226022C 00000002 +81820150 7C036000 +60000000 00000000 +C21692C0 00000002 +81820150 398C0001 +7C006000 00000000 +C2169294 00000002 +81820150 398C0001 +7C006000 00000000 +C216923C 00000002 +8182014C 7C006000 +60000000 00000000 +C2169268 00000002 +81820150 398C0001 +7C006000 00000000 +C22605B8 00000002 +81820150 7C006000 +60000000 00000000 +C22620CC 00000002 +81820150 7C006000 +60000000 00000000 +C22621E0 00000002 +81820150 7C006000 +60000000 00000000 +04260994 80020150 +C2260AD0 00000002 +81820150 7C046000 +60000000 00000000 +C2260B58 00000002 +81820150 7C036000 +60000000 00000000 +04260BCC 80020150 +04260DE4 80020150 +C226183C 00000002 +81820150 7C056000 +60000000 00000000 +C22618CC 00000002 +81820150 7C066000 +60000000 00000000 +C2261F8C 00000002 +81820150 7C006000 +60000000 00000000 +C2262FFC 00000002 +81820150 7C006000 +60000000 00000000 +C2263050 00000002 +81820150 7C006000 +60000000 00000000 +C22634EC 00000002 +81820150 7C006000 +60000000 00000000 +C2263B7C 00000002 +81820150 7C006000 +60000000 00000000 +C22626CC 00000002 +81820150 7C006000 +60000000 00000000 +C2262A1C 00000002 +81820150 7C006000 +60000000 00000000 +0425FB70 80620150 +C225FC54 00000002 +81820150 7C046000 +60000000 00000000 +04264ADC 80620150 +C2264EEC 00000002 +80820150 38840001 +60000000 00000000 +C225F2AC 00000002 +81820150 7C1B6000 +60000000 00000000 +C225DAFC 00000002 +81820150 7C006000 +60000000 00000000 +C225DB98 00000002 +81820150 7C156000 +60000000 00000000 +C225DC88 00000002 +81820150 7C036000 +60000000 00000000 +C225DF4C 00000002 +81820150 7C006000 +60000000 00000000 +C225ED78 00000002 +81820150 7C006000 +60000000 00000000 +C225EDA4 00000002 +81820150 7C046000 +60000000 00000000 +C2026E8C 00000002 +8182014C 7C036000 +60000000 00000000 +C2023064 00000002 +8182014C 7C036000 +60000000 00000000 +0406FD08 83A2014C +040EF070 80620120 +040EE538 80820124 +040EE53C 80A20120 +040EEE70 8002011C +040EEDA4 80020124 +040EEDD4 80020118 +040EEE10 1C1F0010 +040EECCC 1FA00010 +040EEDEC 80020120 +040EED88 80020114 +C20EE528 00000013 +7C0802A6 90010004 +9421FF00 BE810008 +83E2014C 38600004 +3D808016 618C9238 +7D8903A6 4E800421 +7C7E1B78 83A20124 +83820120 3B600000 +38000000 901D0000 +3A800000 1C7B0004 +7EA3E02E 2C150000 +4182001C 90150000 +90150004 3A940001 +3AB50008 7C14F000 +4180FFEC 3B7B0001 +3BBD0004 7C1BF800 +4180FFC0 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +040EECA0 80020118 +040EED24 8002011C +040EEC50 80020114 +040F16E0 80A20124 +040F10B0 80820124 +040F13FC 80820124 +040F15E4 80820124 +040F11B8 80820124 +040F12D4 80820124 +041093D4 80620124 +040EFD94 80820124 +0409D4E0 80820124 +C20EF118 00000002 +56A4103A 80620120 +7C63202E 00000000 +040EF388 80620120 +040F0FF4 80620124 +040F0BA0 80820124 +040EFC88 80820124 +040EFB7C 80820124 +040F14E8 80620124 +040F0DC8 80820124 +040F1100 80620124 +0409D828 80820124 +040EFEB0 80820124 +0409D080 80820124 +040F0740 80820124 +040EFA70 80820124 +040F084C 80820124 +0409D92C 80820124 +040F121C 80620124 +0409DB5C 80820124 +040F00E8 80820124 +040F01F4 80820124 +040F0CAC 80820124 +0409D3C8 80820124 +040F040C 80820124 +0409D2B0 80820124 +040F0300 80820124 +040F0ED4 80820124 +0409DA44 80820124 +040F0528 80820124 +040EFFCC 80820124 +0409D710 80820124 +040F0634 80820124 +040F0A84 80820124 +0409D198 80820124 +040F0968 80820124 +0409D5F8 80820124 +040F1340 80620124 +040EEB20 80620124 +0410B554 80620124 +0410B398 80620124 +04109528 80620124 +0410A110 80C20124 +04109F40 80C20124 +040EEB04 80620124 +0410B398 80620124 +04108EAC 80620124 +04108DC4 80620124 +0410B398 80620124 +04109448 80620124 +041093A4 80620124 +041093A4 80620124 +C212CD18 00000002 +80620098 80630070 +60000000 00000000 +C212CD30 00000002 +80620098 80630070 +60000000 00000000 +C212CD48 00000002 +80620098 80630070 +60000000 00000000 +C212CD60 00000002 +80620098 80630070 +60000000 00000000 +C212CD78 00000002 +80620098 80630070 +60000000 00000000 +C212CD90 00000002 +80820098 80840070 +60000000 00000000 +C212CDBC 00000002 +80620098 80630070 +60000000 00000000 +C21092E4 00000002 +80620098 80630020 +60000000 00000000 +C21092FC 00000002 +80620098 80630020 +60000000 00000000 +C2109314 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C2109344 00000002 +80620098 80630020 +60000000 00000000 +C210935C 00000002 +80820098 80840020 +60000000 00000000 +C2109388 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C20F587C 00000002 +80820098 80840020 +60000000 00000000 +C20F1058 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F13A4 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F154C 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C2070258 00000005 +81620118 819C2238 +1D8C0004 7D6C582E +899C0619 1D8C0010 +7D6B6214 800B000C +60000000 00000000 +C20F1164 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F1280 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +04015D9C 80020184 +04015C00 80020184 +04015BC0 80620184 +C2018D80 00000007 +801E0000 2C000002 +41820010 2C000003 +41820008 4800001C +38600006 38800000 +3D808001 618C58D0 +7D8903A6 4E800421 +801E0000 00000000 +040158F0 80620184 +04016138 2C000007 +04015F50 83E20184 +C2015F88 00000015 +48000039 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3C800041 6084C644 +7C632214 48000025 +7C8802A6 9064001C +7C802378 4800006C +4E800021 4966416C +6C2E7573 64000000 +4E800021 00000002 +00000001 00000006 +00000800 00000003 +00000001 00000002 +004FA690 00000004 +00000002 00000006 +005D12E0 00000005 +00000004 00000006 +0096C800 00000006 +00000001 00000003 +00000020 00000007 +60000000 00000000 +040158D8 80620184 +04015E18 83C20184 +04015CD4 80020184 +C20159B4 00000018 +39800000 1C6C001C +389F0048 7D632214 +806B0014 2C030000 +40820084 806B0010 +2C030000 41820078 +2C030001 41820024 +2C030002 41820038 +2C030003 41820060 +2C030004 4182003C +2C030005 41820050 +806B0008 800B000C +7C030214 7C1D0040 +4080003C 7C1D0378 +48000034 800B0008 +7C1A0040 40810028 +7C1A0378 48000020 +806B0008 800B000C +7C030214 7C1C0040 +4080000C 7C1C0378 +48000004 398C0001 +2C0C0005 4180FF60 +3D808001 618C5ACC +7D8903A6 4E800420 +60000000 00000000 +04015984 2C190007 +04015B94 2C1C0007 +04015914 83E20184 +C20179B4 00000002 +8182014C 7C036000 +60000000 00000000 +C20179F0 00000002 +8182014C 7C1D6000 +60000000 00000000 +C2017A08 00000002 +8182014C 7C006000 +60000000 00000000 +C2017A38 00000002 +8182014C 7C1A6000 +60000000 00000000 +C237C050 0000000C +7FECFB78 48000040 +806C0004 5463013E +2C030008 4082002C +818C0008 2C0C0000 +4182002C C02C002C +D03D002C C02C0030 +D03D0030 C02C0034 +D03D0034 48000010 +818C0000 2C0C0000 +4082FFC0 3D808037 +618CC0A8 7D8903A6 +4E800420 00000000 +C2219230 00000004 +80820178 80840008 +8084006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C20BEC18 00000002 +81820178 818C000C +800C0098 00000000 +040BEBD0 80020078 +C2160438 00000003 +8082006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C2176C40 00000004 +80820070 7C1C20AE +3D808017 618C6C8C +7D8903A6 4E800420 +60000000 00000000 +0417A890 80020074 +C2160400 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +8182014C 7C036000 +41810014 80820080 +1C630004 7C63202E +48000008 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C20BE938 00000002 +81820178 818C000C +800C009C 00000000 +040C0AB4 4800003C +040C09D0 48000040 +C2168C6C 00000008 +8182014C 398CFFFC +7C036000 41810020 +8082007C 1C630004 +7C63202E 3D808002 +618C43F4 7D8903A6 +4E800421 8001000C +38210008 7C0803A6 +4E800020 00000000 +C20285C8 0000000D +39000000 81220158 +39290001 80620060 +80830004 80A30008 +80C3000C 80E30010 +3860FFFF 90640000 +90650000 90660000 +90670000 38840004 +38A50004 38C60004 +38E70004 39080001 +7C084800 4180FFD8 +3D808002 618C8660 +7D8903A6 4E800420 +60000000 00000000 +C2027694 0000000D +38800000 7FC8F378 +7FA9EB78 81820158 +398C0001 80080000 +2C000001 40820018 +80090000 2C00FFFF +4082000C 38000001 +48000024 39080004 +39290004 38840001 +7C046000 4180FFD0 +354AFFFF 4080FFB4 +38000000 3D808002 +618C7838 7D8903A6 +4E800420 00000000 +C2388A34 00000011 +7C7E1B78 2C1EFFFF +4082007C 4800004D +7C6802A6 7FA4EB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2061 7564696F +2066696C 65202573 +20646F65 73206E6F +74206578 6973740A +00000000 00000000 +C20272DC 00000008 +38A00000 81820158 +398C0001 80030000 +90040000 38630004 +38840004 38A50001 +7C056000 4180FFE8 +3D808002 618C73D4 +7D8903A6 4E800420 +60000000 00000000 +C2026CBC 00000012 +81620158 396B0001 +38800000 80A20090 +80E20060 80C70008 +80E7000C 39800000 +88050001 7C000774 +7C030000 4082002C +80060000 2C000001 +40820020 80070000 +2C00FFFF 40820014 +3D808002 618C6DF8 +7D8903A6 4E800420 +38840001 38A50004 +38C60004 38E70004 +398C0001 7C0C5800 +4180FFB0 3463FFFF +4080FF88 3D808002 +618C6DF4 7D8903A6 +4E800420 00000000 +C2026680 0000000E +38600000 80E20090 +7CA82B78 7C892378 +81620158 396B0001 +88070001 7C000774 +7C0A0000 40820020 +80080000 2C000001 +40820014 80090000 +2C00FFFF 40820008 +4E800020 38E70004 +39080004 39290004 +38630001 7C035800 +4180FFC0 354AFFFF +4080FFA0 3860FFFF +4E800020 00000000 +C20269F8 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +83620158 3B7B0001 +83C20090 80620060 +8383000C 83A30010 +3BE00000 881E0001 +2C000005 41820044 +801D0000 2C00FFFF +41820038 801C0000 +2C00FFFF 4082002C +807D0000 3D808038 +618C8B60 7D8903A6 +4E800421 2C030001 +41820004 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFA0 +83C20090 80620060 +8383000C 83A30010 +3D808038 618C8B50 +7D8903A6 4E800421 +2C030000 41820064 +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +38600002 3D808038 +618C8D30 7D8903A6 +4E800421 3BE00000 +881E0001 2C000005 +41820010 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFD4 +BA810008 80010104 +38210100 7C0803A6 +3D808002 618C6BF0 +7D8903A6 4E800420 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C202356C 00000002 +80620158 38630001 +1C032710 00000000 +C20237B4 00000002 +80C20158 38C60001 +1C062710 00000000 +C2023B50 00000002 +80620158 38630001 +1C032710 00000000 +C20283B4 00000002 +83E20068 3BFFEE1C +60000000 00000000 +C2028508 00000002 +3FE0803B 63FFB300 +3C800001 00000000 +040268E0 80E20068 +C2026C68 00000002 +80A20068 7CA5002E +60000000 00000000 +040267E0 83E20068 +C2023254 00000028 +7C0802A6 90010004 +9421FE00 BE810008 +7C7A1B78 83020060 +83180014 83820158 +1C7C0004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3B3E0000 +1C7D0004 7F83C12E +38000000 7C03C92E +3BBD0001 7C1DE000 +4180FFE8 3A800000 +7F15C378 3BA00000 +83620090 7FD6F378 +82E20068 881B0000 +7C000774 7C1A0000 +4082006C 80160000 +2C000000 40820060 +80170000 80750000 +54631838 80820068 +7C63202E 7C030040 +40800044 387CFFFF +1C630004 7D63C214 +7D94E050 398CFFFF +7C14E000 4080001C +800BFFFC 900B0000 +396BFFFC 398CFFFF +2C0C0000 4181FFEC +93B50000 38000001 +90160000 3AD60004 +3B7B0004 3AF70008 +3BBD0001 7C1DE000 +4081FF74 3A940001 +3AB50004 7C14E000 +4081FF54 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 80010204 +38210200 7C0803A6 +4E800020 00000000 +C2023578 00000005 +3C6068DB 60638BAD +7C63F096 7C636670 +3D808002 618C3634 +7D8903A6 4E800420 +60000000 00000000 +C2088008 00000003 +38802710 7C6419D6 +90610018 38600000 +60000000 00000000 +C2023148 00000003 +3C8068DB 60848BAD +7C841896 7C836670 +4E800020 00000000 +C2023B5C 00000005 +3C6068DB 60638BAD +7C63D896 7C7A6670 +3D808002 618C3C18 +7D8903A6 4E800420 +60000000 00000000 +C21A56F4 0000000D +38600014 3D808002 +618C6F2C 7D8903A6 +4E800421 887F0070 +81820150 398C0001 +7C036000 40800020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3B9C0001 +3BFF0024 2C1C0006 +4180FFC4 3D80801A +618C5730 7D8903A6 +4E800420 00000000 +C202785C 0000004A +7C0802A6 90010004 +9421FF00 BE810008 +3860000C 3D808002 +618C6F2C 7D8903A6 +4E800421 3D808016 +618CB184 7D8903A6 +4E800421 2C030000 +41820090 38600000 +3D808003 618C2330 +7D8903A6 4E800421 +8082014C 7C032000 +41810070 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A800000 7E83A378 +3D808016 618C9370 +7D8903A6 4E800421 +8082014C 7C032000 +41810020 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A940001 2C140003 +4180FFBC 4800006C +3A800000 7E83A378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820040 +7E83A378 3D808003 +618C2330 7D8903A6 +4E800421 8082014C +7C032000 41810020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140004 4180FFA0 +806D9348 2C0300D9 +41820010 2C0300E5 +41820008 48000020 +3860000C 38A00002 +38C04000 3D808002 +618C702C 7D8903A6 +4E800421 806D9348 +2C030046 41820010 +2C030047 41820008 +48000020 3860000C +38A00000 38C00C00 +3D808002 618C702C +7D8903A6 4E800421 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 1C630003 +80820108 7C841A14 +88640001 906D8238 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D808002 +618C7168 7D8903A6 +4E800421 4800001C +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +3D808002 618C7488 +7D8903A6 4E800421 +2C030001 4182FFD4 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C21A57FC 00000009 +A07E0016 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D80801A +618C5814 7D8903A6 +4E800420 00000000 +C2028404 00000002 +80620060 80630014 +80030000 00000000 +C2028420 00000002 +81820060 818C0014 +800C0000 00000000 +C2028440 00000002 +81820060 818C0014 +800C0004 00000000 +C202845C 00000002 +81820060 818C0014 +800C0008 00000000 +C2028478 00000002 +81820060 818C0014 +800C000C 00000000 +C2028498 00000002 +80620060 80630014 +80030000 00000000 +C2026C3C 00000002 +80820060 80840010 +60000000 00000000 +C2026C5C 00000003 +80620060 8063000C +1C850004 7C04192E +60000000 00000000 +C2026CB0 00000002 +80C20060 80C60008 +60000000 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2026E38 00000002 +80820060 80840010 +7C7D212E 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2028738 00000002 +80620060 8063000C +80030000 00000000 +C2028770 00000002 +81820060 818C0010 +906C0000 00000000 +C202890C 00000002 +81820060 818C000C +3BAC0004 00000000 +C2028910 00000002 +80620060 8063000C +80030004 00000000 +C2028948 00000002 +81820060 818C0010 +906C0004 00000000 +C202895C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2028960 00000002 +80620060 8063000C +800300D8 00000000 +C2028998 00000002 +81820060 818C0010 +906C00D8 00000000 +C20289AC 00000002 +81820060 818C000C +3BAC0008 00000000 +C20289B0 00000002 +80620060 8063000C +80030008 00000000 +C20289E8 00000002 +81820060 818C0010 +906C0008 00000000 +C2028780 00000002 +81820060 818C000C +900C0000 00000000 +C20287C4 00000002 +80620060 80630010 +60000000 00000000 +C20287C8 00000002 +80820060 80840004 +60000000 00000000 +C20287CC 00000002 +80A20060 80A50008 +60000000 00000000 +C20287D0 00000002 +80C20060 80C6000C +60000000 00000000 +C20288BC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C20288C0 00000002 +80620060 8063000C +800300CC 00000000 +C20288F8 00000002 +81820060 818C0010 +906C00CC 00000000 +C20267F4 00000002 +83420060 835A0008 +60000000 00000000 +C20267F0 00000002 +83820060 839C000C +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C202719C 00000002 +80C20060 80C6000C +60000000 00000000 +C2027290 00000002 +80820060 80840004 +60000000 00000000 +C20272D4 00000002 +80620060 80630004 +60000000 00000000 +C20272D8 00000002 +80820060 80840008 +60000000 00000000 +C2027454 00000002 +80820060 80840010 +7C7D212E 00000000 +C2027464 00000002 +80620060 80630004 +60000000 00000000 +C2027BB4 0000000D +81820060 806C0010 +808C0004 80AC0008 +80CC000C 38E00000 +3800FFFF 81020158 +2C070000 41820014 +90030000 90040000 +90050000 90060000 +38630004 38840004 +38A50004 38C60004 +38E70001 7C074000 +4180FFD0 3D808002 +618C7C9C 7D8903A6 +4E800420 00000000 +C2027D4C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2027D50 00000002 +80620060 8063000C +800300D8 00000000 +C2027CE8 00000002 +81820060 818C000C +906C00CC 00000000 +C2027CAC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C2027CB0 00000002 +81820060 818C000C +800C00CC 00000000 +C2027CFC 00000002 +81820060 818C000C +3BAC0004 00000000 +C2027D00 00000002 +80620060 8063000C +80030004 00000000 +C2087D3C 00000011 +2C1E0000 41820010 +2C1E000D 41820018 +48000024 3D808008 +618C7D78 7D8903A6 +4E800420 3D808008 +618C7F84 7D8903A6 +4E800420 81820020 +81420148 39600000 +4800001C 1C6B0010 +7C636214 88630000 +7C03F000 41820020 +396B0001 7C0B5000 +4180FFE4 3D808008 +618C803C 7D8903A6 +4E800420 3D808008 +618C7FFC 7D8903A6 +4E800420 00000000 +C20230D8 00000002 +80020158 2C030000 +60000000 00000000 +04023630 80620158 +040268B8 80020158 +C2027288 00000002 +81820158 7C056000 +60000000 00000000 +C2027278 00000002 +80620158 7C051810 +60000000 00000000 +C20273B4 00000002 +81820158 7C056010 +60000000 00000000 +C20273B8 00000002 +81820158 7C056000 +60000000 00000000 +C2023228 00000002 +81820158 7C036000 +60000000 00000000 +C2027140 00000002 +81820158 7C1C6000 +60000000 00000000 +04026C34 80020158 +C2027008 00000002 +81820158 7C1B6000 +60000000 00000000 +C22FF870 0000000A +80620158 48000019 +D03F0154 8062015C +4800000D D03F0194 +4800002C 9421FFF4 +6C638000 C822CA08 +90610008 3C604330 +90610004 C8410004 +EC220828 3821000C +4E800020 80010024 +60000000 00000000 +043883F8 38840037 +C2026880 00000002 +80620158 7C171800 +60000000 00000000 +04026EA4 80820020 +C202742C 00000002 +80820024 7C84E82E +60000000 00000000 +C2026E10 00000002 +80820024 7C84E82E +60000000 00000000 +C2028970 00000002 +80820024 808400D8 +60000000 00000000 +C2028748 00000002 +80820024 80840000 +60000000 00000000 +C20288D0 00000002 +80820024 808400CC +60000000 00000000 +C20289C0 00000002 +80820024 80840008 +60000000 00000000 +C2028920 00000002 +80820024 80840004 +60000000 00000000 +C2023E34 00000002 +80820024 7C84002E +60000000 00000000 +04023234 80820090 +040267DC 83C20090 +C2027AD0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2026664 00000002 +80820060 80A40008 +8084000C 00000000 +C2026E60 00000002 +80820060 8004000C +60000000 00000000 +C20268DC 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2027198 00000002 +83C20060 83DE0000 +60000000 00000000 +C2028368 00000002 +80620060 80630000 +60000000 00000000 +C202645C 00000002 +80620060 80630000 +60000000 00000000 +C20283A8 00000002 +83C20060 83DE0000 +60000000 00000000 +C20283B8 00000002 +3C608043 60633C24 +60000000 00000000 +C2028590 00000002 +3CC08044 60C61064 +60000000 00000000 +C2028530 00000002 +3CC08043 60C63C64 +60000000 00000000 +C20286B0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2027E0C 00000002 +83E20060 83FF0000 +60000000 00000000 +C20270D0 00000002 +83E20060 83FF0004 +60000000 00000000 +C2026FC8 00000002 +83820060 839C0004 +60000000 00000000 +C2026C28 00000002 +83C20060 83DE0000 +60000000 00000000 +C20267C4 00000002 +83A20060 83BD0000 +60000000 00000000 +C202749C 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2024DC8 00000002 +80A20060 80A50000 +60000000 00000000 +C202766C 00000002 +83A20060 83DD0008 +83BD000C 00000000 +C20269DC 00000002 +83020060 8338000C +83180010 00000000 +C21647FC 00000004 +80820178 80840008 +80840050 1C630002 +7C63222E 4E800020 +60000000 00000000 +C226B40C 00000023 +2C041388 41800108 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3BA4EC78 +3C608049 6063E6C8 +83830088 80620178 +80630028 8063000C +1C9C0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 4800008C +48000051 7C6802A6 +7FA4EB78 7F85E378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20737461 +67652025 640A0000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 3CA0804A +60000000 00000000 +C21C60C8 0000002B +80610014 7C0802A6 +90010004 9421FF00 +BE810008 7C7D1B78 +3C608049 6063E6C8 +83830088 3B400000 +7FA3EB78 48000075 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820034 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084002C 1CBC0004 +7C84282E 4800003D +3B400001 7FA3EB78 +7F84E378 38A00001 +3D80803D 618C7070 +7D8903A6 4E800421 +7F5A1B78 48000084 +4E800021 67724675 +6E637469 6F6E0000 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 4800004C +1C680008 7D633A14 +806B0000 54600001 +40820018 1C830004 +806B0004 7C635214 +7C64492E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFB0 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80610014 00000000 +C22599EC 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83820100 83620154 +7F63DB78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3A800000 +1C740020 7C83E214 +80640004 2C030000 +41800028 8864000A +3D808016 618C4330 +7D8903A6 4E800421 +2C030000 4182000C +7E9DF1AE 3BBD0001 +3A940001 7C14D800 +4180FFC0 2C1D0000 +4082002C 7F65DB78 +48000014 1C850020 +7C84E214 38600000 +90640004 38A5FFFF +2C050000 4080FFE8 +4BFFFF8C 7FA3EB78 +3D808038 618C0580 +7D8903A6 4E800421 +7FE3F0AE 1C9F0020 +7C84E214 3860FFFF +90640004 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +7FE3FB78 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225B39C 00000003 +80C20178 80C60004 +80C60000 38C60004 +60000000 00000000 +C225BC08 00000003 +80820100 1C630020 +7C632214 8063001C +4E800020 00000000 +042251A4 80020104 +04225204 80020104 +042251C8 80020104 +040569FC 80820110 +04056A2C 80A20110 +04056A64 80A20110 +04056A9C 80A20110 +04056AD4 80A20110 +04056B0C 80A20110 +04056B44 80A20110 +04259FE0 88030009 +0425B270 92FF00A0 +0425B274 881F00A8 +0425B294 981F00A8 +0425B2A8 889F00A9 +0425B1E8 3BFF0220 +0425B1D0 92DF03A0 +0425B044 92FC01A0 +0425B048 881C01A8 +0425B068 981C01A8 +0425B07C 889C01A9 +0425AFB0 3B9F0160 +0425AEDC 901B0020 +0425AEE0 881B0028 +0425AEFC 807B0020 +0425AF20 881B0029 +0425AF28 807B0020 +0425BB40 8004001C +C225A0F4 0000000A +81820154 7C036000 +4182002C 398CFFFF +7C036000 41820020 +1C030020 7C7F0214 +88630009 7C630774 +2C03FFFF 41820008 +48000014 3D808025 +618CA1D8 7D8903A6 +4E800420 807E0000 +60000000 00000000 +C225A62C 00000002 +81820154 7C056040 +60000000 00000000 +C2259FB4 00000002 +81820154 7C1E6000 +60000000 00000000 +C2259C4C 0000000A +81820154 7C036000 +41820020 398CFFFF +7C036000 41820024 +3D808025 618C9C84 +7D8903A6 4E800420 +3D808025 618C9C64 +7D8903A6 4E800420 +3D808025 618C9C74 +7D8903A6 4E800420 +60000000 00000000 +C2259C90 00000002 +81820154 7C036000 +60000000 00000000 +C2259E44 00000002 +81820154 7C036040 +60000000 00000000 +0425A0D4 80620154 +0425AA10 80E20154 +0425B580 80020154 +0425A578 83E20100 +0425A4C4 83E20100 +04259FCC 80020100 +04259CA0 80620100 +0425BB30 80820100 +0425A0A4 83E20100 +04259E54 80620100 +C225A9FC 00000002 +7C7C1B78 83E20100 +60000000 00000000 +C225A53C 00000002 +80620154 7C1E1800 +60000000 00000000 +0425A5A0 1C050020 +0425A634 1C050020 +0425A738 1C000020 +0425A7B8 1C000020 +0425A540 3BFF0020 +04259FC4 1C9E0020 +04259C98 1C030020 +0425AD6C 1C170020 +0425AD9C 3AD60020 +0425B0E8 3B9C0020 +0425B314 3BFF0020 +0425AF88 3B7B0040 +0425BB38 1C000020 +0425A0B8 1C050020 +0425A0F8 1C030020 +0425A27C 1C840020 +04259E4C 1C030020 +C2027A14 00000002 +80620108 7C630214 +88A30000 00000000 +04026EF0 80020108 +C20279E0 00000002 +80620108 7C630214 +88030001 00000000 +C21C17A8 00000002 +8082010C 7C840214 +80840000 00000000 +041C0784 8062010C +041C06D4 8002010C +041C1EC8 8002010C +C21C46A8 00000002 +8062010C 7C630214 +80630000 00000000 +041C0FD8 8002010C +041C0F8C 8002010C +041C0828 8082010C +041C2F60 8002010C +041C302C 8002010C +C21C28F0 00000002 +8382010C 3B9CFFCC +60000000 00000000 +C2223930 00000003 +3D80803D 618C7068 +7D8903A6 4E800421 +7C7F1B78 00000000 +C225ACA0 000000B3 +806DB5F4 480004DD +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820568 906D4A08 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E000C +3D808037 618C0E44 +7D8903A6 4E800421 +7C7D1B78 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00082 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0010 38A00000 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 82DD0010 +7EC3B378 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EC3B378 3D808037 +618C0928 7D8903A6 +4E800421 82D60008 +2C160000 4082FFCC +82820100 3AA00000 +8074001C 3D808016 +618C4430 7D8903A6 +4E800421 2C030000 +4182000C 38000002 +48000008 38000001 +98140008 3A940020 +3AB50001 80620154 +7C151800 4180FFC4 +3AC00000 82E20100 +831D0010 80620154 +3863FFFF 7C161800 +418201A0 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E0000 +3D808037 618C0E44 +7D8903A6 4E800421 +7C751B78 7E83A378 +888DC1A9 7EA5AB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00083 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00003 3D808038 +618CFD54 7D8903A6 +4E800421 7EA3AB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7EA3AB78 +7F04C378 4800029D +92B70000 88170008 +2C000001 418200A8 +418000AC 7EA3AB78 +88970009 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +38760002 6C638000 +90610084 3C604330 +90610080 C822C9B8 +C8010080 EC200828 +7EA3AB78 38800010 +3D808036 618CF7B0 +7D8903A6 4E800421 +7EA3AB78 3D808037 +618C0928 7D8903A6 +4E800421 7EA3AB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +48000028 38000000 +98170008 7EA3AB78 +38800010 3D808037 +618C1D9C 7D8903A6 +4E800421 48000004 +3AD60001 3AF70020 +83180008 2C180000 +4082FE44 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 806DB5F8 +80630010 3D808037 +618C0E44 7D8903A6 +4E800421 7C751B78 +7E83A378 888DC1A9 +7EA5AB78 3D808039 +618C0A70 7D8903A6 +4E800421 7E83A378 +3C808039 60841070 +38A00004 38C00083 +3D808039 618C069C +7D8903A6 4E800421 +7E83A378 3C808022 +6084EAE0 38A00004 +3D808038 618CFD54 +7D8903A6 4E800421 +7EA3AB78 38800000 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7FA3EB78 38810080 +80A20154 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 7EA3AB78 +80810080 480000C5 +7EA3AB78 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EA3AB78 38800010 +C022C9F8 3D808036 +618CF7B0 7D8903A6 +4E800421 7EA3AB78 +3D808037 618C0928 +7D8903A6 4E800421 +7EA3AB78 38800006 +38A00400 3CC08036 +60C6414C 38E00000 +39000000 39200000 +4CC63182 3D808036 +618C4C08 7D8903A6 +4E800421 80620100 +80820154 3884FFFF +1C840020 7EA4192E +BA810008 80010104 +38210100 7C0803A6 +3D808025 618CB31C +7D8903A6 4E800420 +4E800021 6D65784D +61704461 74610000 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +3D808000 618CC2F8 +7D8903A6 4E800421 +3D808037 618CC444 +7D8903A6 4E800421 +7C7D1B78 3C809000 +60840008 3D808037 +618CAE90 7D8903A6 +4E800421 387D0000 +389E0000 3D808037 +618CCC90 7D8903A6 +4E800421 387F0000 +389D0000 3D808037 +618C1C68 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +38600000 906D4A08 +38600004 00000000 +C225A014 00000004 +808D4A08 2C040000 +4182000C A3BC0000 +48000008 83A10024 +60000000 00000000 +C2259F64 00000004 +80ED4A08 2C070000 +4182000C 80A70014 +48000008 80A60038 +60000000 00000000 +C2173860 00000004 +2C03001A 41800014 +3D808017 618C38EC +7D8903A6 4E800420 +5463063E 00000000 +C21A50AC 00000002 +806200D4 4E800020 +60000000 00000000 +C21A45BC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3FE0803D 63FFACA4 +3D80801A 618C50AC +7D8903A6 4E800421 +7C7E1B78 7FFDFB78 +7FDCF378 889D0001 +2C040008 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C040008 +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 7FFDFB78 +7FDCF378 889D0001 +2C04000E 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C04000E +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 BA810008 +80010104 38210100 +7C0803A6 3BE00000 +60000000 00000000 +C21A4444 00000002 +81820164 7C1B6040 +60000000 00000000 +0401CEAC 80620164 +C21A4568 00000002 +81820164 7C006040 +60000000 00000000 +C21A43E0 00000002 +81820164 7C046040 +60000000 00000000 +C21A448C 00000002 +81820164 7C006040 +60000000 00000000 +C21A3F2C 00000002 +81820164 7C006040 +60000000 00000000 +041A4560 3BFF0018 +041A43D8 38630018 +041A4484 38630018 +041A3F24 3BFF0018 +C21A4D14 00000002 +81820168 7C006040 +60000000 00000000 +C21A50A0 00000002 +806200D8 4E800020 +60000000 00000000 +041A4D0C 38630014 +C21A43EC 00000046 +7C0802A6 90010004 +9421FF00 BE810008 +807E0014 2C030000 +418201EC 3D808033 +618C796C 7D8903A6 +4E800421 7C741B79 +418201D4 807E0014 +3D808001 618C63D8 +7D8903A6 4E800421 +7C7C1B78 80620184 +806300C0 3863001F +54630034 7C7B1B78 +387C001F 54630034 +7FBB1A14 38600063 +54630034 7C7D1A14 +80A20184 808500C0 +7C641850 906500C4 +38000000 900DAD28 +7E83A378 38800000 +7F65DB78 38DC001F +54C60034 38E00021 +39000001 3D208001 +6129615C 39400000 +3D808038 618CF6D4 +7D8903A6 4E800421 +3D808001 618C61A0 +7D8903A6 4E800421 +2C030000 4182FFEC +7FA3EB78 7F64DB78 +7F85E378 3D808001 +618C6A54 7D8903A6 +4E800421 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 418200F8 +7F43D378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A00014 +3D808000 618C3100 +7D8903A6 4E800421 +7F43D378 38810080 +48000051 80610080 +2C030000 41820008 +907E0010 80610084 +2C030000 41820008 +907E0004 80610088 +2C030000 41820008 +907E0008 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000070 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6A4675 6E637469 +6F6E0000 80620184 +38630010 38800000 +908300B4 BA810008 +80010104 38210100 +7C0803A6 38000000 +60000000 00000000 +C21A40C8 0000002B +7C0802A6 90010004 +9421FF00 BE810008 +807A0010 2C030000 +41820124 807A0010 +3D808001 618C6BE0 +7D8903A6 4E800421 +7C7D1B78 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 418200E8 +7FC3F378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A0000F +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 38810080 +48000051 80610080 +2C030000 41820008 +907A0004 80610084 +2C030000 41820008 +907A0008 80610088 +2C030000 41820008 +907A000C 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000060 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6E4675 6E637469 +6F6E0000 BA810008 +80010104 38210100 +7C0803A6 7F23CB78 +60000000 00000000 +C20056BC 00000003 +3D808025 618CD5AC +7D8903A6 4E800420 +4E800020 00000000 +C20056B8 00000002 +80620000 4E800020 +60000000 00000000 +C200561C 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3CA08048 8BC59D30 +8BE59D33 83A200D4 +38800000 1CA40018 +7CBD2A14 88C50001 +7C06F000 4082000C +80650010 48000010 +38840001 2C04002C +4081FFDC 38800000 +1CA40018 7CA32A14 +88C50000 7C06F800 +4082000C 8865000C +48000010 38840001 +2C0600FF 4082FFDC +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +040D6968 80020050 +040D69D0 80020054 +040966A8 80020054 +040D68CC 80020038 +04096704 8002003C +040D6830 80020048 +04096800 8002004C +04096878 8002004C +0409655C 80020040 +0409660C 80020040 +040967C4 80020044 +0409677C 80020044 +C20056A8 00000005 +2C030037 41820018 +81820060 818C0004 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 +C23D7098 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 3A800000 +4800006C 807F23F8 +1C140004 7EA3002E +82F50000 2C170000 +41820050 2C1D0000 +41820008 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4D7C 7D8903A6 +4E800421 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4CA0 7D8903A6 +4E800421 48000004 +3A940001 801F23F4 +7C140000 4180FF90 +48000004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7094 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +2C03000B 408000B4 +48000031 4800004D +48000051 48000055 +48000059 4800005D +48000061 48000065 +48000069 4800006D +48000071 48000075 +7C8802A6 1CA30004 +7C842A14 80A40000 +54A501BA 7C842A14 +7C8903A6 4E800420 +80620148 480000E0 +8062014C 480000D8 +80620150 480000D0 +80620000 480000C8 +8062016C 480000C0 +80620170 480000B8 +80620154 480000B0 +80620100 480000A8 +8062005C 480000A0 +8062010C 48000098 +80620178 80630028 +80630000 48000088 +7C641B78 48000049 +7C6802A6 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +45585F47 65744461 +74612829 20646F65 +73206E6F 74206861 +76652064 61746120 +666F7220 69642025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7068 00000005 +3D808049 618CE6C8 +818C0088 1D8C0004 +8062010C 7C63602E +80630004 4E800020 +60000000 00000000 +C23D7088 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +80620178 80630008 +8063004C 1C9F0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000084 +48000051 7C6802A6 +7FE4FB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 6974656D +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D708C 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3C608049 +6063E6C8 83A30088 +80620178 80630028 +8063000C 1C9D0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000080 +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2073 74616765 +20256420 646F6573 +206E6F74 20686176 +65206974 656D2025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7084 00000003 +1C630004 80820124 +7C63202E 4E800020 +60000000 00000000 +C23D7064 00000025 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +A07F0000 2C030004 +41820010 2C030003 +41820020 480000E0 +807F002C 83A30004 +80620178 80630008 +8063004C 48000020 +3C608049 6063E6C8 +83A30088 80620178 +80630028 8063000C +48000004 1C9D0008 +7F832214 807C0000 +7C1E1800 41810014 +807C0004 1C9E0002 +7C63222E 4800008C +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 61727469 +636C6520 49442025 +640A0000 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D707C 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +3C608049 6063E6C8 +80630088 80820178 +80840028 80840014 +1C630008 7D432214 +806A0004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7058 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 80620178 +80630008 8063004C +1C9F0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 48000090 +48000051 7C6802A6 +7FA4EB78 7FE5FB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20666967 +68746572 2025640A +00000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7070 00000050 +7C0802A6 90010004 +9421FF00 BE810008 +7C9F2378 7CBE2B78 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 418200A0 +829D0000 3AA00000 +2C140000 41820090 +387D0004 1C950004 +7EC3202E 2C160000 +41820068 7EC3B378 +3D80803D 618C7074 +7D8903A6 4E800421 +7FE3FB78 7FC4F378 +7EA5AB78 48000071 +7C691B78 8176000C +81560000 39000000 +48000024 1C880008 +7CA45A14 80650004 +7C635214 80850000 +1C840004 7C64492E +39080001 80760010 +7C081800 4180FFD8 +3AB50001 7C15A000 +4180FF80 38600001 +48000194 38600000 +4800018C 4E800021 +69744675 6E637469 +6F6E0000 7C6B1B78 +7C8A2378 7CAC2B78 +2C0A0001 41820014 +80620178 80630008 +8063004C 48000014 +80620178 80630028 +8063000C 48000004 +1C8B0008 7C632214 +80630004 2C030000 +41820078 1C8C0002 +7C63222E 80820088 +2C03002B 41800020 +2C0300A1 41800020 +2C0300D0 41800024 +2C0300ED 41800028 +48000030 80840000 +48000034 3863FFD5 +80840004 48000028 +3863FF5F 80840008 +4800001C 3863FF30 +8084000C 48000010 +3863FF13 80840010 +48000004 1C63003C +7C632214 4E800020 +2C0A0001 41820010 +4800009D 7C8802A6 +48000010 4800009D +7C8802A6 48000004 +4800004D 7C6802A6 +7D655B78 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +78447420 646F6573 +206E6F74 20636F6E +7461696E 20616E79 +20697465 6D732066 +6F722025 73202564 +0A000000 4E800021 +66696768 74657200 +4E800021 73746167 +65000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7080 00000068 +7C0802A6 90010004 +9421FF00 BE810008 +D3C10080 D3A10084 +D3C10088 7C7F1B78 +7C9E2378 FFE00890 +FFC01090 FFA01890 +83BF002C 807D0004 +2C030004 40820268 +835D2238 80620144 +1C9A0004 7C63202E +2C030000 41820140 +1C9E0020 7F832214 +80620128 1C9A0004 +7C63202E 2C030000 +41820184 809C0000 +1C840018 7F632214 +7FE3FB78 388000EF +3CA02000 38C00000 +FC20F890 FC40F090 +FC60E890 3D808006 +618C93AC 7D8903A6 +4E800421 38600000 +907D0014 387E0190 +907D0010 3860FFFF +907D05A4 807B0004 +2C030000 41820174 +907D0590 807B000C +907D03EC 807D0590 +7FE3FB78 FC20F890 +FC40F090 FC60E890 +3D808006 618CEBE8 +7D8903A6 4E800421 +38600000 907D03E4 +7FE3FB78 3D808006 +618CE9B4 7D8903A6 +4E800421 C0028874 +FC00F840 40820030 +7FE3FB78 3D80800C +618C0408 7D8903A6 +4E800421 7FE3FB78 +3D808007 618C3240 +7D8903A6 4E800421 +48000018 7FE3FB78 +3D808007 618C3354 +7D8903A6 4E800421 +807C000C 907D21A0 +807C0010 907D219C +807C0014 907D21A4 +807C0018 907D21A8 +807C001C 907D21AC +4800018C 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +48000130 4E800021 +6572726F 723A206B +6266756E 6374696F +6E20696E 20257320 +6D697373 696E6720 +6D6F7665 5F6C6F67 +69632074 61626C65 +0A000000 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +480000D0 4E800021 +6572726F 723A2025 +73206D69 7373696E +67206674 636D6420 +73796D62 6F6C0A00 +4800002D 7C6802A6 +80820114 1CBA0008 +7C84282E 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000080 4E800021 +6572726F 723A2066 +74636D64 20696E20 +2573206D 69737369 +6E672061 6E696D61 +74696F6E 20666F72 +20737461 74652025 +640A0000 48000021 +7C6802A6 809D0004 +3D808034 618C56A8 +7D8903A6 4E800421 +48000028 4E800021 +6572726F 723A2066 +69676874 65722025 +64206973 206E6F74 +206B6972 62790A00 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +48000000 C3C10080 +C3A10084 C3C10088 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D709C 0000001E +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +38810080 7FA5EB78 +38C00000 3D808001 +618C6C64 7D8903A6 +4E800421 7C7A1B78 +83210080 2C190000 +41820024 7F23CB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F23CB78 7FC4F378 +48000035 807A0020 +809A0000 3D808032 +618C8F50 7D8903A6 +4E800421 7F43D378 +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C6C1B78 +7C892378 80EC000C +814C0000 39000000 +48000028 1C680008 +7D633A14 806B0004 +7C635214 808B0000 +1C840004 7C64492E +48000004 39080001 +806C0010 7C081800 +4180FFD4 4E800020 +60000000 00000000 +C23D7090 000000A4 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3FC0804A +63DE04F0 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +837C0008 A06DB528 +2C030000 40810010 +3863FFFF B06DB528 +480004C0 38600004 +3D808022 618C9624 +7D8903A6 4E800421 +7C7D1B78 93BE000C +38600000 907E0008 +57A006F7 4182028C +3A800000 4800003C +7E83A378 3D80801A +618C36A0 7D8903A6 +4E800421 5460063F +4182001C 7E83A378 +3D808016 618C77E8 +7D8903A6 4E800421 +48000010 3A940001 +2C140004 4180FFC4 +38600001 3D808002 +618C4030 7D8903A6 +4E800421 38600005 +B06DB528 38600001 +987E0011 A07E0002 +1C630008 7F43DA14 +887A0000 2C030000 +41820010 2C030001 +418201D4 48000404 +806DB8E0 80630004 +881A0001 1C000014 +7F230214 887A0001 +2C030007 40820038 +81990010 2C0C0000 +418200AC 7D8903A6 +38600000 38800001 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +480003B0 887A0001 +2C030008 40820014 +818DB614 7D8903A6 +4E800421 48000394 +887A0001 2C030021 +40820030 38600000 +3D808024 618CCD64 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 4800035C +80790010 2C030000 +41820024 7C6903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +48000330 887E0000 +987E0001 887A0001 +987E0000 3A800000 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182000C +B29E0002 48000010 +3A940001 7C145800 +4180FFD0 38600001 +3D808022 618CB3A0 +7D8903A6 4E800421 +3D808039 618C0CD4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +48000238 3D80801A +618C4B9C 7D8903A6 +4E800421 881A0001 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 4800020C +57A006B5 41820148 +38600000 3D808002 +618C4030 7D8903A6 +4E800421 887C000D +7C630774 2C03FFFF +40820030 3D80801A +618C4B9C 7D8903A6 +4E800421 38000000 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 480001B4 +38600000 987E0011 +887E0000 987E0001 +887C000D 987E0000 +39800000 893E0001 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19E0002 +48000010 398C0001 +7C0C5800 4180FFD0 +38600003 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +480000C0 57A007FF +4182005C 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A94FFFF +7E800734 2C00FFFF +4181000C 887C000C +3A83FFFF 887E0000 +7E84A378 3D808022 +618C9938 7D8903A6 +4E800421 2C030000 +4182FFCC B29E0002 +48000060 57A007BD +41820058 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A940001 +889C000C 7C142000 +41800008 3A800000 +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182FFD0 +B29E0002 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D7074 0000003C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF0008 +83BF0000 839F0004 +836200F8 807B0000 +2C030014 4080013C +3B400000 833B0000 +3B1B0004 48000018 +80780000 7C03F800 +4182010C 3B5A0001 +3B180004 7C1AC800 +4180FFE8 807B0000 +1C630004 38BB0004 +7FE3292E 807B0000 +38630001 907B0000 +807C0000 5479463E +5463023E 7F63EA14 +807C0004 54604636 +2C000080 4182000C +7F43EA14 48000008 +835C0004 2C190001 +41820028 2C190004 +41820028 2C190006 +41820020 2C19000A +41820060 2C19001A +41820070 48000078 +935B0000 48000070 +57438FFF 4182001C +5743843E 38630001 +5466801E 7C66D050 +5465043E 7CDA2B78 +2C190004 41820014 +2C190006 41820004 +5743843E 4800000C +5743043E 48000004 +B07B0000 48000028 +7C7BD050 546301BA +809B0000 7C632378 +907B0000 48000010 +7C7BD050 907B0000 +48000004 3B9C0008 +3BDEFFFF 2C1E0000 +4181FF28 BA810008 +80010104 38210100 +7C0803A6 4E800020 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A206F 76657220 +32302078 46756E63 +74696F6E 7320696E +64657865 640A0000 +60000000 00000000 +C23D7078 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3C608049 +6063E6C8 80630088 +80820108 1C630003 +7C632214 88630000 +1C632710 7C63FA14 +3D80801C 618C53EC +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C2268648 00000026 +7C0802A6 90010004 +9421FF00 BE810008 +837E0008 2C1B1388 +41800100 3B7BEC78 +83FE0000 2C1F0000 +41820034 A07F0000 +2C030004 41820010 +2C030003 41820020 +480000D8 80620178 +80630008 8063004C +809F002C 80840004 +4800001C 80620178 +80630028 8063000C +3C808049 6084E6C8 +80840088 1C840008 +7F832214 807C0000 +7C1B1800 40800018 +807C0004 1C9B0002 +7C63222E 907E0008 +48000080 4800004D +7C6802A6 7F64DB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20686176 65206172 +7469636C 65204944 +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +807E000C 00000000 +C23D7060 00000016 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +83ADB8DC 2C1D0000 +41820078 83820148 +387CFFFA 7C1F1800 +41800028 387CFFFF +7C1F1800 4181001C +387CFFFA 7C63F850 +48000045 7C8802A6 +7C6320AE 48000018 +A07D0000 A09D0002 +7C84F1D6 7C632214 +7C63FA14 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +48000010 4E800021 +03020101 05060000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D706C 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +38800000 7FE5FB78 +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C2088170 00000010 +3B830000 3CA068DB +60A58BAD 7C7D2896 +7C636670 2C030000 +4082005C 2C1D1388 +41800054 3CA068DB +60A58BAD 7CBD2896 +7CA35E70 7FA5FE70 +7CA51850 1CA51388 +7FA5E850 887C000C +3C808045 60843080 +1C630E90 7C632214 +80630004 80820020 +1C630010 7C6320AE +1C632710 7FA3EA14 +48000004 7F83E378 +7FA4EB78 00000000 +C2088204 0000000F +3CA068DB 60A58BAD +7C7E2896 7C636670 +2C030000 4082005C +2C1E1388 41800054 +3CA068DB 60A58BAD +7CBE2896 7CA35E70 +7FC5FE70 7CA51850 +1CA51388 7FC5F050 +887F000C 3C808045 +60843080 1C630E90 +7C632214 80630004 +80820020 1C630010 +7C6320AE 1C632710 +7FC3F214 48000004 +881F2225 00000000 +C20884B0 00000010 +3BA30000 3CA068DB +60A58BAD 7D642896 +7D6B6670 2C0B0000 +4082005C 2C041388 +41800054 3CA068DB +60A58BAD 7CA42896 +7CAB5E70 7C85FE70 +7CA55850 1CA51388 +7C852050 897D000C +3D808045 618C3080 +1D6B0E90 7D6B6214 +816B0004 81820020 +1D6B0010 7D6B60AE +1D6B2710 7C8B2214 +48000004 7FA3EB78 +60000000 00000000 +C20CBCB4 0000000E +80840014 3D8068DB +618C8BAD 7D646096 +7D6B6670 2C0B0000 +40820050 2C041388 +41800048 7D846096 +7D8B5E70 7C8CFE70 +7D8C5850 1D8C1388 +7C8C2050 897F000C +3D408045 614A3080 +1D6B0E90 7D6B5214 +816B0004 81420020 +1D6B0010 7D6B50AE +1D6B2710 7C8B2214 +60000000 00000000 +C2075124 00000005 +7FC3F378 38800002 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C2075188 00000005 +7FC3F378 38800003 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C20751F0 00000005 +7FC3F378 7FA4EB78 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C207B4C0 00000082 +7C0802A6 90010004 +9421FF00 BE810008 +83FD0000 807D0004 +8082005C 1C630008 +7C63202E 881D0619 +1C000018 7C630214 +83C30014 7FC3F378 +48000271 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820394 +3B830008 801C0000 +2C000000 41820384 +801C0000 901D23F4 +1C600004 3D808037 +618CF1E4 7D8903A6 +4E800421 907D23F8 +3A800000 4800020C +807C0004 1C140004 +7EA3002E 38600030 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C761B78 807D23F8 +1C140004 7EC3012E +3C608045 60639080 +3D808037 618CABC8 +7D8903A6 4E800421 +9076000C 80750000 +3D808037 618C0E44 +7D8903A6 4E800421 +90760000 80150004 +90160004 3D808007 +618C4148 7D8903A6 +4E800421 3D808007 +618C4170 7D8903A6 +4E800421 7FE3FB78 +80960000 38B60008 +3D808007 618C5650 +7D8903A6 4E800421 +38D60008 7CC73378 +38A00000 38960010 +38750010 3D808007 +618C487C 7D8903A6 +4E800421 3AE00000 +48000094 8075000C +1C170004 7F23002E +3B1D02F0 807D03E0 +1C030018 7F180214 +807D03E0 38630001 +907D03E0 2C03000A +40800128 80760000 +38810080 80B90000 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38980004 80B90008 +3D808000 618CFD48 +7D8903A6 4E800421 +38000000 90180000 +38790004 38980004 +3D808001 618C1710 +7D8903A6 4E800421 +3AF70001 80150008 +7C170000 4180FF68 +3D808021 618CB2D8 +7D8903A6 4E800421 +3AE00000 48000074 +8075001C 1C170004 +7F23002E 3B1D1670 +887D166C 1C030028 +7F180214 887D166C +38630001 987D166C +2C03000B 408000D0 +80790000 90780024 +80790000 809D05E8 +1C630010 7C63202E +90780010 C0390004 +D0380000 C0390008 +D0380004 C039000C +D0380008 C0390010 +D038000C 3AF70001 +80150018 7C170000 +4180FF88 3A940001 +801C0000 7C140000 +4180FDF0 48000150 +4E800021 6D657843 +6F737475 6D650000 +480000C5 7C6802A6 +8082000C 801D0004 +1C000004 7C84002E +881D0619 1C000010 +7C840214 80840000 +3D808034 618C56A8 +7D8903A6 4E800421 +48000081 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4800009D +7C6802A6 8082000C +801D0004 1C000004 +7C84002E 881D0619 +1C000010 7C840214 +80840000 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A2063 +6F737475 6D652025 +73207573 6573206D +6F726520 7468616E +20313020 64796E61 +6D696373 0A000000 +4E800021 6572726F +723A2063 6F737475 +6D652025 73207573 +6573206D 6F726520 +7468616E 20313120 +64796E61 6D696373 +20686974 730A0000 +38000000 901D23F4 +901D23F8 BA810008 +80010104 38210100 +7C0803A6 8001002C +60000000 00000000 +C2080DC8 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C2080BCC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C21A4C98 00000011 +818200F8 816DC018 +39400000 38E00000 +812C0000 390C0004 +48000028 80680000 +7C035800 40800014 +38AC0004 1C870004 +7C64292E 38E70001 +394A0001 39080004 +7C0A4800 4180FFD8 +90EC0000 818200F8 +386C0004 1C870004 +7C632214 38800000 +38A00050 1CC70004 +7CA62850 3D808000 +618C3100 7D8903A6 +4E800421 806DB08C +60000000 00000000 +C2394A74 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +48000105 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +3BE00000 83DC0004 +480000D0 83A200F8 +3B800000 837D0000 +3B5D0004 48000088 +833A0000 80790000 +809E0004 7C041800 +4180006C 80B90014 +7C632A14 7C041800 +4181005C 3B000000 +82F90018 8079001C +1C98000C 7D832214 +80790000 808C0000 +7C632214 809E0004 +7C041800 41800024 +80790000 808C0004 +7C632214 809E0004 +7C041800 4181000C +80AC0008 48000028 +3B180001 7C18B800 +4180FFB4 3B9C0001 +3B5A0004 7C1CD800 +4180FF78 48000069 +7CA802A6 48000051 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +83DE0000 3BFF0001 +2C1F0008 40800040 +2C1EFFFF 4082FF28 +48000034 4E800021 +204C5220 53617665 +3A202053 796D626F +6C0A0000 4E800021 +25583A20 2025730A +00000000 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 3D808039 +618C4B04 7D8903A6 +4E800420 00000000 +C2394BD4 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83A200F8 3B800000 +837D0000 3B5D0004 +48000088 833A0000 +80790000 809E0198 +7C041800 4180006C +80B90014 7C632A14 +7C041800 4181005C +3B000000 82F90018 +8079001C 1C98000C +7D832214 80790000 +808C0000 7C632214 +809E0198 7C041800 +41800024 80790000 +808C0004 7C632214 +809E0198 7C041800 +4181000C 808C0008 +48000028 3B180001 +7C18B800 4180FFB4 +3B9C0001 3B5A0004 +7C1CD800 4180FF78 +48000035 7C8802A6 +4800001D 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +4800001C 4E800021 +53796D62 6F6C3A20 +25730A00 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 5760018D +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag From ebefe7fc9e7b917e0a61cde29178ebae56bc2498 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 7 Jun 2021 04:14:05 -0700 Subject: [PATCH 004/217] store ticks when input is fetched --- External/Debug Inputs/DebugInputs.s | 10 ++++ External/Debug Inputs/InitBuffer.asm | 30 ++++++++++ External/Debug Inputs/StoreCaptureTimes.asm | 65 +++++++++++++++++++++ Output/Netplay/GALE01r2.ini | 64 ++++++++++++++++++++ Output/Netplay/GALJ01r2.ini | 64 ++++++++++++++++++++ netplay.json | 17 ++++++ 6 files changed, 250 insertions(+) create mode 100644 External/Debug Inputs/DebugInputs.s create mode 100644 External/Debug Inputs/InitBuffer.asm create mode 100644 External/Debug Inputs/StoreCaptureTimes.asm diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s new file mode 100644 index 00000000..b0b07391 --- /dev/null +++ b/External/Debug Inputs/DebugInputs.s @@ -0,0 +1,10 @@ + +.set INJ_InitDebugInputs, 0x8016e774 + +.set CIRCULAR_BUFFER_COUNT, 10 + +.set DIB_IS_READY, 0 # u8 +.set DIB_POLL_INDEX, DIB_IS_READY + 1 # u8 +.set DIB_ENGINE_INDEX, DIB_POLL_INDEX + 1 # u8 +.set DIB_CIRCULAR_BUFFER, DIB_ENGINE_INDEX + 1 # u32 * CIRCULAR_BUFFER_COUNT +.set DIB_SIZE, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) \ No newline at end of file diff --git a/External/Debug Inputs/InitBuffer.asm b/External/Debug Inputs/InitBuffer.asm new file mode 100644 index 00000000..19544e7b --- /dev/null +++ b/External/Debug Inputs/InitBuffer.asm @@ -0,0 +1,30 @@ +################################################################################ +# Address: INJ_InitDebugInputs +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" # Required for logf buffer, should fix that +.include "./DebugInputs.s" + +b CODE_START + +DATA_BLRL: +blrl +.long 0 # Buffer + +CODE_START: + +# logf LOG_LEVEL_WARN, "Init..." + +li r3, DIB_SIZE +branchl r12, HSD_MemAlloc + +bl DATA_BLRL +mflr r4 +stw r3, 0(r4) # Write address to static address + +li r4, DIB_SIZE +branchl r12, Zero_AreaLength + +EXIT: +lfs f1, -0x5738(rtoc) \ No newline at end of file diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm new file mode 100644 index 00000000..699e494e --- /dev/null +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -0,0 +1,65 @@ +################################################################################ +# Address: 0x80376a88 +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" # Required for logf buffer, should fix that +.include "./DebugInputs.s" + +# Check if VS Mode +getMinorMajor r3 +cmpwi r3, 0x0202 +bne EXIT + +load r3, 0x80479d64 +lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state +cmpwi r3, 0 # Loading state should be zero when game starts +bne EXIT + +.set REG_DIB, 31 +.set REG_INTERRUPTS, 30 + +backup + +branchl r12, OSDisableInterrupts +mr REG_INTERRUPTS, r3 + +# Fetch DIB +computeBranchTargetAddress r3, INJ_InitDebugInputs +lwz REG_DIB, 8+0(r3) + +# Get and write current tick +branchl r12, 0x8034c408 # OSGetTick +lbz r4, DIB_POLL_INDEX(REG_DIB) +mulli r4, r4, 4 # Get index offset +addi r4, r4, DIB_CIRCULAR_BUFFER +stwx r3, REG_DIB, r4 + +# Log us, not needed +li r4, 486 +divwu r3, r3, r4 +mulli r4, r3, 12 +loadGlobalFrame r3 +logf LOG_LEVEL_WARN, "%d %d", "mr 5, 3", "mr 6, 4" + +# Increment index +lbz r3, DIB_POLL_INDEX(REG_DIB) +addi r3, r3, 1 +cmpwi r3, CIRCULAR_BUFFER_COUNT +blt SKIP_IDX_WRAP +li r3, 0 +SKIP_IDX_WRAP: +stb r3, DIB_POLL_INDEX(REG_DIB) + +# Indicate ready, prevents other functions from running first +li r3, 1 +stb r3, DIB_IS_READY(REG_DIB) + +# Restore interrupts +mr r3, REG_INTERRUPTS +branchl r12, OSRestoreInterrupts + +restore + +EXIT: +lbz r0, 0x0002(r31) # replaced code line \ No newline at end of file diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index de54982e..93c1a26c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5708,3 +5708,67 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 3D808023 618C754C 7D8903A6 4E800421 60000000 00000000 + +$Debug Input Timings [Fizzi] +*Try to debug inputs +C216E774 00000009 #External/Debug Inputs/InitBuffer.asm +4800000C 4E800021 +00000000 3860002B +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFFE5 7C8802A6 +90640000 3880002B +3D808000 618CC160 +7D8903A6 4E800421 +C022A8C8 00000000 +C2376A88 00000032 #External/Debug Inputs/StoreCaptureTimes.asm +3C608048 80639D30 +5463443E 2C030202 +40820178 3C608047 +60639D64 80630000 +2C030000 40820164 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 3D808034 +618CC408 7D8903A6 +4E800421 889F0001 +1C840004 38840003 +7C7F212E 388001E6 +7C632396 1C83000C +3C608048 80639D60 +48000010 4E800021 +25642025 64000000 +7C0802A6 90010004 +9421FF00 BC610008 +7C651B78 7C862378 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFC9 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 887F0001 +38630001 2C03000A +41800008 38600000 +987F0001 38600001 +987F0000 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f1992e64..c9cad7d1 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5708,3 +5708,67 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 3D808023 618C754C 7D8903A6 4E800421 60000000 00000000 + +$Debug Input Timings [Fizzi] +*Try to debug inputs +C216E774 00000009 #External/Debug Inputs/InitBuffer.asm +4800000C 4E800021 +00000000 3860002B +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFFE5 7C8802A6 +90640000 3880002B +3D808000 618CC160 +7D8903A6 4E800421 +C022A8C8 00000000 +C2376A88 00000032 #External/Debug Inputs/StoreCaptureTimes.asm +3C608048 80639D30 +5463443E 2C030202 +40820178 3C608047 +60639D64 80630000 +2C030000 40820164 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 3D808034 +618CC408 7D8903A6 +4E800421 889F0001 +1C840004 38840003 +7C7F212E 388001E6 +7C632396 1C83000C +3C608048 80639D60 +48000010 4E800021 +25642025 64000000 +7C0802A6 90010004 +9421FF00 BC610008 +7C651B78 7C862378 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFC9 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 887F0001 +38630001 2C03000A +41800008 38600000 +987F0001 38600001 +987F0000 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 diff --git a/netplay.json b/netplay.json index 28ebc3d1..d06f64e1 100644 --- a/netplay.json +++ b/netplay.json @@ -469,6 +469,23 @@ "isRecursive": true } ] + }, + { + "name": "Debug Input Timings", + "authors": [ + "Fizzi" + ], + "description": [ + "Try to debug inputs" + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "External/Debug Inputs", + "isRecursive": true, + "annotation": "Debug Inputs" + } + ] } ] } \ No newline at end of file From 17c5100841eeb9ccc4306ae6faea1153f2598698 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 7 Jun 2021 16:11:34 -0700 Subject: [PATCH 005/217] add macro to increment byte --- External/Debug Inputs/DebugInputs.s | 13 +++++++++++++ External/Debug Inputs/StoreCaptureTimes.asm | 8 +------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index b0b07391..e168dad1 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -1,4 +1,17 @@ +################################################################################ +# Macros +################################################################################ +.macro incrementByte reg, reg_address, offset, limit +lbz \reg, \offset(\reg_address) +addi \reg, \reg, 1 +cmpwi \reg, \limit +blt 0f +li \reg, 0 +0: +stb \reg, \offset(\reg_address) +.endm + .set INJ_InitDebugInputs, 0x8016e774 .set CIRCULAR_BUFFER_COUNT, 10 diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm index 699e494e..73beee70 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -43,13 +43,7 @@ loadGlobalFrame r3 logf LOG_LEVEL_WARN, "%d %d", "mr 5, 3", "mr 6, 4" # Increment index -lbz r3, DIB_POLL_INDEX(REG_DIB) -addi r3, r3, 1 -cmpwi r3, CIRCULAR_BUFFER_COUNT -blt SKIP_IDX_WRAP -li r3, 0 -SKIP_IDX_WRAP: -stb r3, DIB_POLL_INDEX(REG_DIB) +incrementByte r3, REG_DIB, DIB_POLL_INDEX, CIRCULAR_BUFFER_COUNT # Indicate ready, prevents other functions from running first li r3, 1 From 289bf2ee5012464625bd1ef1fb58555243e0969d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 8 Jun 2021 04:35:27 -0700 Subject: [PATCH 006/217] add timing logic when engine starts --- External/59.94Hz Engine/InGameSpeed.asm | 5 + External/59.94Hz Engine/MenuSpeed.asm | 5 + External/59.94Hz Engine/SetSpeedOnBoot.asm | 5 + External/59.94Hz Engine/TrainingModeSpeed.asm | 5 + External/Debug Inputs/AllocBuffer.asm | 14 ++ External/Debug Inputs/Boot To CSS.asm | 6 + External/Debug Inputs/DebugInputs.s | 32 +++-- External/Debug Inputs/LogEngineTime.asm | 53 ++++++++ External/Debug Inputs/StoreCaptureTimes.asm | 21 ++- Online/Slippi Online Scene/boot.asm | 2 +- Output/Console/g_lag_pd.bin | Bin 48 -> 32 bytes Output/Netplay/GALE01r2.ini | 123 ++++++++++++++---- Output/Netplay/GALJ01r2.ini | 123 ++++++++++++++---- console_lag_pd.json | 13 +- netplay.json | 23 +++- 15 files changed, 348 insertions(+), 82 deletions(-) create mode 100644 External/59.94Hz Engine/InGameSpeed.asm create mode 100644 External/59.94Hz Engine/MenuSpeed.asm create mode 100644 External/59.94Hz Engine/SetSpeedOnBoot.asm create mode 100644 External/59.94Hz Engine/TrainingModeSpeed.asm create mode 100644 External/Debug Inputs/AllocBuffer.asm create mode 100644 External/Debug Inputs/Boot To CSS.asm create mode 100644 External/Debug Inputs/LogEngineTime.asm diff --git a/External/59.94Hz Engine/InGameSpeed.asm b/External/59.94Hz Engine/InGameSpeed.asm new file mode 100644 index 00000000..2fe5f56d --- /dev/null +++ b/External/59.94Hz Engine/InGameSpeed.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x804DA2A8 +################################################################################ + +.long 0x3C88AB85 \ No newline at end of file diff --git a/External/59.94Hz Engine/MenuSpeed.asm b/External/59.94Hz Engine/MenuSpeed.asm new file mode 100644 index 00000000..10cfb783 --- /dev/null +++ b/External/59.94Hz Engine/MenuSpeed.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x804DA9E8 +################################################################################ + +.long 0x3C88AB85 \ No newline at end of file diff --git a/External/59.94Hz Engine/SetSpeedOnBoot.asm b/External/59.94Hz Engine/SetSpeedOnBoot.asm new file mode 100644 index 00000000..460a4c38 --- /dev/null +++ b/External/59.94Hz Engine/SetSpeedOnBoot.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x804D7CA0 +################################################################################ + +.long 0x3C88AB85 \ No newline at end of file diff --git a/External/59.94Hz Engine/TrainingModeSpeed.asm b/External/59.94Hz Engine/TrainingModeSpeed.asm new file mode 100644 index 00000000..50e3c519 --- /dev/null +++ b/External/59.94Hz Engine/TrainingModeSpeed.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x804DA5F8 +################################################################################ + +.long 0x3C88AB85 \ No newline at end of file diff --git a/External/Debug Inputs/AllocBuffer.asm b/External/Debug Inputs/AllocBuffer.asm new file mode 100644 index 00000000..21464ad9 --- /dev/null +++ b/External/Debug Inputs/AllocBuffer.asm @@ -0,0 +1,14 @@ +################################################################################ +# Address: 0x801a4cb4 +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" + +# Alloc buffer + li r3,128 + branchl r12,HSD_MemAlloc + stw r3,OFST_R13_SB_ADDR(r13) + +# Original + li r0, 0 diff --git a/External/Debug Inputs/Boot To CSS.asm b/External/Debug Inputs/Boot To CSS.asm new file mode 100644 index 00000000..d4fc9c55 --- /dev/null +++ b/External/Debug Inputs/Boot To CSS.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 801bfa20 +################################################################################ +.include "Common/Common.s" + +li r3,2 diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index e168dad1..9b3fec32 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -1,3 +1,15 @@ +################################################################################ +# Constants +################################################################################ +.set INJ_InitDebugInputs, 0x8016e774 + +.set CIRCULAR_BUFFER_COUNT, 10 + +.set DIB_IS_READY, 0 # u8 +.set DIB_POLL_INDEX, DIB_IS_READY + 1 # u8 +.set DIB_ENGINE_INDEX, DIB_POLL_INDEX + 1 # u8 +.set DIB_CIRCULAR_BUFFER, DIB_ENGINE_INDEX + 1 # u32 * CIRCULAR_BUFFER_COUNT +.set DIB_SIZE, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) ################################################################################ # Macros @@ -12,12 +24,14 @@ li \reg, 0 stb \reg, \offset(\reg_address) .endm -.set INJ_InitDebugInputs, 0x8016e774 - -.set CIRCULAR_BUFFER_COUNT, 10 - -.set DIB_IS_READY, 0 # u8 -.set DIB_POLL_INDEX, DIB_IS_READY + 1 # u8 -.set DIB_ENGINE_INDEX, DIB_POLL_INDEX + 1 # u8 -.set DIB_CIRCULAR_BUFFER, DIB_ENGINE_INDEX + 1 # u32 * CIRCULAR_BUFFER_COUNT -.set DIB_SIZE, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) \ No newline at end of file +.macro calcDiffTicksToUs reg_dib, ref_idx +branchl r12, 0x8034c408 # OSGetTick +lbz r4, \ref_idx(\reg_dib) +mulli r4, r4, 4 +addi r4, r4, DIB_CIRCULAR_BUFFER +lwzx r4, \reg_dib, r4 +sub r3, r3, r4 # This works even if ticks overflow +mulli r3, r3, 12 +li r4, 486 +divwu r3, r3, r4 +.endm \ No newline at end of file diff --git a/External/Debug Inputs/LogEngineTime.asm b/External/Debug Inputs/LogEngineTime.asm new file mode 100644 index 00000000..7e60150d --- /dev/null +++ b/External/Debug Inputs/LogEngineTime.asm @@ -0,0 +1,53 @@ +################################################################################ +# Address: 0x801a4dec +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" # Required for logf buffer, should fix that +.include "./DebugInputs.s" + +# Check if VS Mode +getMinorMajor r3 +cmpwi r3, 0x0202 +bne EXIT + +loadGlobalFrame r3 +cmpwi r3, 0 +ble EXIT + +.set REG_DIB, 31 +.set REG_INTERRUPTS, 30 +.set REG_DIFF_US, 29 + +backup + +branchl r12, OSDisableInterrupts +mr REG_INTERRUPTS, r3 + +# Fetch DIB +computeBranchTargetAddress r3, INJ_InitDebugInputs +lwz REG_DIB, 8+0(r3) + +# Calculate time diff +calcDiffTicksToUs REG_DIB, DIB_ENGINE_INDEX +mr REG_DIFF_US, r3 + +# Log +mr r8, REG_DIFF_US +loadwz r7, 0x804c1fac # Fetch key from controller input +rlwinm r7, r7, 0, 0xF +lbz r6, DIB_ENGINE_INDEX(REG_DIB) +loadGlobalFrame r5 +logf LOG_LEVEL_WARN, "ENGINE %u %u 0x%X %u" # Label Frame TimeUs + +# Increment index +incrementByte r3, REG_DIB, DIB_ENGINE_INDEX, CIRCULAR_BUFFER_COUNT + +# Restore interrupts +mr r3, REG_INTERRUPTS +branchl r12, OSRestoreInterrupts + +restore + +EXIT: +lwz r0, -0x6C98(r13) \ No newline at end of file diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm index 73beee70..8568f1ce 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -16,6 +16,9 @@ lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state cmpwi r3, 0 # Loading state should be zero when game starts bne EXIT +.set CONST_BACKUP_BYTES, 0xB0 # Maybe add this to Common.s +.set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C + .set REG_DIB, 31 .set REG_INTERRUPTS, 30 @@ -28,6 +31,11 @@ mr REG_INTERRUPTS, r3 computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) +# Store "key" to inputs (sets d-pad inputs) +loadGlobalFrame r3 +rlwinm r3, r3, 16, 0xF0000 +stw r3, P1_PAD_OFFSET(sp) + # Get and write current tick branchl r12, 0x8034c408 # OSGetTick lbz r4, DIB_POLL_INDEX(REG_DIB) @@ -35,12 +43,13 @@ mulli r4, r4, 4 # Get index offset addi r4, r4, DIB_CIRCULAR_BUFFER stwx r3, REG_DIB, r4 -# Log us, not needed -li r4, 486 -divwu r3, r3, r4 -mulli r4, r3, 12 -loadGlobalFrame r3 -logf LOG_LEVEL_WARN, "%d %d", "mr 5, 3", "mr 6, 4" +# Log +mr r8, r3 +lwz r7, P1_PAD_OFFSET(sp) +rlwinm r7, r7, 16, 0xF +lbz r6, DIB_POLL_INDEX(REG_DIB) +loadGlobalFrame r5 +logf LOG_LEVEL_WARN, "POLL %u %u 0x%X %u" # Increment index incrementByte r3, REG_DIB, DIB_POLL_INDEX, CIRCULAR_BUFFER_COUNT diff --git a/Online/Slippi Online Scene/boot.asm b/Online/Slippi Online Scene/boot.asm index 3d394b5f..f15fe867 100644 --- a/Online/Slippi Online Scene/boot.asm +++ b/Online/Slippi Online Scene/boot.asm @@ -56,4 +56,4 @@ branch r12, 0x801b136c # Code end ################################################################################ EXIT: -li r3, 0x1 # Load menu first +li r3, 0x2 # Load menu first diff --git a/Output/Console/g_lag_pd.bin b/Output/Console/g_lag_pd.bin index 1f20dd0e8990b23cb325fcb600c825bc2e5bd50d..f00775fc45e5010d4703932328711c25fddf5df8 100644 GIT binary patch literal 32 dcmZSaU9`fcV|6Qw@5&btx@G}{Uit$>0|4f@4ygbD literal 48 zcmX>k<-34^fq{8~3 Date: Tue, 8 Jun 2021 21:22:10 -0700 Subject: [PATCH 007/217] log out time during blank --- External/Debug Inputs/DebugInputs.s | 11 +- External/Debug Inputs/InitBuffer.asm | 30 --- External/Debug Inputs/InitOnGameStart.asm | 85 ++++++++ External/Debug Inputs/LogEngineTime.asm | 35 +++- .../Debug Inputs/LogFrameScanoutStart.asm | 71 +++++++ External/Debug Inputs/StoreCaptureTimes.asm | 11 +- Output/Netplay/GALE01r2.ini | 197 +++++++++++++----- Output/Netplay/GALJ01r2.ini | 197 +++++++++++++----- 8 files changed, 477 insertions(+), 160 deletions(-) delete mode 100644 External/Debug Inputs/InitBuffer.asm create mode 100644 External/Debug Inputs/InitOnGameStart.asm create mode 100644 External/Debug Inputs/LogFrameScanoutStart.asm diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index 9b3fec32..7e80607d 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -3,12 +3,12 @@ ################################################################################ .set INJ_InitDebugInputs, 0x8016e774 -.set CIRCULAR_BUFFER_COUNT, 10 +.set CIRCULAR_BUFFER_COUNT, 16 .set DIB_IS_READY, 0 # u8 .set DIB_POLL_INDEX, DIB_IS_READY + 1 # u8 -.set DIB_ENGINE_INDEX, DIB_POLL_INDEX + 1 # u8 -.set DIB_CIRCULAR_BUFFER, DIB_ENGINE_INDEX + 1 # u32 * CIRCULAR_BUFFER_COUNT +.set DIB_DEVELOP_TEXT_ADDR, DIB_POLL_INDEX + 1 # u32 +.set DIB_CIRCULAR_BUFFER, DIB_DEVELOP_TEXT_ADDR + 4 # u32 * CIRCULAR_BUFFER_COUNT .set DIB_SIZE, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) ################################################################################ @@ -24,10 +24,9 @@ li \reg, 0 stb \reg, \offset(\reg_address) .endm -.macro calcDiffTicksToUs reg_dib, ref_idx +.macro calcDiffTicksToUs reg_dib, reg_idx branchl r12, 0x8034c408 # OSGetTick -lbz r4, \ref_idx(\reg_dib) -mulli r4, r4, 4 +mulli r4, \reg_idx, 4 addi r4, r4, DIB_CIRCULAR_BUFFER lwzx r4, \reg_dib, r4 sub r3, r3, r4 # This works even if ticks overflow diff --git a/External/Debug Inputs/InitBuffer.asm b/External/Debug Inputs/InitBuffer.asm deleted file mode 100644 index 19544e7b..00000000 --- a/External/Debug Inputs/InitBuffer.asm +++ /dev/null @@ -1,30 +0,0 @@ -################################################################################ -# Address: INJ_InitDebugInputs -################################################################################ - -.include "Common/Common.s" -.include "Online/Online.s" # Required for logf buffer, should fix that -.include "./DebugInputs.s" - -b CODE_START - -DATA_BLRL: -blrl -.long 0 # Buffer - -CODE_START: - -# logf LOG_LEVEL_WARN, "Init..." - -li r3, DIB_SIZE -branchl r12, HSD_MemAlloc - -bl DATA_BLRL -mflr r4 -stw r3, 0(r4) # Write address to static address - -li r4, DIB_SIZE -branchl r12, Zero_AreaLength - -EXIT: -lfs f1, -0x5738(rtoc) \ No newline at end of file diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm new file mode 100644 index 00000000..b65d2701 --- /dev/null +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -0,0 +1,85 @@ +################################################################################ +# Address: INJ_InitDebugInputs +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" # Required for logf buffer, should fix that +.include "./DebugInputs.s" + +b CODE_START + +DATA_BLRL: +blrl +.set DO_DIB_ADDR, 0 +.long 0 # Buffer +.set DO_X_SCALE, DO_DIB_ADDR + 4 +.float 25 +.set DO_Y_SCALE, DO_X_SCALE + 4 +.float 25 +.set DO_COLOR, DO_Y_SCALE + 4 +.byte 0,0,0,255 + +################################################################################ +# Function: InitColorSquare +################################################################################ +.set REG_DATA, 31 +.set REG_DevelopText, 30 + +FN_InitColorSquare: +backup + + bl DATA_BLRL + mflr REG_DATA + +#Create Rectangle + li r3,32 + branchl r12,HSD_MemAlloc + mr r8,r3 + li r3,30 # ID + li r4,-25 # X Pos, bottom right: 638 + li r5,-25 # Y Pos, bottom right: 478 + li r6,1 + li r7,1 + branchl r12, 0x80302834 # DevelopText_CreateDataTable + mr REG_DevelopText,r3 +#Activate Text + lwz r3, -0x4884 (r13) + mr r4,REG_DevelopText + branchl r12, 0x80302810 # DevelopText_Activate +#Hide blinking cursor + li r3,0 + stb r3,0x26(REG_DevelopText) +#Change BG Color + mr r3,REG_DevelopText + addi r4,REG_DATA,DO_COLOR + branchl r12, 0x80302b90 # DevelopText_StoreBGColor +#Set Stretch + lfs f1,DO_X_SCALE(REG_DATA) + stfs f1,0x8(REG_DevelopText) + lfs f1,DO_Y_SCALE(REG_DATA) + stfs f1,0xC(REG_DevelopText) +#Store Develop Text Addr + lwz r3, DO_DIB_ADDR(REG_DATA) + stw REG_DevelopText, DIB_DEVELOP_TEXT_ADDR(r3) + +restore +blr + +CODE_START: + +# logf LOG_LEVEL_WARN, "Init..." + +li r3, DIB_SIZE +branchl r12, HSD_MemAlloc + +bl DATA_BLRL +mflr r4 +stw r3, 0(r4) # Write address to static address + +li r4, DIB_SIZE +branchl r12, Zero_AreaLength + +bl FN_InitColorSquare + +EXIT: +lfs f1, -0x5738(rtoc) \ No newline at end of file diff --git a/External/Debug Inputs/LogEngineTime.asm b/External/Debug Inputs/LogEngineTime.asm index 7e60150d..301e71ca 100644 --- a/External/Debug Inputs/LogEngineTime.asm +++ b/External/Debug Inputs/LogEngineTime.asm @@ -18,6 +18,8 @@ ble EXIT .set REG_DIB, 31 .set REG_INTERRUPTS, 30 .set REG_DIFF_US, 29 +.set REG_KEY, 28 +.set REG_DEVELOP_TEXT, 27 backup @@ -28,25 +30,42 @@ mr REG_INTERRUPTS, r3 computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) +# Check if DIB is ready (poll has happened) +lbz r3, DIB_IS_READY(REG_DIB) +cmpwi r3, 0 +beq RESTORE_AND_EXIT + +# Fetch key from controller input +loadwz r7, 0x804c1fac +rlwinm REG_KEY, r7, 0, 0xF + # Calculate time diff -calcDiffTicksToUs REG_DIB, DIB_ENGINE_INDEX +calcDiffTicksToUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 # Log -mr r8, REG_DIFF_US -loadwz r7, 0x804c1fac # Fetch key from controller input -rlwinm r7, r7, 0, 0xF -lbz r6, DIB_ENGINE_INDEX(REG_DIB) +mr r7, REG_DIFF_US +mr r6, REG_KEY loadGlobalFrame r5 -logf LOG_LEVEL_WARN, "ENGINE %u %u 0x%X %u" # Label Frame TimeUs +logf LOG_LEVEL_WARN, "ENGINE %u 0x%X %u" # Label Frame TimeUs -# Increment index -incrementByte r3, REG_DIB, DIB_ENGINE_INDEX, CIRCULAR_BUFFER_COUNT +# Adjust develop text BG color +lwz r3, DIB_DEVELOP_TEXT_ADDR(REG_DIB) +stb REG_KEY, BKP_FREE_SPACE_OFFSET+0(sp) +stb REG_KEY, BKP_FREE_SPACE_OFFSET+1(sp) +stb REG_KEY, BKP_FREE_SPACE_OFFSET+2(sp) +lwz r4, BKP_FREE_SPACE_OFFSET(sp) +rlwinm r4, r4, 4, 0xFFFFF000 +ori r4, r4, 0xFF +stw r4, BKP_FREE_SPACE_OFFSET(sp) +addi r4, sp, BKP_FREE_SPACE_OFFSET +branchl r12, 0x80302b90 # DevelopText_StoreBGColor # Restore interrupts mr r3, REG_INTERRUPTS branchl r12, OSRestoreInterrupts +RESTORE_AND_EXIT: restore EXIT: diff --git a/External/Debug Inputs/LogFrameScanoutStart.asm b/External/Debug Inputs/LogFrameScanoutStart.asm new file mode 100644 index 00000000..4f2ff9a5 --- /dev/null +++ b/External/Debug Inputs/LogFrameScanoutStart.asm @@ -0,0 +1,71 @@ +################################################################################ +# Address: 0x80375c14 # End of VIPreRetraceCB +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" # Required for logf buffer, should fix that +.include "./DebugInputs.s" + +# Check if VS Mode +getMinorMajor r3 +cmpwi r3, 0x0202 +bne EXIT + +load r3, 0x80479d64 +lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state +cmpwi r3, 0 # Loading state should be zero when game starts +bne EXIT + +.set REG_DIB, 31 +.set REG_INTERRUPTS, 30 +.set REG_DIFF_US, 29 +.set REG_KEY, 28 +.set REG_DEVELOP_TEXT, 27 + +backup + +branchl r12, OSDisableInterrupts +mr REG_INTERRUPTS, r3 + +# Fetch DIB +computeBranchTargetAddress r3, INJ_InitDebugInputs +lwz REG_DIB, 8+0(r3) + +# Check if DIB is ready (poll has happened) +lbz r3, DIB_IS_READY(REG_DIB) +cmpwi r3, 0 +beq RESTORE_AND_EXIT + +# Fetch/convert key from frame +# https://docs.google.com/spreadsheets/d/1EKnVQmAbt5LCipXq_aGCMJ_utsOlPqM_O0UJ3cnWm4c/edit#gid=0 +loadwz r3, 0x804a8b10 # Load ptr to frame that will be scanned out +lwz r3, 0(r3) # Load top left pixel +rlwinm r3, r3, 8, 0xFF # Extract top byte +subi r3, r3, 15 +mulli r3, r3, 6 +li r4, 5 +divwu r3, r3, r4 +rlwinm REG_KEY, r3, 28, 0xF # Extract 4 bits to get key + +# Calculate time diff +calcDiffTicksToUs REG_DIB, REG_KEY +mr REG_DIFF_US, r3 + +# Log +mr r8, REG_DIFF_US +loadwz r7, 0x804a8b10 # Load ptr to frame that will be scanned out +lwz r7, 0(r7) # Load top left pixel +mr r6, REG_KEY +loadGlobalFrame r5 +subi r5, r5, 1 +logf LOG_LEVEL_WARN, "BLANK %u 0x%X %X %u" # Label Frame TimeUs + +# Restore interrupts +mr r3, REG_INTERRUPTS +branchl r12, OSRestoreInterrupts + +RESTORE_AND_EXIT: +restore + +EXIT: +lwz r0, 0x0024(sp) # Replaced codeline \ No newline at end of file diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm index 8568f1ce..11c79a11 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -32,7 +32,7 @@ computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) # Store "key" to inputs (sets d-pad inputs) -loadGlobalFrame r3 +lbz r3, DIB_POLL_INDEX(REG_DIB) rlwinm r3, r3, 16, 0xF0000 stw r3, P1_PAD_OFFSET(sp) @@ -44,12 +44,10 @@ addi r4, r4, DIB_CIRCULAR_BUFFER stwx r3, REG_DIB, r4 # Log -mr r8, r3 -lwz r7, P1_PAD_OFFSET(sp) -rlwinm r7, r7, 16, 0xF -lbz r6, DIB_POLL_INDEX(REG_DIB) +lwz r6, P1_PAD_OFFSET(sp) +rlwinm r6, r6, 16, 0xF loadGlobalFrame r5 -logf LOG_LEVEL_WARN, "POLL %u %u 0x%X %u" +logf LOG_LEVEL_WARN, "POLL %u 0x%X" # Increment index incrementByte r3, REG_DIB, DIB_POLL_INDEX, CIRCULAR_BUFFER_COUNT @@ -62,6 +60,7 @@ stb r3, DIB_IS_READY(REG_DIB) mr r3, REG_INTERRUPTS branchl r12, OSRestoreInterrupts +RESTORE_AND_EXIT: restore EXIT: diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 44e20795..ea0e8ecb 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5703,22 +5703,48 @@ C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm 4E800421 906DAFC4 38000000 00000000 041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 00000009 #External/Debug Inputs/InitBuffer.asm -4800000C 4E800021 -00000000 3860002B +C216E774 00000023 #External/Debug Inputs/InitOnGameStart.asm +480000D4 4E800021 +00000000 41C80000 +41C80000 000000FF +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFFDD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FFE7 +38A0FFE7 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 +7D8903A6 4E800421 +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 +7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 38600046 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFFE5 7C8802A6 -90640000 3880002B +4BFFFF1D 7C8802A6 +90640000 38800046 3D808000 618CC160 7D8903A6 4E800421 -C022A8C8 00000000 -C21A4DEC 00000037 #External/Debug Inputs/LogEngineTime.asm +4BFFFF11 C022A8C8 +60000000 00000000 +C21A4DEC 0000003B #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -4082019C 3C608048 +408201BC 3C608048 80639D60 2C030000 -4081018C 7C0802A6 +408101AC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5728,53 +5754,57 @@ BE810008 3D808034 7CA50774 54A5801E 5484043A 7C842B78 7C632214 83E30008 -3D808034 618CC408 -7D8903A6 4E800421 -889F0002 1C840004 -38840003 7C9F202E +887F0000 2C030000 +41820144 3CE0804C +60E71FAC 80E70000 +54FC073E 3D808034 +618CC408 7D8903A6 +4E800421 1C9C0004 +38840006 7C9F202E 7C641850 1C63000C 388001E6 7C632396 -7C7D1B78 7FA8EB78 -3CE0804C 60E71FAC -80E70000 54E7073E -88DF0002 3CA08048 -80A59D60 48000020 +7C7D1B78 7FA7EB78 +7F86E378 3CA08048 +80A59D60 4800001C 4E800021 454E4749 -4E452025 75202575 -20307825 58202575 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 60000000 +4E452025 75203078 +25582025 75000000 +7C0802A6 90010004 +9421FF00 BC610008 60000000 60000000 60000000 60000000 -806DAFC4 38630003 -4BFFFFB9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 +60000000 806DAFC4 +38630003 4BFFFFBD +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807F0002 +9B810038 9B810039 +9B81003A 80810038 +54842026 608400FF +90810038 38810038 +3D808030 618C2B90 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887F0002 38630001 -2C03000A 41800008 -38600000 987F0002 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 800D9368 60000000 00000000 -C2376A88 00000036 #External/Debug Inputs/StoreCaptureTimes.asm +C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -40820198 3C608047 +408201B8 3C608047 60639D64 80630000 -2C030000 40820184 +2C030000 408201A4 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5784,19 +5814,27 @@ C2376A88 00000036 #External/Debug Inputs/StoreCaptureTimes.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 3C608048 -80639D60 5463831E -906100DC 3D808034 -618CC408 7D8903A6 -4E800421 889F0001 -1C840004 38840003 -7C7F212E 7C681B78 -80E100DC 54E7873E -88DF0001 3CA08048 -80A59D60 4800001C -4E800021 504F4C4C -20257520 25752030 -78255820 25750000 +83E30008 887F0000 +2C030000 4182013C +3C60804A 60638B10 +80630000 80630000 +5463463E 3863FFF1 +1C630006 38800005 +7C632396 547CE73E +3D808034 618CC408 +7D8903A6 4E800421 +1C9C0004 38840006 +7C9F202E 7C641850 +1C63000C 388001E6 +7C632396 7C7D1B78 +7FA8EB78 3CE0804A +60E78B10 80E70000 +80E70000 7F86E378 +3CA08048 80A59D60 +38A5FFFF 4800001C +4E800021 424C414E +4B202575 20307825 +58202558 20257500 7C0802A6 90010004 9421FF00 BC610008 60000000 60000000 @@ -5814,8 +5852,57 @@ C2376A88 00000036 #External/Debug Inputs/StoreCaptureTimes.asm 618C55F0 7D8903A6 4E800421 B8610008 80010104 38210100 +7C0803A6 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +80010024 00000000 +C2376A88 00000034 #External/Debug Inputs/StoreCaptureTimes.asm +3C608048 80639D30 +5463443E 2C030202 +40820188 3C608047 +60639D64 80630000 +2C030000 40820174 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 887F0001 +5463831E 906100DC +3D808034 618CC408 +7D8903A6 4E800421 +889F0001 1C840004 +38840006 7C7F212E +80C100DC 54C6873E +3CA08048 80A59D60 +48000018 4E800021 +504F4C4C 20257520 +30782558 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +60000000 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFC1 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 7C0803A6 887F0001 -38630001 2C03000A +38630001 2C030010 41800008 38600000 987F0001 38600001 987F0000 7FC3F378 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 3cb5010f..84f222ed 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5703,22 +5703,48 @@ C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm 4E800421 906DAFC4 38000000 00000000 041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 00000009 #External/Debug Inputs/InitBuffer.asm -4800000C 4E800021 -00000000 3860002B +C216E774 00000023 #External/Debug Inputs/InitOnGameStart.asm +480000D4 4E800021 +00000000 41C80000 +41C80000 000000FF +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFFDD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FFE7 +38A0FFE7 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 +7D8903A6 4E800421 +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 +7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 38600046 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFFE5 7C8802A6 -90640000 3880002B +4BFFFF1D 7C8802A6 +90640000 38800046 3D808000 618CC160 7D8903A6 4E800421 -C022A8C8 00000000 -C21A4DEC 00000037 #External/Debug Inputs/LogEngineTime.asm +4BFFFF11 C022A8C8 +60000000 00000000 +C21A4DEC 0000003B #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -4082019C 3C608048 +408201BC 3C608048 80639D60 2C030000 -4081018C 7C0802A6 +408101AC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5728,53 +5754,57 @@ BE810008 3D808034 7CA50774 54A5801E 5484043A 7C842B78 7C632214 83E30008 -3D808034 618CC408 -7D8903A6 4E800421 -889F0002 1C840004 -38840003 7C9F202E +887F0000 2C030000 +41820144 3CE0804C +60E71FAC 80E70000 +54FC073E 3D808034 +618CC408 7D8903A6 +4E800421 1C9C0004 +38840006 7C9F202E 7C641850 1C63000C 388001E6 7C632396 -7C7D1B78 7FA8EB78 -3CE0804C 60E71FAC -80E70000 54E7073E -88DF0002 3CA08048 -80A59D60 48000020 +7C7D1B78 7FA7EB78 +7F86E378 3CA08048 +80A59D60 4800001C 4E800021 454E4749 -4E452025 75202575 -20307825 58202575 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 60000000 +4E452025 75203078 +25582025 75000000 +7C0802A6 90010004 +9421FF00 BC610008 60000000 60000000 60000000 60000000 -806DAFC4 38630003 -4BFFFFB9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 +60000000 806DAFC4 +38630003 4BFFFFBD +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807F0002 +9B810038 9B810039 +9B81003A 80810038 +54842026 608400FF +90810038 38810038 +3D808030 618C2B90 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887F0002 38630001 -2C03000A 41800008 -38600000 987F0002 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 800D9368 60000000 00000000 -C2376A88 00000036 #External/Debug Inputs/StoreCaptureTimes.asm +C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -40820198 3C608047 +408201B8 3C608047 60639D64 80630000 -2C030000 40820184 +2C030000 408201A4 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5784,19 +5814,27 @@ C2376A88 00000036 #External/Debug Inputs/StoreCaptureTimes.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 3C608048 -80639D60 5463831E -906100DC 3D808034 -618CC408 7D8903A6 -4E800421 889F0001 -1C840004 38840003 -7C7F212E 7C681B78 -80E100DC 54E7873E -88DF0001 3CA08048 -80A59D60 4800001C -4E800021 504F4C4C -20257520 25752030 -78255820 25750000 +83E30008 887F0000 +2C030000 4182013C +3C60804A 60638B10 +80630000 80630000 +5463463E 3863FFF1 +1C630006 38800005 +7C632396 547CE73E +3D808034 618CC408 +7D8903A6 4E800421 +1C9C0004 38840006 +7C9F202E 7C641850 +1C63000C 388001E6 +7C632396 7C7D1B78 +7FA8EB78 3CE0804A +60E78B10 80E70000 +80E70000 7F86E378 +3CA08048 80A59D60 +38A5FFFF 4800001C +4E800021 424C414E +4B202575 20307825 +58202558 20257500 7C0802A6 90010004 9421FF00 BC610008 60000000 60000000 @@ -5814,8 +5852,57 @@ C2376A88 00000036 #External/Debug Inputs/StoreCaptureTimes.asm 618C55F0 7D8903A6 4E800421 B8610008 80010104 38210100 +7C0803A6 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +80010024 00000000 +C2376A88 00000034 #External/Debug Inputs/StoreCaptureTimes.asm +3C608048 80639D30 +5463443E 2C030202 +40820188 3C608047 +60639D64 80630000 +2C030000 40820174 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 887F0001 +5463831E 906100DC +3D808034 618CC408 +7D8903A6 4E800421 +889F0001 1C840004 +38840006 7C7F212E +80C100DC 54C6873E +3CA08048 80A59D60 +48000018 4E800021 +504F4C4C 20257520 +30782558 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +60000000 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFC1 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 7C0803A6 887F0001 -38630001 2C03000A +38630001 2C030010 41800008 38600000 987F0001 38600001 987F0000 7FC3F378 From 27984a3afbbf1fce9e0fc9eb74c370dab46ce242 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 9 Jun 2021 15:09:04 -0700 Subject: [PATCH 008/217] hook up polling handler --- .../SyncPollingOnGameStart.asmtemp | 27 +++++ External/Debug Inputs/DebugInputs.s | 3 +- External/Debug Inputs/InitOnGameStart.asm | 22 ++++ External/Debug Inputs/StoreCaptureTimes.asm | 5 +- Output/Netplay/GALE01r2.ini | 112 +++++++++++------- Output/Netplay/GALJ01r2.ini | 112 +++++++++++------- netplay.json | 33 ++++++ 7 files changed, 228 insertions(+), 86 deletions(-) create mode 100644 External/59.94Hz Engine/SyncPollingOnGameStart.asmtemp diff --git a/External/59.94Hz Engine/SyncPollingOnGameStart.asmtemp b/External/59.94Hz Engine/SyncPollingOnGameStart.asmtemp new file mode 100644 index 00000000..2e16c0c7 --- /dev/null +++ b/External/59.94Hz Engine/SyncPollingOnGameStart.asmtemp @@ -0,0 +1,27 @@ +################################################################################ +# Address: 0x80376a8c +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" + +# Check if VS Mode +getMinorMajor r3 +cmpwi r3, 0x0202 +bne EXIT + +load r3, 0x80479d64 +lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state +cmpwi r3, 0 # Loading state should be zero when game starts +bne EXIT + +loadGlobalFrame r3 +cmpwi r3, 1 +bne EXIT + +branchl r12, 0x8034f314 # VIWaitForRetrace + +EXIT: +# Replaced code lines +lbz r0, 0x0002 (r31) +lbz r4, 0x0003 (r31) \ No newline at end of file diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index 7e80607d..ec7f3d36 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -8,7 +8,8 @@ .set DIB_IS_READY, 0 # u8 .set DIB_POLL_INDEX, DIB_IS_READY + 1 # u8 .set DIB_DEVELOP_TEXT_ADDR, DIB_POLL_INDEX + 1 # u32 -.set DIB_CIRCULAR_BUFFER, DIB_DEVELOP_TEXT_ADDR + 4 # u32 * CIRCULAR_BUFFER_COUNT +.set DIB_CALLBACK_COUNT, DIB_DEVELOP_TEXT_ADDR + 4 # u32 +.set DIB_CIRCULAR_BUFFER, DIB_CALLBACK_COUNT + 4 # u32 * CIRCULAR_BUFFER_COUNT .set DIB_SIZE, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) ################################################################################ diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index b65d2701..0a17a100 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -19,6 +19,23 @@ blrl .set DO_COLOR, DO_Y_SCALE + 4 .byte 0,0,0,255 +################################################################################ +# Function: PollingHandler +################################################################################ +FN_BLRL_PollingHandler: +blrl +backup + +bl DATA_BLRL +mflr REG_DATA +lwz r4, DO_DIB_ADDR(REG_DATA) +lwz r3, DIB_CALLBACK_COUNT(r4) +addi r3, r3, 1 +stw r3, DIB_CALLBACK_COUNT(r4) + +restore +blr + ################################################################################ # Function: InitColorSquare ################################################################################ @@ -81,5 +98,10 @@ branchl r12, Zero_AreaLength bl FN_InitColorSquare +# I thought this would fire twice per frame (same as polling), but it doesn't and idk what it does +bl FN_BLRL_PollingHandler +mflr r3 +branchl r12, 0x80349bf0 # SIRegisterPollingHandler + EXIT: lfs f1, -0x5738(rtoc) \ No newline at end of file diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm index 11c79a11..b45efb51 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -44,10 +44,13 @@ addi r4, r4, DIB_CIRCULAR_BUFFER stwx r3, REG_DIB, r4 # Log +# loadwz r7, 0xCC006430 # Includes details to poll more often. http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.8 +# loadwz r7, 0xCC006434 +lwz r7, DIB_CALLBACK_COUNT(REG_DIB) lwz r6, P1_PAD_OFFSET(sp) rlwinm r6, r6, 16, 0xF loadGlobalFrame r5 -logf LOG_LEVEL_WARN, "POLL %u 0x%X" +logf LOG_LEVEL_WARN, "POLL %u 0x%X %u" # Increment index incrementByte r3, REG_DIB, DIB_POLL_INDEX, CIRCULAR_BUFFER_COUNT diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ea0e8ecb..661dd248 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5703,13 +5703,21 @@ C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm 4E800421 906DAFC4 38000000 00000000 041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 00000023 #External/Debug Inputs/InitOnGameStart.asm -480000D4 4E800021 +C216E774 0000002E #External/Debug Inputs/InitOnGameStart.asm +48000114 4E800021 00000000 41C80000 41C80000 000000FF +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFFD9 +7FE802A6 809F0000 +80640006 38630001 +90640006 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFFDD 7FE802A6 +4BFFFF9D 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 @@ -5730,14 +5738,17 @@ C03F0008 D03E000C 807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 -4E800020 38600046 +4E800020 3860004A 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFF1D 7C8802A6 -90640000 38800046 +4BFFFEDD 7C8802A6 +90640000 3880004A 3D808000 618CC160 7D8903A6 4E800421 -4BFFFF11 C022A8C8 +4BFFFF11 4BFFFECD +7C6802A6 3D808034 +618C9BF0 7D8903A6 +4E800421 C022A8C8 60000000 00000000 C21A4DEC 0000003B #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 @@ -5760,7 +5771,7 @@ BE810008 3D808034 54FC073E 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -38840006 7C9F202E +3884000A 7C9F202E 7C641850 1C63000C 388001E6 7C632396 7C7D1B78 7FA7EB78 @@ -5823,7 +5834,7 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 38840006 +1C9C0004 3884000A 7C9F202E 7C641850 1C63000C 388001E6 7C632396 7C7D1B78 @@ -5858,12 +5869,12 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 00000034 #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 00000035 #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -40820188 3C608047 +4082018C 3C608047 60639D64 80630000 -2C030000 40820174 +2C030000 40820178 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5878,39 +5889,40 @@ C2376A88 00000034 #External/Debug Inputs/StoreCaptureTimes.asm 3D808034 618CC408 7D8903A6 4E800421 889F0001 1C840004 -38840006 7C7F212E -80C100DC 54C6873E -3CA08048 80A59D60 -48000018 4E800021 -504F4C4C 20257520 -30782558 00000000 -7C0802A6 90010004 -9421FF00 BC610008 +3884000A 7C7F212E +80FF0006 80C100DC +54C6873E 3CA08048 +80A59D60 48000018 +4E800021 504F4C4C +20257520 30782558 +20257500 7C0802A6 +90010004 9421FF00 +BC610008 60000000 60000000 60000000 60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFC1 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 887F0001 -38630001 2C030010 -41800008 38600000 -987F0001 38600001 -987F0000 7FC3F378 -3D808034 618C738C +806DAFC4 38630003 +4BFFFFC1 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -881F0002 00000000 +B8610008 80010104 +38210100 7C0803A6 +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +38600001 987F0000 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 881F0002 +60000000 00000000 $Optional: PD+VB [taukhan] *PD+VB @@ -5928,3 +5940,19 @@ C21A5018 00000005 618C5078 7D8903A6 4D820420 00000000 04218D68 C8228000 + +$Optional: PD [Dan Salvato] +*PD +C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] +901C0000 3D808001 +618C95FC 7D8903A6 +4E800421 00000000 +041A4DB4 60000000 +04019860 4BFFFD9D + +$Optional: 59.94Hz Engine [Fizzi] +*Attempts to fix polling drift +044DA2A8 3C88AB85 #External/59.94Hz Engine/InGameSpeed.asm +044DA9E8 3C88AB85 #External/59.94Hz Engine/MenuSpeed.asm +044D7CA0 3C88AB85 #External/59.94Hz Engine/SetSpeedOnBoot.asm +044DA5F8 3C88AB85 #External/59.94Hz Engine/TrainingModeSpeed.asm diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 84f222ed..9533ede7 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5703,13 +5703,21 @@ C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm 4E800421 906DAFC4 38000000 00000000 041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 00000023 #External/Debug Inputs/InitOnGameStart.asm -480000D4 4E800021 +C216E774 0000002E #External/Debug Inputs/InitOnGameStart.asm +48000114 4E800021 00000000 41C80000 41C80000 000000FF +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFFD9 +7FE802A6 809F0000 +80640006 38630001 +90640006 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFFDD 7FE802A6 +4BFFFF9D 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 @@ -5730,14 +5738,17 @@ C03F0008 D03E000C 807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 -4E800020 38600046 +4E800020 3860004A 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFF1D 7C8802A6 -90640000 38800046 +4BFFFEDD 7C8802A6 +90640000 3880004A 3D808000 618CC160 7D8903A6 4E800421 -4BFFFF11 C022A8C8 +4BFFFF11 4BFFFECD +7C6802A6 3D808034 +618C9BF0 7D8903A6 +4E800421 C022A8C8 60000000 00000000 C21A4DEC 0000003B #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 @@ -5760,7 +5771,7 @@ BE810008 3D808034 54FC073E 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -38840006 7C9F202E +3884000A 7C9F202E 7C641850 1C63000C 388001E6 7C632396 7C7D1B78 7FA7EB78 @@ -5823,7 +5834,7 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 38840006 +1C9C0004 3884000A 7C9F202E 7C641850 1C63000C 388001E6 7C632396 7C7D1B78 @@ -5858,12 +5869,12 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 00000034 #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 00000035 #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -40820188 3C608047 +4082018C 3C608047 60639D64 80630000 -2C030000 40820174 +2C030000 40820178 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5878,39 +5889,40 @@ C2376A88 00000034 #External/Debug Inputs/StoreCaptureTimes.asm 3D808034 618CC408 7D8903A6 4E800421 889F0001 1C840004 -38840006 7C7F212E -80C100DC 54C6873E -3CA08048 80A59D60 -48000018 4E800021 -504F4C4C 20257520 -30782558 00000000 -7C0802A6 90010004 -9421FF00 BC610008 +3884000A 7C7F212E +80FF0006 80C100DC +54C6873E 3CA08048 +80A59D60 48000018 +4E800021 504F4C4C +20257520 30782558 +20257500 7C0802A6 +90010004 9421FF00 +BC610008 60000000 60000000 60000000 60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFC1 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 887F0001 -38630001 2C030010 -41800008 38600000 -987F0001 38600001 -987F0000 7FC3F378 -3D808034 618C738C +806DAFC4 38630003 +4BFFFFC1 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -881F0002 00000000 +B8610008 80010104 +38210100 7C0803A6 +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +38600001 987F0000 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 881F0002 +60000000 00000000 $Optional: PD+VB [taukhan] *PD+VB @@ -5928,3 +5940,19 @@ C21A5018 00000005 618C5078 7D8903A6 4D820420 00000000 04218D68 C8228000 + +$Optional: PD [Dan Salvato] +*PD +C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] +901C0000 3D808001 +618C95FC 7D8903A6 +4E800421 00000000 +041A4DB4 60000000 +04019860 4BFFFD9D + +$Optional: 59.94Hz Engine [Fizzi] +*Attempts to fix polling drift +044DA2A8 3C88AB85 #External/59.94Hz Engine/InGameSpeed.asm +044DA9E8 3C88AB85 #External/59.94Hz Engine/MenuSpeed.asm +044D7CA0 3C88AB85 #External/59.94Hz Engine/SetSpeedOnBoot.asm +044DA5F8 3C88AB85 #External/59.94Hz Engine/TrainingModeSpeed.asm diff --git a/netplay.json b/netplay.json index 0f9e4087..09d4ac02 100644 --- a/netplay.json +++ b/netplay.json @@ -497,6 +497,39 @@ "annotation": "Polling Drift Fix + VB [tauKhan]" } ] + }, + { + "name": "Optional: PD", + "authors": [ + "Dan Salvato" + ], + "description": [ + "PD" + ], + "build": [ + { + "type": "binary", + "sourceFile": "Binary/LagReduction/PD.bin", + "annotation": "Polling Drift Fix [Dan Salvato]" + } + ] + }, + { + "name": "Optional: 59.94Hz Engine", + "authors": [ + "Fizzi" + ], + "description": [ + "Attempts to fix polling drift" + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "External/59.94Hz Engine", + "isRecursive": true, + "annotation": "59.94Hz Engine" + } + ] } ] } \ No newline at end of file From 7d4d1aa8bf30dd69d8ca7f528167380448fed711 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 10 Jun 2021 02:24:22 -0700 Subject: [PATCH 009/217] add visual output for lag --- External/Debug Inputs/DebugInputs.s | 14 +- External/Debug Inputs/InitOnGameStart.asm | 216 +++++++++++++--- External/Debug Inputs/LogEngineTime.asm | 21 +- .../Debug Inputs/LogFrameScanoutStart.asm | 19 +- External/Debug Inputs/StoreCaptureTimes.asm | 27 +- External/Monitor4-3/Add Shutters.asm | 14 +- Output/Console/GALE01r2.ini | 240 +++++++++++++++++ Output/Console/g_core.bin | Bin 6048 -> 7944 bytes Output/Console/g_core_porta.bin | Bin 6048 -> 7944 bytes Output/Console/g_lag_pd.bin | Bin 32 -> 48 bytes Output/Netplay/GALE01r2.ini | 241 +++++++++--------- Output/Netplay/GALJ01r2.ini | 241 +++++++++--------- console_core.json | 17 ++ console_lag_pd.json | 11 +- 14 files changed, 753 insertions(+), 308 deletions(-) diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index ec7f3d36..c724d051 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -5,12 +5,16 @@ .set CIRCULAR_BUFFER_COUNT, 16 -.set DIB_IS_READY, 0 # u8 -.set DIB_POLL_INDEX, DIB_IS_READY + 1 # u8 -.set DIB_DEVELOP_TEXT_ADDR, DIB_POLL_INDEX + 1 # u32 -.set DIB_CALLBACK_COUNT, DIB_DEVELOP_TEXT_ADDR + 4 # u32 +.set DIB_ACTIVE_STATE, 0 # u8. 0 = starting, 1 = active, 2 = complete +.set DIB_POLL_INDEX, DIB_ACTIVE_STATE + 1 # u8 +.set DIB_COLOR_KEY_DTEXT_ADDR, DIB_POLL_INDEX + 1 # u32 +.set DIB_LAG_DISPLAY_DTEXT_ADDR, DIB_COLOR_KEY_DTEXT_ADDR + 4 # u32 +.set DIB_LAST_POLL_TIME, DIB_LAG_DISPLAY_DTEXT_ADDR + 4 # u32 +.set DIB_CALLBACK_PTR, DIB_LAST_POLL_TIME + 4 # u32 +.set DIB_CALLBACK_COUNT, DIB_CALLBACK_PTR + 4 # u32 .set DIB_CIRCULAR_BUFFER, DIB_CALLBACK_COUNT + 4 # u32 * CIRCULAR_BUFFER_COUNT -.set DIB_SIZE, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) +.set DIB_INPUT_TO_RENDER_US, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) # float +.set DIB_SIZE, DIB_INPUT_TO_RENDER_US + 4 ################################################################################ # Macros diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index 0a17a100..3aba14f8 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -12,78 +12,223 @@ DATA_BLRL: blrl .set DO_DIB_ADDR, 0 .long 0 # Buffer -.set DO_X_SCALE, DO_DIB_ADDR + 4 +.set DO_CS_X_SCALE, DO_DIB_ADDR + 4 .float 25 -.set DO_Y_SCALE, DO_X_SCALE + 4 +.set DO_CS_Y_SCALE, DO_CS_X_SCALE + 4 .float 25 -.set DO_COLOR, DO_Y_SCALE + 4 +.set DO_CS_COLOR, DO_CS_Y_SCALE + 4 .byte 0,0,0,255 +.set DO_LD_COLOR, DO_CS_COLOR + 4 +.byte 0,0,0,180 +.set DO_LD_TEXT_COLOR, DO_LD_COLOR + 4 +.byte 0xE2,0xE2,0xE2,0xFF +.set DO_LD_TEXT_X_SCALE, DO_LD_TEXT_COLOR + 4 +.float 10 +.set DO_LD_TEXT_Y_SCALE, DO_LD_TEXT_X_SCALE + 4 +.float 17 +.set DO_LD_STR_LATENCY, DO_LD_TEXT_Y_SCALE + 4 +.string "Input to Render: %u us\n" +.set DO_LD_STR_POLL_COUNT, DO_LD_STR_LATENCY + 24 +.string "Poll Count: %u\n" +.align 2 ################################################################################ # Function: PollingHandler ################################################################################ +.set REG_DATA, 31 +.set REG_DIB, 30 + FN_BLRL_PollingHandler: blrl backup bl DATA_BLRL mflr REG_DATA -lwz r4, DO_DIB_ADDR(REG_DATA) -lwz r3, DIB_CALLBACK_COUNT(r4) +lwz REG_DIB, DO_DIB_ADDR(REG_DATA) +lwz r3, DIB_CALLBACK_COUNT(REG_DIB) addi r3, r3, 1 -stw r3, DIB_CALLBACK_COUNT(r4) +stw r3, DIB_CALLBACK_COUNT(REG_DIB) + +# Write poll time +branchl r12, 0x8034c408 # OSGetTick +stw r3, DIB_LAST_POLL_TIME(REG_DIB) restore blr +################################################################################ +# Function: UpdateLagDisplay +################################################################################ +.set REG_DATA, 31 +.set REG_DIB, 30 +.set REG_DEVELOP_TEXT, 29 + +FN_BLRL_UpdateLagDisplay: +blrl +backup + +bl DATA_BLRL +mflr REG_DATA +lwz REG_DIB, DO_DIB_ADDR(REG_DATA) +lwz REG_DEVELOP_TEXT, DIB_LAG_DISPLAY_DTEXT_ADDR(REG_DIB) + +# Only run update if active, if complete, stop updating +lbz r3, DIB_ACTIVE_STATE(REG_DIB) +cmpwi r3, 1 +bne FN_UpdateLagDisplay_EXIT + +mr r3, REG_DEVELOP_TEXT +branchl r12, 0x80302bb0 # DevelopText_EraseAllText +mr r3, REG_DEVELOP_TEXT +li r4, 0 +li r5, 0 +branchl r12, 0x80302a3c # DevelopMode_Text_ResetCursorXY + +#Set Text +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_LATENCY +lwz r5, DIB_INPUT_TO_RENDER_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_POLL_COUNT +lwz r5, DIB_CALLBACK_COUNT(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +# Check if game over +load r3, 0x8046b6a0 +lbz r3, 0x8(r3) +cmpwi r3, 0 +beq SKIP_GAME_END + +# Here game has ended, so let's do some cleanup. First unregister polling callback +lwz r3, DIB_CALLBACK_PTR(REG_DIB) +branchl r12, 0x80349cbc # SIUnregisterPollingHandler + +# Set active state to game complete +li r3, 2 +stb r3, DIB_ACTIVE_STATE(REG_DIB) +SKIP_GAME_END: + +FN_UpdateLagDisplay_EXIT: +restore +blr + ################################################################################ # Function: InitColorSquare ################################################################################ .set REG_DATA, 31 -.set REG_DevelopText, 30 +.set REG_DEVELOP_TEXT, 30 FN_InitColorSquare: backup - bl DATA_BLRL - mflr REG_DATA +bl DATA_BLRL +mflr REG_DATA #Create Rectangle - li r3,32 - branchl r12,HSD_MemAlloc - mr r8,r3 - li r3,30 # ID - li r4,-25 # X Pos, bottom right: 638 - li r5,-25 # Y Pos, bottom right: 478 - li r6,1 - li r7,1 - branchl r12, 0x80302834 # DevelopText_CreateDataTable - mr REG_DevelopText,r3 +li r3, 32 +branchl r12, HSD_MemAlloc +mr r8, r3 +li r3, 30 # ID +li r4, -43 # X Pos, bottom right: 638 +li r5, -42 # Y Pos, bottom right: 478 +li r6, 1 +li r7, 1 +branchl r12, 0x80302834 # DevelopText_CreateDataTable +mr REG_DEVELOP_TEXT, r3 #Activate Text - lwz r3, -0x4884 (r13) - mr r4,REG_DevelopText - branchl r12, 0x80302810 # DevelopText_Activate +lwz r3, -0x4884(r13) +mr r4, REG_DEVELOP_TEXT +branchl r12, 0x80302810 # DevelopText_Activate #Hide blinking cursor - li r3,0 - stb r3,0x26(REG_DevelopText) +li r3, 0 +stb r3, 0x26(REG_DEVELOP_TEXT) #Change BG Color - mr r3,REG_DevelopText - addi r4,REG_DATA,DO_COLOR - branchl r12, 0x80302b90 # DevelopText_StoreBGColor +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_CS_COLOR +branchl r12, 0x80302b90 # DevelopText_StoreBGColor #Set Stretch - lfs f1,DO_X_SCALE(REG_DATA) - stfs f1,0x8(REG_DevelopText) - lfs f1,DO_Y_SCALE(REG_DATA) - stfs f1,0xC(REG_DevelopText) +lfs f1, DO_CS_X_SCALE(REG_DATA) +stfs f1, 0x8(REG_DEVELOP_TEXT) +lfs f1, DO_CS_Y_SCALE(REG_DATA) +stfs f1, 0xC(REG_DEVELOP_TEXT) #Store Develop Text Addr - lwz r3, DO_DIB_ADDR(REG_DATA) - stw REG_DevelopText, DIB_DEVELOP_TEXT_ADDR(r3) +lwz r3, DO_DIB_ADDR(REG_DATA) +stw REG_DEVELOP_TEXT, DIB_COLOR_KEY_DTEXT_ADDR(r3) + +restore +blr + +################################################################################ +# Function: InitLagDisplay +################################################################################ +.set REG_DATA, 31 +.set REG_DEVELOP_TEXT, 30 + +FN_InitLagDisplay: +backup + +bl DATA_BLRL +mflr REG_DATA + +#Create Rectangle +li r3, 1000 +branchl r12, HSD_MemAlloc +mr r8, r3 +li r3, 31 # ID +li r4, 0 # X Pos, bottom right: 638 +li r5, 0 # Y Pos, bottom right: 478 +li r6, 28 +li r7, 4 +branchl r12, 0x80302834 # DevelopText_CreateDataTable +mr REG_DEVELOP_TEXT, r3 +#Activate Text +lwz r3, -0x4884(r13) +mr r4, REG_DEVELOP_TEXT +branchl r12, 0x80302810 # DevelopText_Activate +#Hide blinking cursor +li r3, 0 +stb r3, 0x26(REG_DEVELOP_TEXT) +#Change BG Color +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_COLOR +branchl r12, 0x80302b90 # DevelopText_StoreBGColor +#Store text scale +mr r3, REG_DEVELOP_TEXT +lfs f1, DO_LD_TEXT_X_SCALE(REG_DATA) +lfs f2, DO_LD_TEXT_Y_SCALE(REG_DATA) +branchl r12, 0x80302b10 # DevelopText_StoreTextScale +#Set Text Color +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_TEXT_COLOR +branchl r12, 0x80302b64 # DevelopText_StoreTextColor +#Show text +mr r3, REG_DEVELOP_TEXT +branchl r12, 0x80302af0 # DevelopText_ShowText +#Store Develop Text Addr +lwz r3, DO_LD_DIB_ADDR(REG_DATA) +stw REG_DEVELOP_TEXT, DIB_LAG_DISPLAY_DTEXT_ADDR(r3) + +# Create GObj +li r3, 19 # GObj Type +li r4, 20 +li r5, 0 # some type of priority +branchl r12, GObj_Create + +#Create Proc to update display +bl FN_BLRL_UpdateLagDisplay +mflr r4 # Function +li r5, 7 # Priority +branchl r12, GObj_AddProc restore blr CODE_START: +.set REG_DIB, 30 + +backup # logf LOG_LEVEL_WARN, "Init..." li r3, DIB_SIZE @@ -92,16 +237,21 @@ branchl r12, HSD_MemAlloc bl DATA_BLRL mflr r4 stw r3, 0(r4) # Write address to static address +mr REG_DIB, r3 li r4, DIB_SIZE branchl r12, Zero_AreaLength bl FN_InitColorSquare +bl FN_InitLagDisplay # I thought this would fire twice per frame (same as polling), but it doesn't and idk what it does bl FN_BLRL_PollingHandler mflr r3 +stw r3, DIB_CALLBACK_PTR(REG_DIB) # Store so we can unregister later branchl r12, 0x80349bf0 # SIRegisterPollingHandler +restore + EXIT: lfs f1, -0x5738(rtoc) \ No newline at end of file diff --git a/External/Debug Inputs/LogEngineTime.asm b/External/Debug Inputs/LogEngineTime.asm index 301e71ca..b9c4e15f 100644 --- a/External/Debug Inputs/LogEngineTime.asm +++ b/External/Debug Inputs/LogEngineTime.asm @@ -31,26 +31,29 @@ computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) # Check if DIB is ready (poll has happened) -lbz r3, DIB_IS_READY(REG_DIB) +lbz r3, DIB_ACTIVE_STATE(REG_DIB) cmpwi r3, 0 beq RESTORE_AND_EXIT -# Fetch key from controller input -loadwz r7, 0x804c1fac -rlwinm REG_KEY, r7, 0, 0xF +# Fetch key from controller input and clear d-pad inputs +load r4, 0x804c1fac +lwz r3, 0(r4) +rlwinm REG_KEY, r3, 0, 0xF +rlwinm r3, r3, 0, 0xFFFFFFF0 # clear d-pad inputs +stw r3, 0(r4) # Calculate time diff calcDiffTicksToUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 # Log -mr r7, REG_DIFF_US -mr r6, REG_KEY -loadGlobalFrame r5 -logf LOG_LEVEL_WARN, "ENGINE %u 0x%X %u" # Label Frame TimeUs +# mr r7, REG_DIFF_US +# mr r6, REG_KEY +# loadGlobalFrame r5 +# logf LOG_LEVEL_WARN, "ENGINE %u 0x%X %u" # Label Frame TimeUs # Adjust develop text BG color -lwz r3, DIB_DEVELOP_TEXT_ADDR(REG_DIB) +lwz r3, DIB_COLOR_KEY_DTEXT_ADDR(REG_DIB) stb REG_KEY, BKP_FREE_SPACE_OFFSET+0(sp) stb REG_KEY, BKP_FREE_SPACE_OFFSET+1(sp) stb REG_KEY, BKP_FREE_SPACE_OFFSET+2(sp) diff --git a/External/Debug Inputs/LogFrameScanoutStart.asm b/External/Debug Inputs/LogFrameScanoutStart.asm index 4f2ff9a5..d01d1881 100644 --- a/External/Debug Inputs/LogFrameScanoutStart.asm +++ b/External/Debug Inputs/LogFrameScanoutStart.asm @@ -32,7 +32,7 @@ computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) # Check if DIB is ready (poll has happened) -lbz r3, DIB_IS_READY(REG_DIB) +lbz r3, DIB_ACTIVE_STATE(REG_DIB) cmpwi r3, 0 beq RESTORE_AND_EXIT @@ -52,13 +52,16 @@ calcDiffTicksToUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 # Log -mr r8, REG_DIFF_US -loadwz r7, 0x804a8b10 # Load ptr to frame that will be scanned out -lwz r7, 0(r7) # Load top left pixel -mr r6, REG_KEY -loadGlobalFrame r5 -subi r5, r5, 1 -logf LOG_LEVEL_WARN, "BLANK %u 0x%X %X %u" # Label Frame TimeUs +# mr r8, REG_DIFF_US +# loadwz r7, 0x804a8b10 # Load ptr to frame that will be scanned out +# lwz r7, 0(r7) # Load top left pixel +# mr r6, REG_KEY +# loadGlobalFrame r5 +# subi r5, r5, 1 +# logf LOG_LEVEL_WARN, "BLANK %u 0x%X %X %u" # Label Frame TimeUs + +# Store latest latency +stw REG_DIFF_US, DIB_INPUT_TO_RENDER_US(REG_DIB) # Restore interrupts mr r3, REG_INTERRUPTS diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm index b45efb51..e65ec6f6 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -32,12 +32,15 @@ computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) # Store "key" to inputs (sets d-pad inputs) -lbz r3, DIB_POLL_INDEX(REG_DIB) -rlwinm r3, r3, 16, 0xF0000 +lwz r3, P1_PAD_OFFSET(sp) # Load P1 inputs +rlwinm r3, r3, 16, 0xFFFFFFF0 # shift inputs to put d-pad lowest, also clear d-pad +lbz r4, DIB_POLL_INDEX(REG_DIB) +or r3, r3, r4 # set d-pad inputs to key +rlwinm r3, r3, 16, 0xFFFFFFFF # shift inputs back into place stw r3, P1_PAD_OFFSET(sp) # Get and write current tick -branchl r12, 0x8034c408 # OSGetTick +lwz r3, DIB_LAST_POLL_TIME(REG_DIB) lbz r4, DIB_POLL_INDEX(REG_DIB) mulli r4, r4, 4 # Get index offset addi r4, r4, DIB_CIRCULAR_BUFFER @@ -46,18 +49,22 @@ stwx r3, REG_DIB, r4 # Log # loadwz r7, 0xCC006430 # Includes details to poll more often. http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.8 # loadwz r7, 0xCC006434 -lwz r7, DIB_CALLBACK_COUNT(REG_DIB) -lwz r6, P1_PAD_OFFSET(sp) -rlwinm r6, r6, 16, 0xF -loadGlobalFrame r5 -logf LOG_LEVEL_WARN, "POLL %u 0x%X %u" +# lwz r7, DIB_CALLBACK_COUNT(REG_DIB) +# lwz r6, P1_PAD_OFFSET(sp) +# rlwinm r6, r6, 16, 0xF +# loadGlobalFrame r5 +# logf LOG_LEVEL_WARN, "POLL %u 0x%X %u" # Increment index incrementByte r3, REG_DIB, DIB_POLL_INDEX, CIRCULAR_BUFFER_COUNT -# Indicate ready, prevents other functions from running first +# Indicate ready, prevents other functions from running first. Only activate if currently inactive +lbz r3, DIB_ACTIVE_STATE(REG_DIB) +cmpwi r3, 0 +bne SKIP_ACTIVATE li r3, 1 -stb r3, DIB_IS_READY(REG_DIB) +stb r3, DIB_ACTIVE_STATE(REG_DIB) +SKIP_ACTIVATE: # Restore interrupts mr r3, REG_INTERRUPTS diff --git a/External/Monitor4-3/Add Shutters.asm b/External/Monitor4-3/Add Shutters.asm index d6a65f7f..deb8f584 100644 --- a/External/Monitor4-3/Add Shutters.asm +++ b/External/Monitor4-3/Add Shutters.asm @@ -21,7 +21,7 @@ blrl # r3: isLeft # True if this is the left shutter, False if right ################################################################################ .set REG_DATA, 31 -.set REG_DevelopText, 30 +.set REG_DEVELOP_TEXT, 30 .set REG_X_POS, 29 .set REG_ID, 28 @@ -49,23 +49,23 @@ backup li r6,1 li r7,1 branchl r12, 0x80302834 # DevelopText_CreateDataTable - mr REG_DevelopText,r3 + mr REG_DEVELOP_TEXT,r3 #Activate Text lwz r3, -0x4884 (r13) - mr r4,REG_DevelopText + mr r4,REG_DEVELOP_TEXT branchl r12, 0x80302810 # DevelopText_Activate #Hide blinking cursor li r3,0 - stb r3,0x26(REG_DevelopText) + stb r3,0x26(REG_DEVELOP_TEXT) #Change BG Color - mr r3,REG_DevelopText + mr r3,REG_DEVELOP_TEXT addi r4,REG_DATA,DO_COLOR branchl r12, 0x80302b90 # DevelopText_StoreBGColor #Set Stretch lfs f1,DO_X_SCALE(REG_DATA) - stfs f1,0x8(REG_DevelopText) + stfs f1,0x8(REG_DEVELOP_TEXT) lfs f1,DO_Y_SCALE(REG_DATA) - stfs f1,0xC(REG_DevelopText) + stfs f1,0xC(REG_DEVELOP_TEXT) restore blr diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 45682f31..92365e4e 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -771,3 +771,243 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 04005600 801910E0 #Common/ConsoleOverrides/SetGeckoStart.asm + +$Optional: Debug Input Timings [Fizzi] +*Try to debug inputs +C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm +38600080 3D808037 +618CF1E4 7D8903A6 +4E800421 906DAFC4 +38000000 00000000 +041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm +C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm +48000368 4E800021 +00000000 41C80000 +41C80000 000000FF +000000B4 E2E2E2FF +41200000 41880000 +496E7075 7420746F +2052656E 6465723A +20257520 75730A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFFA1 +7FE802A6 83DF0000 +807E0012 38630001 +907E0012 3D808034 +618CC408 7D8903A6 +4E800421 907E000A +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFF4D 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +4082009C 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 +4E800421 7FA3EB78 +389F0020 80BE0056 +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0038 +80BE0012 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E000E 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFE75 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FFD5 +38A0FFD6 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 +7D8903A6 4E800421 +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 +7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFDB9 +7FE802A6 386003E8 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C681B78 3860001F +38800000 38A00000 +38C0001C 38E00004 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFD6D 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3860005A 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFC79 +7C8802A6 90640000 +7C7E1B78 3880005A +3D808000 618CC160 +7D8903A6 4E800421 +4BFFFDD1 4BFFFE89 +4BFFFC99 7C6802A6 +907E000E 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 +C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608048 +80639D60 2C030000 +408100FC 7C0802A6 +90010004 9421FF50 +BE810008 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820094 3C80804C +60841FAC 80640000 +547C073E 54630036 +90640000 3D808034 +618CC408 7D8903A6 +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C +388001E6 7C632396 +7C7D1B78 807F0002 +9B810038 9B810039 +9B81003A 80810038 +54842026 608400FF +90810038 38810038 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 800D9368 +60000000 00000000 +C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm +3C608048 80639D30 +5463443E 2C030202 +408200F0 3C608047 +60639D64 80630000 +2C030000 408200DC +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 887F0000 +2C030000 41820074 +3C60804A 60638B10 +80630000 80630000 +5463463E 3863FFF1 +1C630006 38800005 +7C632396 547CE73E +3D808034 618CC408 +7D8903A6 4E800421 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 388001E6 +7C632396 7C7D1B78 +93BF0056 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +80010024 00000000 +C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm +3C608048 80639D30 +5463443E 2C030202 +408200E0 3C608047 +60639D64 80630000 +2C030000 408200CC +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index cb4f42acd80f44ad36f634776c3a483254d843f3..edc685b9b99d02152064a95498fb51ea53aaaea3 100644 GIT binary patch delta 1734 zcmb_cUuaWT9RA%TwwDm4Xo$`RbFcpptIh|p$I`_XMXjw;bPh569po7mlbC->gCy819?;BZgA z-#NeYeZSv#PWjV(e7d~Zs&4I>A))}&iGRjMRea#es)&3_ z##fCjrtmj=iu`?NIjJJnIqwWiZH$?Pg$27)0hTA~8vG)iQc^?8xl4n|OJBAryV6Sf zN|1VoE?-uT4RxglQvwT;NM_2usiH)IYpUHlJ3?}|ZQrq8`liNyCE{7y$PAK-_=4!6 zL}5;@6U|bvRM{A|K9J;$mt<^~8uD49eSVTUMrp#j`)3Bp4kijM(_S)xF;2wFL{4mP z`>NO^DSVdBJF)#e|A=*E*d#Fo1w$l#7i`!03Eg;9&Ko4-aOxaIk}Pe&Iw+a=&PyUn zd;)qrwr0^zXR_#=se zRA19=uMC)Zw4zLn*v}G$;ELuYsFee|FCen2N!|9_uf(oml1MZH*~J=46n@aX&B*)= zjULC^n`R%@)?IO{e)_k#3tXZZrqZ-2`==_~@6V%mwO@7XnOB%tyI`?X+_-&EGmgji z`F*~QQ7PnNy0Bcw2)%v(f`JU|ccoq)K@xi+y0MtzV?^55-^9&(jVbLO-=^gPZDy_| zV;bATW51D{hZ$TeUu)+U@6mIy2OLT@voWq2bXcf%4tRG{qZ4>)auhKql>=sSOK;Sm z5aZGxrm^F?ISi{>JBDZBL?*+tA526BoETl6Ye>uD(wiCKJosZV#x zLe+GwfwZZ-61z z3F(@-82_)ODt%AqT|0{&7KX=5{gH?TpX?MRsJ8aw`K8zz`d_S}|HqG@U&z;M-rxy( zt{MDrev%~U%U~Wa0z-R)0*mHc8(8WA_(&2DJG|7?$w{ugO29mSp*bO7(hc|xdP^50 Ls+^CJPl)^*dyz-s delta 7 OcmeCMTcE#Tfj9sRb^`qX diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index 190c929904d0ad5d492c7bf3803d0845babf9951..e9d2039d6a5b2d2ef70b8c78dc23f944780d65dc 100644 GIT binary patch delta 1734 zcmb_cUuaWT9RA%TwwDm4Xo$`RbFcpptIh|p$I`_XMXjw;bPh569po7mlbC->gCy819?;BZgA z-#NeYeZSv#PWjV(e7d~Zs&4I>A))}&iGRjMRea#es)&3_ z##fCjrtmj=iu`?NIjJJnIqwWiZH$?Pg$27)0hTA~8vG)iQc^?8xl4n|OJBAryV6Sf zN|1VoE?-uT4RxglQvwT;NM_2usiH)IYpUHlJ3?}|ZQrq8`liNyCE{7y$PAK-_=4!6 zL}5;@6U|bvRM{A|K9J;$mt<^~8uD49eSVTUMrp#j`)3Bp4kijM(_S)xF;2wFL{4mP z`>NO^DSVdBJF)#e|A=*E*d#Fo1w$l#7i`!03Eg;9&Ko4-aOxaIk}Pe&Iw+a=&PyUn zd;)qrwr0^zXR_#=se zRA19=uMC)Zw4zLn*v}G$;ELuYsFee|FCen2N!|9_uf(oml1MZH*~J=46n@aX&B*)= zjULC^n`R%@)?IO{e)_k#3tXZZrqZ-2`==_~@6V%mwO@7XnOB%tyI`?X+_-&EGmgji z`F*~QQ7PnNy0Bcw2)%v(f`JU|ccoq)K@xi+y0MtzV?^55-^9&(jVbLO-=^gPZDy_| zV;bATW51D{hZ$TeUu)+U@6mIy2OLT@voWq2bXcf%4tRG{qZ4>)auhKql>=sSOK;Sm z5aZGxrm^F?ISi{>JBDZBL?*+tA526BoETl6Ye>uD(wiCKJosZV#x zLe+GwfwZZ-61z z3F(@-82_)ODt%AqT|0{&7KX=5{gH?TpX?MRsJ8aw`K8zz`d_S}|HqG@U&z;M-rxy( zt{MDrev%~U%U~Wa0z-R)0*mHc8(8WA_(&2DJG|7?$w{ugO29mSp*bO7(hc|xdP^50 Ls+^CJPl)^*dyz-s delta 7 OcmeCMTcE#Tfj9sRb^`qX diff --git a/Output/Console/g_lag_pd.bin b/Output/Console/g_lag_pd.bin index f00775fc45e5010d4703932328711c25fddf5df8..1f20dd0e8990b23cb325fcb600c825bc2e5bd50d 100644 GIT binary patch literal 48 zcmX>k<-34^fq{8~30|4f@4ygbD diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 661dd248..9eac382e 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5703,26 +5703,63 @@ C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm 4E800421 906DAFC4 38000000 00000000 041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 0000002E #External/Debug Inputs/InitOnGameStart.asm -48000114 4E800021 +C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm +48000368 4E800021 00000000 41C80000 41C80000 000000FF +000000B4 E2E2E2FF +41200000 41880000 +496E7075 7420746F +2052656E 6465723A +20257520 75730A00 +506F6C6C 20436F75 +6E743A20 25750A00 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFFD9 -7FE802A6 809F0000 -80640006 38630001 -90640006 BA810008 +BE810008 4BFFFFA1 +7FE802A6 83DF0000 +807E0012 38630001 +907E0012 3D808034 +618CC408 7D8903A6 +4E800421 907E000A +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFF4D 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +4082009C 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 +4E800421 7FA3EB78 +389F0020 80BE0056 +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0038 +80BE0012 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E000E 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFF9D 7FE802A6 +4BFFFE75 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 -3860001E 3880FFE7 -38A0FFE7 38C00001 +3860001E 3880FFD5 +38A0FFD6 38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 @@ -5738,24 +5775,67 @@ C03F0008 D03E000C 807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 -4E800020 3860004A +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFDB9 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFEDD 7C8802A6 -90640000 3880004A +7C681B78 3860001F +38800000 38A00000 +38C0001C 38E00004 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFD6D 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3860005A 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFC79 +7C8802A6 90640000 +7C7E1B78 3880005A 3D808000 618CC160 7D8903A6 4E800421 -4BFFFF11 4BFFFECD -7C6802A6 3D808034 +4BFFFDD1 4BFFFE89 +4BFFFC99 7C6802A6 +907E000E 3D808034 618C9BF0 7D8903A6 -4E800421 C022A8C8 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 60000000 00000000 -C21A4DEC 0000003B #External/Debug Inputs/LogEngineTime.asm +C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -408201BC 3C608048 +4082010C 3C608048 80639D60 2C030000 -408101AC 7C0802A6 +408100FC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5766,38 +5846,16 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820144 3CE0804C -60E71FAC 80E70000 -54FC073E 3D808034 +41820094 3C80804C +60841FAC 80640000 +547C073E 54630036 +90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -3884000A 7C9F202E +38840016 7C9F202E 7C641850 1C63000C 388001E6 7C632396 -7C7D1B78 7FA7EB78 -7F86E378 3CA08048 -80A59D60 4800001C -4E800021 454E4749 -4E452025 75203078 -25582025 75000000 -7C0802A6 90010004 -9421FF00 BC610008 -60000000 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFBD -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807F0002 +7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 54842026 608400FF @@ -5810,12 +5868,12 @@ BE810008 3D808034 800100B4 382100B0 7C0803A6 800D9368 60000000 00000000 -C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm +C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -408201B8 3C608047 +408200F0 3C608047 60639D64 80630000 -2C030000 408201A4 +2C030000 408200DC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5826,7 +5884,7 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 -2C030000 4182013C +2C030000 41820074 3C60804A 60638B10 80630000 80630000 5463463E 3863FFF1 @@ -5834,47 +5892,22 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 3884000A +1C9C0004 38840016 7C9F202E 7C641850 1C63000C 388001E6 7C632396 7C7D1B78 -7FA8EB78 3CE0804A -60E78B10 80E70000 -80E70000 7F86E378 -3CA08048 80A59D60 -38A5FFFF 4800001C -4E800021 424C414E -4B202575 20307825 -58202558 20257500 -7C0802A6 90010004 -9421FF00 BC610008 -60000000 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFBD -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 7FC3F378 +93BF0056 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 00000035 #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -4082018C 3C608047 +408200E0 3C608047 60639D64 80630000 -2C030000 40820178 +2C030000 408200CC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5884,45 +5917,23 @@ C2376A88 00000035 #External/Debug Inputs/StoreCaptureTimes.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 887F0001 -5463831E 906100DC -3D808034 618CC408 -7D8903A6 4E800421 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A 889F0001 1C840004 -3884000A 7C7F212E -80FF0006 80C100DC -54C6873E 3CA08048 -80A59D60 48000018 -4E800021 504F4C4C -20257520 30782558 -20257500 7C0802A6 -90010004 9421FF00 -BC610008 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFC1 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +38840016 7C7F212E 887F0001 38630001 2C030010 41800008 38600000 987F0001 -38600001 987F0000 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 881F0002 -60000000 00000000 +887F0000 2C030000 +4082000C 38600001 +987F0000 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 $Optional: PD+VB [taukhan] *PD+VB diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9533ede7..f4e48142 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5703,26 +5703,63 @@ C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm 4E800421 906DAFC4 38000000 00000000 041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 0000002E #External/Debug Inputs/InitOnGameStart.asm -48000114 4E800021 +C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm +48000368 4E800021 00000000 41C80000 41C80000 000000FF +000000B4 E2E2E2FF +41200000 41880000 +496E7075 7420746F +2052656E 6465723A +20257520 75730A00 +506F6C6C 20436F75 +6E743A20 25750A00 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFFD9 -7FE802A6 809F0000 -80640006 38630001 -90640006 BA810008 +BE810008 4BFFFFA1 +7FE802A6 83DF0000 +807E0012 38630001 +907E0012 3D808034 +618CC408 7D8903A6 +4E800421 907E000A +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFF4D 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +4082009C 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 +4E800421 7FA3EB78 +389F0020 80BE0056 +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0038 +80BE0012 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E000E 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFF9D 7FE802A6 +4BFFFE75 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 -3860001E 3880FFE7 -38A0FFE7 38C00001 +3860001E 3880FFD5 +38A0FFD6 38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 @@ -5738,24 +5775,67 @@ C03F0008 D03E000C 807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 -4E800020 3860004A +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFDB9 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFEDD 7C8802A6 -90640000 3880004A +7C681B78 3860001F +38800000 38A00000 +38C0001C 38E00004 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFD6D 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3860005A 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFC79 +7C8802A6 90640000 +7C7E1B78 3880005A 3D808000 618CC160 7D8903A6 4E800421 -4BFFFF11 4BFFFECD -7C6802A6 3D808034 +4BFFFDD1 4BFFFE89 +4BFFFC99 7C6802A6 +907E000E 3D808034 618C9BF0 7D8903A6 -4E800421 C022A8C8 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 60000000 00000000 -C21A4DEC 0000003B #External/Debug Inputs/LogEngineTime.asm +C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -408201BC 3C608048 +4082010C 3C608048 80639D60 2C030000 -408101AC 7C0802A6 +408100FC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5766,38 +5846,16 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820144 3CE0804C -60E71FAC 80E70000 -54FC073E 3D808034 +41820094 3C80804C +60841FAC 80640000 +547C073E 54630036 +90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -3884000A 7C9F202E +38840016 7C9F202E 7C641850 1C63000C 388001E6 7C632396 -7C7D1B78 7FA7EB78 -7F86E378 3CA08048 -80A59D60 4800001C -4E800021 454E4749 -4E452025 75203078 -25582025 75000000 -7C0802A6 90010004 -9421FF00 BC610008 -60000000 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFBD -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807F0002 +7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 54842026 608400FF @@ -5810,12 +5868,12 @@ BE810008 3D808034 800100B4 382100B0 7C0803A6 800D9368 60000000 00000000 -C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm +C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -408201B8 3C608047 +408200F0 3C608047 60639D64 80630000 -2C030000 408201A4 +2C030000 408200DC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5826,7 +5884,7 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 -2C030000 4182013C +2C030000 41820074 3C60804A 60638B10 80630000 80630000 5463463E 3863FFF1 @@ -5834,47 +5892,22 @@ C2375C14 0000003A #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 3884000A +1C9C0004 38840016 7C9F202E 7C641850 1C63000C 388001E6 7C632396 7C7D1B78 -7FA8EB78 3CE0804A -60E78B10 80E70000 -80E70000 7F86E378 -3CA08048 80A59D60 -38A5FFFF 4800001C -4E800021 424C414E -4B202575 20307825 -58202558 20257500 -7C0802A6 90010004 -9421FF00 BC610008 -60000000 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFBD -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 7FC3F378 +93BF0056 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 00000035 #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -4082018C 3C608047 +408200E0 3C608047 60639D64 80630000 -2C030000 40820178 +2C030000 408200CC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5884,45 +5917,23 @@ C2376A88 00000035 #External/Debug Inputs/StoreCaptureTimes.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 887F0001 -5463831E 906100DC -3D808034 618CC408 -7D8903A6 4E800421 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A 889F0001 1C840004 -3884000A 7C7F212E -80FF0006 80C100DC -54C6873E 3CA08048 -80A59D60 48000018 -4E800021 504F4C4C -20257520 30782558 -20257500 7C0802A6 -90010004 9421FF00 -BC610008 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFC1 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +38840016 7C7F212E 887F0001 38630001 2C030010 41800008 38600000 987F0001 -38600001 987F0000 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 881F0002 -60000000 00000000 +887F0000 2C030000 +4082000C 38600001 +987F0000 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 $Optional: PD+VB [taukhan] *PD+VB diff --git a/console_core.json b/console_core.json index dbae8a7b..5b7a8426 100644 --- a/console_core.json +++ b/console_core.json @@ -176,6 +176,23 @@ "annotation": "Forces values for proper console operation [Fizzi]" } ] + }, + { + "name": "Optional: Debug Input Timings", + "authors": [ + "Fizzi" + ], + "description": [ + "Try to debug inputs" + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "External/Debug Inputs", + "isRecursive": true, + "annotation": "Debug Inputs" + } + ] } ] } \ No newline at end of file diff --git a/console_lag_pd.json b/console_lag_pd.json index ec9d71db..50e9ae90 100644 --- a/console_lag_pd.json +++ b/console_lag_pd.json @@ -6,19 +6,18 @@ ], "codes": [ { - "name": "59.94Hz Engine", + "name": "Polling Drift Fix", "authors": [ - "Fizzi" + "Dan Salvato" ], "description": [ "Removes polling drift phenomenon causing variable input lag" ], "build": [ { - "type": "injectFolder", - "sourceFolder": "External/59.94Hz Engine", - "isRecursive": true, - "annotation": "59.94Hz Engine [Fizzi]" + "type": "binary", + "sourceFile": "Binary/LagReduction/PD.bin", + "annotation": "Polling Drift Fix [Dan Salvato]" } ] } From 5195d2e76ae66be0fe19358d9e73b48efae7cb83 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 10 Jun 2021 17:18:40 -0700 Subject: [PATCH 010/217] add additional logging and fix time on Nintendont --- Common/Common.s | 325 ++++++++++-------- .../EXILogging/AllocLoggingBuffer.asm | 12 +- External/Debug Inputs/Boot To CSS.asm | 6 - External/Debug Inputs/DebugInputs.s | 30 +- External/Debug Inputs/InitOnGameStart.asm | 67 +++- External/Debug Inputs/LogEngineTime.asm | 11 +- .../Debug Inputs/LogFrameScanoutStart.asm | 17 +- External/Debug Inputs/StoreCaptureTimes.asm | 31 +- Online/Core/ForceEngineOnRollback.asm | 2 +- Online/Core/Hacks/ForceNoVideoAssert.asm | 2 +- .../Hacks/PreventPadAlarmDuringRollback.asm | 2 +- Online/Core/Sound/PreventDuplicateSounds.asm | 6 +- Online/Core/TriggerSendInput.asm | 28 +- Online/Menus/CSS/HandleInputsOnCSS.asm | 4 +- Online/Menus/CSS/LoadCSSText.asm | 6 +- Online/Menus/CSS/Teams/AnimateCursorPort.asm | 2 +- .../Menus/CSS/Teams/InitTeamToggleButton.asm | 2 +- Online/Online.s | 1 - Output/Console/GALE01r2.ini | 247 +++++++------ Output/Console/g_core.bin | Bin 7944 -> 8240 bytes Output/Console/g_core_porta.bin | Bin 7944 -> 8240 bytes Output/Netplay/GALE01r2.ini | 247 +++++++------ Output/Netplay/GALJ01r2.ini | 247 +++++++------ Recording/SendGameEnd.asm | 6 +- 24 files changed, 756 insertions(+), 545 deletions(-) rename External/Debug Inputs/AllocBuffer.asm => Common/EXILogging/AllocLoggingBuffer.asm (62%) delete mode 100644 External/Debug Inputs/Boot To CSS.asm diff --git a/Common/Common.s b/Common/Common.s index de84aaf8..4708c793 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -1,152 +1,3 @@ -################################################################################ -# Macros -################################################################################ -.macro branchl reg, address -lis \reg, \address @h -ori \reg,\reg,\address @l -mtctr \reg -bctrl -.endm - -.macro branch reg, address -lis \reg, \address @h -ori \reg,\reg,\address @l -mtctr \reg -bctr -.endm - -.macro load reg, address -lis \reg, \address @h -ori \reg, \reg, \address @l -.endm - -.macro loadf regf,reg,address -lis \reg, \address @h -ori \reg, \reg, \address @l -stw \reg,-0x4(sp) -lfs \regf,-0x4(sp) -.endm - -.macro loadwz reg, address -lis \reg, \address @h -ori \reg, \reg, \address @l -lwz \reg, 0(\reg) -.endm - -.macro loadbz reg, address -lis \reg, \address @h -ori \reg, \reg, \address @l -lbz \reg, 0(\reg) -.endm - -.set BKP_FREE_SPACE_OFFSET, 0x38 # This is where the free space in our stack starts - -.macro backup space=0x78 -mflr r0 -stw r0, 0x4(r1) -stwu r1,-(BKP_FREE_SPACE_OFFSET + \space)(r1) # make space for 12 registers -stmw r20,0x8(r1) -.endm - -.macro restore space=0x78 -lmw r20,0x8(r1) -lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space)(r1) -addi r1,r1,BKP_FREE_SPACE_OFFSET + \space # release the space -mtlr r0 -.endm - -.macro byteAlign32 reg -addi \reg, \reg, 31 -rlwinm \reg, \reg, 0, 0xFFFFFFE0 -.endm - -.macro backupall -mflr r0 -stw r0, 0x4(r1) -stwu r1,-0x100(r1) -stmw r3,0x8(r1) -.endm - -.macro restoreall -lmw r3,0x8(r1) -lwz r0, 0x104(r1) -addi r1,r1,0x100 -mtlr r0 -.endm - -.macro logf level, str, arg1="nop", arg2="nop", arg3="nop", arg4="nop", arg5="nop" -b 1f -0: -blrl -.string "\str" -.align 2 - -1: -backupall - -# Set up args to log -\arg1 -\arg2 -\arg3 -\arg4 -\arg5 - -lwz r3, OFST_R13_SB_ADDR(r13) # Buf to use as EXI buf -addi r3, r3, 3 -bl 0b -mflr r4 -crset 6 -branchl r12, 0x80323cf4 # sprintf - -lwz r3, OFST_R13_SB_ADDR(r13) # Buf to use as EXI buf - -li r4, 0xD0 -stb r4, 0(r3) -li r4, 0 # Do not request time to be logged -stb r4, 1(r3) -li r4, \level -stb r4, 2(r3) - -li r4, 128 # Length of buf -li r5, CONST_ExiWrite -branchl r12, FN_EXITransferBuffer - -restoreall -.endm - -.macro getMinorMajor reg -lis \reg, 0x8048 # load address to offset from for scene controller -lwz \reg, -0x62D0(\reg) # Load from 0x80479D30 (scene controller) -rlwinm \reg, \reg, 8, 0xFFFF # Loads major and minor scene into bottom of reg -.endm - -.macro getMajorId reg -lis \reg, 0x8048 # load address to offset from for scene controller -lbz \reg, -0x62D0(\reg) # Load byte from 0x80479D30 (major ID) -.endm - -.macro loadGlobalFrame reg -lis \reg, 0x8048 -lwz \reg, -0x62A0(\reg) -.endm - -# This macro takes in an address that is expected to have a branch instruction. It will set -# r3 to the address being branched to. This will overwrite r3 and r4 -.macro computeBranchTargetAddress reg address -load r3, \address -lwz r4, 0(r3) # Get branch instruction which contains offset - -# Process 3rd byte and extend sign to handle negative branches -rlwinm r5, r4, 16, 0xFF -extsb r5, r5 -rlwinm r5, r5, 16, 0xFFFF0000 - -# Extract last 2 bytes, combine with top half, and then add to base address to get result -rlwinm r4, r4, 0, 0xFFFC # Use 0xFFFC because the last bit is used for link -or r4, r4, r5 -add \reg, r3, r4 -.endm - ################################################################################ # Settings ################################################################################ @@ -393,7 +244,7 @@ add \reg, r3, r4 # Offsets from r13 ################################################################################ .set primaryDataBuffer,-0x49b4 -.set secondaryDmaBuffer,-0x49b0 +.set OFST_R13_LOG_BUF, -0x5040 # From Line: 8019b914 (SceneLoad_TournamentBracket) .set archiveDataBuffer, -0x4AE8 .set bufferOffset,-0x49b0 .set frameIndex,-0x49ac @@ -407,3 +258,177 @@ add \reg, r3, r4 .set LOG_LEVEL_WARN, 3 .set LOG_LEVEL_ERROR, 2 .set LOG_LEVEL_NOTICE, 1 + +################################################################################ +# Macros +################################################################################ +.macro branchl reg, address +lis \reg, \address @h +ori \reg,\reg,\address @l +mtctr \reg +bctrl +.endm + +.macro branch reg, address +lis \reg, \address @h +ori \reg,\reg,\address @l +mtctr \reg +bctr +.endm + +.macro load reg, address +lis \reg, \address @h +ori \reg, \reg, \address @l +.endm + +.macro loadf regf,reg,address +lis \reg, \address @h +ori \reg, \reg, \address @l +stw \reg,-0x4(sp) +lfs \regf,-0x4(sp) +.endm + +.macro loadwz reg, address +lis \reg, \address @h +ori \reg, \reg, \address @l +lwz \reg, 0(\reg) +.endm + +.macro loadbz reg, address +lis \reg, \address @h +ori \reg, \reg, \address @l +lbz \reg, 0(\reg) +.endm + +.set BKP_FREE_SPACE_OFFSET, 0x38 # This is where the free space in our stack starts + +.macro backup space=0x78 +mflr r0 +stw r0, 0x4(r1) +stwu r1,-(BKP_FREE_SPACE_OFFSET + \space)(r1) # make space for 12 registers +stmw r20,0x8(r1) +.endm + +.macro restore space=0x78 +lmw r20,0x8(r1) +lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space)(r1) +addi r1,r1,BKP_FREE_SPACE_OFFSET + \space # release the space +mtlr r0 +.endm + +.macro byteAlign32 reg +addi \reg, \reg, 31 +rlwinm \reg, \reg, 0, 0xFFFFFFE0 +.endm + +.macro backupall +mflr r0 +stw r0, 0x4(r1) +stwu r1,-0x100(r1) +stmw r3,0x8(r1) +.endm + +.macro restoreall +lmw r3,0x8(r1) +lwz r0, 0x104(r1) +addi r1,r1,0x100 +mtlr r0 +.endm + +.macro logf str, arg1="nop", arg2="nop", arg3="nop", arg4="nop", arg5="nop" +b 1f +0: +blrl +.string "\str" +.align 2 + +1: +backupall + +# Set up args to log +\arg1 +\arg2 +\arg3 +\arg4 +\arg5 + +# Call OSReport +bl 0b +mflr r3 +branchl r12, OSReport + +restoreall +.endm + +.macro exilogf level, str, arg1="nop", arg2="nop", arg3="nop", arg4="nop", arg5="nop" +b 1f +0: +blrl +.string "\str" +.align 2 + +1: +backupall + +# Set up args to log +\arg1 +\arg2 +\arg3 +\arg4 +\arg5 + +lwz r3, OFST_R13_LOG_BUF(r13) # Buf to use as EXI buf +addi r3, r3, 3 +bl 0b +mflr r4 +crset 6 +branchl r12, 0x80323cf4 # sprintf + +lwz r3, OFST_R13_LOG_BUF(r13) # Buf to use as EXI buf + +li r4, 0xD0 +stb r4, 0(r3) +li r4, 0 # Do not request time to be logged +stb r4, 1(r3) +li r4, \level +stb r4, 2(r3) + +li r4, 128 # Length of buf +li r5, CONST_ExiWrite +branchl r12, FN_EXITransferBuffer + +restoreall +.endm + +.macro getMinorMajor reg +lis \reg, 0x8048 # load address to offset from for scene controller +lwz \reg, -0x62D0(\reg) # Load from 0x80479D30 (scene controller) +rlwinm \reg, \reg, 8, 0xFFFF # Loads major and minor scene into bottom of reg +.endm + +.macro getMajorId reg +lis \reg, 0x8048 # load address to offset from for scene controller +lbz \reg, -0x62D0(\reg) # Load byte from 0x80479D30 (major ID) +.endm + +.macro loadGlobalFrame reg +lis \reg, 0x8048 +lwz \reg, -0x62A0(\reg) +.endm + +# This macro takes in an address that is expected to have a branch instruction. It will set +# r3 to the address being branched to. This will overwrite r3 and r4 +.macro computeBranchTargetAddress reg address +load r3, \address +lwz r4, 0(r3) # Get branch instruction which contains offset + +# Process 3rd byte and extend sign to handle negative branches +rlwinm r5, r4, 16, 0xFF +extsb r5, r5 +rlwinm r5, r5, 16, 0xFFFF0000 + +# Extract last 2 bytes, combine with top half, and then add to base address to get result +rlwinm r4, r4, 0, 0xFFFC # Use 0xFFFC because the last bit is used for link +or r4, r4, r5 +add \reg, r3, r4 +.endm \ No newline at end of file diff --git a/External/Debug Inputs/AllocBuffer.asm b/Common/EXILogging/AllocLoggingBuffer.asm similarity index 62% rename from External/Debug Inputs/AllocBuffer.asm rename to Common/EXILogging/AllocLoggingBuffer.asm index 21464ad9..f64d2ff9 100644 --- a/External/Debug Inputs/AllocBuffer.asm +++ b/Common/EXILogging/AllocLoggingBuffer.asm @@ -1,14 +1,14 @@ ################################################################################ -# Address: 0x801a4cb4 +# Address: 0x801a4cb8 ################################################################################ .include "Common/Common.s" -.include "Online/Online.s" # Alloc buffer - li r3,128 - branchl r12,HSD_MemAlloc - stw r3,OFST_R13_SB_ADDR(r13) +li r3, 128 +branchl r12, HSD_MemAlloc +stw r3, OFST_R13_LOG_BUF(r13) # Original - li r0, 0 +li r0, 0 +stw r0, -0x4F78(r13) diff --git a/External/Debug Inputs/Boot To CSS.asm b/External/Debug Inputs/Boot To CSS.asm deleted file mode 100644 index d4fc9c55..00000000 --- a/External/Debug Inputs/Boot To CSS.asm +++ /dev/null @@ -1,6 +0,0 @@ -################################################################################ -# Address: 801bfa20 -################################################################################ -.include "Common/Common.s" - -li r3,2 diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index c724d051..90fb1b6e 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -6,15 +6,20 @@ .set CIRCULAR_BUFFER_COUNT, 16 .set DIB_ACTIVE_STATE, 0 # u8. 0 = starting, 1 = active, 2 = complete -.set DIB_POLL_INDEX, DIB_ACTIVE_STATE + 1 # u8 -.set DIB_COLOR_KEY_DTEXT_ADDR, DIB_POLL_INDEX + 1 # u32 +.set DIB_FETCH_INDEX, DIB_ACTIVE_STATE + 1 # u8 +.set DIB_COLOR_KEY_DTEXT_ADDR, DIB_FETCH_INDEX + 1 # u32 .set DIB_LAG_DISPLAY_DTEXT_ADDR, DIB_COLOR_KEY_DTEXT_ADDR + 4 # u32 .set DIB_LAST_POLL_TIME, DIB_LAG_DISPLAY_DTEXT_ADDR + 4 # u32 -.set DIB_CALLBACK_PTR, DIB_LAST_POLL_TIME + 4 # u32 +.set DIB_LAST_FETCH_TIME, DIB_LAST_POLL_TIME + 4 # u32 +.set DIB_CALLBACK_PTR, DIB_LAST_FETCH_TIME + 4 # u32 .set DIB_CALLBACK_COUNT, DIB_CALLBACK_PTR + 4 # u32 .set DIB_CIRCULAR_BUFFER, DIB_CALLBACK_COUNT + 4 # u32 * CIRCULAR_BUFFER_COUNT -.set DIB_INPUT_TO_RENDER_US, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) # float -.set DIB_SIZE, DIB_INPUT_TO_RENDER_US + 4 +.set DIB_INPUT_TO_RENDER_US, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) # u32 +.set DIB_POLL_DIFF_MIN_US, DIB_INPUT_TO_RENDER_US + 4 # u32 +.set DIB_POLL_DIFF_MAX_US, DIB_POLL_DIFF_MIN_US + 4 # u32 +.set DIB_FETCH_DIFF_US, DIB_POLL_DIFF_MAX_US + 4 # u32 +.set DIB_FETCH_TO_POLL_US, DIB_FETCH_DIFF_US + 4 # u32 +.set DIB_SIZE, DIB_FETCH_TO_POLL_US + 4 ################################################################################ # Macros @@ -29,13 +34,18 @@ li \reg, 0 stb \reg, \offset(\reg_address) .endm -.macro calcDiffTicksToUs reg_dib, reg_idx +# Calculates us difference from two ticks +.macro calcDiffUs reg_now, reg_ref +sub r3, \reg_now, \reg_ref # This works even if ticks overflow +mulli r3, r3, 12 +li r4, 729 # This is the MHz of the PPC clock. 729 in Nintendont, 486 otherwise +divwu r3, r3, r4 +.endm + +.macro calcDiffFromFetchUs reg_dib, reg_idx branchl r12, 0x8034c408 # OSGetTick mulli r4, \reg_idx, 4 addi r4, r4, DIB_CIRCULAR_BUFFER lwzx r4, \reg_dib, r4 -sub r3, r3, r4 # This works even if ticks overflow -mulli r3, r3, 12 -li r4, 486 -divwu r3, r3, r4 +calcDiffUs r3, r4 .endm \ No newline at end of file diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index 3aba14f8..1a67143b 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -3,7 +3,6 @@ ################################################################################ .include "Common/Common.s" -.include "Online/Online.s" # Required for logf buffer, should fix that .include "./DebugInputs.s" b CODE_START @@ -30,6 +29,14 @@ blrl .string "Input to Render: %u us\n" .set DO_LD_STR_POLL_COUNT, DO_LD_STR_LATENCY + 24 .string "Poll Count: %u\n" +.set DO_LD_STR_MIN_POLL_DIFF, DO_LD_STR_POLL_COUNT + 16 +.string "Min Poll Diff: %u us\n" +.set DO_LD_STR_MAX_POLL_DIFF, DO_LD_STR_MIN_POLL_DIFF + 22 +.string "Max Poll Diff: %u us\n" +.set DO_LD_STR_FETCH_DIFF, DO_LD_STR_MAX_POLL_DIFF + 22 +.string "Fetch-Fetch: %u us\n" +.set DO_LD_STR_FETCH_TO_POLL_DIFF, DO_LD_STR_FETCH_DIFF + 20 +.string "Fetch-Poll: %u us\n" .align 2 ################################################################################ @@ -37,6 +44,7 @@ blrl ################################################################################ .set REG_DATA, 31 .set REG_DIB, 30 +.set REG_DIFF_SINCE_LAST, 29 FN_BLRL_PollingHandler: blrl @@ -51,7 +59,39 @@ stw r3, DIB_CALLBACK_COUNT(REG_DIB) # Write poll time branchl r12, 0x8034c408 # OSGetTick +lwz r4, DIB_LAST_POLL_TIME(REG_DIB) stw r3, DIB_LAST_POLL_TIME(REG_DIB) +calcDiffUs r3, r4 # Calculate difference since last poll +mr REG_DIFF_SINCE_LAST, r3 + +# Store min/max diff for logging +lwz r3, DIB_CALLBACK_COUNT(REG_DIB) +rlwinm. r3, r3, 0, 0xFF +beq FN_PollingHandler_RESET_MIN_MAX # Reset every 256 polls, 2 seconds? + +lwz r3, DIB_POLL_DIFF_MIN_US(REG_DIB) +cmpw REG_DIFF_SINCE_LAST, r3 +bge FN_PollingHandler_SKIP_ADJUST_MIN +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) +FN_PollingHandler_SKIP_ADJUST_MIN: + +lwz r3, DIB_POLL_DIFF_MAX_US(REG_DIB) +cmpw REG_DIFF_SINCE_LAST, r3 +ble FN_PollingHandler_SKIP_ADJUST_MAX +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) +FN_PollingHandler_SKIP_ADJUST_MAX: + +b FN_PollingHandler_MIN_MAX_END + +FN_PollingHandler_RESET_MIN_MAX: +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) +FN_PollingHandler_MIN_MAX_END: + +# li r4, 486 +# divwu r4, r3, r4 +# mulli r4, r4, 12 +# logf "POLL %u" restore blr @@ -89,11 +129,32 @@ mr r3, REG_DEVELOP_TEXT addi r4, REG_DATA, DO_LD_STR_LATENCY lwz r5, DIB_INPUT_TO_RENDER_US(REG_DIB) branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + mr r3, REG_DEVELOP_TEXT addi r4, REG_DATA, DO_LD_STR_POLL_COUNT lwz r5, DIB_CALLBACK_COUNT(REG_DIB) branchl r12, 0x80302d4c # DevelopText_FormatAndPrint +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_MIN_POLL_DIFF +lwz r5, DIB_POLL_DIFF_MIN_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_MAX_POLL_DIFF +lwz r5, DIB_POLL_DIFF_MAX_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_FETCH_DIFF +lwz r5, DIB_FETCH_DIFF_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_FETCH_TO_POLL_DIFF +lwz r5, DIB_FETCH_TO_POLL_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + # Check if game over load r3, 0x8046b6a0 lbz r3, 0x8(r3) @@ -179,7 +240,7 @@ li r3, 31 # ID li r4, 0 # X Pos, bottom right: 638 li r5, 0 # Y Pos, bottom right: 478 li r6, 28 -li r7, 4 +li r7, 7 branchl r12, 0x80302834 # DevelopText_CreateDataTable mr REG_DEVELOP_TEXT, r3 #Activate Text @@ -229,7 +290,7 @@ CODE_START: .set REG_DIB, 30 backup -# logf LOG_LEVEL_WARN, "Init..." +# logf "Init..." li r3, DIB_SIZE branchl r12, HSD_MemAlloc diff --git a/External/Debug Inputs/LogEngineTime.asm b/External/Debug Inputs/LogEngineTime.asm index b9c4e15f..3694837c 100644 --- a/External/Debug Inputs/LogEngineTime.asm +++ b/External/Debug Inputs/LogEngineTime.asm @@ -3,7 +3,6 @@ ################################################################################ .include "Common/Common.s" -.include "Online/Online.s" # Required for logf buffer, should fix that .include "./DebugInputs.s" # Check if VS Mode @@ -43,14 +42,14 @@ rlwinm r3, r3, 0, 0xFFFFFFF0 # clear d-pad inputs stw r3, 0(r4) # Calculate time diff -calcDiffTicksToUs REG_DIB, REG_KEY +calcDiffFromFetchUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 # Log -# mr r7, REG_DIFF_US -# mr r6, REG_KEY -# loadGlobalFrame r5 -# logf LOG_LEVEL_WARN, "ENGINE %u 0x%X %u" # Label Frame TimeUs +# mr r6, REG_DIFF_US +# mr r5, REG_KEY +# loadGlobalFrame r4 +# logf "ENGINE %u 0x%X %u" # Label Frame TimeUs # Adjust develop text BG color lwz r3, DIB_COLOR_KEY_DTEXT_ADDR(REG_DIB) diff --git a/External/Debug Inputs/LogFrameScanoutStart.asm b/External/Debug Inputs/LogFrameScanoutStart.asm index d01d1881..b48cdfd5 100644 --- a/External/Debug Inputs/LogFrameScanoutStart.asm +++ b/External/Debug Inputs/LogFrameScanoutStart.asm @@ -3,7 +3,6 @@ ################################################################################ .include "Common/Common.s" -.include "Online/Online.s" # Required for logf buffer, should fix that .include "./DebugInputs.s" # Check if VS Mode @@ -48,17 +47,17 @@ divwu r3, r3, r4 rlwinm REG_KEY, r3, 28, 0xF # Extract 4 bits to get key # Calculate time diff -calcDiffTicksToUs REG_DIB, REG_KEY +calcDiffFromFetchUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 # Log -# mr r8, REG_DIFF_US -# loadwz r7, 0x804a8b10 # Load ptr to frame that will be scanned out -# lwz r7, 0(r7) # Load top left pixel -# mr r6, REG_KEY -# loadGlobalFrame r5 -# subi r5, r5, 1 -# logf LOG_LEVEL_WARN, "BLANK %u 0x%X %X %u" # Label Frame TimeUs +# mr r7, REG_DIFF_US +# loadwz r6, 0x804a8b10 # Load ptr to frame that will be scanned out +# lwz r6, 0(r6) # Load top left pixel +# mr r5, REG_KEY +# loadGlobalFrame r4 +# subi r4, r4, 1 +# logf "BLANK %u 0x%X %X %u" # Label Frame TimeUs # Store latest latency stw REG_DIFF_US, DIB_INPUT_TO_RENDER_US(REG_DIB) diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/StoreCaptureTimes.asm index e65ec6f6..29ae1582 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/StoreCaptureTimes.asm @@ -3,7 +3,6 @@ ################################################################################ .include "Common/Common.s" -.include "Online/Online.s" # Required for logf buffer, should fix that .include "./DebugInputs.s" # Check if VS Mode @@ -21,6 +20,7 @@ bne EXIT .set REG_DIB, 31 .set REG_INTERRUPTS, 30 +.set REG_FETCH_TIME, 29 backup @@ -34,14 +34,14 @@ lwz REG_DIB, 8+0(r3) # Store "key" to inputs (sets d-pad inputs) lwz r3, P1_PAD_OFFSET(sp) # Load P1 inputs rlwinm r3, r3, 16, 0xFFFFFFF0 # shift inputs to put d-pad lowest, also clear d-pad -lbz r4, DIB_POLL_INDEX(REG_DIB) +lbz r4, DIB_FETCH_INDEX(REG_DIB) or r3, r3, r4 # set d-pad inputs to key rlwinm r3, r3, 16, 0xFFFFFFFF # shift inputs back into place stw r3, P1_PAD_OFFSET(sp) # Get and write current tick lwz r3, DIB_LAST_POLL_TIME(REG_DIB) -lbz r4, DIB_POLL_INDEX(REG_DIB) +lbz r4, DIB_FETCH_INDEX(REG_DIB) mulli r4, r4, 4 # Get index offset addi r4, r4, DIB_CIRCULAR_BUFFER stwx r3, REG_DIB, r4 @@ -49,14 +49,14 @@ stwx r3, REG_DIB, r4 # Log # loadwz r7, 0xCC006430 # Includes details to poll more often. http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.8 # loadwz r7, 0xCC006434 -# lwz r7, DIB_CALLBACK_COUNT(REG_DIB) -# lwz r6, P1_PAD_OFFSET(sp) -# rlwinm r6, r6, 16, 0xF -# loadGlobalFrame r5 -# logf LOG_LEVEL_WARN, "POLL %u 0x%X %u" +# lwz r6, DIB_CALLBACK_COUNT(REG_DIB) +# lwz r5, P1_PAD_OFFSET(sp) +# rlwinm r5, r5, 16, 0xF +# loadGlobalFrame r4 +# logf "FETCH %u 0x%X %u" # Increment index -incrementByte r3, REG_DIB, DIB_POLL_INDEX, CIRCULAR_BUFFER_COUNT +incrementByte r3, REG_DIB, DIB_FETCH_INDEX, CIRCULAR_BUFFER_COUNT # Indicate ready, prevents other functions from running first. Only activate if currently inactive lbz r3, DIB_ACTIVE_STATE(REG_DIB) @@ -66,6 +66,19 @@ li r3, 1 stb r3, DIB_ACTIVE_STATE(REG_DIB) SKIP_ACTIVATE: +# Store details to print. Start with difference since last fetch +branchl r12, 0x8034c408 # OSGetTick +mr REG_FETCH_TIME, r3 +lwz r4, DIB_LAST_FETCH_TIME(REG_DIB) +stw REG_FETCH_TIME, DIB_LAST_FETCH_TIME(REG_DIB) +calcDiffUs REG_FETCH_TIME, r4 # Calculate difference since last poll +stw r3, DIB_FETCH_DIFF_US(REG_DIB) + +# Store time since poll +lwz r3, DIB_LAST_POLL_TIME(REG_DIB) +calcDiffUs REG_FETCH_TIME, r3 +stw r3, DIB_FETCH_TO_POLL_US(REG_DIB) + # Restore interrupts mr r3, REG_INTERRUPTS branchl r12, OSRestoreInterrupts diff --git a/Online/Core/ForceEngineOnRollback.asm b/Online/Core/ForceEngineOnRollback.asm index c1b0c188..c5bde73f 100644 --- a/Online/Core/ForceEngineOnRollback.asm +++ b/Online/Core/ForceEngineOnRollback.asm @@ -64,7 +64,7 @@ beq RESTORE_AND_EXIT li r4, 0 stb r4, ODB_SHOULD_FORCE_PAD_RENEW(r5) branchl r12, RenewInputs_Prefunction -#logf LOG_LEVEL_NOTICE, "Forced a pad renew..." +#exilogf LOG_LEVEL_NOTICE, "Forced a pad renew..." RESTORE_AND_EXIT: mr r3, r26 # We will set r26 to 0 later so it's fine to use here diff --git a/Online/Core/Hacks/ForceNoVideoAssert.asm b/Online/Core/Hacks/ForceNoVideoAssert.asm index 86090136..356f0af8 100644 --- a/Online/Core/Hacks/ForceNoVideoAssert.asm +++ b/Online/Core/Hacks/ForceNoVideoAssert.asm @@ -5,7 +5,7 @@ .include "Common/Common.s" .include "Online/Online.s" -#logf LOG_LEVEL_NOTICE, "XFB Status is not 4. Value: %d", "mr r5, 0" +#exilogf LOG_LEVEL_NOTICE, "XFB Status is not 4. Value: %d", "mr r5, 0" # Log XFB status value bl STRING diff --git a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm index 966bef3a..5d04b2ec 100644 --- a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +++ b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm @@ -35,7 +35,7 @@ cmpwi r3, 0 beq EXIT # Here we have gotten a VI retrace callback while executing a rollback -# logf LOG_LEVEL_NOTICE, "VI retrace CB during rollback..." +# exilogf LOG_LEVEL_NOTICE, "VI retrace CB during rollback..." li r3, 1 stb r3, ODB_SHOULD_FORCE_PAD_RENEW(r5) diff --git a/Online/Core/Sound/PreventDuplicateSounds.asm b/Online/Core/Sound/PreventDuplicateSounds.asm index a01b949d..f74d23de 100644 --- a/Online/Core/Sound/PreventDuplicateSounds.asm +++ b/Online/Core/Sound/PreventDuplicateSounds.asm @@ -36,7 +36,7 @@ li REG_IS_SOUND_ACTIVE, 0 li REG_SOUND_INSTANCE_ID, 0 rlwinm REG_SOUND_ID, r23, 0, 0xFFFF # Extract half word from sound ID input -#logf LOG_LEVEL_WARN, "Play SFX %x, Frame: %d, Rollback: %d", "mr r5, REG_SOUND_ID", "loadGlobalFrame r6", "lbz r7, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS)" +#exilogf LOG_LEVEL_WARN, "Play SFX %x, Frame: %d, Rollback: %d", "mr r5, REG_SOUND_ID", "loadGlobalFrame r6", "lbz r7, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS)" lbz REG_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS) loadGlobalFrame r3 @@ -84,11 +84,11 @@ lbz r3, SFXS_LOG_INDEX(r6) cmpw r8, r3 blt FIND_SOUND_LOOP_START -#logf LOG_LEVEL_ERROR, "SFX %x NOT found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +#exilogf LOG_LEVEL_ERROR, "SFX %x NOT found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" b STORE_SOUND SOUND_ALREADY_PLAYED: -#logf LOG_LEVEL_WARN, "SFX %x found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +#exilogf LOG_LEVEL_WARN, "SFX %x found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" lwz REG_SOUND_INSTANCE_ID, SFXS_ENTRY_INSTANCE_ID(r5) li REG_IS_SOUND_ACTIVE, 1 diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 48f04267..a72b3dd8 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -350,7 +350,7 @@ addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d[%d] r/w indexes when reading next input: %d/%d", "mr r5, 20", "mr r6, 22", "mr r7, 3", "mr r8, 4" +#exilogf LOG_LEVEL_WARN, "Player %d[%d] r/w indexes when reading next input: %d/%d", "mr r5, 20", "mr r6, 22", "mr r7, 3", "mr r8, 4" mr r3, REG_VARIOUS_1 # Compute offset of true inputs for this player on this frame @@ -436,7 +436,7 @@ addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d r/w indexes after reading: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" +#exilogf LOG_LEVEL_WARN, "Player %d r/w indexes after reading: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" # Check if we have caught up to the prediction addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player @@ -452,7 +452,7 @@ TRIGGER_ROLLBACK: mulli r6, REG_COUNT, 4 addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME lwzx r3, r6, REG_ODB_ADDRESS # get our player-specific savestate frame -#logf LOG_LEVEL_WARN, "Triggering rollback from player %d input on past frame %d", "mr r5, 20", "mr r6, 3" +#exilogf LOG_LEVEL_WARN, "Triggering rollback from player %d input on past frame %d", "mr r5, 20", "mr r6, 3" # Set the is rollback active flag to indicate to the engine to continue # processing inputs until we have completed the rollback process @@ -484,14 +484,14 @@ li REG_COUNT, 0 lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) # r3 will hold the min savestate frame we see mr REG_VARIOUS_1, r3 -#logf LOG_LEVEL_WARN, "Attempting to advance savestate frame past %d", "mr r5, 3" +#exilogf LOG_LEVEL_WARN, "Attempting to advance savestate frame past %d", "mr r5, 3" mr r3, REG_VARIOUS_1 COMPUTE_SAVESTATE_FRAME_LOOP: addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE lbzx r4, r6, REG_ODB_ADDRESS mr REG_VARIOUS_1, r3 -#logf LOG_LEVEL_WARN, "Player %d savestate flag: %d", "mr r5, 20", "mr r6, 4" +#exilogf LOG_LEVEL_WARN, "Player %d savestate flag: %d", "mr r5, 20", "mr r6, 4" mr r3, REG_VARIOUS_1 # If this player doesn't have missing inputs, ignore their savestate frame @@ -515,7 +515,7 @@ bge CONTINUE_SAVESTATE_FRAME_LOOP SKIP_SAVESTATE_FRAME_CHECK: mr r3, r4 mr REG_VARIOUS_1, r3 -#logf LOG_LEVEL_WARN, "Player %d set savestate frame %d", "mr r5, 20", "mr r6, 4" +#exilogf LOG_LEVEL_WARN, "Player %d set savestate frame %d", "mr r5, 20", "mr r6, 4" mr r3, REG_VARIOUS_1 li REG_SAVESTATE_FRAME_SET, 1 @@ -526,7 +526,7 @@ blt COMPUTE_SAVESTATE_FRAME_LOOP # Set the savestate frame to the minimum value among players with missing inputs stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -#logf LOG_LEVEL_WARN, "Set savestate frame to %d, game frame: %d", "mr r5, 3", "loadGlobalFrame r6" +#exilogf LOG_LEVEL_WARN, "Set savestate frame to %d, game frame: %d", "mr r5, 3", "loadGlobalFrame r6" # Check if all players inputs have caught up to the prediction so we can set savestate = 0 li REG_COUNT, 0 @@ -541,7 +541,7 @@ addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d r/w indexes during reset: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" +#exilogf LOG_LEVEL_WARN, "Player %d r/w indexes during reset: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" # Check if this player's inputs have caught up to the prediction addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player @@ -581,7 +581,7 @@ blt CHECK_GLOBAL_SAVESTATE_LOOP li r3, 0 stb r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) -#logf LOG_LEVEL_WARN, "Reset savestate flags to 0" +#exilogf LOG_LEVEL_WARN, "Reset savestate flags to 0" ################################################################################ # Section 9: Try to read opponent's input for this frame @@ -659,7 +659,7 @@ addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d r/w indexes after write update: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" +#exilogf LOG_LEVEL_WARN, "Player %d r/w indexes after write update: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" # in the case where we don't have this opponent's inputs but already have a # savestate location for them, just keep the old savestate location @@ -672,13 +672,13 @@ beq LOAD_STALE_INPUTS mulli r6, REG_COUNT, 4 addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME stwx REG_FRAME_INDEX, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Setting savestate frame for player %d to %d", "mr r5, 20", "mr r6, 26" +#exilogf LOG_LEVEL_WARN, "Setting savestate frame for player %d to %d", "mr r5, 20", "mr r6, 26" # Indicate we have prepared for a rollback because of this player's missing input li r3, 1 addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE stbx r3, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Setting savestate flag to 1 for player %d", "mr r5, 20" +#exilogf LOG_LEVEL_WARN, "Setting savestate flag to 1 for player %d", "mr r5, 20" # Store read idx for predicted inputs addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player @@ -692,12 +692,12 @@ beq LOAD_STALE_INPUTS # Store the rollback frame in the global savestate frame counter stw REG_FRAME_INDEX, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -#logf LOG_LEVEL_WARN, "Setting global savestate frame to %d", "mr r5, 26" +#exilogf LOG_LEVEL_WARN, "Setting global savestate frame to %d", "mr r5, 26" # Indicate that we have prepared for a rollback li r3, 1 stb r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) -#logf LOG_LEVEL_WARN, "Setting global savestate flag to 1" +#exilogf LOG_LEVEL_WARN, "Setting global savestate flag to 1" LOAD_STALE_INPUTS: li r3, 0 # use input at index zero (the most recent received) diff --git a/Online/Menus/CSS/HandleInputsOnCSS.asm b/Online/Menus/CSS/HandleInputsOnCSS.asm index 397ab0e6..7cf50427 100644 --- a/Online/Menus/CSS/HandleInputsOnCSS.asm +++ b/Online/Menus/CSS/HandleInputsOnCSS.asm @@ -487,7 +487,7 @@ FN_LOCK_IN_AND_SEARCH: backup lbz r20, CSSDT_TEAM_IDX(REG_CSSDT_ADDR) -# logf LOG_LEVEL_NOTICE, "TEAM INDEX AFTER %d", "mr r5, 20" +# exilogf LOG_LEVEL_NOTICE, "TEAM INDEX AFTER %d", "mr r5, 20" bl FN_TX_LOCK_IN # Lock in character selection bl FN_TX_FIND_MATCH # Trigger matchmaking @@ -932,7 +932,7 @@ cmpwi r3, CHAT_WINDOW_IDLE_TIMER_TIME-CHAT_WINDOW_IDLE_TIMER_DELAY bgt CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER SKIP_CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER: -# logf LOG_LEVEL_WARN, "msg input: %d", "mr r5, REG_CHAT_WINDOW_SECOND_INPUT" +# exilogf LOG_LEVEL_WARN, "msg input: %d", "mr r5, REG_CHAT_WINDOW_SECOND_INPUT" # if B pressed, close chat window cmpwi REG_CHAT_WINDOW_SECOND_INPUT, B_BUTTON diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index a5468f97..3e264b5c 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -1347,7 +1347,7 @@ branchl r12, GObj_Destroy lwz r4, CSSDT_MSRB_ADDR(REG_CSSDT_ADDR) lbz r4, MSRB_LOCAL_PLAYER_INDEX(r4) -#logf LOG_LEVEL_INFO, "MSG LOCAL INDEX %d MSG INDEX %d", "mr r5, 4", "mr r6, 23" +#exilogf LOG_LEVEL_INFO, "MSG LOCAL INDEX %d MSG INDEX %d", "mr r5, 4", "mr r6, 23" cmpw REG_CHATMSG_PLAYER_INDEX,r4 bne SKIP_DECREASE_LOCAL_CHAT_MSG_COUNT @@ -1355,14 +1355,14 @@ bne SKIP_DECREASE_LOCAL_CHAT_MSG_COUNT lbz r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CSSDT_ADDR) # chat message index subi r3, r3, 1 stb r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CSSDT_ADDR) # store the new message count -#logf LOG_LEVEL_WARN, "local msg count: %d", "mr r5, r3" +#exilogf LOG_LEVEL_WARN, "local msg count: %d", "mr r5, r3" SKIP_DECREASE_LOCAL_CHAT_MSG_COUNT: # Decrease chat message count by 1 lbz r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) # chat message index subi r3, r3, 1 stb r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) # store the new message count -#logf LOG_LEVEL_WARN, "msg count: %d", "mr r5, r3" +#exilogf LOG_LEVEL_WARN, "msg count: %d", "mr r5, r3" # If This is the last message being removed, reset the Last MSG Index to 0 lbz r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # chat message index diff --git a/Online/Menus/CSS/Teams/AnimateCursorPort.asm b/Online/Menus/CSS/Teams/AnimateCursorPort.asm index 2a11612f..a42cc145 100644 --- a/Online/Menus/CSS/Teams/AnimateCursorPort.asm +++ b/Online/Menus/CSS/Teams/AnimateCursorPort.asm @@ -37,7 +37,7 @@ mulli r6, r6, 0x4 add REG_TEAM_IDX, REG_TEAM_IDX, r6 mr r3, REG_TEAM_IDX -#logf LOG_LEVEL_NOTICE, "CURSOR COLOR r3: %d", "mr r5, 3", "mr r6, 6" +#exilogf LOG_LEVEL_NOTICE, "CURSOR COLOR r3: %d", "mr r5, 3", "mr r6, 6" branchl r12, FN_IntToFloat b EXIT diff --git a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm index b28bf68c..fcf6afdb 100644 --- a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm +++ b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm @@ -353,7 +353,7 @@ lbz r3, 0x70(REG_PORT_SELECTIONS_ADDR) mr REG_INTERNAL_CHAR_ID, r3 lbz REG_TEAM_IDX, CSSDT_TEAM_IDX(REG_CSSDT_ADDR) -# logf LOG_LEVEL_NOTICE, "TEAM INDEX %d", "mr r5, 25" +# exilogf LOG_LEVEL_NOTICE, "TEAM INDEX %d", "mr r5, 25" # Animate the team icon based on team index cmpwi REG_TEAM_IDX, 3 diff --git a/Online/Online.s b/Online/Online.s index 963e8d51..a8c49c84 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -22,7 +22,6 @@ .set OFST_R13_USE_PREMADE_TEXT,-0x5014 # bool, used to make Text_CopyPremadeTextDataToStruct load text data from dolphin .set OFST_R13_ISWIDESCREEN,-0x5020 # bool, used to make Text_CopyPremadeTextDataToStruct load text data from dolphin # r13 offsets used in tournament mode (not sure if completely safe though) -# -0x5040 (r13) # -0x5068 (r13) # -0x7510 (r13) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 92365e4e..a676095f 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -774,14 +774,8 @@ BA810008 800100B4 $Optional: Debug Input Timings [Fizzi] *Try to debug inputs -C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm -38600080 3D808037 -618CF1E4 7D8903A6 -4E800421 906DAFC4 -38000000 00000000 -041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm -48000368 4E800021 +C216E774 000000A0 #External/Debug Inputs/InitOnGameStart.asm +4800047C 4E800021 00000000 41C80000 41C80000 000000FF 000000B4 E2E2E2FF @@ -791,76 +785,87 @@ C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm 20257520 75730A00 506F6C6C 20436F75 6E743A20 25750A00 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFFA1 -7FE802A6 83DF0000 -807E0012 38630001 -907E0012 3D808034 -618CC408 7D8903A6 -4E800421 907E000A -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 +4D696E20 506F6C6C +20446966 663A2025 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +46657463 682D506F +6C6C3A20 25752075 +730A0000 4E800021 7C0802A6 90010004 9421FF50 BE810008 4BFFFF4D 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -4082009C 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +83DF0000 807E0016 +38630001 907E0016 +3D808034 618CC408 +7D8903A6 4E800421 +809E000A 907E000A +7C641850 1C63000C +388002D9 7C632396 +7C7D1B78 807E0016 +5463063F 41820028 +807E005E 7C1D1800 +40800008 93BE005E +807E0062 7C1D1800 +40810008 93BE0062 +4800000C 93BE005E +93BE0062 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFEA9 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 4082010C +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE0056 +38800000 38A00000 +3D808030 618C2A3C +7D8903A6 4E800421 +7FA3EB78 389F0020 +80BE005A 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0038 80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0038 -80BE0012 3D808030 +7FA3EB78 389F0048 +80BE005E 3D808030 618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E000E 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFE75 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FFD5 -38A0FFD6 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 +4E800421 7FA3EB78 +389F005E 80BE0062 +3D808030 618C2D4C 7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 +7FA3EB78 389F0074 +80BE0066 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0088 80BE006A +3D808030 618C2D4C +7D8903A6 4E800421 +3C608046 6063B6A0 +88630008 2C030000 +41820020 807E0012 +3D808034 618C9CBC 7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 +38600002 987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFDB9 -7FE802A6 386003E8 +BE810008 4BFFFD61 +7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001C 38E00004 +7C681B78 3860001E +3880FFD5 38A0FFD6 +38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -868,45 +873,68 @@ BE810008 4BFFFDB9 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F0010 3D808030 +389F000C 3D808030 618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFD6D 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 C03F0004 +D03E0008 C03F0008 +D03E000C 807F0000 +93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3860005A 3D808037 +4BFFFCA5 7FE802A6 +386003E8 3D808037 618CF1E4 7D8903A6 -4E800421 4BFFFC79 -7C8802A6 90640000 -7C7E1B78 3880005A -3D808000 618CC160 +4E800421 7C681B78 +3860001F 38800000 +38A00000 38C0001C +38E00007 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFC99 7C6802A6 -907E000E 3D808034 -618C9BF0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 C022A8C8 -60000000 00000000 +38600000 987E0026 +7FC3F378 389F0010 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 C03F0018 +C05F001C 3D808030 +618C2B10 7D8903A6 +4E800421 7FC3F378 +389F0014 3D808030 +618C2B64 7D8903A6 +4E800421 7FC3F378 +3D808030 618C2AF0 +7D8903A6 4E800421 +807F0000 93C30006 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 4BFFFCFD +7C8802A6 38A00007 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3860006E +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFB65 7C8802A6 +90640000 7C7E1B78 +3880006E 3D808000 +618CC160 7D8903A6 +4E800421 4BFFFDD1 +4BFFFE89 4BFFFBD9 +7C6802A6 907E0012 +3D808034 618C9BF0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +C022A8C8 00000000 C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -929,9 +957,9 @@ BE810008 3D808034 90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -38840016 7C9F202E +3884001A 7C9F202E 7C641850 1C63000C -388001E6 7C632396 +388002D9 7C632396 7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 @@ -969,22 +997,22 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 38840016 +1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388001E6 +1C63000C 388002D9 7C632396 7C7D1B78 -93BF0056 7FC3F378 +93BF005A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -408200E0 3C608047 +40820128 3C608047 60639D64 80630000 -2C030000 408200CC +2C030000 40820114 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -999,13 +1027,22 @@ C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm 7C632378 5463803E 906100DC 807F000A 889F0001 1C840004 -38840016 7C7F212E +3884001A 7C7F212E 887F0001 38630001 2C030010 41800008 38600000 987F0001 887F0000 2C030000 4082000C 38600001 -987F0000 7FC3F378 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +388002D9 7C632396 +907F0066 807F000A +7C63E850 1C63000C +388002D9 7C632396 +907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index edc685b9b99d02152064a95498fb51ea53aaaea3..18f8062d19d6310b1e3aec4d8a535263f2133387 100644 GIT binary patch delta 731 zcmeCM+u*Qap*XkL^AZLIh6NrBEH#twi2H>2X67jbH=PUdBP4J?Wc z^BA~*;#@T;5&<&F3_KPMOgC$im8aFzN>_mNg(S1tJ2o+B0NHUhvJwmq4GbKU_c6o) z`AJ}YBbcA$!N9-+5(na>T|lu0MusgGiVPcSIG87&7h(mvLrm)5%K8^f%bM>qFf{LD zVC$%3V9;S^V036=~3sw9zeM`9Qxvb za!EMkN`P`{sB(NPickwXfRb60StQjNg(mAr+A;l2oSY-Mi|NnO$r@7njO>%=NLo*x zELG3+=kH_@X?xE+pgHD=Js+RI-0l7UcWO-s)3OOE3=B1O(iIjB3?MZOi9H7s5NiHj z^#1>^6R7rPO$JbH9fQ#1InpYVk4SG9l&YDppobhIn|ox88D%kqVG%WXKSR{yJF>=_ z8a4?H9u3KJ4MLJ#>~xr!n1F!`5_3;To}1E;3=VJxpqR*H3%O!OsmW{P3_O4?LrD?f jn4izU2Q-wgCglZ6s+dsEkk(KSOfAV6;#rgL$msw8o)-C( delta 402 zcmdns&|$Y>p}4h_&lUy-1{RA1h6dY)2J^(8k56hlnV0!BuqaN*U4O&^CpU2kGbXPQ_nG`bLQL!b!ul6X%bM>qFf`OL2w5aEFirr{K;ujjdya6x zjjLnentVV=1f)gkzb{Nn^F9W)jyeVg9cBhbhbD$OlNBVb8N()TkQ8UNXxPUfH2H<3 zIwRj?0VzACf2ETHq;@g=-8q>@TAz_+a)Xrhf1VsKrpVDD&%gw900RKYe1j$c diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index e9d2039d6a5b2d2ef70b8c78dc23f944780d65dc..ea972a9d178ba644b12732b168003dead5085318 100644 GIT binary patch delta 731 zcmeCM+u*Qap*XkL^AZLIh6NrBEH#twi2H>2X67jbH=PUdBP4J?Wc z^BA~*;#@T;5&<&F3_KPMOgC$im8aFzN>_mNg(S1tJ2o+B0NHUhvJwmq4GbKU_c6o) z`AJ}YBbcA$!N9-+5(na>T|lu0MusgGiVPcSIG87&7h(mvLrm)5%K8^f%bM>qFf{LD zVC$%3V9;S^V036=~3sw9zeM`9Qxvb za!EMkN`P`{sB(NPickwXfRb60StQjNg(mAr+A;l2oSY-Mi|NnO$r@7njO>%=NLo*x zELG3+=kH_@X?xE+pgHD=Js+RI-0l7UcWO-s)3OOE3=B1O(iIjB3?MZOi9H7s5NiHj z^#1>^6R7rPO$JbH9fQ#1InpYVk4SG9l&YDppobhIn|ox88D%kqVG%WXKSR{yJF>=_ z8a4?H9u3KJ4MLJ#>~xr!n1F!`5_3;To}1E;3=VJxpqR*H3%O!OsmW{P3_O4?LrD?f jn4izU2Q-wgCglZ6s+dsEkk(KSOfAV6;#rgL$msw8o)-C( delta 402 zcmdns&|$Y>p}4h_&lUy-1{RA1h6dY)2J^(8k56hlnV0!BuqaN*U4O&^CpU2kGbXPQ_nG`bLQL!b!ul6X%bM>qFf`OL2w5aEFirr{K;ujjdya6x zjjLnentVV=1f)gkzb{Nn^F9W)jyeVg9cBhbhbD$OlNBVb8N()TkQ8UNXxPUfH2H<3 zIwRj?0VzACf2ETHq;@g=-8q>@TAz_+a)Xrhf1VsKrpVDD&%gw900RKYe1j$c diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 9eac382e..b68796a9 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5697,14 +5697,8 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Input Timings [Fizzi] *Try to debug inputs -C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm -38600080 3D808037 -618CF1E4 7D8903A6 -4E800421 906DAFC4 -38000000 00000000 -041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm -48000368 4E800021 +C216E774 000000A0 #External/Debug Inputs/InitOnGameStart.asm +4800047C 4E800021 00000000 41C80000 41C80000 000000FF 000000B4 E2E2E2FF @@ -5714,76 +5708,87 @@ C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm 20257520 75730A00 506F6C6C 20436F75 6E743A20 25750A00 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFFA1 -7FE802A6 83DF0000 -807E0012 38630001 -907E0012 3D808034 -618CC408 7D8903A6 -4E800421 907E000A -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 +4D696E20 506F6C6C +20446966 663A2025 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +46657463 682D506F +6C6C3A20 25752075 +730A0000 4E800021 7C0802A6 90010004 9421FF50 BE810008 4BFFFF4D 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -4082009C 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +83DF0000 807E0016 +38630001 907E0016 +3D808034 618CC408 +7D8903A6 4E800421 +809E000A 907E000A +7C641850 1C63000C +388002D9 7C632396 +7C7D1B78 807E0016 +5463063F 41820028 +807E005E 7C1D1800 +40800008 93BE005E +807E0062 7C1D1800 +40810008 93BE0062 +4800000C 93BE005E +93BE0062 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFEA9 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 4082010C +7FA3EB78 3D808030 +618C2BB0 7D8903A6 +4E800421 7FA3EB78 +38800000 38A00000 +3D808030 618C2A3C +7D8903A6 4E800421 +7FA3EB78 389F0020 +80BE005A 3D808030 +618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE0056 +389F0038 80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0038 -80BE0012 3D808030 +7FA3EB78 389F0048 +80BE005E 3D808030 618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E000E 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFE75 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FFD5 -38A0FFD6 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 +4E800421 7FA3EB78 +389F005E 80BE0062 +3D808030 618C2D4C 7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 +7FA3EB78 389F0074 +80BE0066 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0088 80BE006A +3D808030 618C2D4C 7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 +3C608046 6063B6A0 +88630008 2C030000 +41820020 807E0012 +3D808034 618C9CBC +7D8903A6 4E800421 +38600002 987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFDB9 -7FE802A6 386003E8 +BE810008 4BFFFD61 +7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001C 38E00004 +7C681B78 3860001E +3880FFD5 38A0FFD6 +38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5791,45 +5796,68 @@ BE810008 4BFFFDB9 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F0010 3D808030 +389F000C 3D808030 618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFD6D 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 C03F0004 +D03E0008 C03F0008 +D03E000C 807F0000 +93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3860005A 3D808037 +4BFFFCA5 7FE802A6 +386003E8 3D808037 618CF1E4 7D8903A6 -4E800421 4BFFFC79 -7C8802A6 90640000 -7C7E1B78 3880005A -3D808000 618CC160 +4E800421 7C681B78 +3860001F 38800000 +38A00000 38C0001C +38E00007 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFC99 7C6802A6 -907E000E 3D808034 -618C9BF0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 C022A8C8 -60000000 00000000 +38600000 987E0026 +7FC3F378 389F0010 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 C03F0018 +C05F001C 3D808030 +618C2B10 7D8903A6 +4E800421 7FC3F378 +389F0014 3D808030 +618C2B64 7D8903A6 +4E800421 7FC3F378 +3D808030 618C2AF0 +7D8903A6 4E800421 +807F0000 93C30006 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 4BFFFCFD +7C8802A6 38A00007 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3860006E +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFB65 7C8802A6 +90640000 7C7E1B78 +3880006E 3D808000 +618CC160 7D8903A6 +4E800421 4BFFFDD1 +4BFFFE89 4BFFFBD9 +7C6802A6 907E0012 +3D808034 618C9BF0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +C022A8C8 00000000 C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -5852,9 +5880,9 @@ BE810008 3D808034 90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -38840016 7C9F202E +3884001A 7C9F202E 7C641850 1C63000C -388001E6 7C632396 +388002D9 7C632396 7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 @@ -5892,22 +5920,22 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 38840016 +1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388001E6 +1C63000C 388002D9 7C632396 7C7D1B78 -93BF0056 7FC3F378 +93BF005A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -408200E0 3C608047 +40820128 3C608047 60639D64 80630000 -2C030000 408200CC +2C030000 40820114 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5922,13 +5950,22 @@ C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm 7C632378 5463803E 906100DC 807F000A 889F0001 1C840004 -38840016 7C7F212E +3884001A 7C7F212E 887F0001 38630001 2C030010 41800008 38600000 987F0001 887F0000 2C030000 4082000C 38600001 -987F0000 7FC3F378 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +388002D9 7C632396 +907F0066 807F000A +7C63E850 1C63000C +388002D9 7C632396 +907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f4e48142..aac441b4 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5697,14 +5697,8 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Input Timings [Fizzi] *Try to debug inputs -C21A4CB4 00000004 #External/Debug Inputs/AllocBuffer.asm -38600080 3D808037 -618CF1E4 7D8903A6 -4E800421 906DAFC4 -38000000 00000000 -041BFA20 38600002 #External/Debug Inputs/Boot To CSS.asm -C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm -48000368 4E800021 +C216E774 000000A0 #External/Debug Inputs/InitOnGameStart.asm +4800047C 4E800021 00000000 41C80000 41C80000 000000FF 000000B4 E2E2E2FF @@ -5714,76 +5708,87 @@ C216E774 0000007E #External/Debug Inputs/InitOnGameStart.asm 20257520 75730A00 506F6C6C 20436F75 6E743A20 25750A00 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFFA1 -7FE802A6 83DF0000 -807E0012 38630001 -907E0012 3D808034 -618CC408 7D8903A6 -4E800421 907E000A -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 +4D696E20 506F6C6C +20446966 663A2025 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +46657463 682D506F +6C6C3A20 25752075 +730A0000 4E800021 7C0802A6 90010004 9421FF50 BE810008 4BFFFF4D 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -4082009C 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +83DF0000 807E0016 +38630001 907E0016 +3D808034 618CC408 +7D8903A6 4E800421 +809E000A 907E000A +7C641850 1C63000C +388002D9 7C632396 +7C7D1B78 807E0016 +5463063F 41820028 +807E005E 7C1D1800 +40800008 93BE005E +807E0062 7C1D1800 +40810008 93BE0062 +4800000C 93BE005E +93BE0062 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFEA9 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 4082010C +7FA3EB78 3D808030 +618C2BB0 7D8903A6 +4E800421 7FA3EB78 +38800000 38A00000 +3D808030 618C2A3C +7D8903A6 4E800421 +7FA3EB78 389F0020 +80BE005A 3D808030 +618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE0056 +389F0038 80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0038 -80BE0012 3D808030 +7FA3EB78 389F0048 +80BE005E 3D808030 618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E000E 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFE75 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FFD5 -38A0FFD6 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 +4E800421 7FA3EB78 +389F005E 80BE0062 +3D808030 618C2D4C 7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 +7FA3EB78 389F0074 +80BE0066 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0088 80BE006A +3D808030 618C2D4C 7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 +3C608046 6063B6A0 +88630008 2C030000 +41820020 807E0012 +3D808034 618C9CBC +7D8903A6 4E800421 +38600002 987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFDB9 -7FE802A6 386003E8 +BE810008 4BFFFD61 +7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001C 38E00004 +7C681B78 3860001E +3880FFD5 38A0FFD6 +38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5791,45 +5796,68 @@ BE810008 4BFFFDB9 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F0010 3D808030 +389F000C 3D808030 618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFD6D 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 C03F0004 +D03E0008 C03F0008 +D03E000C 807F0000 +93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3860005A 3D808037 +4BFFFCA5 7FE802A6 +386003E8 3D808037 618CF1E4 7D8903A6 -4E800421 4BFFFC79 -7C8802A6 90640000 -7C7E1B78 3880005A -3D808000 618CC160 +4E800421 7C681B78 +3860001F 38800000 +38A00000 38C0001C +38E00007 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFC99 7C6802A6 -907E000E 3D808034 -618C9BF0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 C022A8C8 -60000000 00000000 +38600000 987E0026 +7FC3F378 389F0010 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 C03F0018 +C05F001C 3D808030 +618C2B10 7D8903A6 +4E800421 7FC3F378 +389F0014 3D808030 +618C2B64 7D8903A6 +4E800421 7FC3F378 +3D808030 618C2AF0 +7D8903A6 4E800421 +807F0000 93C30006 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 4BFFFCFD +7C8802A6 38A00007 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3860006E +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFB65 7C8802A6 +90640000 7C7E1B78 +3880006E 3D808000 +618CC160 7D8903A6 +4E800421 4BFFFDD1 +4BFFFE89 4BFFFBD9 +7C6802A6 907E0012 +3D808034 618C9BF0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +C022A8C8 00000000 C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -5852,9 +5880,9 @@ BE810008 3D808034 90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -38840016 7C9F202E +3884001A 7C9F202E 7C641850 1C63000C -388001E6 7C632396 +388002D9 7C632396 7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 @@ -5892,22 +5920,22 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7C632396 547CE73E 3D808034 618CC408 7D8903A6 4E800421 -1C9C0004 38840016 +1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388001E6 +1C63000C 388002D9 7C632396 7C7D1B78 -93BF0056 7FC3F378 +93BF005A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80010024 00000000 -C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm +C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -408200E0 3C608047 +40820128 3C608047 60639D64 80630000 -2C030000 408200CC +2C030000 40820114 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5922,13 +5950,22 @@ C2376A88 0000001F #External/Debug Inputs/StoreCaptureTimes.asm 7C632378 5463803E 906100DC 807F000A 889F0001 1C840004 -38840016 7C7F212E +3884001A 7C7F212E 887F0001 38630001 2C030010 41800008 38600000 987F0001 887F0000 2C030000 4082000C 38600001 -987F0000 7FC3F378 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +388002D9 7C632396 +907F0066 807F000A +7C63E850 1C63000C +388002D9 7C632396 +907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 diff --git a/Recording/SendGameEnd.asm b/Recording/SendGameEnd.asm index 6b3a34a6..0cf62252 100644 --- a/Recording/SendGameEnd.asm +++ b/Recording/SendGameEnd.asm @@ -32,7 +32,7 @@ backup # check if we have previously sent game end message (don't send more than once) lwz REG_RDB, primaryDataBuffer(r13) lbz r3, RDB_GAME_END_SENT(REG_RDB) - #logf LOG_LEVEL_NOTICE, "Checking game end sent: %d", "mr r5, 3" + #exilogf LOG_LEVEL_NOTICE, "Checking game end sent: %d", "mr r5, 3" cmpwi r3, 0 bne Injection_Exit # If game end already sent, do nothing more @@ -45,7 +45,7 @@ backup bne StartWrite lwz r3, OFST_R13_ODB_ADDR(r13) # data buffer address lbz r3, ODB_IS_GAME_OVER(r3) - #logf LOG_LEVEL_NOTICE, "Game end being checked %d", "mr r5, 3" + #exilogf LOG_LEVEL_NOTICE, "Game end being checked %d", "mr r5, 3" cmpwi r3, 0 beq Injection_Exit # If game is not over yet, don't send game end @@ -81,7 +81,7 @@ StoreLRAStarter: # Indicate game end has been sent li r3, 1 stb r3, RDB_GAME_END_SENT(REG_RDB) - #logf LOG_LEVEL_NOTICE, "Wrote game end sent" + #exilogf LOG_LEVEL_NOTICE, "Wrote game end sent" Injection_Exit: restore From 09cba23b3725767383d109aa3520744a48b0c518 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 10 Jun 2021 17:32:00 -0700 Subject: [PATCH 011/217] tweak text --- External/Debug Inputs/InitOnGameStart.asm | 8 +- Output/Netplay/GALE01r2.ini | 237 +++++++++++----------- Output/Netplay/GALJ01r2.ini | 237 +++++++++++----------- 3 files changed, 242 insertions(+), 240 deletions(-) diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index 1a67143b..e3768868 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -26,8 +26,8 @@ blrl .set DO_LD_TEXT_Y_SCALE, DO_LD_TEXT_X_SCALE + 4 .float 17 .set DO_LD_STR_LATENCY, DO_LD_TEXT_Y_SCALE + 4 -.string "Input to Render: %u us\n" -.set DO_LD_STR_POLL_COUNT, DO_LD_STR_LATENCY + 24 +.string "Input to Retrace: %u us\n\n" +.set DO_LD_STR_POLL_COUNT, DO_LD_STR_LATENCY + 26 .string "Poll Count: %u\n" .set DO_LD_STR_MIN_POLL_DIFF, DO_LD_STR_POLL_COUNT + 16 .string "Min Poll Diff: %u us\n" @@ -239,8 +239,8 @@ mr r8, r3 li r3, 31 # ID li r4, 0 # X Pos, bottom right: 638 li r5, 0 # Y Pos, bottom right: 478 -li r6, 28 -li r7, 7 +li r6, 29 +li r7, 8 branchl r12, 0x80302834 # DevelopText_CreateDataTable mr REG_DEVELOP_TEXT, r3 #Activate Text diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index b68796a9..ef245c50 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5697,98 +5697,122 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Input Timings [Fizzi] *Try to debug inputs -C216E774 000000A0 #External/Debug Inputs/InitOnGameStart.asm -4800047C 4E800021 +C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm +48000480 4E800021 00000000 41C80000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 496E7075 7420746F -2052656E 6465723A +20526574 72616365 +3A202575 2075730A +0A00506F 6C6C2043 +6F756E74 3A202575 +0A004D69 6E20506F +6C6C2044 6966663A 20257520 75730A00 -506F6C6C 20436F75 -6E743A20 25750A00 -4D696E20 506F6C6C +4D617820 506F6C6C 20446966 663A2025 -75207573 0A004D61 -7820506F 6C6C2044 -6966663A 20257520 -75730A00 46657463 -682D4665 7463683A -20257520 75730A00 -46657463 682D506F -6C6C3A20 25752075 -730A0000 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFF4D 7FE802A6 -83DF0000 807E0016 -38630001 907E0016 -3D808034 618CC408 -7D8903A6 4E800421 -809E000A 907E000A -7C641850 1C63000C -388002D9 7C632396 -7C7D1B78 807E0016 -5463063F 41820028 -807E005E 7C1D1800 -40800008 93BE005E -807E0062 7C1D1800 -40810008 93BE0062 -4800000C 93BE005E -93BE0062 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 +75207573 0A004665 +7463682D 46657463 +683A2025 75207573 +0A004665 7463682D +506F6C6C 3A202575 +2075730A 00000000 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFEA9 +BE810008 4BFFFF49 7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 4082010C -7FA3EB78 3D808030 -618C2BB0 7D8903A6 +807E0016 38630001 +907E0016 3D808034 +618CC408 7D8903A6 +4E800421 809E000A +907E000A 7C641850 +1C63000C 388002D9 +7C632396 7C7D1B78 +807E0016 5463063F +41820028 807E005E +7C1D1800 40800008 +93BE005E 807E0062 +7C1D1800 40810008 +93BE0062 4800000C +93BE005E 93BE0062 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFEA5 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +4082010C 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C +389F0020 80BE005A +3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE005A 3D808030 +7FA3EB78 389F003A +80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0038 80BE0016 +389F004A 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0048 -80BE005E 3D808030 +7FA3EB78 389F0060 +80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F005E 80BE0062 +389F0076 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0074 -80BE0066 3D808030 +7FA3EB78 389F008A +80BE006A 3D808030 618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0088 80BE006A -3D808030 618C2D4C +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFD5D 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FFD5 +38A0FFD6 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -3C608046 6063B6A0 -88630008 2C030000 -41820020 807E0012 -3D808034 618C9CBC +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 7D8903A6 4E800421 -38600002 987E0000 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFD61 -7FE802A6 38600020 +BE810008 4BFFFCA1 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001E -3880FFD5 38A0FFD6 -38C00001 38E00001 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00008 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5796,68 +5820,45 @@ BE810008 4BFFFD61 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F000C 3D808030 +389F0010 3D808030 618C2B90 7D8903A6 -4E800421 C03F0004 -D03E0008 C03F0008 -D03E000C 807F0000 -93C30002 BA810008 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCFD 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFCA5 7FE802A6 -386003E8 3D808037 +3860006E 3D808037 618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001F 38800000 -38A00000 38C0001C -38E00007 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F0010 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 C03F0018 -C05F001C 3D808030 -618C2B10 7D8903A6 -4E800421 7FC3F378 -389F0014 3D808030 -618C2B64 7D8903A6 -4E800421 7FC3F378 -3D808030 618C2AF0 -7D8903A6 4E800421 -807F0000 93C30006 -38600013 38800014 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 4BFFFCFD -7C8802A6 38A00007 -3D808038 618CFD54 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3860006E -3D808037 618CF1E4 -7D8903A6 4E800421 -4BFFFB65 7C8802A6 -90640000 7C7E1B78 -3880006E 3D808000 -618CC160 7D8903A6 -4E800421 4BFFFDD1 -4BFFFE89 4BFFFBD9 -7C6802A6 907E0012 -3D808034 618C9BF0 +4E800421 4BFFFB61 +7C8802A6 90640000 +7C7E1B78 3880006E +3D808000 618CC160 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -C022A8C8 00000000 +4BFFFDD1 4BFFFE89 +4BFFFBD9 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index aac441b4..1c1ae01f 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5697,98 +5697,122 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Input Timings [Fizzi] *Try to debug inputs -C216E774 000000A0 #External/Debug Inputs/InitOnGameStart.asm -4800047C 4E800021 +C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm +48000480 4E800021 00000000 41C80000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 496E7075 7420746F -2052656E 6465723A +20526574 72616365 +3A202575 2075730A +0A00506F 6C6C2043 +6F756E74 3A202575 +0A004D69 6E20506F +6C6C2044 6966663A 20257520 75730A00 -506F6C6C 20436F75 -6E743A20 25750A00 -4D696E20 506F6C6C +4D617820 506F6C6C 20446966 663A2025 -75207573 0A004D61 -7820506F 6C6C2044 -6966663A 20257520 -75730A00 46657463 -682D4665 7463683A -20257520 75730A00 -46657463 682D506F -6C6C3A20 25752075 -730A0000 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFF4D 7FE802A6 -83DF0000 807E0016 -38630001 907E0016 -3D808034 618CC408 -7D8903A6 4E800421 -809E000A 907E000A -7C641850 1C63000C -388002D9 7C632396 -7C7D1B78 807E0016 -5463063F 41820028 -807E005E 7C1D1800 -40800008 93BE005E -807E0062 7C1D1800 -40810008 93BE0062 -4800000C 93BE005E -93BE0062 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 +75207573 0A004665 +7463682D 46657463 +683A2025 75207573 +0A004665 7463682D +506F6C6C 3A202575 +2075730A 00000000 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFEA9 +BE810008 4BFFFF49 7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 4082010C -7FA3EB78 3D808030 -618C2BB0 7D8903A6 +807E0016 38630001 +907E0016 3D808034 +618CC408 7D8903A6 +4E800421 809E000A +907E000A 7C641850 +1C63000C 388002D9 +7C632396 7C7D1B78 +807E0016 5463063F +41820028 807E005E +7C1D1800 40800008 +93BE005E 807E0062 +7C1D1800 40810008 +93BE0062 4800000C +93BE005E 93BE0062 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFEA5 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +4082010C 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C +389F0020 80BE005A +3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE005A 3D808030 +7FA3EB78 389F003A +80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0038 80BE0016 +389F004A 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0048 -80BE005E 3D808030 +7FA3EB78 389F0060 +80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F005E 80BE0062 +389F0076 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0074 -80BE0066 3D808030 +7FA3EB78 389F008A +80BE006A 3D808030 618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0088 80BE006A -3D808030 618C2D4C +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFD5D 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FFD5 +38A0FFD6 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -3C608046 6063B6A0 -88630008 2C030000 -41820020 807E0012 -3D808034 618C9CBC +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 7D8903A6 4E800421 -38600002 987E0000 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFD61 -7FE802A6 38600020 +BE810008 4BFFFCA1 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001E -3880FFD5 38A0FFD6 -38C00001 38E00001 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00008 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5796,68 +5820,45 @@ BE810008 4BFFFD61 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F000C 3D808030 +389F0010 3D808030 618C2B90 7D8903A6 -4E800421 C03F0004 -D03E0008 C03F0008 -D03E000C 807F0000 -93C30002 BA810008 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCFD 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFCA5 7FE802A6 -386003E8 3D808037 +3860006E 3D808037 618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001F 38800000 -38A00000 38C0001C -38E00007 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F0010 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 C03F0018 -C05F001C 3D808030 -618C2B10 7D8903A6 -4E800421 7FC3F378 -389F0014 3D808030 -618C2B64 7D8903A6 -4E800421 7FC3F378 -3D808030 618C2AF0 -7D8903A6 4E800421 -807F0000 93C30006 -38600013 38800014 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 4BFFFCFD -7C8802A6 38A00007 -3D808038 618CFD54 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3860006E -3D808037 618CF1E4 -7D8903A6 4E800421 -4BFFFB65 7C8802A6 -90640000 7C7E1B78 -3880006E 3D808000 -618CC160 7D8903A6 -4E800421 4BFFFDD1 -4BFFFE89 4BFFFBD9 -7C6802A6 907E0012 -3D808034 618C9BF0 +4E800421 4BFFFB61 +7C8802A6 90640000 +7C7E1B78 3880006E +3D808000 618CC160 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -C022A8C8 00000000 +4BFFFDD1 4BFFFE89 +4BFFFBD9 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 From 3ceffc72fb5eebe7f2fa2129891ab98eaa982a5e Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 10 Jun 2021 18:07:26 -0700 Subject: [PATCH 012/217] adjust color indicator position and size --- External/Debug Inputs/DebugInputs.s | 2 +- External/Debug Inputs/InitOnGameStart.asm | 6 +- Output/Console/GALE01r2.ini | 251 +++++++++++----------- Output/Console/g_core.bin | Bin 8240 -> 8248 bytes Output/Console/g_core_porta.bin | Bin 8240 -> 8248 bytes Output/Netplay/GALE01r2.ini | 21 +- Output/Netplay/GALJ01r2.ini | 21 +- console_core.json | 6 +- netplay.json | 11 +- 9 files changed, 163 insertions(+), 155 deletions(-) diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index 90fb1b6e..a9946098 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -38,7 +38,7 @@ stb \reg, \offset(\reg_address) .macro calcDiffUs reg_now, reg_ref sub r3, \reg_now, \reg_ref # This works even if ticks overflow mulli r3, r3, 12 -li r4, 729 # This is the MHz of the PPC clock. 729 in Nintendont, 486 otherwise +li r4, 486 # This is the MHz of the PPC clock. 729 in Nintendont, 486 otherwise divwu r3, r3, r4 .endm diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index e3768868..37a6df04 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -12,7 +12,7 @@ blrl .set DO_DIB_ADDR, 0 .long 0 # Buffer .set DO_CS_X_SCALE, DO_DIB_ADDR + 4 -.float 25 +.float 200 .set DO_CS_Y_SCALE, DO_CS_X_SCALE + 4 .float 25 .set DO_CS_COLOR, DO_CS_Y_SCALE + 4 @@ -191,8 +191,8 @@ li r3, 32 branchl r12, HSD_MemAlloc mr r8, r3 li r3, 30 # ID -li r4, -43 # X Pos, bottom right: 638 -li r5, -42 # Y Pos, bottom right: 478 +li r4, -210 # X Pos, bottom right: 638 +li r5, -40 # Y Pos, bottom right: 478 li r6, 1 li r7, 1 branchl r12, 0x80302834 # DevelopText_CreateDataTable diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index a676095f..6f7fca34 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -772,169 +772,170 @@ BA810008 800100B4 4E800020 00000000 04005600 801910E0 #Common/ConsoleOverrides/SetGeckoStart.asm -$Optional: Debug Input Timings [Fizzi] -*Try to debug inputs -C216E774 000000A0 #External/Debug Inputs/InitOnGameStart.asm -4800047C 4E800021 -00000000 41C80000 +$Optional: Debug Game-Side Latency (Not Nintendont) [Fizzi] +*Shows latency information on screen while in-game. To be used on native GC/Wii. +C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm +48000480 4E800021 +00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 496E7075 7420746F -2052656E 6465723A +20526574 72616365 +3A202575 2075730A +0A00506F 6C6C2043 +6F756E74 3A202575 +0A004D69 6E20506F +6C6C2044 6966663A 20257520 75730A00 -506F6C6C 20436F75 -6E743A20 25750A00 -4D696E20 506F6C6C +4D617820 506F6C6C 20446966 663A2025 -75207573 0A004D61 -7820506F 6C6C2044 -6966663A 20257520 -75730A00 46657463 -682D4665 7463683A -20257520 75730A00 -46657463 682D506F -6C6C3A20 25752075 -730A0000 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFF4D 7FE802A6 -83DF0000 807E0016 -38630001 907E0016 -3D808034 618CC408 -7D8903A6 4E800421 -809E000A 907E000A -7C641850 1C63000C -388002D9 7C632396 -7C7D1B78 807E0016 -5463063F 41820028 -807E005E 7C1D1800 -40800008 93BE005E -807E0062 7C1D1800 -40810008 93BE0062 -4800000C 93BE005E -93BE0062 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 +75207573 0A004665 +7463682D 46657463 +683A2025 75207573 +0A004665 7463682D +506F6C6C 3A202575 +2075730A 00000000 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFEA9 +BE810008 4BFFFF49 7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 4082010C -7FA3EB78 3D808030 -618C2BB0 7D8903A6 -4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C +807E0016 38630001 +907E0016 3D808034 +618CC408 7D8903A6 +4E800421 809E000A +907E000A 7C641850 +1C63000C 388001E6 +7C632396 7C7D1B78 +807E0016 5463063F +41820028 807E005E +7C1D1800 40800008 +93BE005E 807E0062 +7C1D1800 40810008 +93BE0062 4800000C +93BE005E 93BE0062 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFEA5 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +4082010C 7FA3EB78 +3D808030 618C2BB0 7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE005A 3D808030 -618C2D4C 7D8903A6 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 4E800421 7FA3EB78 -389F0038 80BE0016 +389F0020 80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0048 -80BE005E 3D808030 +7FA3EB78 389F003A +80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F005E 80BE0062 +389F004A 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0074 -80BE0066 3D808030 +7FA3EB78 389F0060 +80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0088 80BE006A +389F0076 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 -3C608046 6063B6A0 -88630008 2C030000 -41820020 807E0012 -3D808034 618C9CBC -7D8903A6 4E800421 -38600002 987E0000 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFD61 -7FE802A6 38600020 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C681B78 3860001E -3880FFD5 38A0FFD6 -38C00001 38E00001 -3D808030 618C2834 -7D8903A6 4E800421 -7C7E1B78 806DB77C -7FC4F378 3D808030 -618C2810 7D8903A6 -4E800421 38600000 -987E0026 7FC3F378 -389F000C 3D808030 -618C2B90 7D8903A6 -4E800421 C03F0004 -D03E0008 C03F0008 -D03E000C 807F0000 -93C30002 BA810008 +7FA3EB78 389F008A +80BE006A 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFCA5 7FE802A6 -386003E8 3D808037 +4BFFFD5D 7FE802A6 +38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 -3860001F 38800000 -38A00000 38C0001C -38E00007 3D808030 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C 7FC4F378 3D808030 618C2810 7D8903A6 4E800421 38600000 987E0026 -7FC3F378 389F0010 +7FC3F378 389F000C 3D808030 618C2B90 7D8903A6 4E800421 -7FC3F378 C03F0018 -C05F001C 3D808030 -618C2B10 7D8903A6 -4E800421 7FC3F378 -389F0014 3D808030 -618C2B64 7D8903A6 -4E800421 7FC3F378 -3D808030 618C2AF0 -7D8903A6 4E800421 -807F0000 93C30006 -38600013 38800014 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 4BFFFCFD -7C8802A6 38A00007 -3D808038 618CFD54 -7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3860006E +BE810008 4BFFFCA1 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFB65 7C8802A6 -90640000 7C7E1B78 -3880006E 3D808000 -618CC160 7D8903A6 -4E800421 4BFFFDD1 -4BFFFE89 4BFFFBD9 -7C6802A6 907E0012 -3D808034 618C9BF0 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00008 +3D808030 618C2834 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -C022A8C8 00000000 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCFD 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3860006E 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFB61 +7C8802A6 90640000 +7C7E1B78 3880006E +3D808000 618CC160 +7D8903A6 4E800421 +4BFFFDD1 4BFFFE89 +4BFFFBD9 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -959,7 +960,7 @@ BE810008 3D808034 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 1C63000C -388002D9 7C632396 +388001E6 7C632396 7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 @@ -999,7 +1000,7 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7D8903A6 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388002D9 +1C63000C 388001E6 7C632396 7C7D1B78 93BF005A 7FC3F378 3D808034 618C738C @@ -1038,10 +1039,10 @@ C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 4E800421 7C7D1B78 809F000E 93BF000E 7C64E850 1C63000C -388002D9 7C632396 +388001E6 7C632396 907F0066 807F000A 7C63E850 1C63000C -388002D9 7C632396 +388001E6 7C632396 907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 18f8062d19d6310b1e3aec4d8a535263f2133387..7878dccd0b5ef9620b89a41441fb2fdf23d923fe 100644 GIT binary patch delta 208 zcmdnsu)|@)a&i8J9tj<>(&E*{l`~`xwL~CrFC3dH`8*AQofXP~ZRn=YvGE diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index ea972a9d178ba644b12732b168003dead5085318..6102d580e2359e5baf236ff44a2c378d1ad10675 100644 GIT binary patch delta 208 zcmdnsu)|@)a&i8J9tj<>(&E*{l`~`xwL~CrFC3dH`8*AQofXP~ZRn=YvGE diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ef245c50..2c1f8b2b 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5695,11 +5695,11 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 7D8903A6 4E800421 60000000 00000000 -$Optional: Debug Input Timings [Fizzi] -*Try to debug inputs +$Optional: Debug Game-Side Latency [Fizzi] +*Shows latency information on screen while in-game C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm 48000480 4E800021 -00000000 41C80000 +00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 @@ -5728,7 +5728,7 @@ BE810008 4BFFFF49 618CC408 7D8903A6 4E800421 809E000A 907E000A 7C641850 -1C63000C 388002D9 +1C63000C 388001E6 7C632396 7C7D1B78 807E0016 5463063F 41820028 807E005E @@ -5787,8 +5787,8 @@ BA810008 800100B4 38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 -3860001E 3880FFD5 -38A0FFD6 38C00001 +3860001E 3880FF2E +38A0FFD8 38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 @@ -5883,7 +5883,7 @@ BE810008 3D808034 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 1C63000C -388002D9 7C632396 +388001E6 7C632396 7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 @@ -5923,7 +5923,7 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7D8903A6 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388002D9 +1C63000C 388001E6 7C632396 7C7D1B78 93BF005A 7FC3F378 3D808034 618C738C @@ -5962,16 +5962,17 @@ C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 4E800421 7C7D1B78 809F000E 93BF000E 7C64E850 1C63000C -388002D9 7C632396 +388001E6 7C632396 907F0066 807F000A 7C63E850 1C63000C -388002D9 7C632396 +388001E6 7C632396 907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 881F0002 00000000 +041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm $Optional: PD+VB [taukhan] *PD+VB diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 1c1ae01f..966b4067 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5695,11 +5695,11 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 7D8903A6 4E800421 60000000 00000000 -$Optional: Debug Input Timings [Fizzi] -*Try to debug inputs +$Optional: Debug Game-Side Latency [Fizzi] +*Shows latency information on screen while in-game C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm 48000480 4E800021 -00000000 41C80000 +00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 @@ -5728,7 +5728,7 @@ BE810008 4BFFFF49 618CC408 7D8903A6 4E800421 809E000A 907E000A 7C641850 -1C63000C 388002D9 +1C63000C 388001E6 7C632396 7C7D1B78 807E0016 5463063F 41820028 807E005E @@ -5787,8 +5787,8 @@ BA810008 800100B4 38600020 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 -3860001E 3880FFD5 -38A0FFD6 38C00001 +3860001E 3880FF2E +38A0FFD8 38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 @@ -5883,7 +5883,7 @@ BE810008 3D808034 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 1C63000C -388002D9 7C632396 +388001E6 7C632396 7C7D1B78 807F0002 9B810038 9B810039 9B81003A 80810038 @@ -5923,7 +5923,7 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7D8903A6 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388002D9 +1C63000C 388001E6 7C632396 7C7D1B78 93BF005A 7FC3F378 3D808034 618C738C @@ -5962,16 +5962,17 @@ C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 4E800421 7C7D1B78 809F000E 93BF000E 7C64E850 1C63000C -388002D9 7C632396 +388001E6 7C632396 907F0066 807F000A 7C63E850 1C63000C -388002D9 7C632396 +388001E6 7C632396 907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 881F0002 00000000 +041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm $Optional: PD+VB [taukhan] *PD+VB diff --git a/console_core.json b/console_core.json index 5b7a8426..5e90e675 100644 --- a/console_core.json +++ b/console_core.json @@ -178,19 +178,19 @@ ] }, { - "name": "Optional: Debug Input Timings", + "name": "Optional: Debug Game-Side Latency (Not Nintendont)", "authors": [ "Fizzi" ], "description": [ - "Try to debug inputs" + "Shows latency information on screen while in-game. To be used on native GC/Wii." ], "build": [ { "type": "injectFolder", "sourceFolder": "External/Debug Inputs", "isRecursive": true, - "annotation": "Debug Inputs" + "annotation": "Shows latency information on screen while in-game" } ] } diff --git a/netplay.json b/netplay.json index 09d4ac02..e89dc647 100644 --- a/netplay.json +++ b/netplay.json @@ -466,19 +466,24 @@ ] }, { - "name": "Optional: Debug Input Timings", + "name": "Optional: Debug Game-Side Latency", "authors": [ "Fizzi" ], "description": [ - "Try to debug inputs" + "Shows latency information on screen while in-game" ], "build": [ { "type": "injectFolder", "sourceFolder": "External/Debug Inputs", "isRecursive": true, - "annotation": "Debug Inputs" + "annotation": "Shows latency information on screen while in-game" + }, + { + "type": "injectFolder", + "sourceFolder": "External/Boot to CSS", + "isRecursive": true } ] }, From ef49a5af3888fbcbfda32d72904f845db7e9875e Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 11 Jun 2021 01:14:34 -0700 Subject: [PATCH 013/217] divide ticks by CPU speed fetched from memory --- External/Debug Inputs/DebugInputs.s | 7 ++++++- console_core.json | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index a9946098..e5469e64 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -38,7 +38,12 @@ stb \reg, \offset(\reg_address) .macro calcDiffUs reg_now, reg_ref sub r3, \reg_now, \reg_ref # This works even if ticks overflow mulli r3, r3, 12 -li r4, 486 # This is the MHz of the PPC clock. 729 in Nintendont, 486 otherwise +lis r4, 0x8000 +ori r4, r4, 0x00FC +lwz r4, 0(r4) # Grab CPU speed so that this works on Nintendont (729MHz) and GC/Wii (486MHz) +li r5, 1000 +divwu r4, r4, r5 +divwu r4, r4, r5 # Divide by 1000 twice because I can't li 1000000 divwu r3, r3, r4 .endm diff --git a/console_core.json b/console_core.json index 5e90e675..2b6b7e1d 100644 --- a/console_core.json +++ b/console_core.json @@ -178,12 +178,12 @@ ] }, { - "name": "Optional: Debug Game-Side Latency (Not Nintendont)", + "name": "Optional: Debug Game-Side Latency", "authors": [ "Fizzi" ], "description": [ - "Shows latency information on screen while in-game. To be used on native GC/Wii." + "Shows latency information on screen while in-game" ], "build": [ { From 08661491a0633842cfa00448bcf15f2c6e960333 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 11 Jun 2021 02:10:57 -0700 Subject: [PATCH 014/217] attempt to add compatibility for 0.5f code --- Binary/LagReduction/PD+VB.bin | Bin 112 -> 416 bytes External/Debug Inputs/InitOnGameStart.asm | 53 +-- External/Debug Inputs/LogPollInterrupt.asm | 74 ++++ Output/Console/GALE01r2.ini | 314 +++++++++-------- Output/Console/g_core.bin | Bin 8248 -> 8472 bytes Output/Console/g_core_porta.bin | Bin 8248 -> 8472 bytes Output/Console/g_lag_pdvb.bin | Bin 168 -> 472 bytes Output/Netplay/GALE01r2.ini | 374 ++++++++++++--------- Output/Netplay/GALJ01r2.ini | 374 ++++++++++++--------- 9 files changed, 689 insertions(+), 500 deletions(-) create mode 100644 External/Debug Inputs/LogPollInterrupt.asm diff --git a/Binary/LagReduction/PD+VB.bin b/Binary/LagReduction/PD+VB.bin index 10a2c67350251fbc38c79f503d5adb83a298ce87..7425eb1dc277d2ec8d536af5e6e6ee944fda2a61 100644 GIT binary patch literal 416 zcmX>kIu=Hi40WWs2heA0T%%G%fpJ(Zawu0Z8kxfZZ+vbSqbIKci@sL5bj2GRRs z3QVs}LW2iTy_5xu+ZT%lgnL;;n=(!)H7qz}@;U+NZcw;_!jjRU0T`A*5s-aAz0MX5 eKs#GP|7>X1a)OF~0Qm`|2?SUyD=It~n0NpwYk`IU literal 112 zcmZRP@=-b9G^>V%aYl?yLW2*GPMD}HA9Kh&i2(?hb!7klcWh$d@L*uzn7rsnH}s2Bw1nIt>5+TL1+n0NJ(;4N{3c0Ts2K%*%Y6SQLQ53@nPh87Gt) F7yz$g9zy^C diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index 37a6df04..edc7e09f 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -42,58 +42,13 @@ blrl ################################################################################ # Function: PollingHandler ################################################################################ -.set REG_DATA, 31 -.set REG_DIB, 30 -.set REG_DIFF_SINCE_LAST, 29 - FN_BLRL_PollingHandler: blrl -backup -bl DATA_BLRL -mflr REG_DATA -lwz REG_DIB, DO_DIB_ADDR(REG_DATA) -lwz r3, DIB_CALLBACK_COUNT(REG_DIB) -addi r3, r3, 1 -stw r3, DIB_CALLBACK_COUNT(REG_DIB) - -# Write poll time -branchl r12, 0x8034c408 # OSGetTick -lwz r4, DIB_LAST_POLL_TIME(REG_DIB) -stw r3, DIB_LAST_POLL_TIME(REG_DIB) -calcDiffUs r3, r4 # Calculate difference since last poll -mr REG_DIFF_SINCE_LAST, r3 - -# Store min/max diff for logging -lwz r3, DIB_CALLBACK_COUNT(REG_DIB) -rlwinm. r3, r3, 0, 0xFF -beq FN_PollingHandler_RESET_MIN_MAX # Reset every 256 polls, 2 seconds? - -lwz r3, DIB_POLL_DIFF_MIN_US(REG_DIB) -cmpw REG_DIFF_SINCE_LAST, r3 -bge FN_PollingHandler_SKIP_ADJUST_MIN -stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) -FN_PollingHandler_SKIP_ADJUST_MIN: - -lwz r3, DIB_POLL_DIFF_MAX_US(REG_DIB) -cmpw REG_DIFF_SINCE_LAST, r3 -ble FN_PollingHandler_SKIP_ADJUST_MAX -stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) -FN_PollingHandler_SKIP_ADJUST_MAX: - -b FN_PollingHandler_MIN_MAX_END - -FN_PollingHandler_RESET_MIN_MAX: -stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) -stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) -FN_PollingHandler_MIN_MAX_END: - -# li r4, 486 -# divwu r4, r3, r4 -# mulli r4, r4, 12 -# logf "POLL %u" - -restore +# This is only here to trigger the interrupt. The actual logic will happen in LogPollInterrupt.asm +# I modified it to work this way such that the poll time is logged before any poll handlers +# run in case the PadRenewRaw is called is a side effect of a poll handler such as is the case +# with tau's 0.5f lag reduction code blr ################################################################################ diff --git a/External/Debug Inputs/LogPollInterrupt.asm b/External/Debug Inputs/LogPollInterrupt.asm new file mode 100644 index 00000000..818b87df --- /dev/null +++ b/External/Debug Inputs/LogPollInterrupt.asm @@ -0,0 +1,74 @@ +################################################################################ +# Address: 0x80349a28 # SIInterruptHandler +################################################################################ + +.include "Common/Common.s" +.include "./DebugInputs.s" + +# Check if VS Mode +getMinorMajor r3 +cmpwi r3, 0x0202 +bne EXIT + +load r3, 0x80479d64 +lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state +cmpwi r3, 0 # Loading state should be zero when game starts +bne EXIT + +.set REG_DIB, 31 +.set REG_INTERRUPTS, 30 +.set REG_DIFF_SINCE_LAST, 29 + +backup + +branchl r12, OSDisableInterrupts +mr REG_INTERRUPTS, r3 + +# Fetch DIB +computeBranchTargetAddress r3, INJ_InitDebugInputs +lwz REG_DIB, 8+0(r3) + +lwz r3, DIB_CALLBACK_COUNT(REG_DIB) +addi r3, r3, 1 +stw r3, DIB_CALLBACK_COUNT(REG_DIB) + +# Write poll time +branchl r12, 0x8034c408 # OSGetTick +lwz r4, DIB_LAST_POLL_TIME(REG_DIB) +stw r3, DIB_LAST_POLL_TIME(REG_DIB) +calcDiffUs r3, r4 # Calculate difference since last poll +mr REG_DIFF_SINCE_LAST, r3 + +# Store min/max diff for logging +lwz r3, DIB_CALLBACK_COUNT(REG_DIB) +rlwinm. r3, r3, 0, 0xFF +beq FN_PollingHandler_RESET_MIN_MAX # Reset every 256 polls, 2 seconds? + +lwz r3, DIB_POLL_DIFF_MIN_US(REG_DIB) +cmpw REG_DIFF_SINCE_LAST, r3 +bge FN_PollingHandler_SKIP_ADJUST_MIN +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) +FN_PollingHandler_SKIP_ADJUST_MIN: + +lwz r3, DIB_POLL_DIFF_MAX_US(REG_DIB) +cmpw REG_DIFF_SINCE_LAST, r3 +ble FN_PollingHandler_SKIP_ADJUST_MAX +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) +FN_PollingHandler_SKIP_ADJUST_MAX: + +b FN_PollingHandler_MIN_MAX_END + +FN_PollingHandler_RESET_MIN_MAX: +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) +stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) +FN_PollingHandler_MIN_MAX_END: + +# Restore interrupts +mr r3, REG_INTERRUPTS +branchl r12, OSRestoreInterrupts + +RESTORE_AND_EXIT: +restore + +EXIT: +lwz r5, 0(r24) # Replaced codeline \ No newline at end of file diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 6f7fca34..87d64df2 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -772,10 +772,10 @@ BA810008 800100B4 4E800020 00000000 04005600 801910E0 #Common/ConsoleOverrides/SetGeckoStart.asm -$Optional: Debug Game-Side Latency (Not Nintendont) [Fizzi] -*Shows latency information on screen while in-game. To be used on native GC/Wii. -C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm -48000480 4E800021 +$Optional: Debug Game-Side Latency [Fizzi] +*Shows latency information on screen while in-game +C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm +480003E4 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF @@ -796,100 +796,57 @@ C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm 0A004665 7463682D 506F6C6C 3A202575 2075730A 00000000 +4E800021 4E800020 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFF49 +BE810008 4BFFFF41 7FE802A6 83DF0000 -807E0016 38630001 -907E0016 3D808034 -618CC408 7D8903A6 -4E800421 809E000A -907E000A 7C641850 -1C63000C 388001E6 -7C632396 7C7D1B78 -807E0016 5463063F -41820028 807E005E -7C1D1800 40800008 -93BE005E 807E0062 -7C1D1800 40810008 -93BE0062 4800000C -93BE005E 93BE0062 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFEA5 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -4082010C 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +83BE0006 887E0000 +2C030001 4082010C +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE005A -3D808030 618C2D4C +38800000 38A00000 +3D808030 618C2A3C 7D8903A6 4E800421 -7FA3EB78 389F003A -80BE0016 3D808030 +7FA3EB78 389F0020 +80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F004A 80BE005E +389F003A 80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0060 -80BE0062 3D808030 +7FA3EB78 389F004A +80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0076 80BE0066 +389F0060 80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F008A -80BE006A 3D808030 +7FA3EB78 389F0076 +80BE0066 3D808030 618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E0012 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFD5D 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FF2E -38A0FFD8 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 +4E800421 7FA3EB78 +389F008A 80BE006A +3D808030 618C2D4C 7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 +3C608046 6063B6A0 +88630008 2C030000 +41820020 807E0012 +3D808034 618C9CBC 7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 +38600002 987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFCA1 -7FE802A6 386003E8 +BE810008 4BFFFDF9 +7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001D 38E00008 +7C681B78 3860001E +3880FF2E 38A0FFD8 +38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -897,51 +854,74 @@ BE810008 4BFFFCA1 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F0010 3D808030 +389F000C 3D808030 618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFCFD 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 C03F0004 +D03E0008 C03F0008 +D03E000C 807F0000 +93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3860006E 3D808037 +4BFFFD3D 7FE802A6 +386003E8 3D808037 618CF1E4 7D8903A6 -4E800421 4BFFFB61 -7C8802A6 90640000 -7C7E1B78 3880006E -3D808000 618CC160 +4E800421 7C681B78 +3860001F 38800000 +38A00000 38C0001D +38E00008 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFBD9 7C6802A6 -907E0012 3D808034 -618C9BF0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 C022A8C8 -60000000 00000000 -C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm +38600000 987E0026 +7FC3F378 389F0010 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 C03F0018 +C05F001C 3D808030 +618C2B10 7D8903A6 +4E800421 7FC3F378 +389F0014 3D808030 +618C2B64 7D8903A6 +4E800421 7FC3F378 +3D808030 618C2AF0 +7D8903A6 4E800421 +807F0000 93C30006 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 4BFFFCFD +7C8802A6 38A00007 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3860006E +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFBFD 7C8802A6 +90640000 7C7E1B78 +3880006E 3D808000 +618CC160 7D8903A6 +4E800421 4BFFFDD1 +4BFFFE89 4BFFFC75 +7C6802A6 907E0012 +3D808034 618C9BF0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +C022A8C8 00000000 +C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -4082010C 3C608048 +40820120 3C608048 80639D60 2C030000 -408100FC 7C0802A6 +40810110 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -952,7 +932,7 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820094 3C80804C +418200A8 3C80804C 60841FAC 80640000 547C073E 54630036 90640000 3D808034 @@ -960,26 +940,28 @@ BE810008 3D808034 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 1C63000C -388001E6 7C632396 -7C7D1B78 807F0002 -9B810038 9B810039 -9B81003A 80810038 -54842026 608400FF -90810038 38810038 -3D808030 618C2B90 +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F0002 9B810038 +9B810039 9B81003A +80810038 54842026 +608400FF 90810038 +38810038 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +3D808034 618C738C 7D8903A6 4E800421 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 800D9368 -60000000 00000000 -C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm +BA810008 800100B4 +382100B0 7C0803A6 +800D9368 00000000 +C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -408200F0 3C608047 +40820104 3C608047 60639D64 80630000 -2C030000 408200DC +2C030000 408200F0 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -990,7 +972,7 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 -2C030000 41820074 +2C030000 41820088 3C60804A 60638B10 80630000 80630000 5463463E 3863FFF1 @@ -1000,20 +982,61 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7D8903A6 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388001E6 -7C632396 7C7D1B78 -93BF005A 7FC3F378 -3D808034 618C738C +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF005A +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80010024 +60000000 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608047 +60639D64 80630000 +2C030000 408200F8 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -80010024 00000000 -C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 807F0016 +38630001 907F0016 +3D808034 618CC408 +7D8903A6 4E800421 +809F000A 907F000A +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F0016 5463063F +41820028 807F005E +7C1D1800 40800008 +93BF005E 807F0062 +7C1D1800 40810008 +93BF0062 4800000C +93BF005E 93BF0062 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80B80000 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -40820128 3C608047 +40820150 3C608047 60639D64 80630000 -2C030000 40820114 +2C030000 4082013C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -1039,10 +1062,15 @@ C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 4E800421 7C7D1B78 809F000E 93BF000E 7C64E850 1C63000C -388001E6 7C632396 -907F0066 807F000A -7C63E850 1C63000C -388001E6 7C632396 +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0066 +807F000A 7C63E850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 7878dccd0b5ef9620b89a41441fb2fdf23d923fe..2ecdc41b2c6abadb63eb1173a0a97da18b92d9cd 100644 GIT binary patch delta 583 zcmdntFvDrXa&gvP4+iEZlh=r^nEXLPis`@OW*$j*M#i6$L!@>w{k7dJAZ^dc_;+%E zj26?M(#bV4ItC0ta7fDc4Ukf|NoeqBNSjf71@14BX!!=Hv01_p}-%r9zMw5NgaZrHaLT9xUenn5-c0TVKy0 zW|7RmH~~o8HZ+(d_8j4;?POl&*TACKFrR@7D9%-rA`u{y%)o=ogEh&@(`ss^D;j`i zge0@sJ2o+B0NHUhvJwmq4GbKU_cO!+`AJ}YBbcA$!N9-+5@!JtNs~9os#@=0U`PP@ y0tgP7XLSH6T`V36!1M^C4bUSeeDJvr=!-O<3%F{MUl8;OP;C~_K`N6C6gU87__C=0 delta 452 zcmbQ?w8LS;a&gv$9t@D7|9jTIU|QCEpMjyF zjzP>KnSpTvkhX1TFiGq=!cp7Fyv(nGMX_NX0~b)7t0qMvKqi@i$D)DpSxvI?w3=G! z3Xr~#WHx)pCI$^4JFZ4ng2ADIfn)MMhBzQU3CsuD1?2N4c`z{WfFyu8Y4QOf5edHr z21QI){ad=ZK*F7oF?R9}$z5E37J}Spk-+?7@&QTl&6A}R7#R~MZ;{qw`h9cq18E(e z1O^B=B<1^Na*docuSY}j+yotF1_p;lhCh=VWWyP!Or9cR!vb>m{ ziZ%%iAUy^l$u4#}%uGxUO$;A^V(tmab5k0U85qE3H8I=)n^iLThO7_7EE_o!6Oi49 v%(FUxlm@0bj36;Ia~MT{=J-rjQK*rDh2(^KhO~xyUw{k7dJAZ^dc_;+%E zj26?M(#bV4ItC0ta7fDc4Ukf|NoeqBNSjf71@14BX!!=Hv01_p}-%r9zMw5NgaZrHaLT9xUenn5-c0TVKy0 zW|7RmH~~o8HZ+(d_8j4;?POl&*TACKFrR@7D9%-rA`u{y%)o=ogEh&@(`ss^D;j`i zge0@sJ2o+B0NHUhvJwmq4GbKU_cO!+`AJ}YBbcA$!N9-+5@!JtNs~9os#@=0U`PP@ y0tgP7XLSH6T`V36!1M^C4bUSeeDJvr=!-O<3%F{MUl8;OP;C~_K`N6C6gU87__C=0 delta 452 zcmbQ?w8LS;a&gv$9t@D7|9jTIU|QCEpMjyF zjzP>KnSpTvkhX1TFiGq=!cp7Fyv(nGMX_NX0~b)7t0qMvKqi@i$D)DpSxvI?w3=G! z3Xr~#WHx)pCI$^4JFZ4ng2ADIfn)MMhBzQU3CsuD1?2N4c`z{WfFyu8Y4QOf5edHr z21QI){ad=ZK*F7oF?R9}$z5E37J}Spk-+?7@&QTl&6A}R7#R~MZ;{qw`h9cq18E(e z1O^B=B<1^Na*docuSY}j+yotF1_p;lhCh=VWWyP!Or9cR!vb>m{ ziZ%%iAUy^l$u4#}%uGxUO$;A^V(tmab5k0U85qE3H8I=)n^iLThO7_7EE_o!6Oi49 v%(FUxlm@0bj36;Ia~MT{=J-rjQK*rDh2(^KhO~xyU879Ji~TUsGg1NWs+oB&!K>;oZr8b2`GcMTFVe#tkCgYIqXPKRUW4@D ze7DZriY_ZnR#en3Sz{}kcY8cE!f)*BGRM|E?%=(lEOH@P;*p_B!&d%1+w9@>kCo+?OB+UKMs6$3Ec8;&{+yJKS4Wa~EDwvWb7O3Q6M-Z6(9kmSgoTN7#o-l2Iw&S|8D^lm;hwkHZ({j_5@Vab}}#XZDLUX3Nx@M b_GX+=Y5?kUEdX-afOfehByX6!o>3D3GUFy5 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 2c1f8b2b..e4942b67 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5697,8 +5697,8 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm -48000480 4E800021 +C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm +480003E4 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF @@ -5719,100 +5719,57 @@ C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm 0A004665 7463682D 506F6C6C 3A202575 2075730A 00000000 +4E800021 4E800020 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFF49 +BE810008 4BFFFF41 7FE802A6 83DF0000 -807E0016 38630001 -907E0016 3D808034 -618CC408 7D8903A6 -4E800421 809E000A -907E000A 7C641850 -1C63000C 388001E6 -7C632396 7C7D1B78 -807E0016 5463063F -41820028 807E005E -7C1D1800 40800008 -93BE005E 807E0062 -7C1D1800 40810008 -93BE0062 4800000C -93BE005E 93BE0062 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFEA5 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -4082010C 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +83BE0006 887E0000 +2C030001 4082010C +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE005A -3D808030 618C2D4C +38800000 38A00000 +3D808030 618C2A3C 7D8903A6 4E800421 -7FA3EB78 389F003A -80BE0016 3D808030 +7FA3EB78 389F0020 +80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F004A 80BE005E +389F003A 80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0060 -80BE0062 3D808030 +7FA3EB78 389F004A +80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0076 80BE0066 +389F0060 80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F008A -80BE006A 3D808030 +7FA3EB78 389F0076 +80BE0066 3D808030 618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E0012 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFD5D 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FF2E -38A0FFD8 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 +4E800421 7FA3EB78 +389F008A 80BE006A +3D808030 618C2D4C 7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 +3C608046 6063B6A0 +88630008 2C030000 +41820020 807E0012 +3D808034 618C9CBC 7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 +38600002 987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFCA1 -7FE802A6 386003E8 +BE810008 4BFFFDF9 +7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001D 38E00008 +7C681B78 3860001E +3880FF2E 38A0FFD8 +38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5820,51 +5777,74 @@ BE810008 4BFFFCA1 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F0010 3D808030 +389F000C 3D808030 618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFCFD 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 C03F0004 +D03E0008 C03F0008 +D03E000C 807F0000 +93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3860006E 3D808037 +4BFFFD3D 7FE802A6 +386003E8 3D808037 618CF1E4 7D8903A6 -4E800421 4BFFFB61 -7C8802A6 90640000 -7C7E1B78 3880006E -3D808000 618CC160 +4E800421 7C681B78 +3860001F 38800000 +38A00000 38C0001D +38E00008 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFBD9 7C6802A6 -907E0012 3D808034 -618C9BF0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 C022A8C8 -60000000 00000000 -C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm +38600000 987E0026 +7FC3F378 389F0010 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 C03F0018 +C05F001C 3D808030 +618C2B10 7D8903A6 +4E800421 7FC3F378 +389F0014 3D808030 +618C2B64 7D8903A6 +4E800421 7FC3F378 +3D808030 618C2AF0 +7D8903A6 4E800421 +807F0000 93C30006 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 4BFFFCFD +7C8802A6 38A00007 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3860006E +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFBFD 7C8802A6 +90640000 7C7E1B78 +3880006E 3D808000 +618CC160 7D8903A6 +4E800421 4BFFFDD1 +4BFFFE89 4BFFFC75 +7C6802A6 907E0012 +3D808034 618C9BF0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +C022A8C8 00000000 +C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -4082010C 3C608048 +40820120 3C608048 80639D60 2C030000 -408100FC 7C0802A6 +40810110 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5875,7 +5855,7 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820094 3C80804C +418200A8 3C80804C 60841FAC 80640000 547C073E 54630036 90640000 3D808034 @@ -5883,26 +5863,28 @@ BE810008 3D808034 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 1C63000C -388001E6 7C632396 -7C7D1B78 807F0002 -9B810038 9B810039 -9B81003A 80810038 -54842026 608400FF -90810038 38810038 -3D808030 618C2B90 +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F0002 9B810038 +9B810039 9B81003A +80810038 54842026 +608400FF 90810038 +38810038 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +3D808034 618C738C 7D8903A6 4E800421 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 800D9368 -60000000 00000000 -C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm +BA810008 800100B4 +382100B0 7C0803A6 +800D9368 00000000 +C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -408200F0 3C608047 +40820104 3C608047 60639D64 80630000 -2C030000 408200DC +2C030000 408200F0 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5913,7 +5895,7 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 -2C030000 41820074 +2C030000 41820088 3C60804A 60638B10 80630000 80630000 5463463E 3863FFF1 @@ -5923,20 +5905,61 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7D8903A6 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388001E6 -7C632396 7C7D1B78 -93BF005A 7FC3F378 -3D808034 618C738C +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF005A +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80010024 +60000000 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608047 +60639D64 80630000 +2C030000 408200F8 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -80010024 00000000 -C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 807F0016 +38630001 907F0016 +3D808034 618CC408 +7D8903A6 4E800421 +809F000A 907F000A +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F0016 5463063F +41820028 807F005E +7C1D1800 40800008 +93BF005E 807F0062 +7C1D1800 40810008 +93BF0062 4800000C +93BF005E 93BF0062 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80B80000 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -40820128 3C608047 +40820150 3C608047 60639D64 80630000 -2C030000 40820114 +2C030000 4082013C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5962,10 +5985,15 @@ C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 4E800421 7C7D1B78 809F000E 93BF000E 7C64E850 1C63000C -388001E6 7C632396 -907F0066 807F000A -7C63E850 1C63000C -388001E6 7C632396 +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0066 +807F000A 7C63E850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 @@ -5976,20 +6004,58 @@ BA810008 800100B4 $Optional: PD+VB [taukhan] *PD+VB -041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] -0401985C 3C60804C -04019860 91231F5C -C2376200 00000003 -2C1DFFFF 41820008 -48000008 93A2C150 +C21A4D98 00000007 #Polling Drift Fix + VB [tauKhan] +8062A6F4 2C030001 +40820028 8062A6F0 +2C030002 4182001C +386DBD88 3D808034 +618CBA14 7D8803A6 +4E800021 4BFFFFD4 +60000000 00000000 +C21A5050 0000000B +8062A6F4 2C030001 +40820044 8062A6F0 +2C030002 40820038 +4800001C 8062A6F0 +2C030002 41820028 +8062A6F4 2C030001 +4082001C 386DBD88 +3D808034 618CBA14 +7D8803A6 4E800021 +4BFFFFD4 38600000 +60000000 00000000 +C21A4BEC 00000015 +4800007D 7C0802A6 +90010004 9421FFF8 +386DBD88 8082A6F0 +38840001 9082A6F0 +2C040001 40820014 +3D808001 618C95FC +7D8803A6 4E800021 +8082A6F0 2C040002 +40820014 3D808034 +618CBB00 7D8803A6 +4E800021 38600001 +9062A6F4 38604000 +38635624 3C808043 +B0642A42 8001000C +38210008 7C0803A6 +4E800020 7C6802A6 +3D808034 618CE894 +7D8803A6 4E800021 +3C608048 3C80801A +380446F4 38800000 +60000000 00000000 +04158268 C82280A0 +C234EB60 00000007 +8062A6F0 2C030001 +4080001C 38600000 +9062A6F4 3C608043 +38804000 388455FC +B0832A42 38600000 +9062A6F0 386DBD88 60000000 00000000 -C21A5018 00000005 -3B5A0001 8002C150 -2C00FFFF 38000000 -9002C150 3D80801A -618C5078 7D8903A6 -4D820420 00000000 -04218D68 C8228000 +04397878 4800020C $Optional: PD [Dan Salvato] *PD diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 966b4067..fd18a587 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5697,8 +5697,8 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm -48000480 4E800021 +C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm +480003E4 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF @@ -5719,100 +5719,57 @@ C216E774 000000A1 #External/Debug Inputs/InitOnGameStart.asm 0A004665 7463682D 506F6C6C 3A202575 2075730A 00000000 +4E800021 4E800020 4E800021 7C0802A6 90010004 9421FF50 -BE810008 4BFFFF49 +BE810008 4BFFFF41 7FE802A6 83DF0000 -807E0016 38630001 -907E0016 3D808034 -618CC408 7D8903A6 -4E800421 809E000A -907E000A 7C641850 -1C63000C 388001E6 -7C632396 7C7D1B78 -807E0016 5463063F -41820028 807E005E -7C1D1800 40800008 -93BE005E 807E0062 -7C1D1800 40810008 -93BE0062 4800000C -93BE005E 93BE0062 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFEA5 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -4082010C 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +83BE0006 887E0000 +2C030001 4082010C +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE005A -3D808030 618C2D4C +38800000 38A00000 +3D808030 618C2A3C 7D8903A6 4E800421 -7FA3EB78 389F003A -80BE0016 3D808030 +7FA3EB78 389F0020 +80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F004A 80BE005E +389F003A 80BE0016 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0060 -80BE0062 3D808030 +7FA3EB78 389F004A +80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0076 80BE0066 +389F0060 80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F008A -80BE006A 3D808030 +7FA3EB78 389F0076 +80BE0066 3D808030 618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E0012 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFD5D 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FF2E -38A0FFD8 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 +4E800421 7FA3EB78 +389F008A 80BE006A +3D808030 618C2D4C 7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 +3C608046 6063B6A0 +88630008 2C030000 +41820020 807E0012 +3D808034 618C9CBC 7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 +38600002 987E0000 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFCA1 -7FE802A6 386003E8 +BE810008 4BFFFDF9 +7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001D 38E00008 +7C681B78 3860001E +3880FF2E 38A0FFD8 +38C00001 38E00001 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5820,51 +5777,74 @@ BE810008 4BFFFCA1 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F0010 3D808030 +389F000C 3D808030 618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFCFD 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 C03F0004 +D03E0008 C03F0008 +D03E000C 807F0000 +93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3860006E 3D808037 +4BFFFD3D 7FE802A6 +386003E8 3D808037 618CF1E4 7D8903A6 -4E800421 4BFFFB61 -7C8802A6 90640000 -7C7E1B78 3880006E -3D808000 618CC160 +4E800421 7C681B78 +3860001F 38800000 +38A00000 38C0001D +38E00008 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFBD9 7C6802A6 -907E0012 3D808034 -618C9BF0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 C022A8C8 -60000000 00000000 -C21A4DEC 00000025 #External/Debug Inputs/LogEngineTime.asm +38600000 987E0026 +7FC3F378 389F0010 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 C03F0018 +C05F001C 3D808030 +618C2B10 7D8903A6 +4E800421 7FC3F378 +389F0014 3D808030 +618C2B64 7D8903A6 +4E800421 7FC3F378 +3D808030 618C2AF0 +7D8903A6 4E800421 +807F0000 93C30006 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 4BFFFCFD +7C8802A6 38A00007 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3860006E +3D808037 618CF1E4 +7D8903A6 4E800421 +4BFFFBFD 7C8802A6 +90640000 7C7E1B78 +3880006E 3D808000 +618CC160 7D8903A6 +4E800421 4BFFFDD1 +4BFFFE89 4BFFFC75 +7C6802A6 907E0012 +3D808034 618C9BF0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +C022A8C8 00000000 +C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -4082010C 3C608048 +40820120 3C608048 80639D60 2C030000 -408100FC 7C0802A6 +40810110 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5875,7 +5855,7 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820094 3C80804C +418200A8 3C80804C 60841FAC 80640000 547C073E 54630036 90640000 3D808034 @@ -5883,26 +5863,28 @@ BE810008 3D808034 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 1C63000C -388001E6 7C632396 -7C7D1B78 807F0002 -9B810038 9B810039 -9B81003A 80810038 -54842026 608400FF -90810038 38810038 -3D808030 618C2B90 +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F0002 9B810038 +9B810039 9B81003A +80810038 54842026 +608400FF 90810038 +38810038 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +3D808034 618C738C 7D8903A6 4E800421 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 800D9368 -60000000 00000000 -C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm +BA810008 800100B4 +382100B0 7C0803A6 +800D9368 00000000 +C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm 3C608048 80639D30 5463443E 2C030202 -408200F0 3C608047 +40820104 3C608047 60639D64 80630000 -2C030000 408200DC +2C030000 408200F0 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5913,7 +5895,7 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 -2C030000 41820074 +2C030000 41820088 3C60804A 60638B10 80630000 80630000 5463463E 3863FFF1 @@ -5923,20 +5905,61 @@ C2375C14 00000021 #External/Debug Inputs/LogFrameScanoutStart.asm 7D8903A6 4E800421 1C9C0004 3884001A 7C9F202E 7C641850 -1C63000C 388001E6 -7C632396 7C7D1B78 -93BF005A 7FC3F378 -3D808034 618C738C +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF005A +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80010024 +60000000 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608047 +60639D64 80630000 +2C030000 408200F8 +7C0802A6 90010004 +9421FF50 BE810008 +3D808034 618C7364 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -80010024 00000000 -C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 807F0016 +38630001 907F0016 +3D808034 618CC408 +7D8903A6 4E800421 +809F000A 907F000A +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F0016 5463063F +41820028 807F005E +7C1D1800 40800008 +93BF005E 807F0062 +7C1D1800 40810008 +93BF0062 4800000C +93BF005E 93BF0062 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80B80000 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/StoreCaptureTimes.asm 3C608048 80639D30 5463443E 2C030202 -40820128 3C608047 +40820150 3C608047 60639D64 80630000 -2C030000 40820114 +2C030000 4082013C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5962,10 +5985,15 @@ C2376A88 00000028 #External/Debug Inputs/StoreCaptureTimes.asm 4E800421 7C7D1B78 809F000E 93BF000E 7C64E850 1C63000C -388001E6 7C632396 -907F0066 807F000A -7C63E850 1C63000C -388001E6 7C632396 +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0066 +807F000A 7C63E850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 907F006A 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 @@ -5976,20 +6004,58 @@ BA810008 800100B4 $Optional: PD+VB [taukhan] *PD+VB -041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] -0401985C 3C60804C -04019860 91231F5C -C2376200 00000003 -2C1DFFFF 41820008 -48000008 93A2C150 +C21A4D98 00000007 #Polling Drift Fix + VB [tauKhan] +8062A6F4 2C030001 +40820028 8062A6F0 +2C030002 4182001C +386DBD88 3D808034 +618CBA14 7D8803A6 +4E800021 4BFFFFD4 +60000000 00000000 +C21A5050 0000000B +8062A6F4 2C030001 +40820044 8062A6F0 +2C030002 40820038 +4800001C 8062A6F0 +2C030002 41820028 +8062A6F4 2C030001 +4082001C 386DBD88 +3D808034 618CBA14 +7D8803A6 4E800021 +4BFFFFD4 38600000 +60000000 00000000 +C21A4BEC 00000015 +4800007D 7C0802A6 +90010004 9421FFF8 +386DBD88 8082A6F0 +38840001 9082A6F0 +2C040001 40820014 +3D808001 618C95FC +7D8803A6 4E800021 +8082A6F0 2C040002 +40820014 3D808034 +618CBB00 7D8803A6 +4E800021 38600001 +9062A6F4 38604000 +38635624 3C808043 +B0642A42 8001000C +38210008 7C0803A6 +4E800020 7C6802A6 +3D808034 618CE894 +7D8803A6 4E800021 +3C608048 3C80801A +380446F4 38800000 +60000000 00000000 +04158268 C82280A0 +C234EB60 00000007 +8062A6F0 2C030001 +4080001C 38600000 +9062A6F4 3C608043 +38804000 388455FC +B0832A42 38600000 +9062A6F0 386DBD88 60000000 00000000 -C21A5018 00000005 -3B5A0001 8002C150 -2C00FFFF 38000000 -9002C150 3D80801A -618C5078 7D8903A6 -4D820420 00000000 -04218D68 C8228000 +04397878 4800020C $Optional: PD [Dan Salvato] *PD From 85e3a4d85e2a518d3315a226cc855cbc8d563367 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 11 Jun 2021 05:31:12 -0700 Subject: [PATCH 015/217] require specific colors --- External/Debug Inputs/DebugInputs.s | 11 +- External/Debug Inputs/InitOnGameStart.asm | 31 +- External/Debug Inputs/LogEngineTime.asm | 4 +- ...StoreCaptureTimes.asm => LogFetchTime.asm} | 6 +- .../Debug Inputs/LogFrameScanoutStart.asm | 73 ----- .../{LogPollInterrupt.asm => LogPollTime.asm} | 8 +- External/Debug Inputs/LogScanoutTime.asm | 148 ++++++++++ Output/Console/GALE01r2.ini | 266 ++++++++++-------- Output/Console/g_core.bin | Bin 8472 -> 8808 bytes Output/Console/g_core_porta.bin | Bin 8472 -> 8808 bytes Output/Netplay/GALE01r2.ini | 266 ++++++++++-------- Output/Netplay/GALJ01r2.ini | 266 ++++++++++-------- 12 files changed, 653 insertions(+), 426 deletions(-) rename External/Debug Inputs/{StoreCaptureTimes.asm => LogFetchTime.asm} (96%) delete mode 100644 External/Debug Inputs/LogFrameScanoutStart.asm rename External/Debug Inputs/{LogPollInterrupt.asm => LogPollTime.asm} (94%) create mode 100644 External/Debug Inputs/LogScanoutTime.asm diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index e5469e64..a62248f5 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -12,14 +12,17 @@ .set DIB_LAST_POLL_TIME, DIB_LAG_DISPLAY_DTEXT_ADDR + 4 # u32 .set DIB_LAST_FETCH_TIME, DIB_LAST_POLL_TIME + 4 # u32 .set DIB_CALLBACK_PTR, DIB_LAST_FETCH_TIME + 4 # u32 -.set DIB_CALLBACK_COUNT, DIB_CALLBACK_PTR + 4 # u32 -.set DIB_CIRCULAR_BUFFER, DIB_CALLBACK_COUNT + 4 # u32 * CIRCULAR_BUFFER_COUNT +.set DIB_CIRCULAR_BUFFER, DIB_CALLBACK_PTR + 4 # u32 * CIRCULAR_BUFFER_COUNT .set DIB_INPUT_TO_RENDER_US, DIB_CIRCULAR_BUFFER + (4 * CIRCULAR_BUFFER_COUNT) # u32 .set DIB_POLL_DIFF_MIN_US, DIB_INPUT_TO_RENDER_US + 4 # u32 .set DIB_POLL_DIFF_MAX_US, DIB_POLL_DIFF_MIN_US + 4 # u32 .set DIB_FETCH_DIFF_US, DIB_POLL_DIFF_MAX_US + 4 # u32 -.set DIB_FETCH_TO_POLL_US, DIB_FETCH_DIFF_US + 4 # u32 -.set DIB_SIZE, DIB_FETCH_TO_POLL_US + 4 +.set DIB_POLL_TO_FETCH_US, DIB_FETCH_DIFF_US + 4 # u32 +.set DIB_POLL_TO_ENGINE_US, DIB_POLL_TO_FETCH_US + 4 # u32 +.set DIB_POLL_COUNT, DIB_POLL_TO_ENGINE_US + 4 # u32 +.set DIB_COLOR_FAIL_COUNT, DIB_POLL_COUNT + 4 # u32 +.set DIB_FAILED_COLOR, DIB_COLOR_FAIL_COUNT + 4 # u32 +.set DIB_SIZE, DIB_FAILED_COLOR + 4 ################################################################################ # Macros diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index edc7e09f..77b0e991 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -36,7 +36,13 @@ blrl .set DO_LD_STR_FETCH_DIFF, DO_LD_STR_MAX_POLL_DIFF + 22 .string "Fetch-Fetch: %u us\n" .set DO_LD_STR_FETCH_TO_POLL_DIFF, DO_LD_STR_FETCH_DIFF + 20 -.string "Fetch-Poll: %u us\n" +.string "Poll-Fetch: %u us\n" +.set DO_LD_STR_POLL_TO_ENGINE_DIFF, DO_LD_STR_FETCH_TO_POLL_DIFF + 19 +.string "Poll-Engine: %u us\n\n" +.set DO_LD_STR_COLOR_ERRORS, DO_LD_STR_POLL_TO_ENGINE_DIFF + 21 +.string "Color Errors: %u\n" +.set DO_LD_STR_FAILED_COLOR, DO_LD_STR_COLOR_ERRORS + 18 +.string "Failed Color: 0x%08X\n" .align 2 ################################################################################ @@ -87,7 +93,7 @@ branchl r12, 0x80302d4c # DevelopText_FormatAndPrint mr r3, REG_DEVELOP_TEXT addi r4, REG_DATA, DO_LD_STR_POLL_COUNT -lwz r5, DIB_CALLBACK_COUNT(REG_DIB) +lwz r5, DIB_POLL_COUNT(REG_DIB) branchl r12, 0x80302d4c # DevelopText_FormatAndPrint mr r3, REG_DEVELOP_TEXT @@ -107,7 +113,22 @@ branchl r12, 0x80302d4c # DevelopText_FormatAndPrint mr r3, REG_DEVELOP_TEXT addi r4, REG_DATA, DO_LD_STR_FETCH_TO_POLL_DIFF -lwz r5, DIB_FETCH_TO_POLL_US(REG_DIB) +lwz r5, DIB_POLL_TO_FETCH_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_POLL_TO_ENGINE_DIFF +lwz r5, DIB_POLL_TO_ENGINE_US(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_COLOR_ERRORS +lwz r5, DIB_COLOR_FAIL_COUNT(REG_DIB) +branchl r12, 0x80302d4c # DevelopText_FormatAndPrint + +mr r3, REG_DEVELOP_TEXT +addi r4, REG_DATA, DO_LD_STR_FAILED_COLOR +lwz r5, DIB_FAILED_COLOR(REG_DIB) branchl r12, 0x80302d4c # DevelopText_FormatAndPrint # Check if game over @@ -188,14 +209,14 @@ bl DATA_BLRL mflr REG_DATA #Create Rectangle -li r3, 1000 +li r3, 1200 branchl r12, HSD_MemAlloc mr r8, r3 li r3, 31 # ID li r4, 0 # X Pos, bottom right: 638 li r5, 0 # Y Pos, bottom right: 478 li r6, 29 -li r7, 8 +li r7, 12 branchl r12, 0x80302834 # DevelopText_CreateDataTable mr REG_DEVELOP_TEXT, r3 #Activate Text diff --git a/External/Debug Inputs/LogEngineTime.asm b/External/Debug Inputs/LogEngineTime.asm index 3694837c..51664287 100644 --- a/External/Debug Inputs/LogEngineTime.asm +++ b/External/Debug Inputs/LogEngineTime.asm @@ -51,6 +51,8 @@ mr REG_DIFF_US, r3 # loadGlobalFrame r4 # logf "ENGINE %u 0x%X %u" # Label Frame TimeUs +stw REG_DIFF_US, DIB_POLL_TO_ENGINE_US(REG_DIB) + # Adjust develop text BG color lwz r3, DIB_COLOR_KEY_DTEXT_ADDR(REG_DIB) stb REG_KEY, BKP_FREE_SPACE_OFFSET+0(sp) @@ -63,11 +65,11 @@ stw r4, BKP_FREE_SPACE_OFFSET(sp) addi r4, sp, BKP_FREE_SPACE_OFFSET branchl r12, 0x80302b90 # DevelopText_StoreBGColor +RESTORE_AND_EXIT: # Restore interrupts mr r3, REG_INTERRUPTS branchl r12, OSRestoreInterrupts -RESTORE_AND_EXIT: restore EXIT: diff --git a/External/Debug Inputs/StoreCaptureTimes.asm b/External/Debug Inputs/LogFetchTime.asm similarity index 96% rename from External/Debug Inputs/StoreCaptureTimes.asm rename to External/Debug Inputs/LogFetchTime.asm index 29ae1582..cc4407f6 100644 --- a/External/Debug Inputs/StoreCaptureTimes.asm +++ b/External/Debug Inputs/LogFetchTime.asm @@ -49,7 +49,7 @@ stwx r3, REG_DIB, r4 # Log # loadwz r7, 0xCC006430 # Includes details to poll more often. http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.8 # loadwz r7, 0xCC006434 -# lwz r6, DIB_CALLBACK_COUNT(REG_DIB) +# lwz r6, DIB_POLL_COUNT(REG_DIB) # lwz r5, P1_PAD_OFFSET(sp) # rlwinm r5, r5, 16, 0xF # loadGlobalFrame r4 @@ -77,13 +77,13 @@ stw r3, DIB_FETCH_DIFF_US(REG_DIB) # Store time since poll lwz r3, DIB_LAST_POLL_TIME(REG_DIB) calcDiffUs REG_FETCH_TIME, r3 -stw r3, DIB_FETCH_TO_POLL_US(REG_DIB) +stw r3, DIB_POLL_TO_FETCH_US(REG_DIB) +RESTORE_AND_EXIT: # Restore interrupts mr r3, REG_INTERRUPTS branchl r12, OSRestoreInterrupts -RESTORE_AND_EXIT: restore EXIT: diff --git a/External/Debug Inputs/LogFrameScanoutStart.asm b/External/Debug Inputs/LogFrameScanoutStart.asm deleted file mode 100644 index b48cdfd5..00000000 --- a/External/Debug Inputs/LogFrameScanoutStart.asm +++ /dev/null @@ -1,73 +0,0 @@ -################################################################################ -# Address: 0x80375c14 # End of VIPreRetraceCB -################################################################################ - -.include "Common/Common.s" -.include "./DebugInputs.s" - -# Check if VS Mode -getMinorMajor r3 -cmpwi r3, 0x0202 -bne EXIT - -load r3, 0x80479d64 -lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state -cmpwi r3, 0 # Loading state should be zero when game starts -bne EXIT - -.set REG_DIB, 31 -.set REG_INTERRUPTS, 30 -.set REG_DIFF_US, 29 -.set REG_KEY, 28 -.set REG_DEVELOP_TEXT, 27 - -backup - -branchl r12, OSDisableInterrupts -mr REG_INTERRUPTS, r3 - -# Fetch DIB -computeBranchTargetAddress r3, INJ_InitDebugInputs -lwz REG_DIB, 8+0(r3) - -# Check if DIB is ready (poll has happened) -lbz r3, DIB_ACTIVE_STATE(REG_DIB) -cmpwi r3, 0 -beq RESTORE_AND_EXIT - -# Fetch/convert key from frame -# https://docs.google.com/spreadsheets/d/1EKnVQmAbt5LCipXq_aGCMJ_utsOlPqM_O0UJ3cnWm4c/edit#gid=0 -loadwz r3, 0x804a8b10 # Load ptr to frame that will be scanned out -lwz r3, 0(r3) # Load top left pixel -rlwinm r3, r3, 8, 0xFF # Extract top byte -subi r3, r3, 15 -mulli r3, r3, 6 -li r4, 5 -divwu r3, r3, r4 -rlwinm REG_KEY, r3, 28, 0xF # Extract 4 bits to get key - -# Calculate time diff -calcDiffFromFetchUs REG_DIB, REG_KEY -mr REG_DIFF_US, r3 - -# Log -# mr r7, REG_DIFF_US -# loadwz r6, 0x804a8b10 # Load ptr to frame that will be scanned out -# lwz r6, 0(r6) # Load top left pixel -# mr r5, REG_KEY -# loadGlobalFrame r4 -# subi r4, r4, 1 -# logf "BLANK %u 0x%X %X %u" # Label Frame TimeUs - -# Store latest latency -stw REG_DIFF_US, DIB_INPUT_TO_RENDER_US(REG_DIB) - -# Restore interrupts -mr r3, REG_INTERRUPTS -branchl r12, OSRestoreInterrupts - -RESTORE_AND_EXIT: -restore - -EXIT: -lwz r0, 0x0024(sp) # Replaced codeline \ No newline at end of file diff --git a/External/Debug Inputs/LogPollInterrupt.asm b/External/Debug Inputs/LogPollTime.asm similarity index 94% rename from External/Debug Inputs/LogPollInterrupt.asm rename to External/Debug Inputs/LogPollTime.asm index 818b87df..de37a00c 100644 --- a/External/Debug Inputs/LogPollInterrupt.asm +++ b/External/Debug Inputs/LogPollTime.asm @@ -28,9 +28,9 @@ mr REG_INTERRUPTS, r3 computeBranchTargetAddress r3, INJ_InitDebugInputs lwz REG_DIB, 8+0(r3) -lwz r3, DIB_CALLBACK_COUNT(REG_DIB) +lwz r3, DIB_POLL_COUNT(REG_DIB) addi r3, r3, 1 -stw r3, DIB_CALLBACK_COUNT(REG_DIB) +stw r3, DIB_POLL_COUNT(REG_DIB) # Write poll time branchl r12, 0x8034c408 # OSGetTick @@ -40,7 +40,7 @@ calcDiffUs r3, r4 # Calculate difference since last poll mr REG_DIFF_SINCE_LAST, r3 # Store min/max diff for logging -lwz r3, DIB_CALLBACK_COUNT(REG_DIB) +lwz r3, DIB_POLL_COUNT(REG_DIB) rlwinm. r3, r3, 0, 0xFF beq FN_PollingHandler_RESET_MIN_MAX # Reset every 256 polls, 2 seconds? @@ -63,11 +63,11 @@ stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MIN_US(REG_DIB) stw REG_DIFF_SINCE_LAST, DIB_POLL_DIFF_MAX_US(REG_DIB) FN_PollingHandler_MIN_MAX_END: +RESTORE_AND_EXIT: # Restore interrupts mr r3, REG_INTERRUPTS branchl r12, OSRestoreInterrupts -RESTORE_AND_EXIT: restore EXIT: diff --git a/External/Debug Inputs/LogScanoutTime.asm b/External/Debug Inputs/LogScanoutTime.asm new file mode 100644 index 00000000..55340f8b --- /dev/null +++ b/External/Debug Inputs/LogScanoutTime.asm @@ -0,0 +1,148 @@ +################################################################################ +# Address: 0x80375c14 # End of VIPreRetraceCB +################################################################################ + +.include "Common/Common.s" +.include "./DebugInputs.s" + +b CODE_START + +DATA_BLRL: +blrl +# The following is an array of the key colors with the 2nd and 4th byte masked out +# The 2nd and 4th byte seem to be either 7F or 80, easier to compare by just excluding them +# TODO: I commented the console versions of the colors but for some reason when I use those, +# TODO: the latency can get really jumpy so I have no idea what's up +.long 0x10001000 +.long 0x1E001E00 +.long 0x2B002B00 # 0x2C002C00 +.long 0x39003900 +.long 0x47004700 +.long 0x55005500 +.long 0x62006200 # 0x63006300 +.long 0x70007000 +.long 0x7E007E00 +.long 0x8C008C00 +.long 0x99009900 # 0x9A009A00 +.long 0xA700A700 +.long 0xB500B500 +.long 0xC300C300 +.long 0xD000D000 # 0xD100D100 +.long 0xDE00DE00 + +################################################################################ +# Function: GetIndexFromColor +################################################################################ +# Inputs: +# r3 - YUV Color +################################################################################ +# Output: +# r3 - 0-15 or -1 if color does not match +################################################################################ +.set REG_DATA, 31 +.set REG_IDX, 30 +.set REG_COLOR, 29 + +FN_GetIndexFromColor: +backup + +load r4, 0xFF00FF00 +and REG_COLOR, r3, r4 + +bl DATA_BLRL +mflr REG_DATA + +li REG_IDX, 0 +FN_GetIndexFromColor_LOOP_START: +mulli r3, REG_IDX, 4 +lwzx r3, REG_DATA, r3 +cmpw REG_COLOR, r3 +bne FN_GetIndexFromColor_LOOP_CONTINUE +mr r3, REG_IDX +b FN_GetIndexFromColor_RETURN +FN_GetIndexFromColor_LOOP_CONTINUE: +addi REG_IDX, REG_IDX, 1 +cmpwi REG_IDX, 16 +blt FN_GetIndexFromColor_LOOP_START + +li r3, -1 + +FN_GetIndexFromColor_RETURN: +restore +blr + +CODE_START: +# Check if VS Mode +getMinorMajor r3 +cmpwi r3, 0x0202 +bne EXIT + +load r3, 0x80479d64 +lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state +cmpwi r3, 0 # Loading state should be zero when game starts +bne EXIT + +.set REG_DIB, 31 +.set REG_INTERRUPTS, 30 +.set REG_DIFF_US, 29 +.set REG_KEY, 28 +.set REG_DEVELOP_TEXT, 27 +.set REG_COLOR, 26 + +backup + +branchl r12, OSDisableInterrupts +mr REG_INTERRUPTS, r3 + +# Fetch DIB +computeBranchTargetAddress r3, INJ_InitDebugInputs +lwz REG_DIB, 8+0(r3) + +# Check if DIB is ready (poll has happened) +lbz r3, DIB_ACTIVE_STATE(REG_DIB) +cmpwi r3, 0 +beq RESTORE_AND_EXIT + +# Fetch/convert key from frame +loadwz r3, 0x804a8b10 # Load ptr to frame that will be scanned out +lwz REG_COLOR, 4(r3) # Load top left pixel +mr r3, REG_COLOR +bl FN_GetIndexFromColor +cmpwi r3, 0 +bge CALC_DIFF + +# Color is invalid, increment count and exit +lwz r3, DIB_COLOR_FAIL_COUNT(REG_DIB) +addi r3, r3, 1 +stw r3, DIB_COLOR_FAIL_COUNT(REG_DIB) +stw REG_COLOR, DIB_FAILED_COLOR(REG_DIB) +b RESTORE_AND_EXIT + +CALC_DIFF: +mr REG_KEY, r3 + +# Calculate time diff +calcDiffFromFetchUs REG_DIB, REG_KEY +mr REG_DIFF_US, r3 + +# Log +# mr r7, REG_DIFF_US +# loadwz r6, 0x804a8b10 # Load ptr to frame that will be scanned out +# lwz r6, 0(r6) # Load top left pixel +# mr r5, REG_KEY +# loadGlobalFrame r4 +# subi r4, r4, 1 +# logf "BLANK %u 0x%X %X %u" # Label Frame TimeUs + +# Store latest latency +stw REG_DIFF_US, DIB_INPUT_TO_RENDER_US(REG_DIB) + +RESTORE_AND_EXIT: +# Restore interrupts +mr r3, REG_INTERRUPTS +branchl r12, OSRestoreInterrupts + +restore + +EXIT: +lwz r0, 0x0024(sp) # Replaced codeline \ No newline at end of file diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 87d64df2..1e57453c 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -774,8 +774,8 @@ BA810008 800100B4 $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm -480003E4 4E800021 +C216E774 0000009F #External/Debug Inputs/InitOnGameStart.asm +48000474 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF @@ -793,41 +793,59 @@ C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm 75207573 0A004665 7463682D 46657463 683A2025 75207573 -0A004665 7463682D -506F6C6C 3A202575 -2075730A 00000000 -4E800021 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFF41 -7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 4082010C -7FA3EB78 3D808030 -618C2BB0 7D8903A6 +0A00506F 6C6C2D46 +65746368 3A202575 +2075730A 00506F6C +6C2D456E 67696E65 +3A202575 2075730A +0A00436F 6C6F7220 +4572726F 72733A20 +25750A00 4661696C +65642043 6F6C6F72 +3A203078 25303858 +0A000000 4E800021 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFF05 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +40820160 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C +389F0020 80BE0056 +3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE005A 3D808030 +7FA3EB78 389F003A +80BE006E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F003A 80BE0016 +389F004A 80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F004A +7FA3EB78 389F0060 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0060 80BE0062 +389F0076 80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0076 +7FA3EB78 389F008A 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F008A 80BE006A +389F009D 80BE006A +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F00B2 +80BE0072 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F00C4 80BE0076 3D808030 618C2D4C 7D8903A6 4E800421 3C608046 6063B6A0 @@ -840,7 +858,7 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFDF9 +BE810008 4BFFFD69 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 @@ -864,13 +882,13 @@ D03E000C 807F0000 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFD3D 7FE802A6 -386003E8 3D808037 +4BFFFCAD 7FE802A6 +386004B0 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 3860001F 38800000 38A00000 38C0001D -38E00008 3D808030 +38E0000C 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C 7FC4F378 @@ -893,7 +911,7 @@ C05F001C 3D808030 38600013 38800014 38A00000 3D808039 618C01F0 7D8903A6 -4E800421 4BFFFCFD +4E800421 4BFFFCA9 7C8802A6 38A00007 3D808038 618CFD54 7D8903A6 4E800421 @@ -901,27 +919,27 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3860006E +BE810008 3860007A 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFBFD 7C8802A6 +4BFFFB6D 7C8802A6 90640000 7C7E1B78 -3880006E 3D808000 +3880007A 3D808000 618CC160 7D8903A6 4E800421 4BFFFDD1 -4BFFFE89 4BFFFC75 +4BFFFE89 4BFFFC21 7C6802A6 907E0012 3D808034 618C9BF0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 C022A8C8 00000000 -C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm +C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -40820120 3C608048 +40820124 3C608048 80639D60 2C030000 -40810110 7C0802A6 +40810114 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -932,36 +950,37 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -418200A8 3C80804C +41820098 3C80804C 60841FAC 80640000 547C073E 54630036 90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -3884001A 7C9F202E +38840016 7C9F202E 7C641850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 7C632396 7C7D1B78 -807F0002 9B810038 -9B810039 9B81003A -80810038 54842026 -608400FF 90810038 -38810038 3D808030 -618C2B90 7D8903A6 -4E800421 7FC3F378 -3D808034 618C738C +93BF006A 807F0002 +9B810038 9B810039 +9B81003A 80810038 +54842026 608400FF +90810038 38810038 +3D808030 618C2B90 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -800D9368 00000000 -C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 800D9368 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm 3C608048 80639D30 5463443E 2C030202 -40820104 3C608047 +40820150 3C608047 60639D64 80630000 -2C030000 408200F0 +2C030000 4082013C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -971,29 +990,38 @@ C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 887F0000 -2C030000 41820088 -3C60804A 60638B10 -80630000 80630000 -5463463E 3863FFF1 -1C630006 38800005 -7C632396 547CE73E -3D808034 618CC408 -7D8903A6 4E800421 -1C9C0004 3884001A -7C9F202E 7C641850 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0062 +807F000A 7C63E850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 7C632396 -7C7D1B78 93BF005A -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 80010024 -60000000 00000000 -C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm +907F0066 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 3C608048 80639D30 5463443E 2C030202 4082010C 3C608047 @@ -1008,8 +1036,8 @@ C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 807F0016 -38630001 907F0016 +83E30008 807F006E +38630001 907F006E 3D808034 618CC408 7D8903A6 4E800421 809F000A 907F000A @@ -1018,62 +1046,76 @@ C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm 80840000 38A003E8 7C842B96 7C842B96 7C632396 7C7D1B78 -807F0016 5463063F -41820028 807F005E +807F006E 5463063F +41820028 807F005A 7C1D1800 40800008 -93BF005E 807F0062 +93BF005A 807F005E 7C1D1800 40810008 -93BF0062 4800000C -93BF005E 93BF0062 +93BF005E 4800000C +93BF005A 93BF005E 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80B80000 60000000 00000000 -C2376A88 0000002D #External/Debug Inputs/StoreCaptureTimes.asm -3C608048 80639D30 -5463443E 2C030202 -40820150 3C608047 -60639D64 80630000 -2C030000 4082013C +C2375C14 0000003B #External/Debug Inputs/LogScanoutTime.asm +480000AC 4E800021 +10001000 1E001E00 +2C002C00 39003900 +47004700 55005500 +63006300 70007000 +7E007E00 8C008C00 +9A009A00 A700A700 +B500B500 C300C300 +D100D100 DE00DE00 7C0802A6 90010004 9421FF50 BE810008 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 -83E30008 806100DC -54638036 889F0001 -7C632378 5463803E -906100DC 807F000A -889F0001 1C840004 -3884001A 7C7F212E -887F0001 38630001 -2C030010 41800008 -38600000 987F0001 +3C80FF00 6084FF00 +7C7D2038 4BFFFFA1 +7FE802A6 3BC00000 +1C7E0004 7C7F182E +7C1D1800 4082000C +7FC3F378 48000014 +3BDE0001 2C1E0010 +4180FFE0 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 3C608048 +80639D30 5463443E +2C030202 40820114 +3C608047 60639D64 +80630000 2C030000 +40820100 7C0802A6 +90010004 9421FF50 +BE810008 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 887F0000 2C030000 -4082000C 38600001 -987F0000 3D808034 +41820084 3C60804A +60638B10 80630000 +83430004 7F43D378 +4BFFFF09 2C030000 +40800018 807F0072 +38630001 907F0072 +935F0076 48000050 +7C7C1B78 3D808034 618CC408 7D8903A6 -4E800421 7C7D1B78 -809F000E 93BF000E -7C64E850 1C63000C +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 -7C632396 907F0066 -807F000A 7C63E850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -907F006A 7FC3F378 +7C632396 7C7D1B78 +93BF0056 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -881F0002 00000000 +80010024 00000000 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 2ecdc41b2c6abadb63eb1173a0a97da18b92d9cd..bbdf0d923846a1c0261362f235ead499153051fb 100644 GIT binary patch delta 770 zcmZvZ%}*0i6vgi=Q&SpZs%hxdLOV5(kXWTV28sffuUN${5Dg(^U_gY_mJAGb*b;YsyQgH$~wO-;DLw%RfyqnY8qo*UxXbXJqvG%c%5Sgsq| z2S(GwLz3NSkfOQjsC>(f*Tl2TiQ}S=DYziUSPvFOpR;GU95Kfps?&=GU&E+8geKwGz@2xv9u=HN} zcjxDR!u++EFpt7m4AfQEG%CE4tLxEjwe?b@#NlYpv#MiHiIe~|&oM9Z%A0HrS1W2+ zIf}trHilm-`fwxkg6gZ%1RKPHbdKG|FH!_^L8CMytH72G$gG6oa;957(bSTM8g4+Z zUMWH|2N%ABUaC`eJ!jXcPN1J8pH9ly`;PtPVSExgY4mvkAV%HoE)HQ2cpykbh=Ors?xKho2&-W;xl5B9xe3a=3HppACrtC1^$4*7K*cNw zx*=ZBL)OZ9D5I5fw1hWy04x#&PYXATvSON8IPLvkj9!YdLs8d-7Hrr*v|GjJc}1O+tf5L-JgMkYpD-9cCsbpz9T&VhKRsFgP?a3QRsD z6VA9|vWl!eqts*`C7sDFvN0wMKyb)BMg&NyU@?RRDCVA!JU68w85}GO4owUnKn6K> z0A;)qlDh>!G9Vn1>}F??{Qsj&G6NgX(X2Je%F{w>p4$N(Z<5$^gahVynK=wB7A*`Q zC+IUqO}0_eU`YVlJ~>3bnN!RnnSpUaJ%iZf2lCFQVj;a~kljOC5aik-!0{|wT Bsa*g7 diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index a4e22dd0ed43760d5e445656edd0f35344f611bc..d32ec18ff6abc62213031170c7dd916203a43e0f 100644 GIT binary patch delta 770 zcmZvZ%}*0i6vgi=Q&SpZs%hxdLOV5(kXWTV28sffuUN${5Dg(^U_gY_mJAGb*b;YsyQgH$~wO-;DLw%RfyqnY8qo*UxXbXJqvG%c%5Sgsq| z2S(GwLz3NSkfOQjsC>(f*Tl2TiQ}S=DYziUSPvFOpR;GU95Kfps?&=GU&E+8geKwGz@2xv9u=HN} zcjxDR!u++EFpt7m4AfQEG%CE4tLxEjwe?b@#NlYpv#MiHiIe~|&oM9Z%A0HrS1W2+ zIf}trHilm-`fwxkg6gZ%1RKPHbdKG|FH!_^L8CMytH72G$gG6oa;957(bSTM8g4+Z zUMWH|2N%ABUaC`eJ!jXcPN1J8pH9ly`;PtPVSExgY4mvkAV%HoE)HQ2cpykbh=Ors?xKho2&-W;xl5B9xe3a=3HppACrtC1^$4*7K*cNw zx*=ZBL)OZ9D5I5fw1hWy04x#&PYXATvSON8IPLvkj9!YdLs8d-7Hrr*v|GjJc}1O+tf5L-JgMkYpD-9cCsbpz9T&VhKRsFgP?a3QRsD z6VA9|vWl!eqts*`C7sDFvN0wMKyb)BMg&NyU@?RRDCVA!JU68w85}GO4owUnKn6K> z0A;)qlDh>!G9Vn1>}F??{Qsj&G6NgX(X2Je%F{w>p4$N(Z<5$^gahVynK=wB7A*`Q zC+IUqO}0_eU`YVlJ~>3bnN!RnnSpUaJ%iZf2lCFQVj;a~kljOC5aik-!0{|wT Bsa*g7 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index e4942b67..3da62537 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5697,8 +5697,8 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm -480003E4 4E800021 +C216E774 0000009F #External/Debug Inputs/InitOnGameStart.asm +48000474 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF @@ -5716,41 +5716,59 @@ C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm 75207573 0A004665 7463682D 46657463 683A2025 75207573 -0A004665 7463682D -506F6C6C 3A202575 -2075730A 00000000 -4E800021 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFF41 -7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 4082010C -7FA3EB78 3D808030 -618C2BB0 7D8903A6 +0A00506F 6C6C2D46 +65746368 3A202575 +2075730A 00506F6C +6C2D456E 67696E65 +3A202575 2075730A +0A00436F 6C6F7220 +4572726F 72733A20 +25750A00 4661696C +65642043 6F6C6F72 +3A203078 25303858 +0A000000 4E800021 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFF05 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +40820160 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C +389F0020 80BE0056 +3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE005A 3D808030 +7FA3EB78 389F003A +80BE006E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F003A 80BE0016 +389F004A 80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F004A +7FA3EB78 389F0060 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0060 80BE0062 +389F0076 80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0076 +7FA3EB78 389F008A 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F008A 80BE006A +389F009D 80BE006A +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F00B2 +80BE0072 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F00C4 80BE0076 3D808030 618C2D4C 7D8903A6 4E800421 3C608046 6063B6A0 @@ -5763,7 +5781,7 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFDF9 +BE810008 4BFFFD69 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 @@ -5787,13 +5805,13 @@ D03E000C 807F0000 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFD3D 7FE802A6 -386003E8 3D808037 +4BFFFCAD 7FE802A6 +386004B0 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 3860001F 38800000 38A00000 38C0001D -38E00008 3D808030 +38E0000C 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C 7FC4F378 @@ -5816,7 +5834,7 @@ C05F001C 3D808030 38600013 38800014 38A00000 3D808039 618C01F0 7D8903A6 -4E800421 4BFFFCFD +4E800421 4BFFFCA9 7C8802A6 38A00007 3D808038 618CFD54 7D8903A6 4E800421 @@ -5824,27 +5842,27 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3860006E +BE810008 3860007A 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFBFD 7C8802A6 +4BFFFB6D 7C8802A6 90640000 7C7E1B78 -3880006E 3D808000 +3880007A 3D808000 618CC160 7D8903A6 4E800421 4BFFFDD1 -4BFFFE89 4BFFFC75 +4BFFFE89 4BFFFC21 7C6802A6 907E0012 3D808034 618C9BF0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 C022A8C8 00000000 -C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm +C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -40820120 3C608048 +40820124 3C608048 80639D60 2C030000 -40810110 7C0802A6 +40810114 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5855,36 +5873,37 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -418200A8 3C80804C +41820098 3C80804C 60841FAC 80640000 547C073E 54630036 90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -3884001A 7C9F202E +38840016 7C9F202E 7C641850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 7C632396 7C7D1B78 -807F0002 9B810038 -9B810039 9B81003A -80810038 54842026 -608400FF 90810038 -38810038 3D808030 -618C2B90 7D8903A6 -4E800421 7FC3F378 -3D808034 618C738C +93BF006A 807F0002 +9B810038 9B810039 +9B81003A 80810038 +54842026 608400FF +90810038 38810038 +3D808030 618C2B90 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -800D9368 00000000 -C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 800D9368 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm 3C608048 80639D30 5463443E 2C030202 -40820104 3C608047 +40820150 3C608047 60639D64 80630000 -2C030000 408200F0 +2C030000 4082013C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5894,29 +5913,38 @@ C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 887F0000 -2C030000 41820088 -3C60804A 60638B10 -80630000 80630000 -5463463E 3863FFF1 -1C630006 38800005 -7C632396 547CE73E -3D808034 618CC408 -7D8903A6 4E800421 -1C9C0004 3884001A -7C9F202E 7C641850 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0062 +807F000A 7C63E850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 7C632396 -7C7D1B78 93BF005A -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 80010024 -60000000 00000000 -C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm +907F0066 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 3C608048 80639D30 5463443E 2C030202 4082010C 3C608047 @@ -5931,8 +5959,8 @@ C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 807F0016 -38630001 907F0016 +83E30008 807F006E +38630001 907F006E 3D808034 618CC408 7D8903A6 4E800421 809F000A 907F000A @@ -5941,65 +5969,79 @@ C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm 80840000 38A003E8 7C842B96 7C842B96 7C632396 7C7D1B78 -807F0016 5463063F -41820028 807F005E +807F006E 5463063F +41820028 807F005A 7C1D1800 40800008 -93BF005E 807F0062 +93BF005A 807F005E 7C1D1800 40810008 -93BF0062 4800000C -93BF005E 93BF0062 +93BF005E 4800000C +93BF005A 93BF005E 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80B80000 60000000 00000000 -C2376A88 0000002D #External/Debug Inputs/StoreCaptureTimes.asm -3C608048 80639D30 -5463443E 2C030202 -40820150 3C608047 -60639D64 80630000 -2C030000 4082013C +C2375C14 0000003B #External/Debug Inputs/LogScanoutTime.asm +480000AC 4E800021 +10001000 1E001E00 +2C002C00 39003900 +47004700 55005500 +63006300 70007000 +7E007E00 8C008C00 +9A009A00 A700A700 +B500B500 C300C300 +D100D100 DE00DE00 7C0802A6 90010004 9421FF50 BE810008 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 -83E30008 806100DC -54638036 889F0001 -7C632378 5463803E -906100DC 807F000A -889F0001 1C840004 -3884001A 7C7F212E -887F0001 38630001 -2C030010 41800008 -38600000 987F0001 +3C80FF00 6084FF00 +7C7D2038 4BFFFFA1 +7FE802A6 3BC00000 +1C7E0004 7C7F182E +7C1D1800 4082000C +7FC3F378 48000014 +3BDE0001 2C1E0010 +4180FFE0 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 3C608048 +80639D30 5463443E +2C030202 40820114 +3C608047 60639D64 +80630000 2C030000 +40820100 7C0802A6 +90010004 9421FF50 +BE810008 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 887F0000 2C030000 -4082000C 38600001 -987F0000 3D808034 +41820084 3C60804A +60638B10 80630000 +83430004 7F43D378 +4BFFFF09 2C030000 +40800018 807F0072 +38630001 907F0072 +935F0076 48000050 +7C7C1B78 3D808034 618CC408 7D8903A6 -4E800421 7C7D1B78 -809F000E 93BF000E -7C64E850 1C63000C +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 -7C632396 907F0066 -807F000A 7C63E850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -907F006A 7FC3F378 +7C632396 7C7D1B78 +93BF0056 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -881F0002 00000000 +80010024 00000000 041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm $Optional: PD+VB [taukhan] diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index fd18a587..87984c22 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5697,8 +5697,8 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm -480003E4 4E800021 +C216E774 0000009F #External/Debug Inputs/InitOnGameStart.asm +48000474 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF @@ -5716,41 +5716,59 @@ C216E774 0000008D #External/Debug Inputs/InitOnGameStart.asm 75207573 0A004665 7463682D 46657463 683A2025 75207573 -0A004665 7463682D -506F6C6C 3A202575 -2075730A 00000000 -4E800021 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFF41 -7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 4082010C -7FA3EB78 3D808030 -618C2BB0 7D8903A6 +0A00506F 6C6C2D46 +65746368 3A202575 +2075730A 00506F6C +6C2D456E 67696E65 +3A202575 2075730A +0A00436F 6C6F7220 +4572726F 72733A20 +25750A00 4661696C +65642043 6F6C6F72 +3A203078 25303858 +0A000000 4E800021 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFF05 7FE802A6 +83DF0000 83BE0006 +887E0000 2C030001 +40820160 7FA3EB78 +3D808030 618C2BB0 +7D8903A6 4E800421 +7FA3EB78 38800000 +38A00000 3D808030 +618C2A3C 7D8903A6 4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C +389F0020 80BE0056 +3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE005A 3D808030 +7FA3EB78 389F003A +80BE006E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F003A 80BE0016 +389F004A 80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F004A +7FA3EB78 389F0060 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0060 80BE0062 +389F0076 80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0076 +7FA3EB78 389F008A 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F008A 80BE006A +389F009D 80BE006A +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F00B2 +80BE0072 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F00C4 80BE0076 3D808030 618C2D4C 7D8903A6 4E800421 3C608046 6063B6A0 @@ -5763,7 +5781,7 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFDF9 +BE810008 4BFFFD69 7FE802A6 38600020 3D808037 618CF1E4 7D8903A6 4E800421 @@ -5787,13 +5805,13 @@ D03E000C 807F0000 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFD3D 7FE802A6 -386003E8 3D808037 +4BFFFCAD 7FE802A6 +386004B0 3D808037 618CF1E4 7D8903A6 4E800421 7C681B78 3860001F 38800000 38A00000 38C0001D -38E00008 3D808030 +38E0000C 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C 7FC4F378 @@ -5816,7 +5834,7 @@ C05F001C 3D808030 38600013 38800014 38A00000 3D808039 618C01F0 7D8903A6 -4E800421 4BFFFCFD +4E800421 4BFFFCA9 7C8802A6 38A00007 3D808038 618CFD54 7D8903A6 4E800421 @@ -5824,27 +5842,27 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3860006E +BE810008 3860007A 3D808037 618CF1E4 7D8903A6 4E800421 -4BFFFBFD 7C8802A6 +4BFFFB6D 7C8802A6 90640000 7C7E1B78 -3880006E 3D808000 +3880007A 3D808000 618CC160 7D8903A6 4E800421 4BFFFDD1 -4BFFFE89 4BFFFC75 +4BFFFE89 4BFFFC21 7C6802A6 907E0012 3D808034 618C9BF0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 C022A8C8 00000000 -C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm +C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -40820120 3C608048 +40820124 3C608048 80639D60 2C030000 -40810110 7C0802A6 +40810114 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -5855,36 +5873,37 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -418200A8 3C80804C +41820098 3C80804C 60841FAC 80640000 547C073E 54630036 90640000 3D808034 618CC408 7D8903A6 4E800421 1C9C0004 -3884001A 7C9F202E +38840016 7C9F202E 7C641850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 7C632396 7C7D1B78 -807F0002 9B810038 -9B810039 9B81003A -80810038 54842026 -608400FF 90810038 -38810038 3D808030 -618C2B90 7D8903A6 -4E800421 7FC3F378 -3D808034 618C738C +93BF006A 807F0002 +9B810038 9B810039 +9B81003A 80810038 +54842026 608400FF +90810038 38810038 +3D808030 618C2B90 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -800D9368 00000000 -C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 800D9368 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm 3C608048 80639D30 5463443E 2C030202 -40820104 3C608047 +40820150 3C608047 60639D64 80630000 -2C030000 408200F0 +2C030000 4082013C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 @@ -5894,29 +5913,38 @@ C2375C14 00000024 #External/Debug Inputs/LogFrameScanoutStart.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 887F0000 -2C030000 41820088 -3C60804A 60638B10 -80630000 80630000 -5463463E 3863FFF1 -1C630006 38800005 -7C632396 547CE73E -3D808034 618CC408 -7D8903A6 4E800421 -1C9C0004 3884001A -7C9F202E 7C641850 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0062 +807F000A 7C63E850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 7C632396 -7C7D1B78 93BF005A -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 80010024 -60000000 00000000 -C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm +907F0066 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +881F0002 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 3C608048 80639D30 5463443E 2C030202 4082010C 3C608047 @@ -5931,8 +5959,8 @@ C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 -83E30008 807F0016 -38630001 907F0016 +83E30008 807F006E +38630001 907F006E 3D808034 618CC408 7D8903A6 4E800421 809F000A 907F000A @@ -5941,65 +5969,79 @@ C2349A28 00000025 #External/Debug Inputs/LogPollInterrupt.asm 80840000 38A003E8 7C842B96 7C842B96 7C632396 7C7D1B78 -807F0016 5463063F -41820028 807F005E +807F006E 5463063F +41820028 807F005A 7C1D1800 40800008 -93BF005E 807F0062 +93BF005A 807F005E 7C1D1800 40810008 -93BF0062 4800000C -93BF005E 93BF0062 +93BF005E 4800000C +93BF005A 93BF005E 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 80B80000 60000000 00000000 -C2376A88 0000002D #External/Debug Inputs/StoreCaptureTimes.asm -3C608048 80639D30 -5463443E 2C030202 -40820150 3C608047 -60639D64 80630000 -2C030000 4082013C +C2375C14 0000003B #External/Debug Inputs/LogScanoutTime.asm +480000AC 4E800021 +10001000 1E001E00 +2C002C00 39003900 +47004700 55005500 +63006300 70007000 +7E007E00 8C008C00 +9A009A00 A700A700 +B500B500 C300C300 +D100D100 DE00DE00 7C0802A6 90010004 9421FF50 BE810008 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 -83E30008 806100DC -54638036 889F0001 -7C632378 5463803E -906100DC 807F000A -889F0001 1C840004 -3884001A 7C7F212E -887F0001 38630001 -2C030010 41800008 -38600000 987F0001 +3C80FF00 6084FF00 +7C7D2038 4BFFFFA1 +7FE802A6 3BC00000 +1C7E0004 7C7F182E +7C1D1800 4082000C +7FC3F378 48000014 +3BDE0001 2C1E0010 +4180FFE0 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 3C608048 +80639D30 5463443E +2C030202 40820114 +3C608047 60639D64 +80630000 2C030000 +40820100 7C0802A6 +90010004 9421FF50 +BE810008 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 887F0000 2C030000 -4082000C 38600001 -987F0000 3D808034 +41820084 3C60804A +60638B10 80630000 +83430004 7F43D378 +4BFFFF09 2C030000 +40800018 807F0072 +38630001 907F0072 +935F0076 48000050 +7C7C1B78 3D808034 618CC408 7D8903A6 -4E800421 7C7D1B78 -809F000E 93BF000E -7C64E850 1C63000C +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C 3C808000 608400FC 80840000 38A003E8 7C842B96 7C842B96 -7C632396 907F0066 -807F000A 7C63E850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -907F006A 7FC3F378 +7C632396 7C7D1B78 +93BF0056 7FC3F378 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -881F0002 00000000 +80010024 00000000 041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm $Optional: PD+VB [taukhan] From c311167ddc1a5bda2f5aae28c62f337ae4225696 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 14 Jun 2021 04:21:38 -0700 Subject: [PATCH 016/217] fix cache issue and do some clean up --- External/Debug Inputs/DebugInputs.s | 4 +- External/Debug Inputs/InitOnGameStart.asm | 34 +-- External/Debug Inputs/LogEngineTime.asm | 6 - External/Debug Inputs/LogFetchTime.asm | 11 +- External/Debug Inputs/LogScanoutTime.asm | 98 +++---- Output/Console/GALE01r2.ini | 297 ++++++++++------------ Output/Console/g_core.bin | Bin 8808 -> 8592 bytes Output/Console/g_core_porta.bin | Bin 8808 -> 8592 bytes Output/Netplay/GALE01r2.ini | 297 ++++++++++------------ Output/Netplay/GALJ01r2.ini | 297 ++++++++++------------ 10 files changed, 447 insertions(+), 597 deletions(-) diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index a62248f5..5e295e72 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -20,9 +20,7 @@ .set DIB_POLL_TO_FETCH_US, DIB_FETCH_DIFF_US + 4 # u32 .set DIB_POLL_TO_ENGINE_US, DIB_POLL_TO_FETCH_US + 4 # u32 .set DIB_POLL_COUNT, DIB_POLL_TO_ENGINE_US + 4 # u32 -.set DIB_COLOR_FAIL_COUNT, DIB_POLL_COUNT + 4 # u32 -.set DIB_FAILED_COLOR, DIB_COLOR_FAIL_COUNT + 4 # u32 -.set DIB_SIZE, DIB_FAILED_COLOR + 4 +.set DIB_SIZE, DIB_POLL_COUNT + 4 ################################################################################ # Macros diff --git a/External/Debug Inputs/InitOnGameStart.asm b/External/Debug Inputs/InitOnGameStart.asm index 77b0e991..e178e148 100644 --- a/External/Debug Inputs/InitOnGameStart.asm +++ b/External/Debug Inputs/InitOnGameStart.asm @@ -26,8 +26,8 @@ blrl .set DO_LD_TEXT_Y_SCALE, DO_LD_TEXT_X_SCALE + 4 .float 17 .set DO_LD_STR_LATENCY, DO_LD_TEXT_Y_SCALE + 4 -.string "Input to Retrace: %u us\n\n" -.set DO_LD_STR_POLL_COUNT, DO_LD_STR_LATENCY + 26 +.string "Total Game Lag: %u us\n\n" +.set DO_LD_STR_POLL_COUNT, DO_LD_STR_LATENCY + 24 .string "Poll Count: %u\n" .set DO_LD_STR_MIN_POLL_DIFF, DO_LD_STR_POLL_COUNT + 16 .string "Min Poll Diff: %u us\n" @@ -38,11 +38,7 @@ blrl .set DO_LD_STR_FETCH_TO_POLL_DIFF, DO_LD_STR_FETCH_DIFF + 20 .string "Poll-Fetch: %u us\n" .set DO_LD_STR_POLL_TO_ENGINE_DIFF, DO_LD_STR_FETCH_TO_POLL_DIFF + 19 -.string "Poll-Engine: %u us\n\n" -.set DO_LD_STR_COLOR_ERRORS, DO_LD_STR_POLL_TO_ENGINE_DIFF + 21 -.string "Color Errors: %u\n" -.set DO_LD_STR_FAILED_COLOR, DO_LD_STR_COLOR_ERRORS + 18 -.string "Failed Color: 0x%08X\n" +.string "Poll-Engine: %u us\n" .align 2 ################################################################################ @@ -121,16 +117,6 @@ addi r4, REG_DATA, DO_LD_STR_POLL_TO_ENGINE_DIFF lwz r5, DIB_POLL_TO_ENGINE_US(REG_DIB) branchl r12, 0x80302d4c # DevelopText_FormatAndPrint -mr r3, REG_DEVELOP_TEXT -addi r4, REG_DATA, DO_LD_STR_COLOR_ERRORS -lwz r5, DIB_COLOR_FAIL_COUNT(REG_DIB) -branchl r12, 0x80302d4c # DevelopText_FormatAndPrint - -mr r3, REG_DEVELOP_TEXT -addi r4, REG_DATA, DO_LD_STR_FAILED_COLOR -lwz r5, DIB_FAILED_COLOR(REG_DIB) -branchl r12, 0x80302d4c # DevelopText_FormatAndPrint - # Check if game over load r3, 0x8046b6a0 lbz r3, 0x8(r3) @@ -167,8 +153,8 @@ li r3, 32 branchl r12, HSD_MemAlloc mr r8, r3 li r3, 30 # ID -li r4, -210 # X Pos, bottom right: 638 -li r5, -40 # Y Pos, bottom right: 478 +li r4, -210 # X Pos +li r5, -40 # Y Pos li r6, 1 li r7, 1 branchl r12, 0x80302834 # DevelopText_CreateDataTable @@ -209,14 +195,14 @@ bl DATA_BLRL mflr REG_DATA #Create Rectangle -li r3, 1200 +li r3, 1000 branchl r12, HSD_MemAlloc mr r8, r3 li r3, 31 # ID -li r4, 0 # X Pos, bottom right: 638 -li r5, 0 # Y Pos, bottom right: 478 -li r6, 29 -li r7, 12 +li r4, 0 # X Pos +li r5, 0 # Y Pos +li r6, 29 # Width +li r7, 9 # Height branchl r12, 0x80302834 # DevelopText_CreateDataTable mr REG_DEVELOP_TEXT, r3 #Activate Text diff --git a/External/Debug Inputs/LogEngineTime.asm b/External/Debug Inputs/LogEngineTime.asm index 51664287..6c69fea0 100644 --- a/External/Debug Inputs/LogEngineTime.asm +++ b/External/Debug Inputs/LogEngineTime.asm @@ -45,12 +45,6 @@ stw r3, 0(r4) calcDiffFromFetchUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 -# Log -# mr r6, REG_DIFF_US -# mr r5, REG_KEY -# loadGlobalFrame r4 -# logf "ENGINE %u 0x%X %u" # Label Frame TimeUs - stw REG_DIFF_US, DIB_POLL_TO_ENGINE_US(REG_DIB) # Adjust develop text BG color diff --git a/External/Debug Inputs/LogFetchTime.asm b/External/Debug Inputs/LogFetchTime.asm index cc4407f6..012f5d31 100644 --- a/External/Debug Inputs/LogFetchTime.asm +++ b/External/Debug Inputs/LogFetchTime.asm @@ -46,15 +46,6 @@ mulli r4, r4, 4 # Get index offset addi r4, r4, DIB_CIRCULAR_BUFFER stwx r3, REG_DIB, r4 -# Log -# loadwz r7, 0xCC006430 # Includes details to poll more often. http://hitmen.c02.at/files/yagcd/yagcd/chap5.html#sec5.8 -# loadwz r7, 0xCC006434 -# lwz r6, DIB_POLL_COUNT(REG_DIB) -# lwz r5, P1_PAD_OFFSET(sp) -# rlwinm r5, r5, 16, 0xF -# loadGlobalFrame r4 -# logf "FETCH %u 0x%X %u" - # Increment index incrementByte r3, REG_DIB, DIB_FETCH_INDEX, CIRCULAR_BUFFER_COUNT @@ -71,7 +62,7 @@ branchl r12, 0x8034c408 # OSGetTick mr REG_FETCH_TIME, r3 lwz r4, DIB_LAST_FETCH_TIME(REG_DIB) stw REG_FETCH_TIME, DIB_LAST_FETCH_TIME(REG_DIB) -calcDiffUs REG_FETCH_TIME, r4 # Calculate difference since last poll +calcDiffUs REG_FETCH_TIME, r4 # Calculate difference since last fetch stw r3, DIB_FETCH_DIFF_US(REG_DIB) # Store time since poll diff --git a/External/Debug Inputs/LogScanoutTime.asm b/External/Debug Inputs/LogScanoutTime.asm index 55340f8b..24aef01a 100644 --- a/External/Debug Inputs/LogScanoutTime.asm +++ b/External/Debug Inputs/LogScanoutTime.asm @@ -7,29 +7,6 @@ b CODE_START -DATA_BLRL: -blrl -# The following is an array of the key colors with the 2nd and 4th byte masked out -# The 2nd and 4th byte seem to be either 7F or 80, easier to compare by just excluding them -# TODO: I commented the console versions of the colors but for some reason when I use those, -# TODO: the latency can get really jumpy so I have no idea what's up -.long 0x10001000 -.long 0x1E001E00 -.long 0x2B002B00 # 0x2C002C00 -.long 0x39003900 -.long 0x47004700 -.long 0x55005500 -.long 0x62006200 # 0x63006300 -.long 0x70007000 -.long 0x7E007E00 -.long 0x8C008C00 -.long 0x99009900 # 0x9A009A00 -.long 0xA700A700 -.long 0xB500B500 -.long 0xC300C300 -.long 0xD000D000 # 0xD100D100 -.long 0xDE00DE00 - ################################################################################ # Function: GetIndexFromColor ################################################################################ @@ -39,38 +16,31 @@ blrl # Output: # r3 - 0-15 or -1 if color does not match ################################################################################ -.set REG_DATA, 31 -.set REG_IDX, 30 -.set REG_COLOR, 29 - FN_GetIndexFromColor: -backup +rlwinm r4, r3, 24, 0xFF +rlwinm r3, r3, 8, 0xFF -load r4, 0xFF00FF00 -and REG_COLOR, r3, r4 +cmpw r3, r4 +beq FN_GetIndexFromColor_CALC_INDEX -bl DATA_BLRL -mflr REG_DATA - -li REG_IDX, 0 -FN_GetIndexFromColor_LOOP_START: -mulli r3, REG_IDX, 4 -lwzx r3, REG_DATA, r3 -cmpw REG_COLOR, r3 -bne FN_GetIndexFromColor_LOOP_CONTINUE -mr r3, REG_IDX +li r3, -1 # Color invalid if the two bytes don't match b FN_GetIndexFromColor_RETURN -FN_GetIndexFromColor_LOOP_CONTINUE: -addi REG_IDX, REG_IDX, 1 -cmpwi REG_IDX, 16 -blt FN_GetIndexFromColor_LOOP_START -li r3, -1 +FN_GetIndexFromColor_CALC_INDEX: +# This does some math on the byte to calculate the index from it. See google sheet for examples: +# https://docs.google.com/spreadsheets/d/1EKnVQmAbt5LCipXq_aGCMJ_utsOlPqM_O0UJ3cnWm4c/edit?usp=sharing +subi r3, r3, 15 +mulli r3, r3, 6 +li r4, 5 +divwu r3, r3, r4 +rlwinm r3, r3, 28, 0xF # Extract 4 bits to get key FN_GetIndexFromColor_RETURN: -restore blr +################################################################################ +# Code start +################################################################################ CODE_START: # Check if VS Mode getMinorMajor r3 @@ -103,37 +73,29 @@ lbz r3, DIB_ACTIVE_STATE(REG_DIB) cmpwi r3, 0 beq RESTORE_AND_EXIT -# Fetch/convert key from frame -loadwz r3, 0x804a8b10 # Load ptr to frame that will be scanned out -lwz REG_COLOR, 4(r3) # Load top left pixel +# Load ptr to frame that will be scanned out +loadwz r3, 0x804a8b10 # Contains ptr to the current XFB + +# Invalidate the pixel color memory because the GPU will have overwritten it and if that memory +# is still in our cache, we would load a stale color (only on console) +li r4, 0 +dcbi r3, r4 +sync +isync + +# Load 2 pixels and calculate the index from it +lwz REG_COLOR, 0(r3) # Load top left pixels mr r3, REG_COLOR bl FN_GetIndexFromColor cmpwi r3, 0 -bge CALC_DIFF +blt RESTORE_AND_EXIT # Color is invalid, exit -# Color is invalid, increment count and exit -lwz r3, DIB_COLOR_FAIL_COUNT(REG_DIB) -addi r3, r3, 1 -stw r3, DIB_COLOR_FAIL_COUNT(REG_DIB) -stw REG_COLOR, DIB_FAILED_COLOR(REG_DIB) -b RESTORE_AND_EXIT - -CALC_DIFF: mr REG_KEY, r3 # Calculate time diff calcDiffFromFetchUs REG_DIB, REG_KEY mr REG_DIFF_US, r3 -# Log -# mr r7, REG_DIFF_US -# loadwz r6, 0x804a8b10 # Load ptr to frame that will be scanned out -# lwz r6, 0(r6) # Load top left pixel -# mr r5, REG_KEY -# loadGlobalFrame r4 -# subi r4, r4, 1 -# logf "BLANK %u 0x%X %X %u" # Label Frame TimeUs - # Store latest latency stw REG_DIFF_US, DIB_INPUT_TO_RENDER_US(REG_DIB) @@ -145,4 +107,4 @@ branchl r12, OSRestoreInterrupts restore EXIT: -lwz r0, 0x0024(sp) # Replaced codeline \ No newline at end of file +lwz r0, 0x0024(sp) # Replaced codeline \ No newline at end of file diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 1e57453c..43363919 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -774,97 +774,108 @@ BA810008 800100B4 $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 0000009F #External/Debug Inputs/InitOnGameStart.asm -48000474 4E800021 +C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm +48000410 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 -496E7075 7420746F -20526574 72616365 -3A202575 2075730A -0A00506F 6C6C2043 -6F756E74 3A202575 -0A004D69 6E20506F -6C6C2044 6966663A -20257520 75730A00 -4D617820 506F6C6C +546F7461 6C204761 +6D65204C 61673A20 +25752075 730A0A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4D696E20 506F6C6C 20446966 663A2025 -75207573 0A004665 -7463682D 46657463 -683A2025 75207573 -0A00506F 6C6C2D46 -65746368 3A202575 -2075730A 00506F6C -6C2D456E 67696E65 -3A202575 2075730A -0A00436F 6C6F7220 -4572726F 72733A20 -25750A00 4661696C -65642043 6F6C6F72 -3A203078 25303858 -0A000000 4E800021 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFF05 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -40820160 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +506F6C6C 2D466574 +63683A20 25752075 +730A0050 6F6C6C2D +456E6769 6E653A20 +25752075 730A0000 +4E800021 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFF31 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 40820128 +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE0056 -3D808030 618C2D4C +38800000 38A00000 +3D808030 618C2A3C 7D8903A6 4E800421 -7FA3EB78 389F003A -80BE006E 3D808030 +7FA3EB78 389F0020 +80BE0056 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F004A 80BE005A +389F0038 80BE006E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0060 -80BE005E 3D808030 +7FA3EB78 389F0048 +80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0076 80BE0062 +389F005E 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F008A -80BE0066 3D808030 +7FA3EB78 389F0074 +80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F009D 80BE006A +389F0088 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F00B2 -80BE0072 3D808030 +7FA3EB78 389F009B +80BE006A 3D808030 618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F00C4 80BE0076 -3D808030 618C2D4C +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFDCD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -3C608046 6063B6A0 -88630008 2C030000 -41820020 807E0012 -3D808034 618C9CBC +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 7D8903A6 4E800421 -38600002 987E0000 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFD69 -7FE802A6 38600020 +BE810008 4BFFFD11 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001E -3880FF2E 38A0FFD8 -38C00001 38E00001 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00009 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -872,68 +883,45 @@ BE810008 4BFFFD69 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F000C 3D808030 +389F0010 3D808030 618C2B90 7D8903A6 -4E800421 C03F0004 -D03E0008 C03F0008 -D03E000C 807F0000 -93C30002 BA810008 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCE1 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFCAD 7FE802A6 -386004B0 3D808037 +38600072 3D808037 618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001F 38800000 -38A00000 38C0001D -38E0000C 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F0010 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 C03F0018 -C05F001C 3D808030 -618C2B10 7D8903A6 -4E800421 7FC3F378 -389F0014 3D808030 -618C2B64 7D8903A6 -4E800421 7FC3F378 -3D808030 618C2AF0 -7D8903A6 4E800421 -807F0000 93C30006 -38600013 38800014 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 4BFFFCA9 -7C8802A6 38A00007 -3D808038 618CFD54 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3860007A -3D808037 618CF1E4 -7D8903A6 4E800421 -4BFFFB6D 7C8802A6 -90640000 7C7E1B78 -3880007A 3D808000 -618CC160 7D8903A6 -4E800421 4BFFFDD1 -4BFFFE89 4BFFFC21 -7C6802A6 907E0012 -3D808034 618C9BF0 +4E800421 4BFFFBD1 +7C8802A6 90640000 +7C7E1B78 38800072 +3D808000 618CC160 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -C022A8C8 00000000 +4BFFFDD1 4BFFFE89 +4BFFFC59 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -1059,34 +1047,19 @@ C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 800100B4 382100B0 7C0803A6 80B80000 60000000 00000000 -C2375C14 0000003B #External/Debug Inputs/LogScanoutTime.asm -480000AC 4E800021 -10001000 1E001E00 -2C002C00 39003900 -47004700 55005500 -63006300 70007000 -7E007E00 8C008C00 -9A009A00 A700A700 -B500B500 C300C300 -D100D100 DE00DE00 -7C0802A6 90010004 -9421FF50 BE810008 -3C80FF00 6084FF00 -7C7D2038 4BFFFFA1 -7FE802A6 3BC00000 -1C7E0004 7C7F182E -7C1D1800 4082000C -7FC3F378 48000014 -3BDE0001 2C1E0010 -4180FFE0 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 +C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +48000034 5464C63E +5463463E 7C032000 +4182000C 3860FFFF +48000018 3863FFF1 +1C630006 38800005 +7C632396 5463E73E 4E800020 3C608048 80639D30 5463443E -2C030202 40820114 +2C030202 40820110 3C608047 60639D64 80630000 2C030000 -40820100 7C0802A6 +408200FC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -1097,25 +1070,25 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820084 3C60804A +41820080 3C60804A 60638B10 80630000 -83430004 7F43D378 -4BFFFF09 2C030000 -40800018 807F0072 -38630001 907F0072 -935F0076 48000050 -7C7C1B78 3D808034 -618CC408 7D8903A6 -4E800421 1C9C0004 -38840016 7C9F202E -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -93BF0056 7FC3F378 -3D808034 618C738C +38800000 7C0323AC +7C0004AC 4C00012C +83430000 7F43D378 +4BFFFF2D 2C030000 +41800050 7C7C1B78 +3D808034 618CC408 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -80010024 00000000 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF0056 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80010024 +60000000 00000000 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index bbdf0d923846a1c0261362f235ead499153051fb..febc2bf26ce1cfca15d188b9154c4bcd32b8f5a1 100644 GIT binary patch delta 414 zcmaFiGQoMna&gwl9tq$0FN?2J^(8k56hlnV0!Buqb-}|9!EhgK61>6b6QxI_V0aevlf5 z#GZo*2sM8%djJ2|>HYstUc0Pn1rMpvkOUfv#ViNU~p_= z;IT;f{~stWVUhg*qf9ab8_-PFnq=i^A<56}{2CY(Y!Vtg8j|N4ge1Gz=`b@f0fRvR zDCVA!JU68w85}eW4owVyCZCZB*KYvIcqJrv3xH%mzN=wYUQ@%svc`vjQK#9NfuY{{ Za)tN*|GK~cWpHem{7$iq1LQss005P^QsidZ?X;{iM zJ8BR9$RY4Nh)~2!s!*XQUKC29{sD?t2_Aarp@&M3Evzp)pTm5I?+kA`#r^AB8>;+n z9Ha(rs^^qjkCv7jW}|N2t~R`~Tg9F#F2@Mn%pX z@iQa#{W#!^W-%FsrZNZLXm?l+4>Vn#5Zmwo4>eVGD9!W}YvNc+mtWF(E^5{(J&e+4 zN?w$HP--Gi&9epEOMQ!=K(|u?;4R&^1+3tqt}_c0M)pg=IEn@Nae&P!0hR&^43jJwB_(o~xMYd6 zNSnMR8{{k5CBI0I@Ie~HKzeP3)7wvAupmNk)*F^Z&cES*MP9?Eoo<5T-IHKgZ>lNVwWMe?j7+}q~H@Zg6 wgyX(a`pvThFI<(^~G-=K>=em!7j1taT7bKwdAN@P1F8}}l diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index d32ec18ff6abc62213031170c7dd916203a43e0f..e2ebcce3b5fb684f2dfc7c4b89ed3b049b79570c 100644 GIT binary patch delta 414 zcmaFiGQoMna&gwl9tq$0FN?2J^(8k56hlnV0!Buqb-}|9!EhgK61>6b6QxI_V0aevlf5 z#GZo*2sM8%djJ2|>HYstUc0Pn1rMpvkOUfv#ViNU~p_= z;IT;f{~stWVUhg*qf9ab8_-PFnq=i^A<56}{2CY(Y!Vtg8j|N4ge1Gz=`b@f0fRvR zDCVA!JU68w85}eW4owVyCZCZB*KYvIcqJrv3xH%mzN=wYUQ@%svc`vjQK#9NfuY{{ Za)tN*|GK~cWpHem{7$iq1LQss005P^QsidZ?X;{iM zJ8BR9$RY4Nh)~2!s!*XQUKC29{sD?t2_Aarp@&M3Evzp)pTm5I?+kA`#r^AB8>;+n z9Ha(rs^^qjkCv7jW}|N2t~R`~Tg9F#F2@Mn%pX z@iQa#{W#!^W-%FsrZNZLXm?l+4>Vn#5Zmwo4>eVGD9!W}YvNc+mtWF(E^5{(J&e+4 zN?w$HP--Gi&9epEOMQ!=K(|u?;4R&^1+3tqt}_c0M)pg=IEn@Nae&P!0hR&^43jJwB_(o~xMYd6 zNSnMR8{{k5CBI0I@Ie~HKzeP3)7wvAupmNk)*F^Z&cES*MP9?Eoo<5T-IHKgZ>lNVwWMe?j7+}q~H@Zg6 wgyX(a`pvThFI<(^~G-=K>=em!7j1taT7bKwdAN@P1F8}}l diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 3da62537..479758df 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5697,97 +5697,108 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 0000009F #External/Debug Inputs/InitOnGameStart.asm -48000474 4E800021 +C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm +48000410 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 -496E7075 7420746F -20526574 72616365 -3A202575 2075730A -0A00506F 6C6C2043 -6F756E74 3A202575 -0A004D69 6E20506F -6C6C2044 6966663A -20257520 75730A00 -4D617820 506F6C6C +546F7461 6C204761 +6D65204C 61673A20 +25752075 730A0A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4D696E20 506F6C6C 20446966 663A2025 -75207573 0A004665 -7463682D 46657463 -683A2025 75207573 -0A00506F 6C6C2D46 -65746368 3A202575 -2075730A 00506F6C -6C2D456E 67696E65 -3A202575 2075730A -0A00436F 6C6F7220 -4572726F 72733A20 -25750A00 4661696C -65642043 6F6C6F72 -3A203078 25303858 -0A000000 4E800021 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFF05 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -40820160 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +506F6C6C 2D466574 +63683A20 25752075 +730A0050 6F6C6C2D +456E6769 6E653A20 +25752075 730A0000 +4E800021 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFF31 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 40820128 +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE0056 -3D808030 618C2D4C +38800000 38A00000 +3D808030 618C2A3C 7D8903A6 4E800421 -7FA3EB78 389F003A -80BE006E 3D808030 +7FA3EB78 389F0020 +80BE0056 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F004A 80BE005A +389F0038 80BE006E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0060 -80BE005E 3D808030 +7FA3EB78 389F0048 +80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0076 80BE0062 +389F005E 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F008A -80BE0066 3D808030 +7FA3EB78 389F0074 +80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F009D 80BE006A +389F0088 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F00B2 -80BE0072 3D808030 +7FA3EB78 389F009B +80BE006A 3D808030 618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F00C4 80BE0076 -3D808030 618C2D4C +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFDCD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -3C608046 6063B6A0 -88630008 2C030000 -41820020 807E0012 -3D808034 618C9CBC +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 7D8903A6 4E800421 -38600002 987E0000 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFD69 -7FE802A6 38600020 +BE810008 4BFFFD11 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001E -3880FF2E 38A0FFD8 -38C00001 38E00001 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00009 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5795,68 +5806,45 @@ BE810008 4BFFFD69 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F000C 3D808030 +389F0010 3D808030 618C2B90 7D8903A6 -4E800421 C03F0004 -D03E0008 C03F0008 -D03E000C 807F0000 -93C30002 BA810008 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCE1 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFCAD 7FE802A6 -386004B0 3D808037 +38600072 3D808037 618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001F 38800000 -38A00000 38C0001D -38E0000C 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F0010 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 C03F0018 -C05F001C 3D808030 -618C2B10 7D8903A6 -4E800421 7FC3F378 -389F0014 3D808030 -618C2B64 7D8903A6 -4E800421 7FC3F378 -3D808030 618C2AF0 -7D8903A6 4E800421 -807F0000 93C30006 -38600013 38800014 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 4BFFFCA9 -7C8802A6 38A00007 -3D808038 618CFD54 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3860007A -3D808037 618CF1E4 -7D8903A6 4E800421 -4BFFFB6D 7C8802A6 -90640000 7C7E1B78 -3880007A 3D808000 -618CC160 7D8903A6 -4E800421 4BFFFDD1 -4BFFFE89 4BFFFC21 -7C6802A6 907E0012 -3D808034 618C9BF0 +4E800421 4BFFFBD1 +7C8802A6 90640000 +7C7E1B78 38800072 +3D808000 618CC160 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -C022A8C8 00000000 +4BFFFDD1 4BFFFE89 +4BFFFC59 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -5982,34 +5970,19 @@ C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 800100B4 382100B0 7C0803A6 80B80000 60000000 00000000 -C2375C14 0000003B #External/Debug Inputs/LogScanoutTime.asm -480000AC 4E800021 -10001000 1E001E00 -2C002C00 39003900 -47004700 55005500 -63006300 70007000 -7E007E00 8C008C00 -9A009A00 A700A700 -B500B500 C300C300 -D100D100 DE00DE00 -7C0802A6 90010004 -9421FF50 BE810008 -3C80FF00 6084FF00 -7C7D2038 4BFFFFA1 -7FE802A6 3BC00000 -1C7E0004 7C7F182E -7C1D1800 4082000C -7FC3F378 48000014 -3BDE0001 2C1E0010 -4180FFE0 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 +C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +48000034 5464C63E +5463463E 7C032000 +4182000C 3860FFFF +48000018 3863FFF1 +1C630006 38800005 +7C632396 5463E73E 4E800020 3C608048 80639D30 5463443E -2C030202 40820114 +2C030202 40820110 3C608047 60639D64 80630000 2C030000 -40820100 7C0802A6 +408200FC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -6020,28 +5993,28 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820084 3C60804A +41820080 3C60804A 60638B10 80630000 -83430004 7F43D378 -4BFFFF09 2C030000 -40800018 807F0072 -38630001 907F0072 -935F0076 48000050 -7C7C1B78 3D808034 -618CC408 7D8903A6 -4E800421 1C9C0004 -38840016 7C9F202E -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -93BF0056 7FC3F378 -3D808034 618C738C +38800000 7C0323AC +7C0004AC 4C00012C +83430000 7F43D378 +4BFFFF2D 2C030000 +41800050 7C7C1B78 +3D808034 618CC408 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -80010024 00000000 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF0056 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80010024 +60000000 00000000 041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm $Optional: PD+VB [taukhan] diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 87984c22..c421f1e1 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5697,97 +5697,108 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm $Optional: Debug Game-Side Latency [Fizzi] *Shows latency information on screen while in-game -C216E774 0000009F #External/Debug Inputs/InitOnGameStart.asm -48000474 4E800021 +C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm +48000410 4E800021 00000000 43480000 41C80000 000000FF 000000B4 E2E2E2FF 41200000 41880000 -496E7075 7420746F -20526574 72616365 -3A202575 2075730A -0A00506F 6C6C2043 -6F756E74 3A202575 -0A004D69 6E20506F -6C6C2044 6966663A -20257520 75730A00 -4D617820 506F6C6C +546F7461 6C204761 +6D65204C 61673A20 +25752075 730A0A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4D696E20 506F6C6C 20446966 663A2025 -75207573 0A004665 -7463682D 46657463 -683A2025 75207573 -0A00506F 6C6C2D46 -65746368 3A202575 -2075730A 00506F6C -6C2D456E 67696E65 -3A202575 2075730A -0A00436F 6C6F7220 -4572726F 72733A20 -25750A00 4661696C -65642043 6F6C6F72 -3A203078 25303858 -0A000000 4E800021 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -4BFFFF05 7FE802A6 -83DF0000 83BE0006 -887E0000 2C030001 -40820160 7FA3EB78 -3D808030 618C2BB0 -7D8903A6 4E800421 -7FA3EB78 38800000 -38A00000 3D808030 -618C2A3C 7D8903A6 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +506F6C6C 2D466574 +63683A20 25752075 +730A0050 6F6C6C2D +456E6769 6E653A20 +25752075 730A0000 +4E800021 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 4BFFFF31 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 40820128 +7FA3EB78 3D808030 +618C2BB0 7D8903A6 4E800421 7FA3EB78 -389F0020 80BE0056 -3D808030 618C2D4C +38800000 38A00000 +3D808030 618C2A3C 7D8903A6 4E800421 -7FA3EB78 389F003A -80BE006E 3D808030 +7FA3EB78 389F0020 +80BE0056 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F004A 80BE005A +389F0038 80BE006E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F0060 -80BE005E 3D808030 +7FA3EB78 389F0048 +80BE005A 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F0076 80BE0062 +389F005E 80BE005E 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F008A -80BE0066 3D808030 +7FA3EB78 389F0074 +80BE0062 3D808030 618C2D4C 7D8903A6 4E800421 7FA3EB78 -389F009D 80BE006A +389F0088 80BE0066 3D808030 618C2D4C 7D8903A6 4E800421 -7FA3EB78 389F00B2 -80BE0072 3D808030 +7FA3EB78 389F009B +80BE006A 3D808030 618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F00C4 80BE0076 -3D808030 618C2D4C +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFDCD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 7D8903A6 4E800421 -3C608046 6063B6A0 -88630008 2C030000 -41820020 807E0012 -3D808034 618C9CBC +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 7D8903A6 4E800421 -38600002 987E0000 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 4BFFFD69 -7FE802A6 38600020 +BE810008 4BFFFD11 +7FE802A6 386003E8 3D808037 618CF1E4 7D8903A6 4E800421 -7C681B78 3860001E -3880FF2E 38A0FFD8 -38C00001 38E00001 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00009 3D808030 618C2834 7D8903A6 4E800421 7C7E1B78 806DB77C @@ -5795,68 +5806,45 @@ BE810008 4BFFFD69 618C2810 7D8903A6 4E800421 38600000 987E0026 7FC3F378 -389F000C 3D808030 +389F0010 3D808030 618C2B90 7D8903A6 -4E800421 C03F0004 -D03E0008 C03F0008 -D03E000C 807F0000 -93C30002 BA810008 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCE1 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFCAD 7FE802A6 -386004B0 3D808037 +38600072 3D808037 618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001F 38800000 -38A00000 38C0001D -38E0000C 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F0010 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 C03F0018 -C05F001C 3D808030 -618C2B10 7D8903A6 -4E800421 7FC3F378 -389F0014 3D808030 -618C2B64 7D8903A6 -4E800421 7FC3F378 -3D808030 618C2AF0 -7D8903A6 4E800421 -807F0000 93C30006 -38600013 38800014 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 4BFFFCA9 -7C8802A6 38A00007 -3D808038 618CFD54 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3860007A -3D808037 618CF1E4 -7D8903A6 4E800421 -4BFFFB6D 7C8802A6 -90640000 7C7E1B78 -3880007A 3D808000 -618CC160 7D8903A6 -4E800421 4BFFFDD1 -4BFFFE89 4BFFFC21 -7C6802A6 907E0012 -3D808034 618C9BF0 +4E800421 4BFFFBD1 +7C8802A6 90640000 +7C7E1B78 38800072 +3D808000 618CC160 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -C022A8C8 00000000 +4BFFFDD1 4BFFFE89 +4BFFFC59 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 C022A8C8 +60000000 00000000 C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 @@ -5982,34 +5970,19 @@ C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 800100B4 382100B0 7C0803A6 80B80000 60000000 00000000 -C2375C14 0000003B #External/Debug Inputs/LogScanoutTime.asm -480000AC 4E800021 -10001000 1E001E00 -2C002C00 39003900 -47004700 55005500 -63006300 70007000 -7E007E00 8C008C00 -9A009A00 A700A700 -B500B500 C300C300 -D100D100 DE00DE00 -7C0802A6 90010004 -9421FF50 BE810008 -3C80FF00 6084FF00 -7C7D2038 4BFFFFA1 -7FE802A6 3BC00000 -1C7E0004 7C7F182E -7C1D1800 4082000C -7FC3F378 48000014 -3BDE0001 2C1E0010 -4180FFE0 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 +C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +48000034 5464C63E +5463463E 7C032000 +4182000C 3860FFFF +48000018 3863FFF1 +1C630006 38800005 +7C632396 5463E73E 4E800020 3C608048 80639D30 5463443E -2C030202 40820114 +2C030202 40820110 3C608047 60639D64 80630000 2C030000 -40820100 7C0802A6 +408200FC 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -6020,28 +5993,28 @@ BE810008 3D808034 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 -41820084 3C60804A +41820080 3C60804A 60638B10 80630000 -83430004 7F43D378 -4BFFFF09 2C030000 -40800018 807F0072 -38630001 907F0072 -935F0076 48000050 -7C7C1B78 3D808034 -618CC408 7D8903A6 -4E800421 1C9C0004 -38840016 7C9F202E -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -93BF0056 7FC3F378 -3D808034 618C738C +38800000 7C0323AC +7C0004AC 4C00012C +83430000 7F43D378 +4BFFFF2D 2C030000 +41800050 7C7C1B78 +3D808034 618CC408 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -80010024 00000000 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF0056 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 80010024 +60000000 00000000 041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm $Optional: PD+VB [taukhan] From 0c94daeafbab7f422764fc86a4ee19c43484de48 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 15 Jun 2021 02:57:33 -0700 Subject: [PATCH 017/217] support transition to vs mode --- Online/Slippi Online Scene/main.asm | 21 +- Output/Netplay/GALE01r2.ini | 6128 ++++++++++++++++++++++++++- Output/Netplay/GALJ01r2.ini | 6128 ++++++++++++++++++++++++++- 3 files changed, 12171 insertions(+), 106 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index d19eecfc..2b49dc82 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -257,9 +257,9 @@ bl SplashSceneDecide .byte 5 #Minor Scene ID .byte 3 #Amount of persistent heaps .align 2 -.long 0x00000000 #ScenePrep, previously 0x801b3500 -.long 0x00000000 -.byte 80 #Common Minor ID (Classic Mode Splash) +.long 0x00000000 #ScenePrep +bl GamePrepSceneDecide #SceneDecide +.byte 80 #Common Minor ID (Game Preparation) .align 2 .long 0x00000000 #Minor Data 1 .long 0x00000000 #Minor Data 2 @@ -399,7 +399,7 @@ b CSSSceneDecide_LoadSplash # Ranked Mode Logic ################################################################################ CSSSceneDecide_Adv_IsRanked: -# Set next scene as Splash +# Set next scene as game prep load r4, 0x80479d30 li r3, 0x06 stb r3, 0x5(r4) @@ -1103,6 +1103,19 @@ restore blr #endregion +GamePrepSceneDecide: +backup + +bl SplashSceneInit + +# This will cause the next scene to be the splash screen +load r4, 0x80479d30 +li r3, 0x05 +stb r3, 0x5(r4) + +restore +blr + Injection_Exit: #Exit Scene restore diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index de54982e..d1809b63 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2196,14 +2196,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000168 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E -2C030008 40820AF8 +2C030008 40820B00 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2221,21 +2221,22 @@ BE810008 3C608048 38600000 48000008 38600003 3D808002 618C4030 7D8903A6 -4E800421 480004C9 +4E800421 480004D1 887A0000 2C030000 40810020 2C030003 -40810084 2C030004 -41820088 2C030005 -418201E0 48000A20 +4081008C 2C030004 +41820090 2C030005 +418201E8 48000A28 88780014 2C030000 -40820A14 576004E7 -41820A0C 3C608048 +40820A1C 576004E7 +41820A14 3C608048 80639D60 2C030000 -418209FC 3860FFFF +41820A04 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 -2C030000 418209E0 -886DAFA0 2C030001 +2C030000 418209E8 +886DAFA0 2C030000 +41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE 48000355 @@ -4088,19 +4089,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4156,7 +4156,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4164,11 +4164,11 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 90640000 3C60803E 6063B750 48000209 7C8802A6 90830010 -480005AD 7C8802A6 +4800059D 7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 3C60803E -6063B750 4800059D +6063B750 4800058D 7C8802A6 90830008 3C60803E 6063B66C 38800644 B0830004 @@ -4181,7 +4181,7 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A5C 4E800021 +48000A4C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4231,13 +4231,13 @@ BA810008 800100B4 7C0802A6 90010004 9421FF50 BE810008 7C731B78 80730008 -2C030000 40820354 +2C030000 40820344 3C60804A 3BA304F0 38600004 3D808022 618C9624 7D8903A6 4E800421 907D000C 3BC00000 93DD0008 -546006F7 4182018C +546006F7 4182017C 38000005 B00DB528 3BE00001 3B9E0000 9BFD0011 5783063E @@ -4253,15 +4253,13 @@ BA810008 800100B4 7D8903A6 4E800421 A01D0002 2C000000 41820038 2C000001 -41820048 2C000002 -41820048 2C000003 -41820048 2C000004 -41820048 2C000005 -4182005C 2C000006 -41820078 4800027C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000264 +41820038 2C000002 +41820038 2C000003 +41820038 2C000004 +41820038 2C000005 +4182004C 2C000006 +41820068 4800026C +38600000 48000078 38600001 48000070 38600002 48000068 38600003 48000060 @@ -4730,18 +4728,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000178 #Online/Slippi Online Scene/main.asm +C21A45B8 00000184 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 48000245 +6084DC1C 4800025D 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 38600008 4800019D 7C8802A6 4800002D -48000B50 80830000 +48000BB0 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4792,21 +4790,24 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -48000081 480000F5 +48000099 4800010D 08000000 80497758 80497758 01030000 -480001B5 480001E5 +480001DD 4800020D 09000000 80480668 80480668 02030000 -801B1588 4800027D +801B1588 480002A5 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000411 4800074D +48000439 48000775 20000000 80490880 -804D68D0 FF000000 +804D68D0 05030000 +00000000 48000965 +50000000 00000000 +00000000 FF000000 4E800021 81940000 7C0802A6 90010004 9421FF50 BE810008 @@ -4829,13 +4830,15 @@ BE810008 38600012 618CAAD0 7D8903A6 4E800421 809E0014 88840003 2C040002 -40820008 4800008C -886DAFA0 2C030001 -4182001C 2C030002 -4182001C 2C030003 -41820014 2C030000 -41820008 48000038 -48000034 886DAFC9 +40820008 4800009C +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +41820024 2C030003 +4182001C 48000048 +3C808047 60849D30 +38600006 98640005 +48000060 886DAFC9 7C630774 2C03FFFF 41820024 2C030001 4182001C 2C030000 @@ -5103,6 +5106,13 @@ BE810008 7C7D1B78 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFE1D 3C808047 +60849D30 38600005 +98640005 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 BA810008 800100B4 382100B0 7C0803A6 38600028 987E0000 @@ -5445,6 +5455,6022 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C2068B40 00000030 #m-ex codeset +7C0802A6 90010004 +9421FF00 BE810008 +3B400000 839F0004 +80620098 1C9C0008 +7C632214 83A30004 +7FA3EB78 48000071 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820030 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084000C 7F85E378 +4800005D 3B400001 +7FA3EB78 7F84E378 +38A00000 3D80803D +618C7070 7D8903A6 +4E800421 7F5A1B78 +480000B0 4E800021 +66744675 6E637469 +6F6E0000 4E800021 +6B624675 6E637469 +6F6E0000 4E800021 +6D657850 61746368 +00000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1B0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38000000 00000000 +C23753B0 000000A9 +7C0802A6 90010004 +9421FF00 BE810008 +480002B1 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3B830000 3B9C001F +579C0034 7C9FE214 +388400A0 7FE3FB78 +7C9F2378 3D808034 +618C40E8 7D8903A6 +4E800421 7C7A1B78 +38800044 3D808034 +618C3EF0 7D8903A6 +4E800421 7C791B78 +7F43D378 7F84E378 +3D808034 618C3EF0 +7D8903A6 4E800421 +7C7B1B78 48000235 +7C6802A6 7F64DB78 +38A10080 3D808001 +618C668C 7D8903A6 +4E800421 80A10080 +7F23CB78 7F64DB78 +3D808001 618C6A54 +7D8903A6 4E800421 +7F23CB78 48000205 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C781B78 +93020178 480001FD +7D2802A6 3929FFFE +39000000 1CE80004 +A0690002 7C630734 +2C03FFFF 4182002C +7F06C378 A4690002 +7C630734 2C03FFFF +4182000C 7CC3302E +4BFFFFEC 7CC7112E +39080001 4BFFFFC8 +8062014C 3C80803B +6084A648 38A00000 +90640000 38840008 +38A50001 2C050008 +4180FFF0 7F63DB78 +7F84E378 3D808032 +618C8F50 7D8903A6 +4E800421 4800001D +7C6802A6 90620184 +480000E9 7C6802A6 +906200F8 48000390 +4E800021 00000000 +00000000 00000000 +00000000 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +4E800021 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +4E800021 4D784474 +2E646174 00000000 +4E800021 6D657844 +61746100 4E800021 +6D2D6578 00000000 +4E800021 00040004 +FFFF0008 0000FFFF +0008000C FFFF0008 +0014FFFF 00080004 +FFFF0008 001CFFFF +00080024 FFFF0018 +0000FFFF 00080038 +FFFF0010 0000FFFF +00080020 FFFF000C +000CFFFF 000C0000 +FFFF000C 0004FFFF +000C0028 FFFF000C +002CFFFF 000C0018 +FFFF000C 001CFFFF +000C0010 FFFF000C +0014FFFF 000C0020 +FFFF000C 0024FFFF +00080010 FFFF0008 +003CFFFF 0010000C +FFFF0010 0000FFFF +00100004 FFFF0008 +0028FFFF 00080008 +FFFF0008 002CFFFF +00080018 FFFF0008 +0034FFFF 00080030 +FFFF0018 0020FFFF +001CFFFF 0008FFFF +00100008 FFFF0014 +0000FFFF 00080040 +FFFF000C 007CFFFF +000C0080 FFFF000C +0084FFFF 000C0088 +FFFF0008 0044FFFF +00080048 FFFF000C +008CFFFF 000C0090 +FFFF000C 0094FFFF +000C0034 FFFF000C +0044FFFF 000C0040 +FFFF0008 0054FFFF +00080058 FFFF0030 +0000FFFF 00300004 +FFFF0018 0004FFFF +00180008 FFFF0018 +000CFFFF 00180010 +FFFF0018 0014FFFF +00180018 FFFF0018 +001CFFFF 00000004 +FFFF0004 0000FFFF +00040008 FFFF0028 +0000FFFF 00280004 +FFFF002C FFFF0028 +0008FFFF 00200000 +FFFF0020 0008FFFF +00200010 FFFF0020 +000CFFFF 00200004 +FFFF0020 0014FFFF +00240000 FFFF0024 +0004FFFF 00240008 +FFFF0024 000CFFFF +00240010 FFFF0024 +0014FFFF 00240018 +FFFF0000 0004FFFF +00000008 FFFF0000 +000CFFFF 00000018 +FFFF0000 001CFFFF +00000020 FFFF0000 +0024FFFF 0000002C +FFFF0000 0030FFFF +00000010 FFFF0000 +0014FFFF 0000FFFF +FFFF0000 7FE3FB78 +BA810008 80010104 +38210100 7C0803A6 +7C7F1B78 93EDC018 +7FE3FB78 7FA4EB78 +60000000 00000000 +C20186A8 0000000C +90010054 38610028 +48000021 7C8802A6 +38A00030 3D808000 +618C31F4 7D8903A6 +4E800421 48000038 +4E800021 02000000 +804D37EC 00000000 +03000000 803BA6C8 +0000001F 03000000 +803BA6D8 00000000 +02000000 804D37E4 +00000000 00000000 +043BA3AC 005D12E0 +041A6440 38600008 +C21A6454 00000005 +80820178 80840008 +80840068 1C630004 +7C63202E 3D80801A +618C6468 7D8903A6 +4E800420 00000000 +C21604F0 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C054C +7D8903A6 4E800420 +2C040015 00000000 +C2160578 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C05D4 +7D8903A6 4E800420 +2C040015 00000000 +C21A9C38 00000003 +80620178 80630008 +80630060 1C9F0004 +7C63202E 00000000 +C21A9C48 00000003 +80620178 80630008 +80630064 1C9F0004 +7C63202E 00000000 +C21A9C28 00000003 +80620178 80630008 +8063005C 1C9F0004 +7C63202E 00000000 +C2023F50 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F70 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F90 00000002 +80820094 7C84002E +60000000 00000000 +C215ED1C 00000019 +7C0802A6 90010004 +9421FF00 BE810008 +80620178 80630014 +83C30004 83630008 +3BA00000 3B800000 +2C1B0000 4082000C +38600034 48000074 +1C7D0004 7C83F214 +A0640002 7F9C1A14 +3BBD0001 7C1DD800 +4180FFE8 7F83E378 +3D808038 618C0580 +7D8903A6 4E800421 +7C7A1B78 3BA00000 +3B800000 1C7D0004 +7C83F214 A0640002 +2C030000 41820014 +7F9C1A14 387CFFFF +7C1A1800 40810010 +3BBD0001 7C1DD800 +4180FFD4 A0640000 +987F0001 48000004 +BA810008 80010104 +38210100 7C0803A6 +8001001C 00000000 +041C2A48 4800007C +C21C24F8 00000022 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +3D808022 618C519C +7D8903A6 4E800421 +80820178 80840028 +80840014 1C630008 +7F832214 831C0000 +837C0004 2C180000 +41820098 3B400000 +3B200000 1C7A0004 +7C83DA14 A0640002 +7F391A14 3B5A0001 +7C1AC000 4180FFE8 +7F23CB78 3D808038 +618C0580 7D8903A6 +4E800421 7C771B78 +3B400000 3B200000 +1C7A0004 7C83DA14 +A0640002 2C030000 +41820014 7F391A14 +3879FFFF 7C171800 +40810010 3B5A0001 +7C1AC000 4180FFD4 +A0640000 907D0000 +38600000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +7FE3FB78 7FC4F378 +7FA5EB78 BA810008 +80010104 38210100 +7C0803A6 7C0802A6 +60000000 00000000 +C22FF064 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60636D5C +80630000 48000055 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7F1B79 +41820040 38600002 +7FC4F378 38A0000E +38C0000F 38E00000 +3900000F 39200000 +39400013 3D80803A +618C611C 7D8903A6 +4E800421 4800000C +4E800021 62676D00 +BA810008 80010104 +38210100 7C0803A6 +3860000E 00000000 +C216E980 00000084 +7C0802A6 90010004 +9421FF00 BE810008 +3D80801C 618C5A94 +7D8903A6 4E800421 +2C03FFFF 418203E0 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480003BD 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7F1B79 418203A8 +3860000E 3880000E +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 7C7E1B78 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +38800020 3D808000 +618CC160 7D8903A6 +4E800421 7FA6EB78 +7FC3F378 38800004 +3CA08037 60A5F1B0 +3D808039 618C0B68 +7D8903A6 4E800421 +7FC3F378 480001B5 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +480002E5 7F6802A6 +38600002 38800001 +3D80803A 618C6754 +7D8903A6 4E800421 +7C7C1B78 939D0000 +38000001 981C0048 +C03B0000 D03C000C +C03B0004 D03C0010 +38000001 981C0049 +3D80801C 618C5A94 +7D8903A6 4E800421 +80820178 80840014 +8084000C 1C630004 +7C83202E 7F83E378 +C022E0C8 C042E0C8 +3D80803A 618C6B98 +7D8903A6 4E800421 +807F0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7C1B78 +7FC3F378 38800003 +7F85E378 3D808039 +618C0A70 7D8903A6 +4E800421 7FC3F378 +3C808039 60841070 +38A0000F 38C00000 +3D808039 618C069C +7D8903A6 4E800421 +7F83E378 809F0004 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7F83E378 C022E0C8 +3D808036 618CF8BC +7D8903A6 4E800421 +7F83E378 3D808037 +618C0928 7D8903A6 +4E800421 3D808016 +618CAE50 7D8903A6 +4E800421 88030001 +5400CFFF 40820014 +88030000 5400FFFF +40820008 4800000C +C03B001C D03C003C +3C608036 6063A4A8 +80630000 3C80C03F +60840034 7C032000 +41820014 C03B0020 +C05C0038 EC21102A +D03C0038 7FC3F378 +4800000D 48000180 +4E800021 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +83DF002C 83BF0028 +839E0000 48000129 +7F6802A6 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +7FA3EB78 3D808037 +618C32E8 7D8903A6 +4E800421 7FA3EB78 +38810080 38A00002 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 38A10084 +3D808000 618CB1CC +7D8903A6 4E800421 +C03D002C C05B0014 +EC211024 C0410084 +EC21102A D03C0000 +C03D0030 C05B0014 +EC211024 C0410088 +EC211028 D03C0004 +C03D002C C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0024 +C03D0030 C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0028 +7FA3EB78 3D808000 +618CB09C 7D8903A6 +4E800421 2C030000 +40820030 7F83E378 +3D80803A 618C5CC4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 4E800021 +43D70000 42280000 +3D851EB8 BF800000 +3C23D70A 40800000 +40800000 41600000 +C1600000 4E800021 +62676D00 BA810008 +80010104 38210100 +7C0803A6 3C808017 +60000000 00000000 +C21BFA24 00000008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +40820010 80620174 +80630028 48000008 +38600001 3D80801A +618C42F8 7D8903A6 +4E800421 00000000 +C2260BD4 00000020 +806DB8D4 2C030000 +418200EC 7C0802A6 +90010004 9421FF00 +BE810008 83C20000 +3BDE00DC 3BA00000 +83620150 806200FC +C0630000 480000B1 +7C6802A6 C0230004 +C0430008 C19F000C +C17F0010 ED8C082A +ED6B102A 1C7D001C +7F43F214 C13A000C +C11A0010 C0DA0014 +C0FA0018 FC0C4840 +41800048 FC0C4040 +40800040 FC0B3840 +41800038 FC0B3040 +40800030 7FA3EB78 +BA810008 80010104 +38210100 7C0803A6 +7C741B78 3D808026 +618C0C20 7D8903A6 +4E800420 48000010 +3BBD0001 7C1DD800 +4180FF94 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C0DA4 7D8903A6 +4E800420 4E800021 +40000000 402CCCCD +C0000000 3C60803F +60630B24 00000000 +C2264C48 00000012 +3BC30000 806DB8D4 +2C030000 4182007C +809E0010 806200FC +C0230000 C044002C +EC4100B2 D044002C +C0440030 EC4100B2 +D0440030 C0440034 +EC4100B2 D0440034 +48000041 7C6802A6 +C0630000 EC230828 +C042CB40 EC4100B2 +D0440038 C042CB44 +EC4100B2 D044003C +7FC3F378 3D808037 +618C32E8 7D8903A6 +4E800421 4800000C +4E800021 3F800000 +60000000 00000000 +C2264DA8 00000008 +3A430000 806DB8D4 +2C030000 41820030 +806200FC C0230000 +C052002C EC4100B2 +D052002C C0520030 +EC4100B2 D0520030 +C0520034 EC4100B2 +D0520034 00000000 +C2260C8C 00000009 +806DB8D4 2C030000 +41820038 806DB8D8 +38810098 38B40001 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +3D808026 618C0CDC +7D8903A6 4E800420 +880DB655 00000000 +C22647FC 00000040 +806DB8D4 2C030000 +418201EC 806200FC +C0430000 480001CD +7C6802A6 C0230000 +EC2100B2 D022CB54 +C0230004 EC2100B2 +D022CB34 C0230008 +EC2100B2 D022CA34 +C023000C EC2100B2 +D022CAA0 7C0802A6 +90010004 9421FF00 +BE810008 3FE0803F +63FF0B24 83A20000 +3BBD00DC 3BC00000 +806DB620 38810080 +88BF0005 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80830014 38A00001 +50A426F6 90830014 +38600002 987D0002 +3BDE0001 3BFF001C +3BBD001C 2C1E0019 +4180FFB0 83CDB8D4 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C741B78 +807E0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7D1B78 +93ADB8D8 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00001 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7FA3EB78 +38800006 38A00020 +3CC08036 60C6410C +38E00001 3D808036 +618C4C08 7D8903A6 +4E800421 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C4924 +7D8903A6 4E800420 +4E800021 41000000 +41100000 3FC00000 +3951B717 3A9400DC +60000000 00000000 +C2266984 0000000A +806DB630 48000029 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820020 906DB8D4 +48000020 4E800021 +6D657853 656C6563 +74436872 00000000 +38600000 906DB8D4 +806DB630 00000000 +C22645F4 00000005 +806DB8D4 2C030000 +41820014 3D808026 +618C47FC 7D8903A6 +4E800420 38600007 +60000000 00000000 +044DC49C 41E80000 +C2260DF0 00000003 +3D808026 618C0AD8 +7D8903A6 4E800420 +60000000 00000000 +042609F8 480001C8 +040679BC 388023FC +C206FE20 00000002 +800323EC 2C000000 +60000000 00000000 +C2069CE0 00000005 +2C170000 41820010 +38600001 907A23EC +4800000C 38600000 +907A23EC 28170000 +60000000 00000000 +C2168C10 00000011 +7C7D1B78 3862017C +7C63E8AE 7C630774 +2C03FFFF 4182006C +7C0802A6 90010004 +9421FF00 BE810008 +808DB8DC 8084000C +1C630008 7C632214 +88630000 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +BA810008 80010104 +38210100 7C0803A6 +3D808016 618C8C40 +7D8903A6 4E800420 +4E800021 08070600 +7FA3EB78 00000000 +C216E7BC 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000111 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820104 +3B800000 480000E0 +1C1C0024 387F0060 +7FA30214 3882017C +3860FFFF 7C64E1AE +881D0001 2C000000 +408200B8 7F83E378 +3D808003 618C345C +7D8903A6 4E800421 +3C80804C 608420BC +1C630044 7C632214 +83430000 3A800000 +82BB0008 82DB000C +887D000A 3D808023 +618C754C 7D8903A6 +4E800421 7C771B78 +48000060 1C740008 +7F03B214 80780004 +2C030000 41820028 +2C170000 41820040 +7EE4BB78 3D808032 +618C58E8 7D8903A6 +4E800421 2C030000 +40820024 80780000 +5463023E 7C60D038 +7C030000 40820010 +3862017C 7E83E1AE +48000010 3A940001 +7C14A800 4180FFA0 +3B9C0001 2C1C0006 +4180FF20 48000014 +4E800021 5374635F +69636E73 00000000 +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C20A0070 00000065 +2C1F1388 41800318 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +480002F4 39000000 +399FEC78 80620018 +809E0004 7D2320AE +7D234B78 480001A1 +7C6A1B78 48000070 +39000001 399FE890 +80620018 809E0004 +7D2320AE 7D234B78 +4800017D 7C6A1B78 +48000064 39000000 +399FE4A8 80620018 +809E2238 7D2320AE +7D234B78 48000159 +7C6A1B78 48000028 +39000001 399FE0C0 +80620018 809E2238 +7D2320AE 7D234B78 +48000135 7C6A1B78 +4800001C 806A0000 +7C0C1800 40800138 +806A0004 7D6360AE +4800001C 806A0008 +7C0C1800 40800120 +806A000C 7D6360AE +48000004 7C0802A6 +90010004 9421FF00 +BE810008 3C608045 +60638FA0 3D808037 +618CABC8 7D8903A6 +4E800421 7C7C1B78 +386B0009 987C0004 +93FC0008 807E05E8 +57602036 7C63002E +907C000C C0210184 +D03C0010 C0210188 +D03C0014 C021018C +D03C0018 C03E002C +D03C001C C0228DF0 +807E00E0 2C030000 +40820020 C01E0844 +C05E0848 FC200050 +3D808002 618C2C30 +7D8903A6 4E800421 +D03C0020 806DC198 +2C030000 41820020 +8803000C 2C000009 +40800014 801E060C +901C0000 939E060C +4800001C 7FA3EB78 +7F84E378 3D808006 +618C744C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D80800A +618C0084 7D8903A6 +4E800420 80820084 +1C630004 7C63202E +2C030000 418200B0 +4E800020 48000061 +7C6802A6 809E0004 +48000089 7CA802A6 +1CC80008 7CA53214 +7D866378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +25732065 66666563 +74202564 0A000000 +4E800021 6D6F6465 +6C000000 7074636C +67656E00 48000041 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +4BFFFF91 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +65666642 65686176 +696F7254 61626C65 +0A000000 3C60803C +60000000 00000000 +C206747C 00000059 +7C0802A6 90010004 +9421FF00 BE810008 +2C1F1388 418002A0 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +4800027C 839D002C +399FEC78 80620018 +809C0004 7D2320AE +7D234B78 48000231 +7C6A1B78 48000070 +839D002C 399FE890 +80620018 809C0004 +7D2320AE 7D234B78 +4800020D 7C6A1B78 +4800011C 839D002C +399FE4A8 80620018 +809C2238 7D2320AE +7D234B78 480001E9 +7C6A1B78 48000028 +839D002C 399FE0C0 +80620018 809C2238 +7D2320AE 7D234B78 +480001C5 7C6A1B78 +480000D4 806A0004 +7D6360AE 48000025 +48000049 48000049 +48000049 48000089 +48000089 48000089 +48000089 480000A5 +7C8802A6 1CAB0004 +7C842A14 80A40000 +2C050000 418201A8 +54A501BA 7C842A14 +7C8903A6 4E800420 +48000174 4800004C +807E000C 389E0010 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7FE3FB78 +7FA4EB78 38A10080 +38DE001C 38FE0020 +3D808005 618CFDDC +7D8903A6 4E800421 +4800012C 4BFFFFBC +4BFFFFB8 4BFFFFB4 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000100 +4BFFFFE0 806A000C +7D6360AE 48000021 +48000045 48000085 +48000085 48000085 +48000085 48000085 +480000A1 7C8802A6 +1CAB0004 7C842A14 +80A40000 2C050000 +418200DC 54A501BA +7C842A14 7C8903A6 +4E800420 807E000C +389E0010 38A10080 +3D808000 618CB1CC +7D8903A6 4E800421 +7FE3FB78 7FA4EB78 +38A10080 38DE001C +38FE0020 3D808005 +618CFDDC 7D8903A6 +4E800421 48000068 +48000064 48000060 +4800005C 48000058 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000038 +7FE3FB78 7FA4EB78 +80BE000C 38DE001C +3D808005 618CFDDC +7D8903A6 4E800421 +48000014 80820084 +1C630004 7C63202E +4E800020 BA810008 +80010104 38210100 +7C0803A6 3D808006 +618C75F8 7D8903A6 +4E800420 BA810008 +80010104 38210100 +7C0803A6 00000000 +043985C4 1CD903E8 +C205FF38 000000E7 +7C0802A6 90010004 +9421FF00 BE810008 +381CFB45 2C000057 +40810708 2C1C1388 +41800700 2C1C1770 +41800020 2C1C1B58 +41800040 2C1C1F40 +41800060 2C1C2328 +41800080 480006DC +3B200000 829E002C +3ADCEC78 80620018 +80940004 7F0320AE +7F03C378 48000585 +7C771B78 4800007C +3B200001 829E002C +3ADCE890 80620018 +80940004 7F0320AE +7F03C378 4800055D +7C771B78 480003EC +3B200000 829E002C +3ADCE4A8 80620018 +80942238 7F0320AE +7F03C378 48000535 +7C771B78 4800002C +3B200001 829E002C +3ADCE0C0 80620018 +80942238 7F0320AE +7F03C378 4800050D +7C771B78 4800039C +1C7803E8 7F83B214 +80770000 7C161800 +40800508 80770004 +7EA3B0AE 48000025 +4800005D 480000A1 +4800010D 48000141 +480001AD 48000225 +480002CD 48000301 +7C8802A6 1CB50004 +7C842A14 80A40000 +2C050000 418205E4 +54A0463E 2C000048 +40820014 54A501BA +7C842A14 7C8903A6 +4E800420 7CA903A6 +4E800420 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80C30000 +38600000 7F85E378 +3C801062 60844DD3 +7C842896 7C843670 +3D808039 618CEFAC +7D8903A6 4E800421 +480002B4 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820278 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0030000 +D01C0024 7FA3EB78 +48000244 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +4800020C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418201D0 +807D0004 83830028 +386102FC 38800002 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +D03C0024 7FA3EB78 +4800019C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 83630000 +7F63DB78 38800000 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7F83E378 +7FC4F378 38A10080 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820140 +807D0004 83830028 +C0028808 D01C0020 +C01B0024 D01C0024 +7FA3EB78 48000120 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83630000 7F83E378 +7FC4F378 7F65DB78 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418200E0 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +C0028830 FC010040 +4080000C C8028848 +48000008 C8028850 +FC200018 D03C0020 +807E0028 C023002C +D03C002C C0230030 +D03C0030 C0230034 +D03C0034 7FA3EB78 +48000074 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC3DC +7D8903A6 4E800421 +4800003C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC5C4 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +1C7803E8 7F83B214 +80770008 7C161800 +40800170 8077000C +7EA3B0AE 48000021 +48000059 48000001 +48000001 48000001 +48000001 480000AD +480000F1 7C8802A6 +1CB50004 7C842A14 +80A40000 2C050000 +41820250 54A0463E +2C000048 40820014 +54A501BA 7C842A14 +7C8903A6 4E800420 +7CA903A6 4E800420 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83A30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CF05C 7D8903A6 +4E800421 2C030000 +4182001C C03D0000 +D0230024 C03D0004 +D0230028 C03D0008 +D023002C 48000068 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80C30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CEFAC 7D8903A6 +4E800421 48000020 +7F83E378 388102FC +3D808005 618CCF40 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +80820084 1C630004 +7C63202E 2C030000 +418200B0 4E800020 +48000061 7C6802A6 +80940004 48000089 +7CA802A6 1CD90008 +7CA53214 7EC6B378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 25732065 +66666563 74202564 +0A000000 4E800021 +6D6F6465 6C000000 +7074636C 67656E00 +48000041 7C6802A6 +80940004 3D808034 +618C56A8 7D8903A6 +4E800421 4BFFFF91 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 65666642 +65686176 696F7254 +61626C65 0A000000 +BA810008 80010104 +38210100 7C0803A6 +381CFB45 00000000 +C21B5204 0000000D +3D80803D 618CE650 +8062014C 3943FFF9 +886C0000 2C0300FF +41820048 38E00000 +7C8C3A14 8924000A +2C090021 41820020 +2C09001A 41800018 +2C090020 41810010 +3869FFE6 7D2A1A14 +9924000A 38E70001 +2C070003 4180FFCC +398C0010 4BFFFFB4 +8001000C 00000000 +C21B34F0 00000015 +3C60803D 6063E178 +48000039 3C60803D +6063E134 4800002D +3C60803D 6063E080 +48000021 3C60803D +6063DF94 48000015 +3C60803D 6063DF88 +48000009 48000064 +7C6C1B78 8062014C +3943FFF9 A06C0000 +2C030148 41820048 +38E00000 7C8C3A14 +89240002 2C090021 +41820020 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240002 +38E70001 2C070004 +4180FFCC 398C0006 +4BFFFFB4 4E800020 +8001000C 00000000 +C21BADC4 0000000E +39000000 818DB260 +8062014C 3943FFF9 +816C0000 38E00000 +7C8C3A14 808B0014 +2C040000 41820024 +89240000 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240000 +38E70001 396B0004 +2C070006 4180FFC4 +398C0004 39080001 +2C080033 4180FFAC +828DB260 00000000 +C22F62FC 00000007 +8182014C 386CFFF9 +7C1C1800 41820014 +386CFFFD 7C1C1800 +41820008 48000008 +3B80001B 3D80802F +618C6314 7D8903A6 +4E800420 00000000 +C217D5A0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217D5F0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217C134 00000002 +8182014C 380CFFFD +60000000 00000000 +C217D578 00000002 +8182014C 398CFFFC +7C006000 00000000 +C2320698 00000002 +8062014C 3863FFFC +60000000 00000000 +C23206A8 00000002 +8082014C 3884FFFC +60000000 00000000 +C217D598 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C217D638 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E4C 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E58 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C21B6560 00000002 +8062014C 3883FFFF +60000000 00000000 +C21B9958 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B99FC 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B6B40 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182288 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B6B34 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B70AC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21822EC 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B70A0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7BDC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21823B4 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B7BD0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7658 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182350 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B764C 00000002 +8182014C 380CFFFA +60000000 00000000 +C218247C 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B8698 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B86A4 00000002 +8062014C 3863FFFB +60000000 00000000 +C21B8178 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182418 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B816C 00000002 +8182014C 380CFFFA +60000000 00000000 +C202305C 00000006 +2C030000 4180001C +1C630004 1C840002 +80A200CC 7C632A14 +7C63222E 48000008 +3860005D 4E800020 +60000000 00000000 +C20D1448 00000002 +81820178 818C000C +800C0064 00000000 +04085830 8002005C +04068F5C 8062005C +0413C3D0 8002005C +040858F4 8002005C +04068AEC 8082005C +040855EC 83A2005C +04068704 8062005C +04070330 8062005C +C20852D0 00000002 +3D40803C 614A25F4 +60000000 00000000 +040852B8 8102005C +C20BE8B4 00000002 +80820178 8084000C +808400A0 00000000 +04068B60 80C2002C +041609A8 80020004 +C2160A24 00000002 +80820004 7C64002E +60000000 00000000 +C2160B08 00000002 +80620004 7C63002E +60000000 00000000 +C206D654 00000002 +81820178 818C000C +800C0030 00000000 +C207FB9C 00000002 +80620178 8063000C +8003004C 00000000 +04068660 80020034 +C20CBA30 00000009 +801E0004 806200A0 +1C000004 7D83002E +2C0C0000 41820020 +7FA3EB78 7D8903A6 +4E800421 3D80800C +618CBA9C 7D8903A6 +4E800420 3D80800C +618CBAA4 7D8903A6 +4E800420 00000000 +C211BA54 00000018 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +806DAEB4 C0030088 +FC000050 C03E0624 +FC010040 41810078 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C211BAD8 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +C03E0084 C0029DE0 +FC010040 4C401382 +4082008C 806DAEB4 +C0030070 C03E0624 +FC010040 41810010 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C206AA28 00000002 +80620178 8063000C +8003005C 00000000 +04094860 800200C0 +04094924 800200C0 +0407E740 800200C8 +C207F830 00000002 +81820178 818C000C +800C0054 00000000 +C207F878 00000002 +81820178 818C000C +800C0058 00000000 +C2069924 00000008 +806200A8 809A0004 +1C840004 7D84182E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808006 +618C9938 7D8903A6 +4E800420 801A0004 +60000000 00000000 +040BEA28 80020030 +040690F0 80020030 +C207F918 00000002 +80820178 8084000C +80040050 00000000 +C2080D9C 00000002 +80620178 8063000C +80030068 00000000 +C2080BA0 00000002 +80620178 8063000C +80030068 00000000 +C207512C 00000002 +80620178 8063000C +8003006C 00000000 +C2075190 00000002 +80620178 8063000C +8003006C 00000000 +C20751F8 00000002 +80620178 8063000C +8003006C 00000000 +C208CC14 00000008 +800200BC 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CCC38 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C208C360 00000007 +800200B4 809F0004 +1C840004 7D84002E +2C0C0000 4182001C +7D8903A6 4E800421 +3D808008 618CC3CC +7D8903A6 4E800420 +809F0004 00000000 +C208C900 00000008 +800200B8 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CC924 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C20C0158 00000002 +80620178 8063000C +80030060 00000000 +C20816C4 00000005 +806200AC 809F0004 +7C6418AE 2C030000 +40820014 3D808008 +618C1918 7D8903A6 +4E800420 00000000 +C20C3B54 0000000B +800200A4 809F0004 +1C840004 7D84002E +2C0C0000 4182003C +801F065C 54000001 +41820030 801F0668 +540005EF 41820024 +7C631B78 7D8903A6 +4E800421 3D80800C +618C3BB8 7D8903A6 +4E800420 48000008 +38600000 00000000 +C20F5A78 00000002 +80620098 80630020 +60000000 00000000 +C20F5AA0 00000002 +80620098 80630020 +60000000 00000000 +C20F5AC8 00000002 +80620098 80630020 +60000000 00000000 +C20F5AE0 00000002 +80620098 80630020 +60000000 00000000 +C2085C04 00000003 +806200B0 801C0004 +1C000008 7C630214 +80030004 00000000 +C2085BD0 00000003 +806200B0 801C0004 +1C000008 7FC3002E +60000000 00000000 +C2085CC0 00000003 +808200B0 801C0004 +1C000008 38600000 +7C64012E 00000000 +C20BEB88 00000003 +83E200B0 1C030008 +7FFF0214 801F0000 +60000000 00000000 +C2085A24 00000002 +7C661B78 1CA30008 +60000000 00000000 +04085A3C 80620098 +04068B2C 1C840008 +04068B1C 80020098 +040852C0 80A20098 +C20852D4 00000012 +39800000 81220028 +814200B0 38600000 +90670000 90670004 +90690000 906A0000 +39600000 48000020 +80680000 1C8B0018 +7C832214 38600000 +90640000 90640008 +396B0001 88680004 +7C0B1800 4180FFDC +39290008 39080008 +38E70008 394A0008 +398C0001 80620148 +7C0C1800 4180FFA0 +38600000 3CA08045 +60A598B8 3D808008 +618C53DC 7D8903A6 +4E800420 00000000 +04085738 1CA30008 +0408573C 80020098 +04085774 38650004 +0431C9A4 800200D0 +C214A42C 00000004 +80820178 80840034 +80840000 881F0619 +1C000008 7C840214 +60000000 00000000 +C214A7F8 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630000 90640000 +4E800020 00000000 +C214A364 00000006 +881F0619 1C000008 +80820178 80840034 +80840000 7C840214 +80840004 909F2434 +909F0614 8001001C +60000000 00000000 +C214A818 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630004 90640000 +4E800020 00000000 +C22F9888 00000005 +387C0000 38800000 +3D808003 618C25C8 +7D8903A6 4E800421 +7C641B78 38BD0000 +387C0000 00000000 +C22F9764 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FC3F378 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387E0000 00000000 +C22F6770 00000011 +3C60804D 60636D5C +80630000 48000049 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8DC +3C60804D 60636D5C +80630000 48000031 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8E0 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 80010024 +60000000 00000000 +C2266994 0000000D +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000035 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 4182000C +906DB8DC 48000020 +38600000 906DB8DC +48000014 4E800021 +5374635F 69636E73 +00000000 806DB614 +60000000 00000000 +C22F6320 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C2168B34 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FC3F378 +7FA4EB78 3D80803D +618C7060 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C22FA0B4 00000006 +7C7FE214 8863047F +38800000 3D808003 +618C25C8 7D8903A6 +4E800421 7C641B78 +7CBFE214 8865047F +88A503FD 00000000 +C22F9FD4 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FA3EB78 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387D0000 00000000 +C22F62F8 00000010 +3D808000 618CC07C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +83ADB8E0 2C1D0000 +41820044 7FC3F378 +38810080 38A00001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FA5EB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 00000000 +C22F99C0 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +4182005C 83C30004 +3BE00000 7FA3EB78 +38810080 38BF0001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FC5F378 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0007 4180FFB8 +48000004 BA810008 +80010104 38210100 +7C0803A6 7FA3EB78 +60000000 00000000 +C2175E4C 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7D1B78 480000F1 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +418200FC 83C30004 +3BE00000 7F63DB78 +38810080 38BF0019 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809E0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +3BFF0001 2C1F0004 +4180FFB4 7FA3EB78 +48000085 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 41820080 +3BE00000 7F63DB78 +38810080 38BF0042 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 809E0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FFB8 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 7F63DB78 +60000000 00000000 +C21777C8 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C225DB80 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C1F000C +60000000 00000000 +C2260DB4 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C13000C +60000000 00000000 +C225D5AC 00000078 +7C0802A6 90010004 +9421FF00 BE810008 +7C7D1B78 7C9F2378 +7CBE2B78 7CDC3378 +3F60803F 637B0A48 +880DB655 2C000001 +408201F0 2C1D0000 +41820080 806DB624 +38810080 38A00006 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +806DB8D4 80630010 +7C1E19D6 7C9F0214 +80610080 7F85E378 +48000235 806DB624 +38810080 38A00004 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +80620070 7C83F8AE +80610080 7F85E378 +480001FD 480002F0 +806DB620 38810080 +38A0002D 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 480001B9 +806DB620 38810080 +38A0002B 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000181 +1C7D0024 7C63DA14 +886303C2 1C63001C +80820000 7C632214 +886300DD 80020008 +1C630003 7C6300AE +1C9D0024 7C84DA14 +888403C1 3D80803D +618C7060 7D8903A6 +4E800421 D0210084 +3B400000 806DB620 +38810080 38BA0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 C0210084 +3D808035 618CE800 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +80630064 C022E0E0 +3D808036 618C530C +7D8903A6 4E800421 +80610080 3D808037 +618C0928 7D8903A6 +4E800421 3B5A0001 +2C1A0005 4180FF78 +7F83E378 3D808025 +618CC020 7D8903A6 +4E800421 48000188 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B5 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 48000049 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B4 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000009 +480000FC 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +6FC38000 C822CA08 +90610094 3C604330 +90610090 C8410090 +EC220828 7FE3FB78 +38800006 38A00400 +3CC08036 60C6410C +38E00001 4CC63242 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 3D808037 +618C0928 7D8903A6 +4E800421 7FE3FB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 38800010 +2C1D0000 41820018 +3D808037 618C1D9C +7D8903A6 4E800421 +48000018 3D808037 +618C1F00 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225EE60 00000007 +88A30073 7FE3FB78 +7E84A378 38C00000 +3D808025 618CD5AC +7D8903A6 4E800421 +3D808025 618CEE74 +7D8903A6 4E800420 +60000000 00000000 +C2260DB0 00000005 +38730000 38800000 +38A00000 38C00001 +3D808025 618CD5AC +7D8903A6 4E800421 +60000000 00000000 +C225DB78 00000003 +7FE3FB78 38800000 +38A00000 38C00001 +60000000 00000000 +C2264548 00000038 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7A1B78 48000145 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820008 837B0004 +7F43D378 4800012D +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7D1B79 +838DB8D4 2C1C0000 +41820008 839C000C +2C1B0000 41820054 +3BE00000 806DB620 +38810080 38BF0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7F65DB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0005 4180FFB8 +2C1D0000 41820048 +806DB620 38810080 +38A0002B 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38A0002D +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 4800002C +4E800021 5374635F +69636E73 00000000 +4E800021 45626C6D +5F6D6174 616E696D +5F6A6F69 6E740000 +BA810008 80010104 +38210100 7C0803A6 +60000000 00000000 +C2264A74 00000026 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +41820048 806DB624 +38810080 38A00004 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809D0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +2C1D0000 41820044 +806DB624 38810080 +38A00006 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +7F84E378 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 806DB624 +60000000 00000000 +C2264574 00000027 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000D5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +4182004C 3BE00000 +806DB620 38810080 +38BF002E 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38BF0033 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FF6C +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 00000000 +0425DB74 8A8400DD +C20692FC 00000002 +81820148 398CFFFB +7C006000 00000000 +C20692E8 00000002 +81820148 398CFFFA +7C006000 00000000 +C20CC76C 00000002 +81820148 398CFFFB +7C036000 00000000 +C20CC750 00000002 +81820148 398CFFFA +7C036000 00000000 +C20BDA14 0000000C +81820148 380CFFFC +7C030000 41820038 +81820148 380CFFFD +7C030000 41820028 +81820148 380CFFFF +7C030000 41820018 +2C03000B 41820008 +48000010 3860000A +48000008 80652238 +3D80800B 618CDA3C +7D8903A6 4E800420 +60000000 00000000 +C208A2F0 00000002 +81820148 398CFFFB +7C036000 00000000 +C208A2D4 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C2AC 00000002 +80620148 3863FFFB +60000000 00000000 +C215C320 00000002 +80620148 3863FFFB +60000000 00000000 +C215C3A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C21551B4 00000002 +80620148 3863FFFB +60000000 00000000 +C215531C 00000002 +80620148 3863FFFB +60000000 00000000 +C21554A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215B500 00000002 +80620148 3863FFFB +60000000 00000000 +C206D480 00000002 +81820148 398CFFFB +7C006000 00000000 +C20C8E98 00000002 +81820148 398CFFFB +7C006000 00000000 +C215CB18 00000002 +81820148 398CFFFB +7C036000 00000000 +C20C744C 00000002 +81820148 398CFFFE +7C006000 00000000 +C215C274 00000002 +80620148 3863FFFA +60000000 00000000 +C215C2E4 00000002 +80620148 3863FFFA +60000000 00000000 +C215C35C 00000002 +80620148 3863FFFA +60000000 00000000 +C215143C 00000002 +80620148 3863FFFA +60000000 00000000 +C215A2CC 00000002 +80620148 3863FFFA +60000000 00000000 +C215A414 00000002 +80620148 3863FFFA +60000000 00000000 +C215A580 00000002 +80620148 3863FFFA +60000000 00000000 +C206D48C 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8E90 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8EA4 00000002 +81820148 398CFFFA +7C006000 00000000 +C215C55C 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C6E0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C770 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C8B0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C9F0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215CABC 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C810 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C950 00000002 +81820148 398CFFFA +7C036000 00000000 +C207CDBC 00000002 +81820148 398CFFFF +7C006000 00000000 +C207CE10 00000002 +81820148 398CFFFF +7C006000 00000000 +C217C938 00000002 +81820148 380CFFFD +60000000 00000000 +C217C930 00000002 +81820148 380CFFFC +60000000 00000000 +C2267990 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +80820088 2C03002B +41800020 2C0300A1 +41800024 2C0300D0 +4180002C 2C0300ED +41800034 48000044 +80840000 80ADB684 +4800004C 3863FFD5 +80840004 80ADB698 +4800003C 3863FF5F +80840008 80ADB690 +4800002C 3863FF30 +8084000C 3CA0804A +60A50F60 48000018 +3863FF13 80840010 +80A20088 80A50014 +48000004 1C03003C +7FC40214 1C030004 +7FA5002E 2C1D0000 +41820010 93DF00B8 +93BF00C4 48000070 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2069 74656D20 +6E6F7420 696E6974 +69616C69 7A65640A +00000000 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C7A88 7D8903A6 +4E800420 00000000 +C22674AC 00000004 +80030008 2C0000ED +41800010 38000008 +9003000C 4E800020 +60000000 00000000 +C2268684 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +807E0008 80820088 +2C03002B 41800020 +2C0300A1 41800024 +2C0300D0 4180002C +2C0300ED 41800034 +48000040 3C80803F +60841418 48000040 +3863FFD5 3C80803F +60842F28 48000030 +3863FF5F 3C80803F +60842310 48000020 +3863FF30 3C80803F +60844CA8 48000010 +3C808026 6084EECC +4800000C 1C030004 +7C84002E 38A00006 +38C00000 7FE3FB78 +3D808039 618C069C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C8748 +7D8903A6 4E800420 +60000000 00000000 +C20F16EC 0000000B +80C20148 7C043040 +4181003C 1C040004 +80620140 7D83002E +2C0C0000 41820018 +7C832378 7C85002E +7D8903A6 4E800421 +48000014 3D80800F +618C16F0 7D8903A6 +4E800420 3D80800F +618C18F8 7D8903A6 +4E800420 00000000 +C20EEEC4 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80020130 1C840004 +7D84002E 2C0C0000 +4182000C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C20F1AA8 0000000B +80820148 7C002040 +41810038 1C800004 +8062013C 7D83202E +2C0C0000 41820024 +7FE3FB78 7D8903A6 +4E800421 48000014 +3D80800F 618C1AB0 +7D8903A6 4E800420 +3D80800F 618C1B58 +7D8903A6 4E800420 +60000000 00000000 +C20F1BF8 00000007 +8002012C 1C840004 +7D84002E 2C0C0000 +41820010 7D8903A6 +7FA3EB78 4E800421 +3D80800F 618C1C1C +7D8903A6 4E800420 +60000000 00000000 +040F163C 80020134 +040F168C 80020138 +C216E148 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +83C20148 3BE00000 +80620128 38000000 +1C9F0004 7C03212E +3BFF0001 7C1FF000 +4180FFF0 BA810008 +80010104 38210100 +7C0803A6 3800FFFF +90010010 00000000 +C20EED58 00000002 +9421FFDC 38000000 +90010020 00000000 +040EEE90 38210024 +040EEDC0 38610020 +C20EEE80 00000033 +83A10020 7C0802A6 +90010004 9421FF00 +BE810008 2C1D0000 +41820168 7FA3EB78 +480000A9 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820030 +7F63DB78 3D80803D +618C7074 7D8903A6 +4E800421 7F63DB78 +80820178 80840024 +7FC5F378 48000081 +3B400001 7FA3EB78 +7FC4F378 38A00000 +3D80803D 618C7070 +7D8903A6 4E800421 +2C030000 41820008 +3B400001 7FA3EB78 +48000041 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7C1B79 41820010 +80620128 1C9E0004 +7F83212E 4800009C +4E800021 6B624675 +6E637469 6F6E0000 +4E800021 6674636D +64000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80010028 00000000 +C222C010 0000000C +810DB8E0 2C080000 +41820050 7C671B78 +7C862378 80680004 +1C070014 7D830214 +806C0008 1C060008 +7D430214 2C070000 +4182000C 886C000F +4800001C 880A0001 +80680004 1C000014 +7C630214 8863000F +48000004 4E800020 +2C030000 00000000 +C222C170 00000007 +806DB8E0 2C030000 +41820028 80630004 +881F0000 1C000014 +7D830214 8BCC000F +3D808022 618CC1B4 +7D8903A6 4E800420 +28040021 00000000 +C222C168 0000000C +806DB8E0 2C030000 +4182004C 80630004 +881F0000 1C000014 +7D830214 816C0008 +A07F0002 1C630008 +7D435A14 880A0001 +806DB8E0 80630004 +1C000014 7C630214 +8BC3000F 3D808022 +618CC1B4 7D8903A6 +4E800420 28040021 +60000000 00000000 +C2229DA0 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820088 83FE0010 +7F83E378 38810080 +38A00056 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +3C60804A 606304F0 +88630000 819E0004 +1C630014 7C6C1A14 +8863000E 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +80610080 3D808036 +618CF934 7D8903A6 +4E800421 80610080 +3D808037 618C0780 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +8001003C 00000000 +C222B9D8 00000008 +818DB8E0 2C0C0000 +4182002C 818C0004 +881A0000 1C000014 +7D8C0214 818C0008 +881A0001 1C000008 +7D8C0214 888C0002 +48000008 7C90022E +60000000 00000000 +C222B9A8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +0422B9A0 60000000 +C2229AD8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +04229AD0 60000000 +C2229B08 00000007 +818DB8E0 2C0C0000 +41820028 818C0004 +897D0000 1C0B0014 +7D8C0214 818C0008 +1C1E0008 7D8C0214 +888C0002 48000008 +7C9F022E 00000000 +C222DB1C 00000004 +818DB8E0 2C0C0000 +41820010 806C0004 +38630000 48000008 +3863B6B0 00000000 +C222DC18 00000005 +818DB8E0 2C0C0000 +41820014 818C0004 +1C7F0014 7C6C1A14 +48000008 7C630214 +60000000 00000000 +C222A638 00000006 +818DB8E0 2C0C0000 +4182001C 806C0004 +881C0000 1C000014 +7C630214 8B63000C +48000008 8B630854 +60000000 00000000 +C222B3F4 00000006 +818DB8E0 2C0C0000 +41820020 80AC0004 +1C750014 7C632A14 +83E30000 8AC3000C +7C731B78 48000008 +8AC40854 00000000 +C222B224 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 880C000C +48000008 88030854 +60000000 00000000 +C222AE48 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 83AC0000 +48000008 83A30848 +60000000 00000000 +C222E90C 00000004 +818DB8E0 2C0C0000 +41820010 3C80803D +60847090 48000008 +80840858 00000000 +C222A010 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881D0000 1C000014 +7D8C0214 818C0008 +1C7B0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7F83E378 48000008 +EC22002A 00000000 +C222A4D0 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881F0000 1C000014 +7D8C0214 818C0008 +1C7C0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7FA3EB78 48000008 +EC22002A 00000000 +C222B7DC 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881E0000 1C000014 +7D8C0214 818C0008 +1C710008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +38760000 48000008 +EC21002A 00000000 +C222E630 00000023 +7C0802A6 90010004 +9421FF00 BE810008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +408200AC 480000B5 +7C6802A6 3D808033 +618C796C 7D8903A6 +4E800421 2C03FFFF +4182008C 48000095 +7C6802A6 38810080 +48000099 7CA802A6 +38C00000 4CC63182 +3D808001 618C6C64 +7D8903A6 4E800421 +7C7F1B78 83C10080 +93CDB8E0 38600001 +38800000 38A00007 +38C00008 38E00080 +39000005 39200080 +39400000 3D80803A +618C611C 7D8903A6 +4E800421 3C60804D +60631110 93E30004 +807E0008 3C80804D +60841124 90640004 +4800002C 38600000 +906DB8E0 48000020 +4E800021 4D784D6E +2E646174 00000000 +4E800021 6D65784D +656E7500 BA810008 +80010104 38210100 +7C0803A6 38600003 +60000000 00000000 +C2266980 00000002 +906DB634 38000000 +900DB8E0 00000000 +C2229C14 00000004 +818DB8E0 2C0C0000 +41820010 83EC0000 +3BFFFFDC 48000008 +3BE5AE68 00000000 +C2229DEC 00000004 +818DB8E0 2C0C0000 +41820010 83AC0000 +3BBDFFDC 48000008 +3BA4AE68 00000000 +C2229D98 00000002 +3C80803E 6084B354 +60000000 00000000 +C2229E94 00000002 +3D80803E 618CAE68 +C02C04EC 00000000 +C21B1368 00000004 +3C60804A 606304F0 +88030000 981F0000 +A0030002 981F0001 +60000000 00000000 +C2229894 00000029 +818DB8E0 2C0C0000 +41820134 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +3F80804A 639C04F0 +806DB8E0 80630004 +881C0000 1C000014 +7F630214 887C0000 +987C0001 9BFC0000 +39800000 893C0001 +806DB8E0 80630004 +881C0000 1C1F0014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19C0002 +48000010 398C0001 +7C0C5800 4180FFD0 +7FA3EB78 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 806DC17C +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C0802A6 +60000000 00000000 +C2229E60 00000032 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820160 83FE0010 +3BA00000 48000131 +7C6802A6 7CA3E8AE +7CA50774 2C05FFFF +4182005C 7F83E378 +38810080 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 3D808036 +618CF6B4 7D8903A6 +4E800421 80610080 +38800000 7FE5FB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BBD0001 +4BFFFF94 3BA00000 +480000C9 7C6802A6 +7CA3E8AE 7CA50774 +2C05FFFF 4182003C +7F83E378 38810080 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +3D808036 618CF6B4 +7D8903A6 4E800421 +3BBD0001 4BFFFFB4 +7F83E378 38810080 +38A0002C 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +48000065 7C6802A6 +C0230000 80610080 +D0230038 7F83E378 +38810080 38A00056 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 48000031 +7C6802A6 C0230004 +80610080 D023002C +48000028 4E800021 +56545552 53FF0000 +4E800021 2C2D2E2F +FF000000 4E800021 +00000000 3F666666 +BA810008 80010104 +38210100 7C0803A6 +387C0000 00000000 +C222B750 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8E0 2C030000 +41820048 83E3000C +7E038378 38810080 +38A00003 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7FE5FB78 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38700000 00000000 +04167978 8002014C +C2085A44 00000002 +83820028 7F9C0214 +801C0000 00000000 +04085B5C 80620028 +C2085A58 00000002 +80820014 1CA60004 +7C84282E 00000000 +C208602C 00000002 +80620098 80630050 +60000000 00000000 +040856E4 800200D0 +C20856E4 00000002 +80820014 7C84D02E +60000000 00000000 +C2017924 00000011 +2C03FFFF 40820078 +48000051 7C6802A6 +3C808043 60842058 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6C626669 6C650000 +4E800021 6572726F +723A2066 696C6520 +25732064 6F657320 +6E6F7420 65786973 +740A0000 93E10008 +60000000 00000000 +C2085614 00000002 +80820010 7C84D82E +60000000 00000000 +04085760 80020010 +C21692DC 00000002 +80620058 7C630214 +60000000 00000000 +C21692B0 00000002 +80620058 7C630214 +60000000 00000000 +C2169258 00000002 +80620058 7C632214 +60000000 00000000 +C2169284 00000002 +80620058 7C630214 +60000000 00000000 +C20703A8 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820078 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +4800005D 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820038 +80630004 2C030000 +4182002C 80630000 +BA810008 80010104 +38210100 7C0803A6 +7C601B78 3D808007 +618C03B8 7D8903A6 +4E800420 7E83A378 +48000014 4E800021 +6D657843 6F737475 +6D650000 BA810008 +80010104 38210100 +7C0803A6 7C601B78 +60000000 00000000 +C20749E8 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820090 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +48000099 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820050 +80630000 2C030000 +41820044 389F05AC +38A00000 38DF05EC +38FF203C 3D808007 +618C487C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D808007 +618C4A04 7D8903A6 +4E800420 807F010C +389F05AC 7E85A378 +BA810008 80010104 +38210100 7C0803A6 +3D808007 618C49F4 +7D8903A6 4E800420 +4E800021 6D657843 +6F737475 6D650000 +60000000 00000000 +04085674 1F800010 +040856BC 3B9C0010 +C2085680 00000002 +8362000C 7F7BD214 +60000000 00000000 +0408586C 1C040010 +04085864 8002000C +040857A8 80A2005C +040857C0 80A2005C +C213C384 00000040 +7C7C1B78 83DC002C +887E000C 3D808003 +618C2330 7D8903A6 +4E800421 3D808016 +618C9238 7D8903A6 +4E800421 889E0619 +7C041800 40800008 +48000014 3D808013 +618CC46C 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF00 +BE810008 881E0004 +8062000C 1C000004 +7C63002E 881E0619 +1C000010 7C630214 +8363000C 807E0004 +8082005C 1C630008 +7C63202E 881E0619 +1C000018 7C630214 +83230014 7F23CB78 +48000121 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 40820114 +3C60803D 606305B4 +1C1B0004 7F43002E +2C1A0000 418200FC +7F23CB78 7F44D378 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 807E010C +80630048 80630004 +3B030004 3C608045 +60639080 3D808037 +618CABC8 7D8903A6 +4E800421 907E2244 +7F43D378 3D808037 +618C0E44 7D8903A6 +4E800421 907E223C +3D808007 618C4148 +7D8903A6 4E800421 +38600001 881E2225 +50602EB4 981E2225 +3D808007 618C4170 +7D8903A6 4E800421 +7F83E378 809E223C +38BE2240 3D808007 +618C5650 7D8903A6 +4E800421 38DE2240 +38E60000 7F65DB78 +389E2248 7F03C378 +3D808007 618C487C +7D8903A6 4E800421 +7FC3F378 3D808009 +618CDC54 7D8903A6 +4E800421 4800001C +4E800021 6D657843 +6F737475 6D650000 +38600000 907E223C +BA810008 80010104 +38210100 7C0803A6 +3D808013 618CC474 +7D8903A6 4E800420 +60000000 00000000 +C205FE90 00000002 +8062001C 80030014 +60000000 00000000 +C205B4F0 0000000B +38A00000 38630008 +80C20160 1CE5000C +7C87192E 38A50001 +7C053000 4180FFF0 +38A00000 38800000 +80620084 1CE50004 +7C87192E 38A50001 +7C053000 4180FFF0 +3D808005 618CB5D4 +7D8903A6 4E800420 +60000000 00000000 +040672B0 8002001C +0406739C 8002001C +0405BED8 80C2001C +0405B4EC 8062001C +04067334 8062001C +04067384 9421FFE4 +C2067430 00000018 +901F0008 80610018 +48000029 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +80820084 1CBE0004 +7C64292E 48000090 +4E800021 65666642 +65686176 696F7254 +61626C65 00000000 +4800004D 7C6802A6 +7FC4F378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2065 +66666563 74206669 +6C652025 64206E6F +74206C6F 61646564 +0A000000 00000000 +04067440 3821001C +040673DC 38610018 +04067434 80010020 +040BE8B8 80020018 +04068F38 80020018 +C20856D0 00000002 +80620018 7C63F8AE +60000000 00000000 +040325F8 80620008 +C2032634 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +040325D8 80020008 +04031CCC 80020008 +04031D48 80020008 +04031D70 80020008 +04031D48 80020008 +C2036E34 00000002 +80620008 3803FFE0 +60000000 00000000 +C2036F5C 00000002 +83C20008 3BDEFFE0 +60000000 00000000 +C2031AE8 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +C22601D4 00000002 +80620000 386300DD +7C6300AE 00000000 +C22600F0 00000002 +80620000 386300DD +7C6300AE 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260D6C 00000002 +80620000 7E630214 +60000000 00000000 +C2260A60 00000002 +80620000 386300DC +60000000 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260C7C 00000002 +83C20000 7C9E2214 +60000000 00000000 +C2260D44 00000002 +3FC0803F 63DE0A48 +7C7EBA14 00000000 +C226353C 00000002 +80620000 7C630214 +60000000 00000000 +C2263B40 00000002 +80620000 7C630214 +60000000 00000000 +C2262B20 00000002 +80620000 7C630214 +60000000 00000000 +C2262B80 00000002 +80620000 7C630214 +60000000 00000000 +C2262BE0 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262BB4 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262C14 00000002 +80620000 7C630214 +60000000 00000000 +C2262C74 00000002 +80620000 7C630214 +60000000 00000000 +C225FBE4 00000003 +3F80803F 639C0A48 +7C9C3214 7F9C3214 +60000000 00000000 +C225FCB8 00000002 +80820000 7C84EA14 +60000000 00000000 +C225FE68 00000002 +80620000 7C630214 +60000000 00000000 +C225FE8C 00000002 +80820000 388400DC +60000000 00000000 +C225FF10 00000002 +83E20000 7FFFEA14 +60000000 00000000 +C225FFEC 00000002 +80620000 7C63EA14 +60000000 00000000 +C226005C 00000002 +83620000 7F7B0214 +60000000 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C2264D58 00000002 +3FE0803F 63FF0A48 +3BFF03B4 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C225F308 00000002 +3EE0803F 62F70A48 +3BF703B4 00000000 +C225F78C 00000002 +3EE0803F 62F70A48 +38B70483 00000000 +C225DB70 00000002 +80820000 7C840214 +60000000 00000000 +C225DBE0 00000002 +80620000 7C630214 +60000000 00000000 +C225EDE0 00000002 +80620000 7C632214 +60000000 00000000 +C2264114 00000002 +3C60803F 60630A48 +7C630214 00000000 +0425FB6C 83C20000 +042640FC 83820000 +0425F128 82E20000 +C20672B4 00000002 +81820160 398C0001 +7C036000 00000000 +C20673A0 00000002 +81820160 398C0001 +7C1E6000 00000000 +04266AA0 8002014C +04266B10 8002014C +04266B50 8002014C +042609D8 8002014C +C2160450 00000002 +8182014C 7C006000 +60000000 00000000 +C2160464 00000002 +8182014C 7C006000 +60000000 00000000 +C2160428 00000002 +8182014C 7C006000 +60000000 00000000 +C225FE4C 00000002 +81820150 398C0001 +7C046000 00000000 +C2264914 00000002 +81820150 7C116000 +60000000 00000000 +C2264EDC 00000002 +81820150 7C116000 +60000000 00000000 +C2264ED0 00000002 +81820150 7C116000 +60000000 00000000 +C22600C4 00000002 +81820150 7C006000 +60000000 00000000 +C22600D0 00000002 +81820150 7C006000 +60000000 00000000 +C226015C 00000002 +81820150 7C036000 +60000000 00000000 +C226022C 00000002 +81820150 7C036000 +60000000 00000000 +C21692C0 00000002 +81820150 398C0001 +7C006000 00000000 +C2169294 00000002 +81820150 398C0001 +7C006000 00000000 +C216923C 00000002 +8182014C 7C006000 +60000000 00000000 +C2169268 00000002 +81820150 398C0001 +7C006000 00000000 +C22605B8 00000002 +81820150 7C006000 +60000000 00000000 +C22620CC 00000002 +81820150 7C006000 +60000000 00000000 +C22621E0 00000002 +81820150 7C006000 +60000000 00000000 +04260994 80020150 +C2260AD0 00000002 +81820150 7C046000 +60000000 00000000 +C2260B58 00000002 +81820150 7C036000 +60000000 00000000 +04260BCC 80020150 +04260DE4 80020150 +C226183C 00000002 +81820150 7C056000 +60000000 00000000 +C22618CC 00000002 +81820150 7C066000 +60000000 00000000 +C2261F8C 00000002 +81820150 7C006000 +60000000 00000000 +C2262FFC 00000002 +81820150 7C006000 +60000000 00000000 +C2263050 00000002 +81820150 7C006000 +60000000 00000000 +C22634EC 00000002 +81820150 7C006000 +60000000 00000000 +C2263B7C 00000002 +81820150 7C006000 +60000000 00000000 +C22626CC 00000002 +81820150 7C006000 +60000000 00000000 +C2262A1C 00000002 +81820150 7C006000 +60000000 00000000 +0425FB70 80620150 +C225FC54 00000002 +81820150 7C046000 +60000000 00000000 +04264ADC 80620150 +C2264EEC 00000002 +80820150 38840001 +60000000 00000000 +C225F2AC 00000002 +81820150 7C1B6000 +60000000 00000000 +C225DAFC 00000002 +81820150 7C006000 +60000000 00000000 +C225DB98 00000002 +81820150 7C156000 +60000000 00000000 +C225DC88 00000002 +81820150 7C036000 +60000000 00000000 +C225DF4C 00000002 +81820150 7C006000 +60000000 00000000 +C225ED78 00000002 +81820150 7C006000 +60000000 00000000 +C225EDA4 00000002 +81820150 7C046000 +60000000 00000000 +C2026E8C 00000002 +8182014C 7C036000 +60000000 00000000 +C2023064 00000002 +8182014C 7C036000 +60000000 00000000 +0406FD08 83A2014C +040EF070 80620120 +040EE538 80820124 +040EE53C 80A20120 +040EEE70 8002011C +040EEDA4 80020124 +040EEDD4 80020118 +040EEE10 1C1F0010 +040EECCC 1FA00010 +040EEDEC 80020120 +040EED88 80020114 +C20EE528 00000013 +7C0802A6 90010004 +9421FF00 BE810008 +83E2014C 38600004 +3D808016 618C9238 +7D8903A6 4E800421 +7C7E1B78 83A20124 +83820120 3B600000 +38000000 901D0000 +3A800000 1C7B0004 +7EA3E02E 2C150000 +4182001C 90150000 +90150004 3A940001 +3AB50008 7C14F000 +4180FFEC 3B7B0001 +3BBD0004 7C1BF800 +4180FFC0 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +040EECA0 80020118 +040EED24 8002011C +040EEC50 80020114 +040F16E0 80A20124 +040F10B0 80820124 +040F13FC 80820124 +040F15E4 80820124 +040F11B8 80820124 +040F12D4 80820124 +041093D4 80620124 +040EFD94 80820124 +0409D4E0 80820124 +C20EF118 00000002 +56A4103A 80620120 +7C63202E 00000000 +040EF388 80620120 +040F0FF4 80620124 +040F0BA0 80820124 +040EFC88 80820124 +040EFB7C 80820124 +040F14E8 80620124 +040F0DC8 80820124 +040F1100 80620124 +0409D828 80820124 +040EFEB0 80820124 +0409D080 80820124 +040F0740 80820124 +040EFA70 80820124 +040F084C 80820124 +0409D92C 80820124 +040F121C 80620124 +0409DB5C 80820124 +040F00E8 80820124 +040F01F4 80820124 +040F0CAC 80820124 +0409D3C8 80820124 +040F040C 80820124 +0409D2B0 80820124 +040F0300 80820124 +040F0ED4 80820124 +0409DA44 80820124 +040F0528 80820124 +040EFFCC 80820124 +0409D710 80820124 +040F0634 80820124 +040F0A84 80820124 +0409D198 80820124 +040F0968 80820124 +0409D5F8 80820124 +040F1340 80620124 +040EEB20 80620124 +0410B554 80620124 +0410B398 80620124 +04109528 80620124 +0410A110 80C20124 +04109F40 80C20124 +040EEB04 80620124 +0410B398 80620124 +04108EAC 80620124 +04108DC4 80620124 +0410B398 80620124 +04109448 80620124 +041093A4 80620124 +041093A4 80620124 +C212CD18 00000002 +80620098 80630070 +60000000 00000000 +C212CD30 00000002 +80620098 80630070 +60000000 00000000 +C212CD48 00000002 +80620098 80630070 +60000000 00000000 +C212CD60 00000002 +80620098 80630070 +60000000 00000000 +C212CD78 00000002 +80620098 80630070 +60000000 00000000 +C212CD90 00000002 +80820098 80840070 +60000000 00000000 +C212CDBC 00000002 +80620098 80630070 +60000000 00000000 +C21092E4 00000002 +80620098 80630020 +60000000 00000000 +C21092FC 00000002 +80620098 80630020 +60000000 00000000 +C2109314 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C2109344 00000002 +80620098 80630020 +60000000 00000000 +C210935C 00000002 +80820098 80840020 +60000000 00000000 +C2109388 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C20F587C 00000002 +80820098 80840020 +60000000 00000000 +C20F1058 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F13A4 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F154C 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C2070258 00000005 +81620118 819C2238 +1D8C0004 7D6C582E +899C0619 1D8C0010 +7D6B6214 800B000C +60000000 00000000 +C20F1164 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F1280 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +04015D9C 80020184 +04015C00 80020184 +04015BC0 80620184 +C2018D80 00000007 +801E0000 2C000002 +41820010 2C000003 +41820008 4800001C +38600006 38800000 +3D808001 618C58D0 +7D8903A6 4E800421 +801E0000 00000000 +040158F0 80620184 +04016138 2C000007 +04015F50 83E20184 +C2015F88 00000015 +48000039 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3C800041 6084C644 +7C632214 48000025 +7C8802A6 9064001C +7C802378 4800006C +4E800021 4966416C +6C2E7573 64000000 +4E800021 00000002 +00000001 00000006 +00000800 00000003 +00000001 00000002 +004FA690 00000004 +00000002 00000006 +005D12E0 00000005 +00000004 00000006 +0096C800 00000006 +00000001 00000003 +00000020 00000007 +60000000 00000000 +040158D8 80620184 +04015E18 83C20184 +04015CD4 80020184 +C20159B4 00000018 +39800000 1C6C001C +389F0048 7D632214 +806B0014 2C030000 +40820084 806B0010 +2C030000 41820078 +2C030001 41820024 +2C030002 41820038 +2C030003 41820060 +2C030004 4182003C +2C030005 41820050 +806B0008 800B000C +7C030214 7C1D0040 +4080003C 7C1D0378 +48000034 800B0008 +7C1A0040 40810028 +7C1A0378 48000020 +806B0008 800B000C +7C030214 7C1C0040 +4080000C 7C1C0378 +48000004 398C0001 +2C0C0005 4180FF60 +3D808001 618C5ACC +7D8903A6 4E800420 +60000000 00000000 +04015984 2C190007 +04015B94 2C1C0007 +04015914 83E20184 +C20179B4 00000002 +8182014C 7C036000 +60000000 00000000 +C20179F0 00000002 +8182014C 7C1D6000 +60000000 00000000 +C2017A08 00000002 +8182014C 7C006000 +60000000 00000000 +C2017A38 00000002 +8182014C 7C1A6000 +60000000 00000000 +C237C050 0000000C +7FECFB78 48000040 +806C0004 5463013E +2C030008 4082002C +818C0008 2C0C0000 +4182002C C02C002C +D03D002C C02C0030 +D03D0030 C02C0034 +D03D0034 48000010 +818C0000 2C0C0000 +4082FFC0 3D808037 +618CC0A8 7D8903A6 +4E800420 00000000 +C2219230 00000004 +80820178 80840008 +8084006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C20BEC18 00000002 +81820178 818C000C +800C0098 00000000 +040BEBD0 80020078 +C2160438 00000003 +8082006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C2176C40 00000004 +80820070 7C1C20AE +3D808017 618C6C8C +7D8903A6 4E800420 +60000000 00000000 +0417A890 80020074 +C2160400 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +8182014C 7C036000 +41810014 80820080 +1C630004 7C63202E +48000008 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C20BE938 00000002 +81820178 818C000C +800C009C 00000000 +040C0AB4 4800003C +040C09D0 48000040 +C2168C6C 00000008 +8182014C 398CFFFC +7C036000 41810020 +8082007C 1C630004 +7C63202E 3D808002 +618C43F4 7D8903A6 +4E800421 8001000C +38210008 7C0803A6 +4E800020 00000000 +C20285C8 0000000D +39000000 81220158 +39290001 80620060 +80830004 80A30008 +80C3000C 80E30010 +3860FFFF 90640000 +90650000 90660000 +90670000 38840004 +38A50004 38C60004 +38E70004 39080001 +7C084800 4180FFD8 +3D808002 618C8660 +7D8903A6 4E800420 +60000000 00000000 +C2027694 0000000D +38800000 7FC8F378 +7FA9EB78 81820158 +398C0001 80080000 +2C000001 40820018 +80090000 2C00FFFF +4082000C 38000001 +48000024 39080004 +39290004 38840001 +7C046000 4180FFD0 +354AFFFF 4080FFB4 +38000000 3D808002 +618C7838 7D8903A6 +4E800420 00000000 +C2388A34 00000011 +7C7E1B78 2C1EFFFF +4082007C 4800004D +7C6802A6 7FA4EB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2061 7564696F +2066696C 65202573 +20646F65 73206E6F +74206578 6973740A +00000000 00000000 +C20272DC 00000008 +38A00000 81820158 +398C0001 80030000 +90040000 38630004 +38840004 38A50001 +7C056000 4180FFE8 +3D808002 618C73D4 +7D8903A6 4E800420 +60000000 00000000 +C2026CBC 00000012 +81620158 396B0001 +38800000 80A20090 +80E20060 80C70008 +80E7000C 39800000 +88050001 7C000774 +7C030000 4082002C +80060000 2C000001 +40820020 80070000 +2C00FFFF 40820014 +3D808002 618C6DF8 +7D8903A6 4E800420 +38840001 38A50004 +38C60004 38E70004 +398C0001 7C0C5800 +4180FFB0 3463FFFF +4080FF88 3D808002 +618C6DF4 7D8903A6 +4E800420 00000000 +C2026680 0000000E +38600000 80E20090 +7CA82B78 7C892378 +81620158 396B0001 +88070001 7C000774 +7C0A0000 40820020 +80080000 2C000001 +40820014 80090000 +2C00FFFF 40820008 +4E800020 38E70004 +39080004 39290004 +38630001 7C035800 +4180FFC0 354AFFFF +4080FFA0 3860FFFF +4E800020 00000000 +C20269F8 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +83620158 3B7B0001 +83C20090 80620060 +8383000C 83A30010 +3BE00000 881E0001 +2C000005 41820044 +801D0000 2C00FFFF +41820038 801C0000 +2C00FFFF 4082002C +807D0000 3D808038 +618C8B60 7D8903A6 +4E800421 2C030001 +41820004 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFA0 +83C20090 80620060 +8383000C 83A30010 +3D808038 618C8B50 +7D8903A6 4E800421 +2C030000 41820064 +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +38600002 3D808038 +618C8D30 7D8903A6 +4E800421 3BE00000 +881E0001 2C000005 +41820010 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFD4 +BA810008 80010104 +38210100 7C0803A6 +3D808002 618C6BF0 +7D8903A6 4E800420 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C202356C 00000002 +80620158 38630001 +1C032710 00000000 +C20237B4 00000002 +80C20158 38C60001 +1C062710 00000000 +C2023B50 00000002 +80620158 38630001 +1C032710 00000000 +C20283B4 00000002 +83E20068 3BFFEE1C +60000000 00000000 +C2028508 00000002 +3FE0803B 63FFB300 +3C800001 00000000 +040268E0 80E20068 +C2026C68 00000002 +80A20068 7CA5002E +60000000 00000000 +040267E0 83E20068 +C2023254 00000028 +7C0802A6 90010004 +9421FE00 BE810008 +7C7A1B78 83020060 +83180014 83820158 +1C7C0004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3B3E0000 +1C7D0004 7F83C12E +38000000 7C03C92E +3BBD0001 7C1DE000 +4180FFE8 3A800000 +7F15C378 3BA00000 +83620090 7FD6F378 +82E20068 881B0000 +7C000774 7C1A0000 +4082006C 80160000 +2C000000 40820060 +80170000 80750000 +54631838 80820068 +7C63202E 7C030040 +40800044 387CFFFF +1C630004 7D63C214 +7D94E050 398CFFFF +7C14E000 4080001C +800BFFFC 900B0000 +396BFFFC 398CFFFF +2C0C0000 4181FFEC +93B50000 38000001 +90160000 3AD60004 +3B7B0004 3AF70008 +3BBD0001 7C1DE000 +4081FF74 3A940001 +3AB50004 7C14E000 +4081FF54 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 80010204 +38210200 7C0803A6 +4E800020 00000000 +C2023578 00000005 +3C6068DB 60638BAD +7C63F096 7C636670 +3D808002 618C3634 +7D8903A6 4E800420 +60000000 00000000 +C2088008 00000003 +38802710 7C6419D6 +90610018 38600000 +60000000 00000000 +C2023148 00000003 +3C8068DB 60848BAD +7C841896 7C836670 +4E800020 00000000 +C2023B5C 00000005 +3C6068DB 60638BAD +7C63D896 7C7A6670 +3D808002 618C3C18 +7D8903A6 4E800420 +60000000 00000000 +C21A56F4 0000000D +38600014 3D808002 +618C6F2C 7D8903A6 +4E800421 887F0070 +81820150 398C0001 +7C036000 40800020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3B9C0001 +3BFF0024 2C1C0006 +4180FFC4 3D80801A +618C5730 7D8903A6 +4E800420 00000000 +C202785C 0000004A +7C0802A6 90010004 +9421FF00 BE810008 +3860000C 3D808002 +618C6F2C 7D8903A6 +4E800421 3D808016 +618CB184 7D8903A6 +4E800421 2C030000 +41820090 38600000 +3D808003 618C2330 +7D8903A6 4E800421 +8082014C 7C032000 +41810070 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A800000 7E83A378 +3D808016 618C9370 +7D8903A6 4E800421 +8082014C 7C032000 +41810020 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A940001 2C140003 +4180FFBC 4800006C +3A800000 7E83A378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820040 +7E83A378 3D808003 +618C2330 7D8903A6 +4E800421 8082014C +7C032000 41810020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140004 4180FFA0 +806D9348 2C0300D9 +41820010 2C0300E5 +41820008 48000020 +3860000C 38A00002 +38C04000 3D808002 +618C702C 7D8903A6 +4E800421 806D9348 +2C030046 41820010 +2C030047 41820008 +48000020 3860000C +38A00000 38C00C00 +3D808002 618C702C +7D8903A6 4E800421 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 1C630003 +80820108 7C841A14 +88640001 906D8238 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D808002 +618C7168 7D8903A6 +4E800421 4800001C +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +3D808002 618C7488 +7D8903A6 4E800421 +2C030001 4182FFD4 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C21A57FC 00000009 +A07E0016 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D80801A +618C5814 7D8903A6 +4E800420 00000000 +C2028404 00000002 +80620060 80630014 +80030000 00000000 +C2028420 00000002 +81820060 818C0014 +800C0000 00000000 +C2028440 00000002 +81820060 818C0014 +800C0004 00000000 +C202845C 00000002 +81820060 818C0014 +800C0008 00000000 +C2028478 00000002 +81820060 818C0014 +800C000C 00000000 +C2028498 00000002 +80620060 80630014 +80030000 00000000 +C2026C3C 00000002 +80820060 80840010 +60000000 00000000 +C2026C5C 00000003 +80620060 8063000C +1C850004 7C04192E +60000000 00000000 +C2026CB0 00000002 +80C20060 80C60008 +60000000 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2026E38 00000002 +80820060 80840010 +7C7D212E 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2028738 00000002 +80620060 8063000C +80030000 00000000 +C2028770 00000002 +81820060 818C0010 +906C0000 00000000 +C202890C 00000002 +81820060 818C000C +3BAC0004 00000000 +C2028910 00000002 +80620060 8063000C +80030004 00000000 +C2028948 00000002 +81820060 818C0010 +906C0004 00000000 +C202895C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2028960 00000002 +80620060 8063000C +800300D8 00000000 +C2028998 00000002 +81820060 818C0010 +906C00D8 00000000 +C20289AC 00000002 +81820060 818C000C +3BAC0008 00000000 +C20289B0 00000002 +80620060 8063000C +80030008 00000000 +C20289E8 00000002 +81820060 818C0010 +906C0008 00000000 +C2028780 00000002 +81820060 818C000C +900C0000 00000000 +C20287C4 00000002 +80620060 80630010 +60000000 00000000 +C20287C8 00000002 +80820060 80840004 +60000000 00000000 +C20287CC 00000002 +80A20060 80A50008 +60000000 00000000 +C20287D0 00000002 +80C20060 80C6000C +60000000 00000000 +C20288BC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C20288C0 00000002 +80620060 8063000C +800300CC 00000000 +C20288F8 00000002 +81820060 818C0010 +906C00CC 00000000 +C20267F4 00000002 +83420060 835A0008 +60000000 00000000 +C20267F0 00000002 +83820060 839C000C +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C202719C 00000002 +80C20060 80C6000C +60000000 00000000 +C2027290 00000002 +80820060 80840004 +60000000 00000000 +C20272D4 00000002 +80620060 80630004 +60000000 00000000 +C20272D8 00000002 +80820060 80840008 +60000000 00000000 +C2027454 00000002 +80820060 80840010 +7C7D212E 00000000 +C2027464 00000002 +80620060 80630004 +60000000 00000000 +C2027BB4 0000000D +81820060 806C0010 +808C0004 80AC0008 +80CC000C 38E00000 +3800FFFF 81020158 +2C070000 41820014 +90030000 90040000 +90050000 90060000 +38630004 38840004 +38A50004 38C60004 +38E70001 7C074000 +4180FFD0 3D808002 +618C7C9C 7D8903A6 +4E800420 00000000 +C2027D4C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2027D50 00000002 +80620060 8063000C +800300D8 00000000 +C2027CE8 00000002 +81820060 818C000C +906C00CC 00000000 +C2027CAC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C2027CB0 00000002 +81820060 818C000C +800C00CC 00000000 +C2027CFC 00000002 +81820060 818C000C +3BAC0004 00000000 +C2027D00 00000002 +80620060 8063000C +80030004 00000000 +C2087D3C 00000011 +2C1E0000 41820010 +2C1E000D 41820018 +48000024 3D808008 +618C7D78 7D8903A6 +4E800420 3D808008 +618C7F84 7D8903A6 +4E800420 81820020 +81420148 39600000 +4800001C 1C6B0010 +7C636214 88630000 +7C03F000 41820020 +396B0001 7C0B5000 +4180FFE4 3D808008 +618C803C 7D8903A6 +4E800420 3D808008 +618C7FFC 7D8903A6 +4E800420 00000000 +C20230D8 00000002 +80020158 2C030000 +60000000 00000000 +04023630 80620158 +040268B8 80020158 +C2027288 00000002 +81820158 7C056000 +60000000 00000000 +C2027278 00000002 +80620158 7C051810 +60000000 00000000 +C20273B4 00000002 +81820158 7C056010 +60000000 00000000 +C20273B8 00000002 +81820158 7C056000 +60000000 00000000 +C2023228 00000002 +81820158 7C036000 +60000000 00000000 +C2027140 00000002 +81820158 7C1C6000 +60000000 00000000 +04026C34 80020158 +C2027008 00000002 +81820158 7C1B6000 +60000000 00000000 +C22FF870 0000000A +80620158 48000019 +D03F0154 8062015C +4800000D D03F0194 +4800002C 9421FFF4 +6C638000 C822CA08 +90610008 3C604330 +90610004 C8410004 +EC220828 3821000C +4E800020 80010024 +60000000 00000000 +043883F8 38840037 +C2026880 00000002 +80620158 7C171800 +60000000 00000000 +04026EA4 80820020 +C202742C 00000002 +80820024 7C84E82E +60000000 00000000 +C2026E10 00000002 +80820024 7C84E82E +60000000 00000000 +C2028970 00000002 +80820024 808400D8 +60000000 00000000 +C2028748 00000002 +80820024 80840000 +60000000 00000000 +C20288D0 00000002 +80820024 808400CC +60000000 00000000 +C20289C0 00000002 +80820024 80840008 +60000000 00000000 +C2028920 00000002 +80820024 80840004 +60000000 00000000 +C2023E34 00000002 +80820024 7C84002E +60000000 00000000 +04023234 80820090 +040267DC 83C20090 +C2027AD0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2026664 00000002 +80820060 80A40008 +8084000C 00000000 +C2026E60 00000002 +80820060 8004000C +60000000 00000000 +C20268DC 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2027198 00000002 +83C20060 83DE0000 +60000000 00000000 +C2028368 00000002 +80620060 80630000 +60000000 00000000 +C202645C 00000002 +80620060 80630000 +60000000 00000000 +C20283A8 00000002 +83C20060 83DE0000 +60000000 00000000 +C20283B8 00000002 +3C608043 60633C24 +60000000 00000000 +C2028590 00000002 +3CC08044 60C61064 +60000000 00000000 +C2028530 00000002 +3CC08043 60C63C64 +60000000 00000000 +C20286B0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2027E0C 00000002 +83E20060 83FF0000 +60000000 00000000 +C20270D0 00000002 +83E20060 83FF0004 +60000000 00000000 +C2026FC8 00000002 +83820060 839C0004 +60000000 00000000 +C2026C28 00000002 +83C20060 83DE0000 +60000000 00000000 +C20267C4 00000002 +83A20060 83BD0000 +60000000 00000000 +C202749C 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2024DC8 00000002 +80A20060 80A50000 +60000000 00000000 +C202766C 00000002 +83A20060 83DD0008 +83BD000C 00000000 +C20269DC 00000002 +83020060 8338000C +83180010 00000000 +C21647FC 00000004 +80820178 80840008 +80840050 1C630002 +7C63222E 4E800020 +60000000 00000000 +C226B40C 00000023 +2C041388 41800108 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3BA4EC78 +3C608049 6063E6C8 +83830088 80620178 +80630028 8063000C +1C9C0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 4800008C +48000051 7C6802A6 +7FA4EB78 7F85E378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20737461 +67652025 640A0000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 3CA0804A +60000000 00000000 +C21C60C8 0000002B +80610014 7C0802A6 +90010004 9421FF00 +BE810008 7C7D1B78 +3C608049 6063E6C8 +83830088 3B400000 +7FA3EB78 48000075 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820034 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084002C 1CBC0004 +7C84282E 4800003D +3B400001 7FA3EB78 +7F84E378 38A00001 +3D80803D 618C7070 +7D8903A6 4E800421 +7F5A1B78 48000084 +4E800021 67724675 +6E637469 6F6E0000 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 4800004C +1C680008 7D633A14 +806B0000 54600001 +40820018 1C830004 +806B0004 7C635214 +7C64492E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFB0 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80610014 00000000 +C22599EC 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83820100 83620154 +7F63DB78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3A800000 +1C740020 7C83E214 +80640004 2C030000 +41800028 8864000A +3D808016 618C4330 +7D8903A6 4E800421 +2C030000 4182000C +7E9DF1AE 3BBD0001 +3A940001 7C14D800 +4180FFC0 2C1D0000 +4082002C 7F65DB78 +48000014 1C850020 +7C84E214 38600000 +90640004 38A5FFFF +2C050000 4080FFE8 +4BFFFF8C 7FA3EB78 +3D808038 618C0580 +7D8903A6 4E800421 +7FE3F0AE 1C9F0020 +7C84E214 3860FFFF +90640004 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +7FE3FB78 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225B39C 00000003 +80C20178 80C60004 +80C60000 38C60004 +60000000 00000000 +C225BC08 00000003 +80820100 1C630020 +7C632214 8063001C +4E800020 00000000 +042251A4 80020104 +04225204 80020104 +042251C8 80020104 +040569FC 80820110 +04056A2C 80A20110 +04056A64 80A20110 +04056A9C 80A20110 +04056AD4 80A20110 +04056B0C 80A20110 +04056B44 80A20110 +04259FE0 88030009 +0425B270 92FF00A0 +0425B274 881F00A8 +0425B294 981F00A8 +0425B2A8 889F00A9 +0425B1E8 3BFF0220 +0425B1D0 92DF03A0 +0425B044 92FC01A0 +0425B048 881C01A8 +0425B068 981C01A8 +0425B07C 889C01A9 +0425AFB0 3B9F0160 +0425AEDC 901B0020 +0425AEE0 881B0028 +0425AEFC 807B0020 +0425AF20 881B0029 +0425AF28 807B0020 +0425BB40 8004001C +C225A0F4 0000000A +81820154 7C036000 +4182002C 398CFFFF +7C036000 41820020 +1C030020 7C7F0214 +88630009 7C630774 +2C03FFFF 41820008 +48000014 3D808025 +618CA1D8 7D8903A6 +4E800420 807E0000 +60000000 00000000 +C225A62C 00000002 +81820154 7C056040 +60000000 00000000 +C2259FB4 00000002 +81820154 7C1E6000 +60000000 00000000 +C2259C4C 0000000A +81820154 7C036000 +41820020 398CFFFF +7C036000 41820024 +3D808025 618C9C84 +7D8903A6 4E800420 +3D808025 618C9C64 +7D8903A6 4E800420 +3D808025 618C9C74 +7D8903A6 4E800420 +60000000 00000000 +C2259C90 00000002 +81820154 7C036000 +60000000 00000000 +C2259E44 00000002 +81820154 7C036040 +60000000 00000000 +0425A0D4 80620154 +0425AA10 80E20154 +0425B580 80020154 +0425A578 83E20100 +0425A4C4 83E20100 +04259FCC 80020100 +04259CA0 80620100 +0425BB30 80820100 +0425A0A4 83E20100 +04259E54 80620100 +C225A9FC 00000002 +7C7C1B78 83E20100 +60000000 00000000 +C225A53C 00000002 +80620154 7C1E1800 +60000000 00000000 +0425A5A0 1C050020 +0425A634 1C050020 +0425A738 1C000020 +0425A7B8 1C000020 +0425A540 3BFF0020 +04259FC4 1C9E0020 +04259C98 1C030020 +0425AD6C 1C170020 +0425AD9C 3AD60020 +0425B0E8 3B9C0020 +0425B314 3BFF0020 +0425AF88 3B7B0040 +0425BB38 1C000020 +0425A0B8 1C050020 +0425A0F8 1C030020 +0425A27C 1C840020 +04259E4C 1C030020 +C2027A14 00000002 +80620108 7C630214 +88A30000 00000000 +04026EF0 80020108 +C20279E0 00000002 +80620108 7C630214 +88030001 00000000 +C21C17A8 00000002 +8082010C 7C840214 +80840000 00000000 +041C0784 8062010C +041C06D4 8002010C +041C1EC8 8002010C +C21C46A8 00000002 +8062010C 7C630214 +80630000 00000000 +041C0FD8 8002010C +041C0F8C 8002010C +041C0828 8082010C +041C2F60 8002010C +041C302C 8002010C +C21C28F0 00000002 +8382010C 3B9CFFCC +60000000 00000000 +C2223930 00000003 +3D80803D 618C7068 +7D8903A6 4E800421 +7C7F1B78 00000000 +C225ACA0 000000B3 +806DB5F4 480004DD +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820568 906D4A08 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E000C +3D808037 618C0E44 +7D8903A6 4E800421 +7C7D1B78 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00082 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0010 38A00000 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 82DD0010 +7EC3B378 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EC3B378 3D808037 +618C0928 7D8903A6 +4E800421 82D60008 +2C160000 4082FFCC +82820100 3AA00000 +8074001C 3D808016 +618C4430 7D8903A6 +4E800421 2C030000 +4182000C 38000002 +48000008 38000001 +98140008 3A940020 +3AB50001 80620154 +7C151800 4180FFC4 +3AC00000 82E20100 +831D0010 80620154 +3863FFFF 7C161800 +418201A0 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E0000 +3D808037 618C0E44 +7D8903A6 4E800421 +7C751B78 7E83A378 +888DC1A9 7EA5AB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00083 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00003 3D808038 +618CFD54 7D8903A6 +4E800421 7EA3AB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7EA3AB78 +7F04C378 4800029D +92B70000 88170008 +2C000001 418200A8 +418000AC 7EA3AB78 +88970009 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +38760002 6C638000 +90610084 3C604330 +90610080 C822C9B8 +C8010080 EC200828 +7EA3AB78 38800010 +3D808036 618CF7B0 +7D8903A6 4E800421 +7EA3AB78 3D808037 +618C0928 7D8903A6 +4E800421 7EA3AB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +48000028 38000000 +98170008 7EA3AB78 +38800010 3D808037 +618C1D9C 7D8903A6 +4E800421 48000004 +3AD60001 3AF70020 +83180008 2C180000 +4082FE44 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 806DB5F8 +80630010 3D808037 +618C0E44 7D8903A6 +4E800421 7C751B78 +7E83A378 888DC1A9 +7EA5AB78 3D808039 +618C0A70 7D8903A6 +4E800421 7E83A378 +3C808039 60841070 +38A00004 38C00083 +3D808039 618C069C +7D8903A6 4E800421 +7E83A378 3C808022 +6084EAE0 38A00004 +3D808038 618CFD54 +7D8903A6 4E800421 +7EA3AB78 38800000 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7FA3EB78 38810080 +80A20154 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 7EA3AB78 +80810080 480000C5 +7EA3AB78 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EA3AB78 38800010 +C022C9F8 3D808036 +618CF7B0 7D8903A6 +4E800421 7EA3AB78 +3D808037 618C0928 +7D8903A6 4E800421 +7EA3AB78 38800006 +38A00400 3CC08036 +60C6414C 38E00000 +39000000 39200000 +4CC63182 3D808036 +618C4C08 7D8903A6 +4E800421 80620100 +80820154 3884FFFF +1C840020 7EA4192E +BA810008 80010104 +38210100 7C0803A6 +3D808025 618CB31C +7D8903A6 4E800420 +4E800021 6D65784D +61704461 74610000 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +3D808000 618CC2F8 +7D8903A6 4E800421 +3D808037 618CC444 +7D8903A6 4E800421 +7C7D1B78 3C809000 +60840008 3D808037 +618CAE90 7D8903A6 +4E800421 387D0000 +389E0000 3D808037 +618CCC90 7D8903A6 +4E800421 387F0000 +389D0000 3D808037 +618C1C68 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +38600000 906D4A08 +38600004 00000000 +C225A014 00000004 +808D4A08 2C040000 +4182000C A3BC0000 +48000008 83A10024 +60000000 00000000 +C2259F64 00000004 +80ED4A08 2C070000 +4182000C 80A70014 +48000008 80A60038 +60000000 00000000 +C2173860 00000004 +2C03001A 41800014 +3D808017 618C38EC +7D8903A6 4E800420 +5463063E 00000000 +C21A50AC 00000002 +806200D4 4E800020 +60000000 00000000 +C21A45BC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3FE0803D 63FFACA4 +3D80801A 618C50AC +7D8903A6 4E800421 +7C7E1B78 7FFDFB78 +7FDCF378 889D0001 +2C040008 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C040008 +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 7FFDFB78 +7FDCF378 889D0001 +2C04000E 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C04000E +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 BA810008 +80010104 38210100 +7C0803A6 3BE00000 +60000000 00000000 +C21A4444 00000002 +81820164 7C1B6040 +60000000 00000000 +0401CEAC 80620164 +C21A4568 00000002 +81820164 7C006040 +60000000 00000000 +C21A43E0 00000002 +81820164 7C046040 +60000000 00000000 +C21A448C 00000002 +81820164 7C006040 +60000000 00000000 +C21A3F2C 00000002 +81820164 7C006040 +60000000 00000000 +041A4560 3BFF0018 +041A43D8 38630018 +041A4484 38630018 +041A3F24 3BFF0018 +C21A4D14 00000002 +81820168 7C006040 +60000000 00000000 +C21A50A0 00000002 +806200D8 4E800020 +60000000 00000000 +041A4D0C 38630014 +C21A43EC 00000046 +7C0802A6 90010004 +9421FF00 BE810008 +807E0014 2C030000 +418201EC 3D808033 +618C796C 7D8903A6 +4E800421 7C741B79 +418201D4 807E0014 +3D808001 618C63D8 +7D8903A6 4E800421 +7C7C1B78 80620184 +806300C0 3863001F +54630034 7C7B1B78 +387C001F 54630034 +7FBB1A14 38600063 +54630034 7C7D1A14 +80A20184 808500C0 +7C641850 906500C4 +38000000 900DAD28 +7E83A378 38800000 +7F65DB78 38DC001F +54C60034 38E00021 +39000001 3D208001 +6129615C 39400000 +3D808038 618CF6D4 +7D8903A6 4E800421 +3D808001 618C61A0 +7D8903A6 4E800421 +2C030000 4182FFEC +7FA3EB78 7F64DB78 +7F85E378 3D808001 +618C6A54 7D8903A6 +4E800421 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 418200F8 +7F43D378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A00014 +3D808000 618C3100 +7D8903A6 4E800421 +7F43D378 38810080 +48000051 80610080 +2C030000 41820008 +907E0010 80610084 +2C030000 41820008 +907E0004 80610088 +2C030000 41820008 +907E0008 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000070 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6A4675 6E637469 +6F6E0000 80620184 +38630010 38800000 +908300B4 BA810008 +80010104 38210100 +7C0803A6 38000000 +60000000 00000000 +C21A40C8 0000002B +7C0802A6 90010004 +9421FF00 BE810008 +807A0010 2C030000 +41820124 807A0010 +3D808001 618C6BE0 +7D8903A6 4E800421 +7C7D1B78 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 418200E8 +7FC3F378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A0000F +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 38810080 +48000051 80610080 +2C030000 41820008 +907A0004 80610084 +2C030000 41820008 +907A0008 80610088 +2C030000 41820008 +907A000C 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000060 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6E4675 6E637469 +6F6E0000 BA810008 +80010104 38210100 +7C0803A6 7F23CB78 +60000000 00000000 +C20056BC 00000003 +3D808025 618CD5AC +7D8903A6 4E800420 +4E800020 00000000 +C20056B8 00000002 +80620000 4E800020 +60000000 00000000 +C200561C 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3CA08048 8BC59D30 +8BE59D33 83A200D4 +38800000 1CA40018 +7CBD2A14 88C50001 +7C06F000 4082000C +80650010 48000010 +38840001 2C04002C +4081FFDC 38800000 +1CA40018 7CA32A14 +88C50000 7C06F800 +4082000C 8865000C +48000010 38840001 +2C0600FF 4082FFDC +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +040D6968 80020050 +040D69D0 80020054 +040966A8 80020054 +040D68CC 80020038 +04096704 8002003C +040D6830 80020048 +04096800 8002004C +04096878 8002004C +0409655C 80020040 +0409660C 80020040 +040967C4 80020044 +0409677C 80020044 +C20056A8 00000005 +2C030037 41820018 +81820060 818C0004 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 +C23D7098 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 3A800000 +4800006C 807F23F8 +1C140004 7EA3002E +82F50000 2C170000 +41820050 2C1D0000 +41820008 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4D7C 7D8903A6 +4E800421 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4CA0 7D8903A6 +4E800421 48000004 +3A940001 801F23F4 +7C140000 4180FF90 +48000004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7094 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +2C03000B 408000B4 +48000031 4800004D +48000051 48000055 +48000059 4800005D +48000061 48000065 +48000069 4800006D +48000071 48000075 +7C8802A6 1CA30004 +7C842A14 80A40000 +54A501BA 7C842A14 +7C8903A6 4E800420 +80620148 480000E0 +8062014C 480000D8 +80620150 480000D0 +80620000 480000C8 +8062016C 480000C0 +80620170 480000B8 +80620154 480000B0 +80620100 480000A8 +8062005C 480000A0 +8062010C 48000098 +80620178 80630028 +80630000 48000088 +7C641B78 48000049 +7C6802A6 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +45585F47 65744461 +74612829 20646F65 +73206E6F 74206861 +76652064 61746120 +666F7220 69642025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7068 00000005 +3D808049 618CE6C8 +818C0088 1D8C0004 +8062010C 7C63602E +80630004 4E800020 +60000000 00000000 +C23D7088 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +80620178 80630008 +8063004C 1C9F0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000084 +48000051 7C6802A6 +7FE4FB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 6974656D +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D708C 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3C608049 +6063E6C8 83A30088 +80620178 80630028 +8063000C 1C9D0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000080 +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2073 74616765 +20256420 646F6573 +206E6F74 20686176 +65206974 656D2025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7084 00000003 +1C630004 80820124 +7C63202E 4E800020 +60000000 00000000 +C23D7064 00000025 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +A07F0000 2C030004 +41820010 2C030003 +41820020 480000E0 +807F002C 83A30004 +80620178 80630008 +8063004C 48000020 +3C608049 6063E6C8 +83A30088 80620178 +80630028 8063000C +48000004 1C9D0008 +7F832214 807C0000 +7C1E1800 41810014 +807C0004 1C9E0002 +7C63222E 4800008C +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 61727469 +636C6520 49442025 +640A0000 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D707C 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +3C608049 6063E6C8 +80630088 80820178 +80840028 80840014 +1C630008 7D432214 +806A0004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7058 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 80620178 +80630008 8063004C +1C9F0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 48000090 +48000051 7C6802A6 +7FA4EB78 7FE5FB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20666967 +68746572 2025640A +00000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7070 00000050 +7C0802A6 90010004 +9421FF00 BE810008 +7C9F2378 7CBE2B78 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 418200A0 +829D0000 3AA00000 +2C140000 41820090 +387D0004 1C950004 +7EC3202E 2C160000 +41820068 7EC3B378 +3D80803D 618C7074 +7D8903A6 4E800421 +7FE3FB78 7FC4F378 +7EA5AB78 48000071 +7C691B78 8176000C +81560000 39000000 +48000024 1C880008 +7CA45A14 80650004 +7C635214 80850000 +1C840004 7C64492E +39080001 80760010 +7C081800 4180FFD8 +3AB50001 7C15A000 +4180FF80 38600001 +48000194 38600000 +4800018C 4E800021 +69744675 6E637469 +6F6E0000 7C6B1B78 +7C8A2378 7CAC2B78 +2C0A0001 41820014 +80620178 80630008 +8063004C 48000014 +80620178 80630028 +8063000C 48000004 +1C8B0008 7C632214 +80630004 2C030000 +41820078 1C8C0002 +7C63222E 80820088 +2C03002B 41800020 +2C0300A1 41800020 +2C0300D0 41800024 +2C0300ED 41800028 +48000030 80840000 +48000034 3863FFD5 +80840004 48000028 +3863FF5F 80840008 +4800001C 3863FF30 +8084000C 48000010 +3863FF13 80840010 +48000004 1C63003C +7C632214 4E800020 +2C0A0001 41820010 +4800009D 7C8802A6 +48000010 4800009D +7C8802A6 48000004 +4800004D 7C6802A6 +7D655B78 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +78447420 646F6573 +206E6F74 20636F6E +7461696E 20616E79 +20697465 6D732066 +6F722025 73202564 +0A000000 4E800021 +66696768 74657200 +4E800021 73746167 +65000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7080 00000068 +7C0802A6 90010004 +9421FF00 BE810008 +D3C10080 D3A10084 +D3C10088 7C7F1B78 +7C9E2378 FFE00890 +FFC01090 FFA01890 +83BF002C 807D0004 +2C030004 40820268 +835D2238 80620144 +1C9A0004 7C63202E +2C030000 41820140 +1C9E0020 7F832214 +80620128 1C9A0004 +7C63202E 2C030000 +41820184 809C0000 +1C840018 7F632214 +7FE3FB78 388000EF +3CA02000 38C00000 +FC20F890 FC40F090 +FC60E890 3D808006 +618C93AC 7D8903A6 +4E800421 38600000 +907D0014 387E0190 +907D0010 3860FFFF +907D05A4 807B0004 +2C030000 41820174 +907D0590 807B000C +907D03EC 807D0590 +7FE3FB78 FC20F890 +FC40F090 FC60E890 +3D808006 618CEBE8 +7D8903A6 4E800421 +38600000 907D03E4 +7FE3FB78 3D808006 +618CE9B4 7D8903A6 +4E800421 C0028874 +FC00F840 40820030 +7FE3FB78 3D80800C +618C0408 7D8903A6 +4E800421 7FE3FB78 +3D808007 618C3240 +7D8903A6 4E800421 +48000018 7FE3FB78 +3D808007 618C3354 +7D8903A6 4E800421 +807C000C 907D21A0 +807C0010 907D219C +807C0014 907D21A4 +807C0018 907D21A8 +807C001C 907D21AC +4800018C 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +48000130 4E800021 +6572726F 723A206B +6266756E 6374696F +6E20696E 20257320 +6D697373 696E6720 +6D6F7665 5F6C6F67 +69632074 61626C65 +0A000000 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +480000D0 4E800021 +6572726F 723A2025 +73206D69 7373696E +67206674 636D6420 +73796D62 6F6C0A00 +4800002D 7C6802A6 +80820114 1CBA0008 +7C84282E 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000080 4E800021 +6572726F 723A2066 +74636D64 20696E20 +2573206D 69737369 +6E672061 6E696D61 +74696F6E 20666F72 +20737461 74652025 +640A0000 48000021 +7C6802A6 809D0004 +3D808034 618C56A8 +7D8903A6 4E800421 +48000028 4E800021 +6572726F 723A2066 +69676874 65722025 +64206973 206E6F74 +206B6972 62790A00 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +48000000 C3C10080 +C3A10084 C3C10088 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D709C 0000001E +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +38810080 7FA5EB78 +38C00000 3D808001 +618C6C64 7D8903A6 +4E800421 7C7A1B78 +83210080 2C190000 +41820024 7F23CB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F23CB78 7FC4F378 +48000035 807A0020 +809A0000 3D808032 +618C8F50 7D8903A6 +4E800421 7F43D378 +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C6C1B78 +7C892378 80EC000C +814C0000 39000000 +48000028 1C680008 +7D633A14 806B0004 +7C635214 808B0000 +1C840004 7C64492E +48000004 39080001 +806C0010 7C081800 +4180FFD4 4E800020 +60000000 00000000 +C23D7090 000000A4 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3FC0804A +63DE04F0 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +837C0008 A06DB528 +2C030000 40810010 +3863FFFF B06DB528 +480004C0 38600004 +3D808022 618C9624 +7D8903A6 4E800421 +7C7D1B78 93BE000C +38600000 907E0008 +57A006F7 4182028C +3A800000 4800003C +7E83A378 3D80801A +618C36A0 7D8903A6 +4E800421 5460063F +4182001C 7E83A378 +3D808016 618C77E8 +7D8903A6 4E800421 +48000010 3A940001 +2C140004 4180FFC4 +38600001 3D808002 +618C4030 7D8903A6 +4E800421 38600005 +B06DB528 38600001 +987E0011 A07E0002 +1C630008 7F43DA14 +887A0000 2C030000 +41820010 2C030001 +418201D4 48000404 +806DB8E0 80630004 +881A0001 1C000014 +7F230214 887A0001 +2C030007 40820038 +81990010 2C0C0000 +418200AC 7D8903A6 +38600000 38800001 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +480003B0 887A0001 +2C030008 40820014 +818DB614 7D8903A6 +4E800421 48000394 +887A0001 2C030021 +40820030 38600000 +3D808024 618CCD64 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 4800035C +80790010 2C030000 +41820024 7C6903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +48000330 887E0000 +987E0001 887A0001 +987E0000 3A800000 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182000C +B29E0002 48000010 +3A940001 7C145800 +4180FFD0 38600001 +3D808022 618CB3A0 +7D8903A6 4E800421 +3D808039 618C0CD4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +48000238 3D80801A +618C4B9C 7D8903A6 +4E800421 881A0001 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 4800020C +57A006B5 41820148 +38600000 3D808002 +618C4030 7D8903A6 +4E800421 887C000D +7C630774 2C03FFFF +40820030 3D80801A +618C4B9C 7D8903A6 +4E800421 38000000 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 480001B4 +38600000 987E0011 +887E0000 987E0001 +887C000D 987E0000 +39800000 893E0001 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19E0002 +48000010 398C0001 +7C0C5800 4180FFD0 +38600003 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +480000C0 57A007FF +4182005C 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A94FFFF +7E800734 2C00FFFF +4181000C 887C000C +3A83FFFF 887E0000 +7E84A378 3D808022 +618C9938 7D8903A6 +4E800421 2C030000 +4182FFCC B29E0002 +48000060 57A007BD +41820058 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A940001 +889C000C 7C142000 +41800008 3A800000 +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182FFD0 +B29E0002 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D7074 0000003C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF0008 +83BF0000 839F0004 +836200F8 807B0000 +2C030014 4080013C +3B400000 833B0000 +3B1B0004 48000018 +80780000 7C03F800 +4182010C 3B5A0001 +3B180004 7C1AC800 +4180FFE8 807B0000 +1C630004 38BB0004 +7FE3292E 807B0000 +38630001 907B0000 +807C0000 5479463E +5463023E 7F63EA14 +807C0004 54604636 +2C000080 4182000C +7F43EA14 48000008 +835C0004 2C190001 +41820028 2C190004 +41820028 2C190006 +41820020 2C19000A +41820060 2C19001A +41820070 48000078 +935B0000 48000070 +57438FFF 4182001C +5743843E 38630001 +5466801E 7C66D050 +5465043E 7CDA2B78 +2C190004 41820014 +2C190006 41820004 +5743843E 4800000C +5743043E 48000004 +B07B0000 48000028 +7C7BD050 546301BA +809B0000 7C632378 +907B0000 48000010 +7C7BD050 907B0000 +48000004 3B9C0008 +3BDEFFFF 2C1E0000 +4181FF28 BA810008 +80010104 38210100 +7C0803A6 4E800020 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A206F 76657220 +32302078 46756E63 +74696F6E 7320696E +64657865 640A0000 +60000000 00000000 +C23D7078 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3C608049 +6063E6C8 80630088 +80820108 1C630003 +7C632214 88630000 +1C632710 7C63FA14 +3D80801C 618C53EC +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C2268648 00000026 +7C0802A6 90010004 +9421FF00 BE810008 +837E0008 2C1B1388 +41800100 3B7BEC78 +83FE0000 2C1F0000 +41820034 A07F0000 +2C030004 41820010 +2C030003 41820020 +480000D8 80620178 +80630008 8063004C +809F002C 80840004 +4800001C 80620178 +80630028 8063000C +3C808049 6084E6C8 +80840088 1C840008 +7F832214 807C0000 +7C1B1800 40800018 +807C0004 1C9B0002 +7C63222E 907E0008 +48000080 4800004D +7C6802A6 7F64DB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20686176 65206172 +7469636C 65204944 +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +807E000C 00000000 +C23D7060 00000016 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +83ADB8DC 2C1D0000 +41820078 83820148 +387CFFFA 7C1F1800 +41800028 387CFFFF +7C1F1800 4181001C +387CFFFA 7C63F850 +48000045 7C8802A6 +7C6320AE 48000018 +A07D0000 A09D0002 +7C84F1D6 7C632214 +7C63FA14 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +48000010 4E800021 +03020101 05060000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D706C 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +38800000 7FE5FB78 +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C2088170 00000010 +3B830000 3CA068DB +60A58BAD 7C7D2896 +7C636670 2C030000 +4082005C 2C1D1388 +41800054 3CA068DB +60A58BAD 7CBD2896 +7CA35E70 7FA5FE70 +7CA51850 1CA51388 +7FA5E850 887C000C +3C808045 60843080 +1C630E90 7C632214 +80630004 80820020 +1C630010 7C6320AE +1C632710 7FA3EA14 +48000004 7F83E378 +7FA4EB78 00000000 +C2088204 0000000F +3CA068DB 60A58BAD +7C7E2896 7C636670 +2C030000 4082005C +2C1E1388 41800054 +3CA068DB 60A58BAD +7CBE2896 7CA35E70 +7FC5FE70 7CA51850 +1CA51388 7FC5F050 +887F000C 3C808045 +60843080 1C630E90 +7C632214 80630004 +80820020 1C630010 +7C6320AE 1C632710 +7FC3F214 48000004 +881F2225 00000000 +C20884B0 00000010 +3BA30000 3CA068DB +60A58BAD 7D642896 +7D6B6670 2C0B0000 +4082005C 2C041388 +41800054 3CA068DB +60A58BAD 7CA42896 +7CAB5E70 7C85FE70 +7CA55850 1CA51388 +7C852050 897D000C +3D808045 618C3080 +1D6B0E90 7D6B6214 +816B0004 81820020 +1D6B0010 7D6B60AE +1D6B2710 7C8B2214 +48000004 7FA3EB78 +60000000 00000000 +C20CBCB4 0000000E +80840014 3D8068DB +618C8BAD 7D646096 +7D6B6670 2C0B0000 +40820050 2C041388 +41800048 7D846096 +7D8B5E70 7C8CFE70 +7D8C5850 1D8C1388 +7C8C2050 897F000C +3D408045 614A3080 +1D6B0E90 7D6B5214 +816B0004 81420020 +1D6B0010 7D6B50AE +1D6B2710 7C8B2214 +60000000 00000000 +C2075124 00000005 +7FC3F378 38800002 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C2075188 00000005 +7FC3F378 38800003 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C20751F0 00000005 +7FC3F378 7FA4EB78 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C207B4C0 00000082 +7C0802A6 90010004 +9421FF00 BE810008 +83FD0000 807D0004 +8082005C 1C630008 +7C63202E 881D0619 +1C000018 7C630214 +83C30014 7FC3F378 +48000271 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820394 +3B830008 801C0000 +2C000000 41820384 +801C0000 901D23F4 +1C600004 3D808037 +618CF1E4 7D8903A6 +4E800421 907D23F8 +3A800000 4800020C +807C0004 1C140004 +7EA3002E 38600030 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C761B78 807D23F8 +1C140004 7EC3012E +3C608045 60639080 +3D808037 618CABC8 +7D8903A6 4E800421 +9076000C 80750000 +3D808037 618C0E44 +7D8903A6 4E800421 +90760000 80150004 +90160004 3D808007 +618C4148 7D8903A6 +4E800421 3D808007 +618C4170 7D8903A6 +4E800421 7FE3FB78 +80960000 38B60008 +3D808007 618C5650 +7D8903A6 4E800421 +38D60008 7CC73378 +38A00000 38960010 +38750010 3D808007 +618C487C 7D8903A6 +4E800421 3AE00000 +48000094 8075000C +1C170004 7F23002E +3B1D02F0 807D03E0 +1C030018 7F180214 +807D03E0 38630001 +907D03E0 2C03000A +40800128 80760000 +38810080 80B90000 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38980004 80B90008 +3D808000 618CFD48 +7D8903A6 4E800421 +38000000 90180000 +38790004 38980004 +3D808001 618C1710 +7D8903A6 4E800421 +3AF70001 80150008 +7C170000 4180FF68 +3D808021 618CB2D8 +7D8903A6 4E800421 +3AE00000 48000074 +8075001C 1C170004 +7F23002E 3B1D1670 +887D166C 1C030028 +7F180214 887D166C +38630001 987D166C +2C03000B 408000D0 +80790000 90780024 +80790000 809D05E8 +1C630010 7C63202E +90780010 C0390004 +D0380000 C0390008 +D0380004 C039000C +D0380008 C0390010 +D038000C 3AF70001 +80150018 7C170000 +4180FF88 3A940001 +801C0000 7C140000 +4180FDF0 48000150 +4E800021 6D657843 +6F737475 6D650000 +480000C5 7C6802A6 +8082000C 801D0004 +1C000004 7C84002E +881D0619 1C000010 +7C840214 80840000 +3D808034 618C56A8 +7D8903A6 4E800421 +48000081 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4800009D +7C6802A6 8082000C +801D0004 1C000004 +7C84002E 881D0619 +1C000010 7C840214 +80840000 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A2063 +6F737475 6D652025 +73207573 6573206D +6F726520 7468616E +20313020 64796E61 +6D696373 0A000000 +4E800021 6572726F +723A2063 6F737475 +6D652025 73207573 +6573206D 6F726520 +7468616E 20313120 +64796E61 6D696373 +20686974 730A0000 +38000000 901D23F4 +901D23F8 BA810008 +80010104 38210100 +7C0803A6 8001002C +60000000 00000000 +C2080DC8 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C2080BCC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C21A4C98 00000011 +818200F8 816DC018 +39400000 38E00000 +812C0000 390C0004 +48000028 80680000 +7C035800 40800014 +38AC0004 1C870004 +7C64292E 38E70001 +394A0001 39080004 +7C0A4800 4180FFD8 +90EC0000 818200F8 +386C0004 1C870004 +7C632214 38800000 +38A00050 1CC70004 +7CA62850 3D808000 +618C3100 7D8903A6 +4E800421 806DB08C +60000000 00000000 +C2394A74 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +48000105 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +3BE00000 83DC0004 +480000D0 83A200F8 +3B800000 837D0000 +3B5D0004 48000088 +833A0000 80790000 +809E0004 7C041800 +4180006C 80B90014 +7C632A14 7C041800 +4181005C 3B000000 +82F90018 8079001C +1C98000C 7D832214 +80790000 808C0000 +7C632214 809E0004 +7C041800 41800024 +80790000 808C0004 +7C632214 809E0004 +7C041800 4181000C +80AC0008 48000028 +3B180001 7C18B800 +4180FFB4 3B9C0001 +3B5A0004 7C1CD800 +4180FF78 48000069 +7CA802A6 48000051 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +83DE0000 3BFF0001 +2C1F0008 40800040 +2C1EFFFF 4082FF28 +48000034 4E800021 +204C5220 53617665 +3A202053 796D626F +6C0A0000 4E800021 +25583A20 2025730A +00000000 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 3D808039 +618C4B04 7D8903A6 +4E800420 00000000 +C2394BD4 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83A200F8 3B800000 +837D0000 3B5D0004 +48000088 833A0000 +80790000 809E0198 +7C041800 4180006C +80B90014 7C632A14 +7C041800 4181005C +3B000000 82F90018 +8079001C 1C98000C +7D832214 80790000 +808C0000 7C632214 +809E0198 7C041800 +41800024 80790000 +808C0004 7C632214 +809E0198 7C041800 +4181000C 808C0008 +48000028 3B180001 +7C18B800 4180FFB4 +3B9C0001 3B5A0004 +7C1CD800 4180FF78 +48000035 7C8802A6 +4800001D 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +4800001C 4E800021 +53796D62 6F6C3A20 +25730A00 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 5760018D +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f1992e64..25d798f9 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2196,14 +2196,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000168 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E -2C030008 40820AF8 +2C030008 40820B00 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2221,21 +2221,22 @@ BE810008 3C608048 38600000 48000008 38600003 3D808002 618C4030 7D8903A6 -4E800421 480004C9 +4E800421 480004D1 887A0000 2C030000 40810020 2C030003 -40810084 2C030004 -41820088 2C030005 -418201E0 48000A20 +4081008C 2C030004 +41820090 2C030005 +418201E8 48000A28 88780014 2C030000 -40820A14 576004E7 -41820A0C 3C608048 +40820A1C 576004E7 +41820A14 3C608048 80639D60 2C030000 -418209FC 3860FFFF +41820A04 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 -2C030000 418209E0 -886DAFA0 2C030001 +2C030000 418209E8 +886DAFA0 2C030000 +41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE 48000355 @@ -4088,19 +4089,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4156,7 +4156,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4164,11 +4164,11 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 90640000 3C60803E 6063B750 48000209 7C8802A6 90830010 -480005AD 7C8802A6 +4800059D 7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 3C60803E -6063B750 4800059D +6063B750 4800058D 7C8802A6 90830008 3C60803E 6063B66C 38800644 B0830004 @@ -4181,7 +4181,7 @@ C21B1040 00000165 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A5C 4E800021 +48000A4C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4231,13 +4231,13 @@ BA810008 800100B4 7C0802A6 90010004 9421FF50 BE810008 7C731B78 80730008 -2C030000 40820354 +2C030000 40820344 3C60804A 3BA304F0 38600004 3D808022 618C9624 7D8903A6 4E800421 907D000C 3BC00000 93DD0008 -546006F7 4182018C +546006F7 4182017C 38000005 B00DB528 3BE00001 3B9E0000 9BFD0011 5783063E @@ -4253,15 +4253,13 @@ BA810008 800100B4 7D8903A6 4E800421 A01D0002 2C000000 41820038 2C000001 -41820048 2C000002 -41820048 2C000003 -41820048 2C000004 -41820048 2C000005 -4182005C 2C000006 -41820078 4800027C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000264 +41820038 2C000002 +41820038 2C000003 +41820038 2C000004 +41820038 2C000005 +4182004C 2C000006 +41820068 4800026C +38600000 48000078 38600001 48000070 38600002 48000068 38600003 48000060 @@ -4730,18 +4728,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000178 #Online/Slippi Online Scene/main.asm +C21A45B8 00000184 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 48000245 +6084DC1C 4800025D 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 38600008 4800019D 7C8802A6 4800002D -48000B50 80830000 +48000BB0 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4792,21 +4790,24 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -48000081 480000F5 +48000099 4800010D 08000000 80497758 80497758 01030000 -480001B5 480001E5 +480001DD 4800020D 09000000 80480668 80480668 02030000 -801B1588 4800027D +801B1588 480002A5 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000411 4800074D +48000439 48000775 20000000 80490880 -804D68D0 FF000000 +804D68D0 05030000 +00000000 48000965 +50000000 00000000 +00000000 FF000000 4E800021 81940000 7C0802A6 90010004 9421FF50 BE810008 @@ -4829,13 +4830,15 @@ BE810008 38600012 618CAAD0 7D8903A6 4E800421 809E0014 88840003 2C040002 -40820008 4800008C -886DAFA0 2C030001 -4182001C 2C030002 -4182001C 2C030003 -41820014 2C030000 -41820008 48000038 -48000034 886DAFC9 +40820008 4800009C +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +41820024 2C030003 +4182001C 48000048 +3C808047 60849D30 +38600006 98640005 +48000060 886DAFC9 7C630774 2C03FFFF 41820024 2C030001 4182001C 2C030000 @@ -5103,6 +5106,13 @@ BE810008 7C7D1B78 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +4BFFFE1D 3C808047 +60849D30 38600005 +98640005 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 BA810008 800100B4 382100B0 7C0803A6 38600028 987E0000 @@ -5445,6 +5455,6022 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C2068B40 00000030 #m-ex codeset +7C0802A6 90010004 +9421FF00 BE810008 +3B400000 839F0004 +80620098 1C9C0008 +7C632214 83A30004 +7FA3EB78 48000071 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820030 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084000C 7F85E378 +4800005D 3B400001 +7FA3EB78 7F84E378 +38A00000 3D80803D +618C7070 7D8903A6 +4E800421 7F5A1B78 +480000B0 4E800021 +66744675 6E637469 +6F6E0000 4E800021 +6B624675 6E637469 +6F6E0000 4E800021 +6D657850 61746368 +00000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1B0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38000000 00000000 +C23753B0 000000A9 +7C0802A6 90010004 +9421FF00 BE810008 +480002B1 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3B830000 3B9C001F +579C0034 7C9FE214 +388400A0 7FE3FB78 +7C9F2378 3D808034 +618C40E8 7D8903A6 +4E800421 7C7A1B78 +38800044 3D808034 +618C3EF0 7D8903A6 +4E800421 7C791B78 +7F43D378 7F84E378 +3D808034 618C3EF0 +7D8903A6 4E800421 +7C7B1B78 48000235 +7C6802A6 7F64DB78 +38A10080 3D808001 +618C668C 7D8903A6 +4E800421 80A10080 +7F23CB78 7F64DB78 +3D808001 618C6A54 +7D8903A6 4E800421 +7F23CB78 48000205 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C781B78 +93020178 480001FD +7D2802A6 3929FFFE +39000000 1CE80004 +A0690002 7C630734 +2C03FFFF 4182002C +7F06C378 A4690002 +7C630734 2C03FFFF +4182000C 7CC3302E +4BFFFFEC 7CC7112E +39080001 4BFFFFC8 +8062014C 3C80803B +6084A648 38A00000 +90640000 38840008 +38A50001 2C050008 +4180FFF0 7F63DB78 +7F84E378 3D808032 +618C8F50 7D8903A6 +4E800421 4800001D +7C6802A6 90620184 +480000E9 7C6802A6 +906200F8 48000390 +4E800021 00000000 +00000000 00000000 +00000000 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +FFFFFFFF FFFFFFFF +00000000 00000000 +00000001 00000001 +00000001 FFFFFFFF +FFFFFFFF 00000000 +00000000 00000001 +00000001 00000001 +4E800021 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +4E800021 4D784474 +2E646174 00000000 +4E800021 6D657844 +61746100 4E800021 +6D2D6578 00000000 +4E800021 00040004 +FFFF0008 0000FFFF +0008000C FFFF0008 +0014FFFF 00080004 +FFFF0008 001CFFFF +00080024 FFFF0018 +0000FFFF 00080038 +FFFF0010 0000FFFF +00080020 FFFF000C +000CFFFF 000C0000 +FFFF000C 0004FFFF +000C0028 FFFF000C +002CFFFF 000C0018 +FFFF000C 001CFFFF +000C0010 FFFF000C +0014FFFF 000C0020 +FFFF000C 0024FFFF +00080010 FFFF0008 +003CFFFF 0010000C +FFFF0010 0000FFFF +00100004 FFFF0008 +0028FFFF 00080008 +FFFF0008 002CFFFF +00080018 FFFF0008 +0034FFFF 00080030 +FFFF0018 0020FFFF +001CFFFF 0008FFFF +00100008 FFFF0014 +0000FFFF 00080040 +FFFF000C 007CFFFF +000C0080 FFFF000C +0084FFFF 000C0088 +FFFF0008 0044FFFF +00080048 FFFF000C +008CFFFF 000C0090 +FFFF000C 0094FFFF +000C0034 FFFF000C +0044FFFF 000C0040 +FFFF0008 0054FFFF +00080058 FFFF0030 +0000FFFF 00300004 +FFFF0018 0004FFFF +00180008 FFFF0018 +000CFFFF 00180010 +FFFF0018 0014FFFF +00180018 FFFF0018 +001CFFFF 00000004 +FFFF0004 0000FFFF +00040008 FFFF0028 +0000FFFF 00280004 +FFFF002C FFFF0028 +0008FFFF 00200000 +FFFF0020 0008FFFF +00200010 FFFF0020 +000CFFFF 00200004 +FFFF0020 0014FFFF +00240000 FFFF0024 +0004FFFF 00240008 +FFFF0024 000CFFFF +00240010 FFFF0024 +0014FFFF 00240018 +FFFF0000 0004FFFF +00000008 FFFF0000 +000CFFFF 00000018 +FFFF0000 001CFFFF +00000020 FFFF0000 +0024FFFF 0000002C +FFFF0000 0030FFFF +00000010 FFFF0000 +0014FFFF 0000FFFF +FFFF0000 7FE3FB78 +BA810008 80010104 +38210100 7C0803A6 +7C7F1B78 93EDC018 +7FE3FB78 7FA4EB78 +60000000 00000000 +C20186A8 0000000C +90010054 38610028 +48000021 7C8802A6 +38A00030 3D808000 +618C31F4 7D8903A6 +4E800421 48000038 +4E800021 02000000 +804D37EC 00000000 +03000000 803BA6C8 +0000001F 03000000 +803BA6D8 00000000 +02000000 804D37E4 +00000000 00000000 +043BA3AC 005D12E0 +041A6440 38600008 +C21A6454 00000005 +80820178 80840008 +80840068 1C630004 +7C63202E 3D80801A +618C6468 7D8903A6 +4E800420 00000000 +C21604F0 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C054C +7D8903A6 4E800420 +2C040015 00000000 +C2160578 00000005 +9421FFF8 2C03001A +41800018 38600000 +3D808016 618C05D4 +7D8903A6 4E800420 +2C040015 00000000 +C21A9C38 00000003 +80620178 80630008 +80630060 1C9F0004 +7C63202E 00000000 +C21A9C48 00000003 +80620178 80630008 +80630064 1C9F0004 +7C63202E 00000000 +C21A9C28 00000003 +80620178 80630008 +8063005C 1C9F0004 +7C63202E 00000000 +C2023F50 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F70 00000002 +8182015C 7C036000 +60000000 00000000 +C2023F90 00000002 +80820094 7C84002E +60000000 00000000 +C215ED1C 00000019 +7C0802A6 90010004 +9421FF00 BE810008 +80620178 80630014 +83C30004 83630008 +3BA00000 3B800000 +2C1B0000 4082000C +38600034 48000074 +1C7D0004 7C83F214 +A0640002 7F9C1A14 +3BBD0001 7C1DD800 +4180FFE8 7F83E378 +3D808038 618C0580 +7D8903A6 4E800421 +7C7A1B78 3BA00000 +3B800000 1C7D0004 +7C83F214 A0640002 +2C030000 41820014 +7F9C1A14 387CFFFF +7C1A1800 40810010 +3BBD0001 7C1DD800 +4180FFD4 A0640000 +987F0001 48000004 +BA810008 80010104 +38210100 7C0803A6 +8001001C 00000000 +041C2A48 4800007C +C21C24F8 00000022 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +3D808022 618C519C +7D8903A6 4E800421 +80820178 80840028 +80840014 1C630008 +7F832214 831C0000 +837C0004 2C180000 +41820098 3B400000 +3B200000 1C7A0004 +7C83DA14 A0640002 +7F391A14 3B5A0001 +7C1AC000 4180FFE8 +7F23CB78 3D808038 +618C0580 7D8903A6 +4E800421 7C771B78 +3B400000 3B200000 +1C7A0004 7C83DA14 +A0640002 2C030000 +41820014 7F391A14 +3879FFFF 7C171800 +40810010 3B5A0001 +7C1AC000 4180FFD4 +A0640000 907D0000 +38600000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +7FE3FB78 7FC4F378 +7FA5EB78 BA810008 +80010104 38210100 +7C0803A6 7C0802A6 +60000000 00000000 +C22FF064 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60636D5C +80630000 48000055 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7F1B79 +41820040 38600002 +7FC4F378 38A0000E +38C0000F 38E00000 +3900000F 39200000 +39400013 3D80803A +618C611C 7D8903A6 +4E800421 4800000C +4E800021 62676D00 +BA810008 80010104 +38210100 7C0803A6 +3860000E 00000000 +C216E980 00000084 +7C0802A6 90010004 +9421FF00 BE810008 +3D80801C 618C5A94 +7D8903A6 4E800421 +2C03FFFF 418203E0 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480003BD 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7F1B79 418203A8 +3860000E 3880000E +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 7C7E1B78 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +38800020 3D808000 +618CC160 7D8903A6 +4E800421 7FA6EB78 +7FC3F378 38800004 +3CA08037 60A5F1B0 +3D808039 618C0B68 +7D8903A6 4E800421 +7FC3F378 480001B5 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +480002E5 7F6802A6 +38600002 38800001 +3D80803A 618C6754 +7D8903A6 4E800421 +7C7C1B78 939D0000 +38000001 981C0048 +C03B0000 D03C000C +C03B0004 D03C0010 +38000001 981C0049 +3D80801C 618C5A94 +7D8903A6 4E800421 +80820178 80840014 +8084000C 1C630004 +7C83202E 7F83E378 +C022E0C8 C042E0C8 +3D80803A 618C6B98 +7D8903A6 4E800421 +807F0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7C1B78 +7FC3F378 38800003 +7F85E378 3D808039 +618C0A70 7D8903A6 +4E800421 7FC3F378 +3C808039 60841070 +38A0000F 38C00000 +3D808039 618C069C +7D8903A6 4E800421 +7F83E378 809F0004 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7F83E378 C022E0C8 +3D808036 618CF8BC +7D8903A6 4E800421 +7F83E378 3D808037 +618C0928 7D8903A6 +4E800421 3D808016 +618CAE50 7D8903A6 +4E800421 88030001 +5400CFFF 40820014 +88030000 5400FFFF +40820008 4800000C +C03B001C D03C003C +3C608036 6063A4A8 +80630000 3C80C03F +60840034 7C032000 +41820014 C03B0020 +C05C0038 EC21102A +D03C0038 7FC3F378 +4800000D 48000180 +4E800021 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +83DF002C 83BF0028 +839E0000 48000129 +7F6802A6 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +7FA3EB78 3D808037 +618C32E8 7D8903A6 +4E800421 7FA3EB78 +38810080 38A00002 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 38A10084 +3D808000 618CB1CC +7D8903A6 4E800421 +C03D002C C05B0014 +EC211024 C0410084 +EC21102A D03C0000 +C03D0030 C05B0014 +EC211024 C0410088 +EC211028 D03C0004 +C03D002C C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0024 +C03D0030 C05B0010 +EC2100B2 C05B0018 +EC2100B2 D03C0028 +7FA3EB78 3D808000 +618CB09C 7D8903A6 +4E800421 2C030000 +40820030 7F83E378 +3D80803A 618C5CC4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 4E800021 +43D70000 42280000 +3D851EB8 BF800000 +3C23D70A 40800000 +40800000 41600000 +C1600000 4E800021 +62676D00 BA810008 +80010104 38210100 +7C0803A6 3C808017 +60000000 00000000 +C21BFA24 00000008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +40820010 80620174 +80630028 48000008 +38600001 3D80801A +618C42F8 7D8903A6 +4E800421 00000000 +C2260BD4 00000020 +806DB8D4 2C030000 +418200EC 7C0802A6 +90010004 9421FF00 +BE810008 83C20000 +3BDE00DC 3BA00000 +83620150 806200FC +C0630000 480000B1 +7C6802A6 C0230004 +C0430008 C19F000C +C17F0010 ED8C082A +ED6B102A 1C7D001C +7F43F214 C13A000C +C11A0010 C0DA0014 +C0FA0018 FC0C4840 +41800048 FC0C4040 +40800040 FC0B3840 +41800038 FC0B3040 +40800030 7FA3EB78 +BA810008 80010104 +38210100 7C0803A6 +7C741B78 3D808026 +618C0C20 7D8903A6 +4E800420 48000010 +3BBD0001 7C1DD800 +4180FF94 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C0DA4 7D8903A6 +4E800420 4E800021 +40000000 402CCCCD +C0000000 3C60803F +60630B24 00000000 +C2264C48 00000012 +3BC30000 806DB8D4 +2C030000 4182007C +809E0010 806200FC +C0230000 C044002C +EC4100B2 D044002C +C0440030 EC4100B2 +D0440030 C0440034 +EC4100B2 D0440034 +48000041 7C6802A6 +C0630000 EC230828 +C042CB40 EC4100B2 +D0440038 C042CB44 +EC4100B2 D044003C +7FC3F378 3D808037 +618C32E8 7D8903A6 +4E800421 4800000C +4E800021 3F800000 +60000000 00000000 +C2264DA8 00000008 +3A430000 806DB8D4 +2C030000 41820030 +806200FC C0230000 +C052002C EC4100B2 +D052002C C0520030 +EC4100B2 D0520030 +C0520034 EC4100B2 +D0520034 00000000 +C2260C8C 00000009 +806DB8D4 2C030000 +41820038 806DB8D8 +38810098 38B40001 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +3D808026 618C0CDC +7D8903A6 4E800420 +880DB655 00000000 +C22647FC 00000040 +806DB8D4 2C030000 +418201EC 806200FC +C0430000 480001CD +7C6802A6 C0230000 +EC2100B2 D022CB54 +C0230004 EC2100B2 +D022CB34 C0230008 +EC2100B2 D022CA34 +C023000C EC2100B2 +D022CAA0 7C0802A6 +90010004 9421FF00 +BE810008 3FE0803F +63FF0B24 83A20000 +3BBD00DC 3BC00000 +806DB620 38810080 +88BF0005 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80830014 38A00001 +50A426F6 90830014 +38600002 987D0002 +3BDE0001 3BFF001C +3BBD001C 2C1E0019 +4180FFB0 83CDB8D4 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C741B78 +807E0000 3D808037 +618C0E44 7D8903A6 +4E800421 7C7D1B78 +93ADB8D8 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00001 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7FA3EB78 +38800006 38A00020 +3CC08036 60C6410C +38E00001 3D808036 +618C4C08 7D8903A6 +4E800421 7FA3EB78 +3D808037 618C0928 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C4924 +7D8903A6 4E800420 +4E800021 41000000 +41100000 3FC00000 +3951B717 3A9400DC +60000000 00000000 +C2266984 0000000A +806DB630 48000029 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820020 906DB8D4 +48000020 4E800021 +6D657853 656C6563 +74436872 00000000 +38600000 906DB8D4 +806DB630 00000000 +C22645F4 00000005 +806DB8D4 2C030000 +41820014 3D808026 +618C47FC 7D8903A6 +4E800420 38600007 +60000000 00000000 +044DC49C 41E80000 +C2260DF0 00000003 +3D808026 618C0AD8 +7D8903A6 4E800420 +60000000 00000000 +042609F8 480001C8 +040679BC 388023FC +C206FE20 00000002 +800323EC 2C000000 +60000000 00000000 +C2069CE0 00000005 +2C170000 41820010 +38600001 907A23EC +4800000C 38600000 +907A23EC 28170000 +60000000 00000000 +C2168C10 00000011 +7C7D1B78 3862017C +7C63E8AE 7C630774 +2C03FFFF 4182006C +7C0802A6 90010004 +9421FF00 BE810008 +808DB8DC 8084000C +1C630008 7C632214 +88630000 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +BA810008 80010104 +38210100 7C0803A6 +3D808016 618C8C40 +7D8903A6 4E800420 +4E800021 08070600 +7FA3EB78 00000000 +C216E7BC 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000111 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820104 +3B800000 480000E0 +1C1C0024 387F0060 +7FA30214 3882017C +3860FFFF 7C64E1AE +881D0001 2C000000 +408200B8 7F83E378 +3D808003 618C345C +7D8903A6 4E800421 +3C80804C 608420BC +1C630044 7C632214 +83430000 3A800000 +82BB0008 82DB000C +887D000A 3D808023 +618C754C 7D8903A6 +4E800421 7C771B78 +48000060 1C740008 +7F03B214 80780004 +2C030000 41820028 +2C170000 41820040 +7EE4BB78 3D808032 +618C58E8 7D8903A6 +4E800421 2C030000 +40820024 80780000 +5463023E 7C60D038 +7C030000 40820010 +3862017C 7E83E1AE +48000010 3A940001 +7C14A800 4180FFA0 +3B9C0001 2C1C0006 +4180FF20 48000014 +4E800021 5374635F +69636E73 00000000 +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C20A0070 00000065 +2C1F1388 41800318 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +480002F4 39000000 +399FEC78 80620018 +809E0004 7D2320AE +7D234B78 480001A1 +7C6A1B78 48000070 +39000001 399FE890 +80620018 809E0004 +7D2320AE 7D234B78 +4800017D 7C6A1B78 +48000064 39000000 +399FE4A8 80620018 +809E2238 7D2320AE +7D234B78 48000159 +7C6A1B78 48000028 +39000001 399FE0C0 +80620018 809E2238 +7D2320AE 7D234B78 +48000135 7C6A1B78 +4800001C 806A0000 +7C0C1800 40800138 +806A0004 7D6360AE +4800001C 806A0008 +7C0C1800 40800120 +806A000C 7D6360AE +48000004 7C0802A6 +90010004 9421FF00 +BE810008 3C608045 +60638FA0 3D808037 +618CABC8 7D8903A6 +4E800421 7C7C1B78 +386B0009 987C0004 +93FC0008 807E05E8 +57602036 7C63002E +907C000C C0210184 +D03C0010 C0210188 +D03C0014 C021018C +D03C0018 C03E002C +D03C001C C0228DF0 +807E00E0 2C030000 +40820020 C01E0844 +C05E0848 FC200050 +3D808002 618C2C30 +7D8903A6 4E800421 +D03C0020 806DC198 +2C030000 41820020 +8803000C 2C000009 +40800014 801E060C +901C0000 939E060C +4800001C 7FA3EB78 +7F84E378 3D808006 +618C744C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D80800A +618C0084 7D8903A6 +4E800420 80820084 +1C630004 7C63202E +2C030000 418200B0 +4E800020 48000061 +7C6802A6 809E0004 +48000089 7CA802A6 +1CC80008 7CA53214 +7D866378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +25732065 66666563 +74202564 0A000000 +4E800021 6D6F6465 +6C000000 7074636C +67656E00 48000041 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +4BFFFF91 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +4572726F 723A2066 +69676874 65722025 +6420646F 6573206E +6F742068 61766520 +65666642 65686176 +696F7254 61626C65 +0A000000 3C60803C +60000000 00000000 +C206747C 00000059 +7C0802A6 90010004 +9421FF00 BE810008 +2C1F1388 418002A0 +2C1F1770 41800020 +2C1F1B58 4180003C +2C1F1F40 41800058 +2C1F2328 41800074 +4800027C 839D002C +399FEC78 80620018 +809C0004 7D2320AE +7D234B78 48000231 +7C6A1B78 48000070 +839D002C 399FE890 +80620018 809C0004 +7D2320AE 7D234B78 +4800020D 7C6A1B78 +4800011C 839D002C +399FE4A8 80620018 +809C2238 7D2320AE +7D234B78 480001E9 +7C6A1B78 48000028 +839D002C 399FE0C0 +80620018 809C2238 +7D2320AE 7D234B78 +480001C5 7C6A1B78 +480000D4 806A0004 +7D6360AE 48000025 +48000049 48000049 +48000049 48000089 +48000089 48000089 +48000089 480000A5 +7C8802A6 1CAB0004 +7C842A14 80A40000 +2C050000 418201A8 +54A501BA 7C842A14 +7C8903A6 4E800420 +48000174 4800004C +807E000C 389E0010 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7FE3FB78 +7FA4EB78 38A10080 +38DE001C 38FE0020 +3D808005 618CFDDC +7D8903A6 4E800421 +4800012C 4BFFFFBC +4BFFFFB8 4BFFFFB4 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000100 +4BFFFFE0 806A000C +7D6360AE 48000021 +48000045 48000085 +48000085 48000085 +48000085 48000085 +480000A1 7C8802A6 +1CAB0004 7C842A14 +80A40000 2C050000 +418200DC 54A501BA +7C842A14 7C8903A6 +4E800420 807E000C +389E0010 38A10080 +3D808000 618CB1CC +7D8903A6 4E800421 +7FE3FB78 7FA4EB78 +38A10080 38DE001C +38FE0020 3D808005 +618CFDDC 7D8903A6 +4E800421 48000068 +48000064 48000060 +4800005C 48000058 +7FE3FB78 7FA4EB78 +80BE000C 3D808005 +618CFDDC 7D8903A6 +4E800421 48000038 +7FE3FB78 7FA4EB78 +80BE000C 38DE001C +3D808005 618CFDDC +7D8903A6 4E800421 +48000014 80820084 +1C630004 7C63202E +4E800020 BA810008 +80010104 38210100 +7C0803A6 3D808006 +618C75F8 7D8903A6 +4E800420 BA810008 +80010104 38210100 +7C0803A6 00000000 +043985C4 1CD903E8 +C205FF38 000000E7 +7C0802A6 90010004 +9421FF00 BE810008 +381CFB45 2C000057 +40810708 2C1C1388 +41800700 2C1C1770 +41800020 2C1C1B58 +41800040 2C1C1F40 +41800060 2C1C2328 +41800080 480006DC +3B200000 829E002C +3ADCEC78 80620018 +80940004 7F0320AE +7F03C378 48000585 +7C771B78 4800007C +3B200001 829E002C +3ADCE890 80620018 +80940004 7F0320AE +7F03C378 4800055D +7C771B78 480003EC +3B200000 829E002C +3ADCE4A8 80620018 +80942238 7F0320AE +7F03C378 48000535 +7C771B78 4800002C +3B200001 829E002C +3ADCE0C0 80620018 +80942238 7F0320AE +7F03C378 4800050D +7C771B78 4800039C +1C7803E8 7F83B214 +80770000 7C161800 +40800508 80770004 +7EA3B0AE 48000025 +4800005D 480000A1 +4800010D 48000141 +480001AD 48000225 +480002CD 48000301 +7C8802A6 1CB50004 +7C842A14 80A40000 +2C050000 418205E4 +54A0463E 2C000048 +40820014 54A501BA +7C842A14 7C8903A6 +4E800420 7CA903A6 +4E800420 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80C30000 +38600000 7F85E378 +3C801062 60844DD3 +7C842896 7C843670 +3D808039 618CEFAC +7D8903A6 4E800421 +480002B4 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820278 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0030000 +D01C0024 7FA3EB78 +48000244 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +4800020C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418201D0 +807D0004 83830028 +386102FC 38800002 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +D03C0024 7FA3EB78 +4800019C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 83630000 +7F63DB78 38800000 +38A10080 3D808000 +618CB1CC 7D8903A6 +4E800421 7F83E378 +7FC4F378 38A10080 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 41820140 +807D0004 83830028 +C0028808 D01C0020 +C01B0024 D01C0024 +7FA3EB78 48000120 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83630000 7F83E378 +7FC4F378 7F65DB78 +3D808005 618CC814 +7D8903A6 4E800421 +7C7D1B79 418200E0 +807D0004 83830028 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80630000 C0230000 +C0028830 FC010040 +4080000C C8028848 +48000008 C8028850 +FC200018 D03C0020 +807E0028 C023002C +D03C002C C0230030 +D03C0030 C0230034 +D03C0034 7FA3EB78 +48000074 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC3DC +7D8903A6 4E800421 +4800003C 386102FC +38800001 3D808032 +618C2620 7D8903A6 +4E800421 80A30000 +7F83E378 7FC4F378 +3D808005 618CC5C4 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +1C7803E8 7F83B214 +80770008 7C161800 +40800170 8077000C +7EA3B0AE 48000021 +48000059 48000001 +48000001 48000001 +48000001 480000AD +480000F1 7C8802A6 +1CB50004 7C842A14 +80A40000 2C050000 +41820250 54A0463E +2C000048 40820014 +54A501BA 7C842A14 +7C8903A6 4E800420 +7CA903A6 4E800420 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +83A30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CF05C 7D8903A6 +4E800421 2C030000 +4182001C C03D0000 +D0230024 C03D0004 +D0230028 C03D0008 +D023002C 48000068 +386102FC 38800001 +3D808032 618C2620 +7D8903A6 4E800421 +80C30000 38600000 +7F85E378 3C801062 +60844DD3 7C842896 +7C843670 3D808039 +618CEFAC 7D8903A6 +4E800421 48000020 +7F83E378 388102FC +3D808005 618CCF40 +7D8903A6 4E800421 +48000004 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +3D808006 618C1D08 +7D8903A6 4E800420 +80820084 1C630004 +7C63202E 2C030000 +418200B0 4E800020 +48000061 7C6802A6 +80940004 48000089 +7CA802A6 1CD90008 +7CA53214 7EC6B378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 25732065 +66666563 74202564 +0A000000 4E800021 +6D6F6465 6C000000 +7074636C 67656E00 +48000041 7C6802A6 +80940004 3D808034 +618C56A8 7D8903A6 +4E800421 4BFFFF91 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 4572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 65666642 +65686176 696F7254 +61626C65 0A000000 +BA810008 80010104 +38210100 7C0803A6 +381CFB45 00000000 +C21B5204 0000000D +3D80803D 618CE650 +8062014C 3943FFF9 +886C0000 2C0300FF +41820048 38E00000 +7C8C3A14 8924000A +2C090021 41820020 +2C09001A 41800018 +2C090020 41810010 +3869FFE6 7D2A1A14 +9924000A 38E70001 +2C070003 4180FFCC +398C0010 4BFFFFB4 +8001000C 00000000 +C21B34F0 00000015 +3C60803D 6063E178 +48000039 3C60803D +6063E134 4800002D +3C60803D 6063E080 +48000021 3C60803D +6063DF94 48000015 +3C60803D 6063DF88 +48000009 48000064 +7C6C1B78 8062014C +3943FFF9 A06C0000 +2C030148 41820048 +38E00000 7C8C3A14 +89240002 2C090021 +41820020 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240002 +38E70001 2C070004 +4180FFCC 398C0006 +4BFFFFB4 4E800020 +8001000C 00000000 +C21BADC4 0000000E +39000000 818DB260 +8062014C 3943FFF9 +816C0000 38E00000 +7C8C3A14 808B0014 +2C040000 41820024 +89240000 2C09001A +41800018 2C090020 +41810010 3869FFE6 +7D2A1A14 99240000 +38E70001 396B0004 +2C070006 4180FFC4 +398C0004 39080001 +2C080033 4180FFAC +828DB260 00000000 +C22F62FC 00000007 +8182014C 386CFFF9 +7C1C1800 41820014 +386CFFFD 7C1C1800 +41820008 48000008 +3B80001B 3D80802F +618C6314 7D8903A6 +4E800420 00000000 +C217D5A0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217D5F0 00000002 +8182014C 398CFFFD +7C006000 00000000 +C217C134 00000002 +8182014C 380CFFFD +60000000 00000000 +C217D578 00000002 +8182014C 398CFFFC +7C006000 00000000 +C2320698 00000002 +8062014C 3863FFFC +60000000 00000000 +C23206A8 00000002 +8082014C 3884FFFC +60000000 00000000 +C217D598 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C217D638 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E4C 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C2186E58 00000002 +8182014C 398CFFF9 +7C006000 00000000 +C21B6560 00000002 +8062014C 3883FFFF +60000000 00000000 +C21B9958 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B99FC 00000002 +8062014C 3803FFFE +60000000 00000000 +C21B6B40 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182288 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B6B34 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B70AC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21822EC 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B70A0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7BDC 00000002 +8062014C 3863FFFB +60000000 00000000 +C21823B4 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B7BD0 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B7658 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182350 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B764C 00000002 +8182014C 380CFFFA +60000000 00000000 +C218247C 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B8698 00000002 +8182014C 380CFFFA +60000000 00000000 +C21B86A4 00000002 +8062014C 3863FFFB +60000000 00000000 +C21B8178 00000002 +8062014C 3863FFFB +60000000 00000000 +C2182418 00000006 +8182014C 88030005 +2C00001B 41820010 +2C00001C 41820010 +48000014 380CFFFA +4800000C 380CFFFB +48000004 00000000 +C21B816C 00000002 +8182014C 380CFFFA +60000000 00000000 +C202305C 00000006 +2C030000 4180001C +1C630004 1C840002 +80A200CC 7C632A14 +7C63222E 48000008 +3860005D 4E800020 +60000000 00000000 +C20D1448 00000002 +81820178 818C000C +800C0064 00000000 +04085830 8002005C +04068F5C 8062005C +0413C3D0 8002005C +040858F4 8002005C +04068AEC 8082005C +040855EC 83A2005C +04068704 8062005C +04070330 8062005C +C20852D0 00000002 +3D40803C 614A25F4 +60000000 00000000 +040852B8 8102005C +C20BE8B4 00000002 +80820178 8084000C +808400A0 00000000 +04068B60 80C2002C +041609A8 80020004 +C2160A24 00000002 +80820004 7C64002E +60000000 00000000 +C2160B08 00000002 +80620004 7C63002E +60000000 00000000 +C206D654 00000002 +81820178 818C000C +800C0030 00000000 +C207FB9C 00000002 +80620178 8063000C +8003004C 00000000 +04068660 80020034 +C20CBA30 00000009 +801E0004 806200A0 +1C000004 7D83002E +2C0C0000 41820020 +7FA3EB78 7D8903A6 +4E800421 3D80800C +618CBA9C 7D8903A6 +4E800420 3D80800C +618CBAA4 7D8903A6 +4E800420 00000000 +C211BA54 00000018 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +806DAEB4 C0030088 +FC000050 C03E0624 +FC010040 41810078 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C211BAD8 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF002C +C03E0084 C0029DE0 +FC010040 4C401382 +4082008C 806DAEB4 +C0030070 C03E0624 +FC010040 41810010 +801E065C 5400052B +4182006C 801E0004 +2C000009 40820014 +801E222C 2C000000 +41820054 48000030 +8082009C 80BE0004 +1CA50004 7D84282E +2C0C0000 41820038 +7FE3FB78 38800001 +7D8903A6 4E800421 +48000028 7FE3FB78 +38800001 3D808011 +618CBB6C 7D8903A6 +4E800421 38600001 +48000008 38600000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C206AA28 00000002 +80620178 8063000C +8003005C 00000000 +04094860 800200C0 +04094924 800200C0 +0407E740 800200C8 +C207F830 00000002 +81820178 818C000C +800C0054 00000000 +C207F878 00000002 +81820178 818C000C +800C0058 00000000 +C2069924 00000008 +806200A8 809A0004 +1C840004 7D84182E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808006 +618C9938 7D8903A6 +4E800420 801A0004 +60000000 00000000 +040BEA28 80020030 +040690F0 80020030 +C207F918 00000002 +80820178 8084000C +80040050 00000000 +C2080D9C 00000002 +80620178 8063000C +80030068 00000000 +C2080BA0 00000002 +80620178 8063000C +80030068 00000000 +C207512C 00000002 +80620178 8063000C +8003006C 00000000 +C2075190 00000002 +80620178 8063000C +8003006C 00000000 +C20751F8 00000002 +80620178 8063000C +8003006C 00000000 +C208CC14 00000008 +800200BC 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CCC38 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C208C360 00000007 +800200B4 809F0004 +1C840004 7D84002E +2C0C0000 4182001C +7D8903A6 4E800421 +3D808008 618CC3CC +7D8903A6 4E800420 +809F0004 00000000 +C208C900 00000008 +800200B8 809F0004 +1C840004 7D84002E +2C0C0000 41820020 +7FC3F378 7D8903A6 +4E800421 3D808008 +618CC924 7D8903A6 +4E800420 801F0004 +60000000 00000000 +C20C0158 00000002 +80620178 8063000C +80030060 00000000 +C20816C4 00000005 +806200AC 809F0004 +7C6418AE 2C030000 +40820014 3D808008 +618C1918 7D8903A6 +4E800420 00000000 +C20C3B54 0000000B +800200A4 809F0004 +1C840004 7D84002E +2C0C0000 4182003C +801F065C 54000001 +41820030 801F0668 +540005EF 41820024 +7C631B78 7D8903A6 +4E800421 3D80800C +618C3BB8 7D8903A6 +4E800420 48000008 +38600000 00000000 +C20F5A78 00000002 +80620098 80630020 +60000000 00000000 +C20F5AA0 00000002 +80620098 80630020 +60000000 00000000 +C20F5AC8 00000002 +80620098 80630020 +60000000 00000000 +C20F5AE0 00000002 +80620098 80630020 +60000000 00000000 +C2085C04 00000003 +806200B0 801C0004 +1C000008 7C630214 +80030004 00000000 +C2085BD0 00000003 +806200B0 801C0004 +1C000008 7FC3002E +60000000 00000000 +C2085CC0 00000003 +808200B0 801C0004 +1C000008 38600000 +7C64012E 00000000 +C20BEB88 00000003 +83E200B0 1C030008 +7FFF0214 801F0000 +60000000 00000000 +C2085A24 00000002 +7C661B78 1CA30008 +60000000 00000000 +04085A3C 80620098 +04068B2C 1C840008 +04068B1C 80020098 +040852C0 80A20098 +C20852D4 00000012 +39800000 81220028 +814200B0 38600000 +90670000 90670004 +90690000 906A0000 +39600000 48000020 +80680000 1C8B0018 +7C832214 38600000 +90640000 90640008 +396B0001 88680004 +7C0B1800 4180FFDC +39290008 39080008 +38E70008 394A0008 +398C0001 80620148 +7C0C1800 4180FFA0 +38600000 3CA08045 +60A598B8 3D808008 +618C53DC 7D8903A6 +4E800420 00000000 +04085738 1CA30008 +0408573C 80020098 +04085774 38650004 +0431C9A4 800200D0 +C214A42C 00000004 +80820178 80840034 +80840000 881F0619 +1C000008 7C840214 +60000000 00000000 +C214A7F8 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630000 90640000 +4E800020 00000000 +C214A364 00000006 +881F0619 1C000008 +80820178 80840034 +80840000 7C840214 +80840004 909F2434 +909F0614 8001001C +60000000 00000000 +C214A818 00000005 +88030619 1C000008 +80620178 80630034 +80630000 7C630214 +80630004 90640000 +4E800020 00000000 +C22F9888 00000005 +387C0000 38800000 +3D808003 618C25C8 +7D8903A6 4E800421 +7C641B78 38BD0000 +387C0000 00000000 +C22F9764 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FC3F378 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387E0000 00000000 +C22F6770 00000011 +3C60804D 60636D5C +80630000 48000049 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8DC +3C60804D 60636D5C +80630000 48000031 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 906DB8E0 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 80010024 +60000000 00000000 +C2266994 0000000D +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +48000035 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 4182000C +906DB8DC 48000020 +38600000 906DB8DC +48000014 4E800021 +5374635F 69636E73 +00000000 806DB614 +60000000 00000000 +C22F6320 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C2168B34 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FC3F378 +7FA4EB78 3D80803D +618C7060 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C22FA0B4 00000006 +7C7FE214 8863047F +38800000 3D808003 +618C25C8 7D8903A6 +4E800421 7C641B78 +7CBFE214 8865047F +88A503FD 00000000 +C22F9FD4 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +41820048 82830004 +7FA3EB78 38810080 +38A00001 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7E85A378 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +387D0000 00000000 +C22F62F8 00000010 +3D808000 618CC07C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +83ADB8E0 2C1D0000 +41820044 7FC3F378 +38810080 38A00001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FA5EB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 00000000 +C22F99C0 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +806DB8DC 2C030000 +4182005C 83C30004 +3BE00000 7FA3EB78 +38810080 38BF0001 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7FC5F378 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0007 4180FFB8 +48000004 BA810008 +80010104 38210100 +7C0803A6 7FA3EB78 +60000000 00000000 +C2175E4C 0000002C +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7D1B78 480000F1 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +418200FC 83C30004 +3BE00000 7F63DB78 +38810080 38BF0019 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809E0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +3BFF0001 2C1F0004 +4180FFB4 7FA3EB78 +48000085 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 41820080 +3BE00000 7F63DB78 +38810080 38BF0042 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 809E0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FFB8 +4800002C 4E800021 +5374635F 69636E73 +00000000 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 7F63DB78 +60000000 00000000 +C21777C8 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80820070 7C6320AE +6C638000 C822CA08 +90610084 3C604330 +90610080 C8410080 +EC220828 BA810008 +80010104 38210100 +7C0803A6 00000000 +C225DB80 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C1F000C +60000000 00000000 +C2260DB4 0000001F +7C0802A6 90010004 +9421FF00 BE810008 +880DB655 2C000001 +408200C4 806DB8DC +2C030000 418200B8 +38600007 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +D0210084 3BE00000 +806DB620 38810080 +38BF0035 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +C0210084 3D808035 +618CE800 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 80630064 +C022E0E0 3D808036 +618C530C 7D8903A6 +4E800421 80610080 +3D808037 618C0928 +7D8903A6 4E800421 +3BFF0001 2C1F0005 +4180FF78 BA810008 +80010104 38210100 +7C0803A6 1C13000C +60000000 00000000 +C225D5AC 00000078 +7C0802A6 90010004 +9421FF00 BE810008 +7C7D1B78 7C9F2378 +7CBE2B78 7CDC3378 +3F60803F 637B0A48 +880DB655 2C000001 +408201F0 2C1D0000 +41820080 806DB624 +38810080 38A00006 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +806DB8D4 80630010 +7C1E19D6 7C9F0214 +80610080 7F85E378 +48000235 806DB624 +38810080 38A00004 +38C0FFFF 4CC63182 +3D808001 618C1E24 +7D8903A6 4E800421 +80620070 7C83F8AE +80610080 7F85E378 +480001FD 480002F0 +806DB620 38810080 +38A0002D 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 480001B9 +806DB620 38810080 +38A0002B 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000181 +1C7D0024 7C63DA14 +886303C2 1C63001C +80820000 7C632214 +886300DD 80020008 +1C630003 7C6300AE +1C9D0024 7C84DA14 +888403C1 3D80803D +618C7060 7D8903A6 +4E800421 D0210084 +3B400000 806DB620 +38810080 38BA0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630008 +80630008 C0210084 +3D808035 618CE800 +7D8903A6 4E800421 +80610080 80630018 +80630008 80630008 +80630064 C022E0E0 +3D808036 618C530C +7D8903A6 4E800421 +80610080 3D808037 +618C0928 7D8903A6 +4E800421 3B5A0001 +2C1A0005 4180FF78 +7F83E378 3D808025 +618CC020 7D8903A6 +4E800421 48000188 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B5 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 806DB8D4 +80630010 7C1E19D6 +7C9F0214 80610080 +7F85E378 48000049 +806DB620 38810080 +1CBD0024 7CA5DA14 +88A503B4 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 80620070 +7C83F8AE 80610080 +7F85E378 48000009 +480000FC 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +6FC38000 C822CA08 +90610094 3C604330 +90610090 C8410090 +EC220828 7FE3FB78 +38800006 38A00400 +3CC08036 60C6410C +38E00001 4CC63242 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 3D808037 +618C0928 7D8903A6 +4E800421 7FE3FB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +7FE3FB78 38800010 +2C1D0000 41820018 +3D808037 618C1D9C +7D8903A6 4E800421 +48000018 3D808037 +618C1F00 7D8903A6 +4E800421 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225EE60 00000007 +88A30073 7FE3FB78 +7E84A378 38C00000 +3D808025 618CD5AC +7D8903A6 4E800421 +3D808025 618CEE74 +7D8903A6 4E800420 +60000000 00000000 +C2260DB0 00000005 +38730000 38800000 +38A00000 38C00001 +3D808025 618CD5AC +7D8903A6 4E800421 +60000000 00000000 +C225DB78 00000003 +7FE3FB78 38800000 +38A00000 38C00001 +60000000 00000000 +C2264548 00000038 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +7C7A1B78 48000145 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820008 837B0004 +7F43D378 4800012D +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7D1B79 +838DB8D4 2C1C0000 +41820008 839C000C +2C1B0000 41820054 +3BE00000 806DB620 +38810080 38BF0035 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38800000 7F65DB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BFF0001 +2C1F0005 4180FFB8 +2C1D0000 41820048 +806DB620 38810080 +38A0002B 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38A0002D +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 4800002C +4E800021 5374635F +69636E73 00000000 +4E800021 45626C6D +5F6D6174 616E696D +5F6A6F69 6E740000 +BA810008 80010104 +38210100 7C0803A6 +60000000 00000000 +C2264A74 00000026 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +41820048 806DB624 +38810080 38A00004 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 80630004 +809D0008 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +2C1D0000 41820044 +806DB624 38810080 +38A00006 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +7F84E378 38A00000 +3D808035 618CDEA0 +7D8903A6 4E800421 +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 806DB624 +60000000 00000000 +C2264574 00000027 +3D808036 618CFB5C +7D8903A6 4E800421 +7C0802A6 90010004 +9421FF00 BE810008 +3C60804D 60635780 +3D808001 618C819C +7D8903A6 4E800421 +480000D5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 838DB8D4 +2C1C0000 41820008 +839C000C 2C1D0000 +4182004C 3BE00000 +806DB620 38810080 +38BF002E 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 80630018 +80630004 809D0008 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 2C1C0000 +41820044 806DB620 +38810080 38BF0033 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +80630018 7F84E378 +38A00000 3D808035 +618CDEA0 7D8903A6 +4E800421 3BFF0001 +2C1F0004 4180FF6C +4800001C 4E800021 +45626C6D 5F6D6174 +616E696D 5F6A6F69 +6E740000 BA810008 +80010104 38210100 +7C0803A6 00000000 +0425DB74 8A8400DD +C20692FC 00000002 +81820148 398CFFFB +7C006000 00000000 +C20692E8 00000002 +81820148 398CFFFA +7C006000 00000000 +C20CC76C 00000002 +81820148 398CFFFB +7C036000 00000000 +C20CC750 00000002 +81820148 398CFFFA +7C036000 00000000 +C20BDA14 0000000C +81820148 380CFFFC +7C030000 41820038 +81820148 380CFFFD +7C030000 41820028 +81820148 380CFFFF +7C030000 41820018 +2C03000B 41820008 +48000010 3860000A +48000008 80652238 +3D80800B 618CDA3C +7D8903A6 4E800420 +60000000 00000000 +C208A2F0 00000002 +81820148 398CFFFB +7C036000 00000000 +C208A2D4 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C2AC 00000002 +80620148 3863FFFB +60000000 00000000 +C215C320 00000002 +80620148 3863FFFB +60000000 00000000 +C215C3A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C215C4E8 00000002 +81820148 398CFFFB +7C036000 00000000 +C21551B4 00000002 +80620148 3863FFFB +60000000 00000000 +C215531C 00000002 +80620148 3863FFFB +60000000 00000000 +C21554A4 00000002 +80620148 3863FFFB +60000000 00000000 +C215B500 00000002 +80620148 3863FFFB +60000000 00000000 +C206D480 00000002 +81820148 398CFFFB +7C006000 00000000 +C20C8E98 00000002 +81820148 398CFFFB +7C006000 00000000 +C215CB18 00000002 +81820148 398CFFFB +7C036000 00000000 +C20C744C 00000002 +81820148 398CFFFE +7C006000 00000000 +C215C274 00000002 +80620148 3863FFFA +60000000 00000000 +C215C2E4 00000002 +80620148 3863FFFA +60000000 00000000 +C215C35C 00000002 +80620148 3863FFFA +60000000 00000000 +C215143C 00000002 +80620148 3863FFFA +60000000 00000000 +C215A2CC 00000002 +80620148 3863FFFA +60000000 00000000 +C215A414 00000002 +80620148 3863FFFA +60000000 00000000 +C215A580 00000002 +80620148 3863FFFA +60000000 00000000 +C206D48C 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8E90 00000002 +81820148 398CFFFA +7C006000 00000000 +C20C8EA4 00000002 +81820148 398CFFFA +7C006000 00000000 +C215C55C 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C6E0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C770 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C8B0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C9F0 00000002 +81820148 398CFFFA +7C036000 00000000 +C215CABC 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C810 00000002 +81820148 398CFFFA +7C036000 00000000 +C215C950 00000002 +81820148 398CFFFA +7C036000 00000000 +C207CDBC 00000002 +81820148 398CFFFF +7C006000 00000000 +C207CE10 00000002 +81820148 398CFFFF +7C006000 00000000 +C217C938 00000002 +81820148 380CFFFD +60000000 00000000 +C217C930 00000002 +81820148 380CFFFC +60000000 00000000 +C2267990 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +80820088 2C03002B +41800020 2C0300A1 +41800024 2C0300D0 +4180002C 2C0300ED +41800034 48000044 +80840000 80ADB684 +4800004C 3863FFD5 +80840004 80ADB698 +4800003C 3863FF5F +80840008 80ADB690 +4800002C 3863FF30 +8084000C 3CA0804A +60A50F60 48000018 +3863FF13 80840010 +80A20088 80A50014 +48000004 1C03003C +7FC40214 1C030004 +7FA5002E 2C1D0000 +41820010 93DF00B8 +93BF00C4 48000070 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2069 74656D20 +6E6F7420 696E6974 +69616C69 7A65640A +00000000 BA810008 +80010104 38210100 +7C0803A6 3D808026 +618C7A88 7D8903A6 +4E800420 00000000 +C22674AC 00000004 +80030008 2C0000ED +41800010 38000008 +9003000C 4E800020 +60000000 00000000 +C2268684 0000001A +7C0802A6 90010004 +9421FF00 BE810008 +807E0008 80820088 +2C03002B 41800020 +2C0300A1 41800024 +2C0300D0 4180002C +2C0300ED 41800034 +48000040 3C80803F +60841418 48000040 +3863FFD5 3C80803F +60842F28 48000030 +3863FF5F 3C80803F +60842310 48000020 +3863FF30 3C80803F +60844CA8 48000010 +3C808026 6084EECC +4800000C 1C030004 +7C84002E 38A00006 +38C00000 7FE3FB78 +3D808039 618C069C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +3D808026 618C8748 +7D8903A6 4E800420 +60000000 00000000 +C20F16EC 0000000B +80C20148 7C043040 +4181003C 1C040004 +80620140 7D83002E +2C0C0000 41820018 +7C832378 7C85002E +7D8903A6 4E800421 +48000014 3D80800F +618C16F0 7D8903A6 +4E800420 3D80800F +618C18F8 7D8903A6 +4E800420 00000000 +C20EEEC4 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +80020130 1C840004 +7D84002E 2C0C0000 +4182000C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C20F1AA8 0000000B +80820148 7C002040 +41810038 1C800004 +8062013C 7D83202E +2C0C0000 41820024 +7FE3FB78 7D8903A6 +4E800421 48000014 +3D80800F 618C1AB0 +7D8903A6 4E800420 +3D80800F 618C1B58 +7D8903A6 4E800420 +60000000 00000000 +C20F1BF8 00000007 +8002012C 1C840004 +7D84002E 2C0C0000 +41820010 7D8903A6 +7FA3EB78 4E800421 +3D80800F 618C1C1C +7D8903A6 4E800420 +60000000 00000000 +040F163C 80020134 +040F168C 80020138 +C216E148 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +83C20148 3BE00000 +80620128 38000000 +1C9F0004 7C03212E +3BFF0001 7C1FF000 +4180FFF0 BA810008 +80010104 38210100 +7C0803A6 3800FFFF +90010010 00000000 +C20EED58 00000002 +9421FFDC 38000000 +90010020 00000000 +040EEE90 38210024 +040EEDC0 38610020 +C20EEE80 00000033 +83A10020 7C0802A6 +90010004 9421FF00 +BE810008 2C1D0000 +41820168 7FA3EB78 +480000A9 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7B1B79 41820030 +7F63DB78 3D80803D +618C7074 7D8903A6 +4E800421 7F63DB78 +80820178 80840024 +7FC5F378 48000081 +3B400001 7FA3EB78 +7FC4F378 38A00000 +3D80803D 618C7070 +7D8903A6 4E800421 +2C030000 41820008 +3B400001 7FA3EB78 +48000041 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7C1B79 41820010 +80620128 1C9E0004 +7F83212E 4800009C +4E800021 6B624675 +6E637469 6F6E0000 +4E800021 6674636D +64000000 7C6C1B78 +7C892378 7CA62B78 +80EC000C 814C0000 +39000000 48000054 +1C680008 7D633A14 +806B0000 54600001 +40820020 1C630004 +7C83482E 806B0004 +7C635214 1CA60004 +7C64292E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFA8 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80010028 00000000 +C222C010 0000000C +810DB8E0 2C080000 +41820050 7C671B78 +7C862378 80680004 +1C070014 7D830214 +806C0008 1C060008 +7D430214 2C070000 +4182000C 886C000F +4800001C 880A0001 +80680004 1C000014 +7C630214 8863000F +48000004 4E800020 +2C030000 00000000 +C222C170 00000007 +806DB8E0 2C030000 +41820028 80630004 +881F0000 1C000014 +7D830214 8BCC000F +3D808022 618CC1B4 +7D8903A6 4E800420 +28040021 00000000 +C222C168 0000000C +806DB8E0 2C030000 +4182004C 80630004 +881F0000 1C000014 +7D830214 816C0008 +A07F0002 1C630008 +7D435A14 880A0001 +806DB8E0 80630004 +1C000014 7C630214 +8BC3000F 3D808022 +618CC1B4 7D8903A6 +4E800420 28040021 +60000000 00000000 +C2229DA0 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820088 83FE0010 +7F83E378 38810080 +38A00056 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +3C60804A 606304F0 +88630000 819E0004 +1C630014 7C6C1A14 +8863000E 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +80610080 3D808036 +618CF934 7D8903A6 +4E800421 80610080 +3D808037 618C0780 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +8001003C 00000000 +C222B9D8 00000008 +818DB8E0 2C0C0000 +4182002C 818C0004 +881A0000 1C000014 +7D8C0214 818C0008 +881A0001 1C000008 +7D8C0214 888C0002 +48000008 7C90022E +60000000 00000000 +C222B9A8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +0422B9A0 60000000 +C2229AD8 00000005 +806DB8E0 2C030000 +4182000C 38600001 +4800000C 38600000 +48000004 38800000 +60000000 00000000 +04229AD0 60000000 +C2229B08 00000007 +818DB8E0 2C0C0000 +41820028 818C0004 +897D0000 1C0B0014 +7D8C0214 818C0008 +1C1E0008 7D8C0214 +888C0002 48000008 +7C9F022E 00000000 +C222DB1C 00000004 +818DB8E0 2C0C0000 +41820010 806C0004 +38630000 48000008 +3863B6B0 00000000 +C222DC18 00000005 +818DB8E0 2C0C0000 +41820014 818C0004 +1C7F0014 7C6C1A14 +48000008 7C630214 +60000000 00000000 +C222A638 00000006 +818DB8E0 2C0C0000 +4182001C 806C0004 +881C0000 1C000014 +7C630214 8B63000C +48000008 8B630854 +60000000 00000000 +C222B3F4 00000006 +818DB8E0 2C0C0000 +41820020 80AC0004 +1C750014 7C632A14 +83E30000 8AC3000C +7C731B78 48000008 +8AC40854 00000000 +C222B224 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 880C000C +48000008 88030854 +60000000 00000000 +C222AE48 00000006 +818DB8E0 2C0C0000 +4182001C 818C0004 +881E0000 1C000014 +7D8C0214 83AC0000 +48000008 83A30848 +60000000 00000000 +C222E90C 00000004 +818DB8E0 2C0C0000 +41820010 3C80803D +60847090 48000008 +80840858 00000000 +C222A010 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881D0000 1C000014 +7D8C0214 818C0008 +1C7B0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7F83E378 48000008 +EC22002A 00000000 +C222A4D0 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881F0000 1C000014 +7D8C0214 818C0008 +1C7C0008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +7FA3EB78 48000008 +EC22002A 00000000 +C222B7DC 0000000B +818DB8E0 2C0C0000 +41820048 818C0004 +881E0000 1C000014 +7D8C0214 818C0008 +1C710008 7D836214 +886C0003 6C638000 +C822CA08 90610094 +3C604330 90610090 +C8410090 EC220828 +38760000 48000008 +EC21002A 00000000 +C222E630 00000023 +7C0802A6 90010004 +9421FF00 BE810008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +408200AC 480000B5 +7C6802A6 3D808033 +618C796C 7D8903A6 +4E800421 2C03FFFF +4182008C 48000095 +7C6802A6 38810080 +48000099 7CA802A6 +38C00000 4CC63182 +3D808001 618C6C64 +7D8903A6 4E800421 +7C7F1B78 83C10080 +93CDB8E0 38600001 +38800000 38A00007 +38C00008 38E00080 +39000005 39200080 +39400000 3D80803A +618C611C 7D8903A6 +4E800421 3C60804D +60631110 93E30004 +807E0008 3C80804D +60841124 90640004 +4800002C 38600000 +906DB8E0 48000020 +4E800021 4D784D6E +2E646174 00000000 +4E800021 6D65784D +656E7500 BA810008 +80010104 38210100 +7C0803A6 38600003 +60000000 00000000 +C2266980 00000002 +906DB634 38000000 +900DB8E0 00000000 +C2229C14 00000004 +818DB8E0 2C0C0000 +41820010 83EC0000 +3BFFFFDC 48000008 +3BE5AE68 00000000 +C2229DEC 00000004 +818DB8E0 2C0C0000 +41820010 83AC0000 +3BBDFFDC 48000008 +3BA4AE68 00000000 +C2229D98 00000002 +3C80803E 6084B354 +60000000 00000000 +C2229E94 00000002 +3D80803E 618CAE68 +C02C04EC 00000000 +C21B1368 00000004 +3C60804A 606304F0 +88030000 981F0000 +A0030002 981F0001 +60000000 00000000 +C2229894 00000029 +818DB8E0 2C0C0000 +41820134 7C0802A6 +90010004 9421FF00 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +3F80804A 639C04F0 +806DB8E0 80630004 +881C0000 1C000014 +7F630214 887C0000 +987C0001 9BFC0000 +39800000 893C0001 +806DB8E0 80630004 +881C0000 1C1F0014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19C0002 +48000010 398C0001 +7C0C5800 4180FFD0 +7FA3EB78 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 806DC17C +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C0802A6 +60000000 00000000 +C2229E60 00000032 +7C0802A6 90010004 +9421FF00 BE810008 +83CDB8E0 2C1E0000 +41820160 83FE0010 +3BA00000 48000131 +7C6802A6 7CA3E8AE +7CA50774 2C05FFFF +4182005C 7F83E378 +38810080 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 3D808036 +618CF6B4 7D8903A6 +4E800421 80610080 +38800000 7FE5FB78 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 3BBD0001 +4BFFFF94 3BA00000 +480000C9 7C6802A6 +7CA3E8AE 7CA50774 +2C05FFFF 4182003C +7F83E378 38810080 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +3D808036 618CF6B4 +7D8903A6 4E800421 +3BBD0001 4BFFFFB4 +7F83E378 38810080 +38A0002C 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +48000065 7C6802A6 +C0230000 80610080 +D0230038 7F83E378 +38810080 38A00056 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 48000031 +7C6802A6 C0230004 +80610080 D023002C +48000028 4E800021 +56545552 53FF0000 +4E800021 2C2D2E2F +FF000000 4E800021 +00000000 3F666666 +BA810008 80010104 +38210100 7C0803A6 +387C0000 00000000 +C222B750 0000000F +7C0802A6 90010004 +9421FF00 BE810008 +806DB8E0 2C030000 +41820048 83E3000C +7E038378 38810080 +38A00003 38C0FFFF +3D808001 618C1E24 +7D8903A6 4E800421 +80610080 38800000 +7FE5FB78 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38700000 00000000 +04167978 8002014C +C2085A44 00000002 +83820028 7F9C0214 +801C0000 00000000 +04085B5C 80620028 +C2085A58 00000002 +80820014 1CA60004 +7C84282E 00000000 +C208602C 00000002 +80620098 80630050 +60000000 00000000 +040856E4 800200D0 +C20856E4 00000002 +80820014 7C84D02E +60000000 00000000 +C2017924 00000011 +2C03FFFF 40820078 +48000051 7C6802A6 +3C808043 60842058 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6C626669 6C650000 +4E800021 6572726F +723A2066 696C6520 +25732064 6F657320 +6E6F7420 65786973 +740A0000 93E10008 +60000000 00000000 +C2085614 00000002 +80820010 7C84D82E +60000000 00000000 +04085760 80020010 +C21692DC 00000002 +80620058 7C630214 +60000000 00000000 +C21692B0 00000002 +80620058 7C630214 +60000000 00000000 +C2169258 00000002 +80620058 7C632214 +60000000 00000000 +C2169284 00000002 +80620058 7C630214 +60000000 00000000 +C20703A8 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820078 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +4800005D 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820038 +80630004 2C030000 +4182002C 80630000 +BA810008 80010104 +38210100 7C0803A6 +7C601B78 3D808007 +618C03B8 7D8903A6 +4E800420 7E83A378 +48000014 4E800021 +6D657843 6F737475 +6D650000 BA810008 +80010104 38210100 +7C0803A6 7C601B78 +60000000 00000000 +C20749E8 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +801F0004 8062000C +1C000004 7C63002E +881F0619 1C000010 +7C630214 8283000C +2C140000 40820090 +807F0004 8082005C +1C630008 7C63202E +881F0619 1C000018 +7C630214 80630014 +48000099 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820050 +80630000 2C030000 +41820044 389F05AC +38A00000 38DF05EC +38FF203C 3D808007 +618C487C 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 3D808007 +618C4A04 7D8903A6 +4E800420 807F010C +389F05AC 7E85A378 +BA810008 80010104 +38210100 7C0803A6 +3D808007 618C49F4 +7D8903A6 4E800420 +4E800021 6D657843 +6F737475 6D650000 +60000000 00000000 +04085674 1F800010 +040856BC 3B9C0010 +C2085680 00000002 +8362000C 7F7BD214 +60000000 00000000 +0408586C 1C040010 +04085864 8002000C +040857A8 80A2005C +040857C0 80A2005C +C213C384 00000040 +7C7C1B78 83DC002C +887E000C 3D808003 +618C2330 7D8903A6 +4E800421 3D808016 +618C9238 7D8903A6 +4E800421 889E0619 +7C041800 40800008 +48000014 3D808013 +618CC46C 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF00 +BE810008 881E0004 +8062000C 1C000004 +7C63002E 881E0619 +1C000010 7C630214 +8363000C 807E0004 +8082005C 1C630008 +7C63202E 881E0619 +1C000018 7C630214 +83230014 7F23CB78 +48000121 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 40820114 +3C60803D 606305B4 +1C1B0004 7F43002E +2C1A0000 418200FC +7F23CB78 7F44D378 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 807E010C +80630048 80630004 +3B030004 3C608045 +60639080 3D808037 +618CABC8 7D8903A6 +4E800421 907E2244 +7F43D378 3D808037 +618C0E44 7D8903A6 +4E800421 907E223C +3D808007 618C4148 +7D8903A6 4E800421 +38600001 881E2225 +50602EB4 981E2225 +3D808007 618C4170 +7D8903A6 4E800421 +7F83E378 809E223C +38BE2240 3D808007 +618C5650 7D8903A6 +4E800421 38DE2240 +38E60000 7F65DB78 +389E2248 7F03C378 +3D808007 618C487C +7D8903A6 4E800421 +7FC3F378 3D808009 +618CDC54 7D8903A6 +4E800421 4800001C +4E800021 6D657843 +6F737475 6D650000 +38600000 907E223C +BA810008 80010104 +38210100 7C0803A6 +3D808013 618CC474 +7D8903A6 4E800420 +60000000 00000000 +C205FE90 00000002 +8062001C 80030014 +60000000 00000000 +C205B4F0 0000000B +38A00000 38630008 +80C20160 1CE5000C +7C87192E 38A50001 +7C053000 4180FFF0 +38A00000 38800000 +80620084 1CE50004 +7C87192E 38A50001 +7C053000 4180FFF0 +3D808005 618CB5D4 +7D8903A6 4E800420 +60000000 00000000 +040672B0 8002001C +0406739C 8002001C +0405BED8 80C2001C +0405B4EC 8062001C +04067334 8062001C +04067384 9421FFE4 +C2067430 00000018 +901F0008 80610018 +48000029 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +80820084 1CBE0004 +7C64292E 48000090 +4E800021 65666642 +65686176 696F7254 +61626C65 00000000 +4800004D 7C6802A6 +7FC4F378 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +4572726F 723A2065 +66666563 74206669 +6C652025 64206E6F +74206C6F 61646564 +0A000000 00000000 +04067440 3821001C +040673DC 38610018 +04067434 80010020 +040BE8B8 80020018 +04068F38 80020018 +C20856D0 00000002 +80620018 7C63F8AE +60000000 00000000 +040325F8 80620008 +C2032634 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +040325D8 80020008 +04031CCC 80020008 +04031D48 80020008 +04031D70 80020008 +04031D48 80020008 +C2036E34 00000002 +80620008 3803FFE0 +60000000 00000000 +C2036F5C 00000002 +83C20008 3BDEFFE0 +60000000 00000000 +C2031AE8 00000002 +83E20008 3BFFFFE0 +60000000 00000000 +C22601D4 00000002 +80620000 386300DD +7C6300AE 00000000 +C22600F0 00000002 +80620000 386300DD +7C6300AE 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260D6C 00000002 +80620000 7E630214 +60000000 00000000 +C2260A60 00000002 +80620000 386300DC +60000000 00000000 +C2260AF8 00000002 +80620000 7C630214 +60000000 00000000 +C2260C7C 00000002 +83C20000 7C9E2214 +60000000 00000000 +C2260D44 00000002 +3FC0803F 63DE0A48 +7C7EBA14 00000000 +C226353C 00000002 +80620000 7C630214 +60000000 00000000 +C2263B40 00000002 +80620000 7C630214 +60000000 00000000 +C2262B20 00000002 +80620000 7C630214 +60000000 00000000 +C2262B80 00000002 +80620000 7C630214 +60000000 00000000 +C2262BE0 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262BB4 00000002 +80620000 7C630214 +60000000 00000000 +C2262C40 00000002 +80620000 7C630214 +60000000 00000000 +C2262C14 00000002 +80620000 7C630214 +60000000 00000000 +C2262C74 00000002 +80620000 7C630214 +60000000 00000000 +C225FBE4 00000003 +3F80803F 639C0A48 +7C9C3214 7F9C3214 +60000000 00000000 +C225FCB8 00000002 +80820000 7C84EA14 +60000000 00000000 +C225FE68 00000002 +80620000 7C630214 +60000000 00000000 +C225FE8C 00000002 +80820000 388400DC +60000000 00000000 +C225FF10 00000002 +83E20000 7FFFEA14 +60000000 00000000 +C225FFEC 00000002 +80620000 7C63EA14 +60000000 00000000 +C226005C 00000002 +83620000 7F7B0214 +60000000 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C2264D58 00000002 +3FE0803F 63FF0A48 +3BFF03B4 00000000 +C2264F84 00000002 +3F80803F 639C0A48 +3BDC0444 00000000 +C225F308 00000002 +3EE0803F 62F70A48 +3BF703B4 00000000 +C225F78C 00000002 +3EE0803F 62F70A48 +38B70483 00000000 +C225DB70 00000002 +80820000 7C840214 +60000000 00000000 +C225DBE0 00000002 +80620000 7C630214 +60000000 00000000 +C225EDE0 00000002 +80620000 7C632214 +60000000 00000000 +C2264114 00000002 +3C60803F 60630A48 +7C630214 00000000 +0425FB6C 83C20000 +042640FC 83820000 +0425F128 82E20000 +C20672B4 00000002 +81820160 398C0001 +7C036000 00000000 +C20673A0 00000002 +81820160 398C0001 +7C1E6000 00000000 +04266AA0 8002014C +04266B10 8002014C +04266B50 8002014C +042609D8 8002014C +C2160450 00000002 +8182014C 7C006000 +60000000 00000000 +C2160464 00000002 +8182014C 7C006000 +60000000 00000000 +C2160428 00000002 +8182014C 7C006000 +60000000 00000000 +C225FE4C 00000002 +81820150 398C0001 +7C046000 00000000 +C2264914 00000002 +81820150 7C116000 +60000000 00000000 +C2264EDC 00000002 +81820150 7C116000 +60000000 00000000 +C2264ED0 00000002 +81820150 7C116000 +60000000 00000000 +C22600C4 00000002 +81820150 7C006000 +60000000 00000000 +C22600D0 00000002 +81820150 7C006000 +60000000 00000000 +C226015C 00000002 +81820150 7C036000 +60000000 00000000 +C226022C 00000002 +81820150 7C036000 +60000000 00000000 +C21692C0 00000002 +81820150 398C0001 +7C006000 00000000 +C2169294 00000002 +81820150 398C0001 +7C006000 00000000 +C216923C 00000002 +8182014C 7C006000 +60000000 00000000 +C2169268 00000002 +81820150 398C0001 +7C006000 00000000 +C22605B8 00000002 +81820150 7C006000 +60000000 00000000 +C22620CC 00000002 +81820150 7C006000 +60000000 00000000 +C22621E0 00000002 +81820150 7C006000 +60000000 00000000 +04260994 80020150 +C2260AD0 00000002 +81820150 7C046000 +60000000 00000000 +C2260B58 00000002 +81820150 7C036000 +60000000 00000000 +04260BCC 80020150 +04260DE4 80020150 +C226183C 00000002 +81820150 7C056000 +60000000 00000000 +C22618CC 00000002 +81820150 7C066000 +60000000 00000000 +C2261F8C 00000002 +81820150 7C006000 +60000000 00000000 +C2262FFC 00000002 +81820150 7C006000 +60000000 00000000 +C2263050 00000002 +81820150 7C006000 +60000000 00000000 +C22634EC 00000002 +81820150 7C006000 +60000000 00000000 +C2263B7C 00000002 +81820150 7C006000 +60000000 00000000 +C22626CC 00000002 +81820150 7C006000 +60000000 00000000 +C2262A1C 00000002 +81820150 7C006000 +60000000 00000000 +0425FB70 80620150 +C225FC54 00000002 +81820150 7C046000 +60000000 00000000 +04264ADC 80620150 +C2264EEC 00000002 +80820150 38840001 +60000000 00000000 +C225F2AC 00000002 +81820150 7C1B6000 +60000000 00000000 +C225DAFC 00000002 +81820150 7C006000 +60000000 00000000 +C225DB98 00000002 +81820150 7C156000 +60000000 00000000 +C225DC88 00000002 +81820150 7C036000 +60000000 00000000 +C225DF4C 00000002 +81820150 7C006000 +60000000 00000000 +C225ED78 00000002 +81820150 7C006000 +60000000 00000000 +C225EDA4 00000002 +81820150 7C046000 +60000000 00000000 +C2026E8C 00000002 +8182014C 7C036000 +60000000 00000000 +C2023064 00000002 +8182014C 7C036000 +60000000 00000000 +0406FD08 83A2014C +040EF070 80620120 +040EE538 80820124 +040EE53C 80A20120 +040EEE70 8002011C +040EEDA4 80020124 +040EEDD4 80020118 +040EEE10 1C1F0010 +040EECCC 1FA00010 +040EEDEC 80020120 +040EED88 80020114 +C20EE528 00000013 +7C0802A6 90010004 +9421FF00 BE810008 +83E2014C 38600004 +3D808016 618C9238 +7D8903A6 4E800421 +7C7E1B78 83A20124 +83820120 3B600000 +38000000 901D0000 +3A800000 1C7B0004 +7EA3E02E 2C150000 +4182001C 90150000 +90150004 3A940001 +3AB50008 7C14F000 +4180FFEC 3B7B0001 +3BBD0004 7C1BF800 +4180FFC0 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +040EECA0 80020118 +040EED24 8002011C +040EEC50 80020114 +040F16E0 80A20124 +040F10B0 80820124 +040F13FC 80820124 +040F15E4 80820124 +040F11B8 80820124 +040F12D4 80820124 +041093D4 80620124 +040EFD94 80820124 +0409D4E0 80820124 +C20EF118 00000002 +56A4103A 80620120 +7C63202E 00000000 +040EF388 80620120 +040F0FF4 80620124 +040F0BA0 80820124 +040EFC88 80820124 +040EFB7C 80820124 +040F14E8 80620124 +040F0DC8 80820124 +040F1100 80620124 +0409D828 80820124 +040EFEB0 80820124 +0409D080 80820124 +040F0740 80820124 +040EFA70 80820124 +040F084C 80820124 +0409D92C 80820124 +040F121C 80620124 +0409DB5C 80820124 +040F00E8 80820124 +040F01F4 80820124 +040F0CAC 80820124 +0409D3C8 80820124 +040F040C 80820124 +0409D2B0 80820124 +040F0300 80820124 +040F0ED4 80820124 +0409DA44 80820124 +040F0528 80820124 +040EFFCC 80820124 +0409D710 80820124 +040F0634 80820124 +040F0A84 80820124 +0409D198 80820124 +040F0968 80820124 +0409D5F8 80820124 +040F1340 80620124 +040EEB20 80620124 +0410B554 80620124 +0410B398 80620124 +04109528 80620124 +0410A110 80C20124 +04109F40 80C20124 +040EEB04 80620124 +0410B398 80620124 +04108EAC 80620124 +04108DC4 80620124 +0410B398 80620124 +04109448 80620124 +041093A4 80620124 +041093A4 80620124 +C212CD18 00000002 +80620098 80630070 +60000000 00000000 +C212CD30 00000002 +80620098 80630070 +60000000 00000000 +C212CD48 00000002 +80620098 80630070 +60000000 00000000 +C212CD60 00000002 +80620098 80630070 +60000000 00000000 +C212CD78 00000002 +80620098 80630070 +60000000 00000000 +C212CD90 00000002 +80820098 80840070 +60000000 00000000 +C212CDBC 00000002 +80620098 80630070 +60000000 00000000 +C21092E4 00000002 +80620098 80630020 +60000000 00000000 +C21092FC 00000002 +80620098 80630020 +60000000 00000000 +C2109314 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C2109344 00000002 +80620098 80630020 +60000000 00000000 +C210935C 00000002 +80820098 80840020 +60000000 00000000 +C2109388 00000002 +80620098 80630020 +60000000 00000000 +C210932C 00000002 +80620098 80630020 +60000000 00000000 +C20F587C 00000002 +80820098 80840020 +60000000 00000000 +C20F1058 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F13A4 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F154C 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C2070258 00000005 +81620118 819C2238 +1D8C0004 7D6C582E +899C0619 1D8C0010 +7D6B6214 800B000C +60000000 00000000 +C20F1164 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +C20F1280 00000005 +81620118 819E2238 +1D8C0004 7D6C582E +899E0619 1D8C0010 +7D6B6214 80AB000C +60000000 00000000 +04015D9C 80020184 +04015C00 80020184 +04015BC0 80620184 +C2018D80 00000007 +801E0000 2C000002 +41820010 2C000003 +41820008 4800001C +38600006 38800000 +3D808001 618C58D0 +7D8903A6 4E800421 +801E0000 00000000 +040158F0 80620184 +04016138 2C000007 +04015F50 83E20184 +C2015F88 00000015 +48000039 7C6802A6 +3D808001 618C63D8 +7D8903A6 4E800421 +3C800041 6084C644 +7C632214 48000025 +7C8802A6 9064001C +7C802378 4800006C +4E800021 4966416C +6C2E7573 64000000 +4E800021 00000002 +00000001 00000006 +00000800 00000003 +00000001 00000002 +004FA690 00000004 +00000002 00000006 +005D12E0 00000005 +00000004 00000006 +0096C800 00000006 +00000001 00000003 +00000020 00000007 +60000000 00000000 +040158D8 80620184 +04015E18 83C20184 +04015CD4 80020184 +C20159B4 00000018 +39800000 1C6C001C +389F0048 7D632214 +806B0014 2C030000 +40820084 806B0010 +2C030000 41820078 +2C030001 41820024 +2C030002 41820038 +2C030003 41820060 +2C030004 4182003C +2C030005 41820050 +806B0008 800B000C +7C030214 7C1D0040 +4080003C 7C1D0378 +48000034 800B0008 +7C1A0040 40810028 +7C1A0378 48000020 +806B0008 800B000C +7C030214 7C1C0040 +4080000C 7C1C0378 +48000004 398C0001 +2C0C0005 4180FF60 +3D808001 618C5ACC +7D8903A6 4E800420 +60000000 00000000 +04015984 2C190007 +04015B94 2C1C0007 +04015914 83E20184 +C20179B4 00000002 +8182014C 7C036000 +60000000 00000000 +C20179F0 00000002 +8182014C 7C1D6000 +60000000 00000000 +C2017A08 00000002 +8182014C 7C006000 +60000000 00000000 +C2017A38 00000002 +8182014C 7C1A6000 +60000000 00000000 +C237C050 0000000C +7FECFB78 48000040 +806C0004 5463013E +2C030008 4082002C +818C0008 2C0C0000 +4182002C C02C002C +D03D002C C02C0030 +D03D0030 C02C0034 +D03D0034 48000010 +818C0000 2C0C0000 +4082FFC0 3D808037 +618CC0A8 7D8903A6 +4E800420 00000000 +C2219230 00000004 +80820178 80840008 +8084006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C20BEC18 00000002 +81820178 818C000C +800C0098 00000000 +040BEBD0 80020078 +C2160438 00000003 +8082006C 1C630004 +7C63202E 4E800020 +60000000 00000000 +C2176C40 00000004 +80820070 7C1C20AE +3D808017 618C6C8C +7D8903A6 4E800420 +60000000 00000000 +0417A890 80020074 +C2160400 00000009 +7C0802A6 90010004 +9421FF00 BE810008 +8182014C 7C036000 +41810014 80820080 +1C630004 7C63202E +48000008 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C20BE938 00000002 +81820178 818C000C +800C009C 00000000 +040C0AB4 4800003C +040C09D0 48000040 +C2168C6C 00000008 +8182014C 398CFFFC +7C036000 41810020 +8082007C 1C630004 +7C63202E 3D808002 +618C43F4 7D8903A6 +4E800421 8001000C +38210008 7C0803A6 +4E800020 00000000 +C20285C8 0000000D +39000000 81220158 +39290001 80620060 +80830004 80A30008 +80C3000C 80E30010 +3860FFFF 90640000 +90650000 90660000 +90670000 38840004 +38A50004 38C60004 +38E70004 39080001 +7C084800 4180FFD8 +3D808002 618C8660 +7D8903A6 4E800420 +60000000 00000000 +C2027694 0000000D +38800000 7FC8F378 +7FA9EB78 81820158 +398C0001 80080000 +2C000001 40820018 +80090000 2C00FFFF +4082000C 38000001 +48000024 39080004 +39290004 38840001 +7C046000 4180FFD0 +354AFFFF 4080FFB4 +38000000 3D808002 +618C7838 7D8903A6 +4E800420 00000000 +C2388A34 00000011 +7C7E1B78 2C1EFFFF +4082007C 4800004D +7C6802A6 7FA4EB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2061 7564696F +2066696C 65202573 +20646F65 73206E6F +74206578 6973740A +00000000 00000000 +C20272DC 00000008 +38A00000 81820158 +398C0001 80030000 +90040000 38630004 +38840004 38A50001 +7C056000 4180FFE8 +3D808002 618C73D4 +7D8903A6 4E800420 +60000000 00000000 +C2026CBC 00000012 +81620158 396B0001 +38800000 80A20090 +80E20060 80C70008 +80E7000C 39800000 +88050001 7C000774 +7C030000 4082002C +80060000 2C000001 +40820020 80070000 +2C00FFFF 40820014 +3D808002 618C6DF8 +7D8903A6 4E800420 +38840001 38A50004 +38C60004 38E70004 +398C0001 7C0C5800 +4180FFB0 3463FFFF +4080FF88 3D808002 +618C6DF4 7D8903A6 +4E800420 00000000 +C2026680 0000000E +38600000 80E20090 +7CA82B78 7C892378 +81620158 396B0001 +88070001 7C000774 +7C0A0000 40820020 +80080000 2C000001 +40820014 80090000 +2C00FFFF 40820008 +4E800020 38E70004 +39080004 39290004 +38630001 7C035800 +4180FFC0 354AFFFF +4080FFA0 3860FFFF +4E800020 00000000 +C20269F8 00000028 +7C0802A6 90010004 +9421FF00 BE810008 +83620158 3B7B0001 +83C20090 80620060 +8383000C 83A30010 +3BE00000 881E0001 +2C000005 41820044 +801D0000 2C00FFFF +41820038 801C0000 +2C00FFFF 4082002C +807D0000 3D808038 +618C8B60 7D8903A6 +4E800421 2C030001 +41820004 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFA0 +83C20090 80620060 +8383000C 83A30010 +3D808038 618C8B50 +7D8903A6 4E800421 +2C030000 41820064 +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +38600002 3D808038 +618C8D30 7D8903A6 +4E800421 3BE00000 +881E0001 2C000005 +41820010 3800FFFF +901D0000 901C0000 +3BDE0004 3BBD0004 +3B9C0004 3BFF0001 +7C1FD800 4180FFD4 +BA810008 80010104 +38210100 7C0803A6 +3D808002 618C6BF0 +7D8903A6 4E800420 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C202356C 00000002 +80620158 38630001 +1C032710 00000000 +C20237B4 00000002 +80C20158 38C60001 +1C062710 00000000 +C2023B50 00000002 +80620158 38630001 +1C032710 00000000 +C20283B4 00000002 +83E20068 3BFFEE1C +60000000 00000000 +C2028508 00000002 +3FE0803B 63FFB300 +3C800001 00000000 +040268E0 80E20068 +C2026C68 00000002 +80A20068 7CA5002E +60000000 00000000 +040267E0 83E20068 +C2023254 00000028 +7C0802A6 90010004 +9421FE00 BE810008 +7C7A1B78 83020060 +83180014 83820158 +1C7C0004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3B3E0000 +1C7D0004 7F83C12E +38000000 7C03C92E +3BBD0001 7C1DE000 +4180FFE8 3A800000 +7F15C378 3BA00000 +83620090 7FD6F378 +82E20068 881B0000 +7C000774 7C1A0000 +4082006C 80160000 +2C000000 40820060 +80170000 80750000 +54631838 80820068 +7C63202E 7C030040 +40800044 387CFFFF +1C630004 7D63C214 +7D94E050 398CFFFF +7C14E000 4080001C +800BFFFC 900B0000 +396BFFFC 398CFFFF +2C0C0000 4181FFEC +93B50000 38000001 +90160000 3AD60004 +3B7B0004 3AF70008 +3BBD0001 7C1DE000 +4081FF74 3A940001 +3AB50004 7C14E000 +4081FF54 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 80010204 +38210200 7C0803A6 +4E800020 00000000 +C2023578 00000005 +3C6068DB 60638BAD +7C63F096 7C636670 +3D808002 618C3634 +7D8903A6 4E800420 +60000000 00000000 +C2088008 00000003 +38802710 7C6419D6 +90610018 38600000 +60000000 00000000 +C2023148 00000003 +3C8068DB 60848BAD +7C841896 7C836670 +4E800020 00000000 +C2023B5C 00000005 +3C6068DB 60638BAD +7C63D896 7C7A6670 +3D808002 618C3C18 +7D8903A6 4E800420 +60000000 00000000 +C21A56F4 0000000D +38600014 3D808002 +618C6F2C 7D8903A6 +4E800421 887F0070 +81820150 398C0001 +7C036000 40800020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3B9C0001 +3BFF0024 2C1C0006 +4180FFC4 3D80801A +618C5730 7D8903A6 +4E800420 00000000 +C202785C 0000004A +7C0802A6 90010004 +9421FF00 BE810008 +3860000C 3D808002 +618C6F2C 7D8903A6 +4E800421 3D808016 +618CB184 7D8903A6 +4E800421 2C030000 +41820090 38600000 +3D808003 618C2330 +7D8903A6 4E800421 +8082014C 7C032000 +41810070 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A800000 7E83A378 +3D808016 618C9370 +7D8903A6 4E800421 +8082014C 7C032000 +41810020 80820020 +1C630010 7C6320AE +3D808000 618C56A8 +7D8903A6 4E800421 +3A940001 2C140003 +4180FFBC 4800006C +3A800000 7E83A378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820040 +7E83A378 3D808003 +618C2330 7D8903A6 +4E800421 8082014C +7C032000 41810020 +80820020 1C630010 +7C6320AE 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140004 4180FFA0 +806D9348 2C0300D9 +41820010 2C0300E5 +41820008 48000020 +3860000C 38A00002 +38C04000 3D808002 +618C702C 7D8903A6 +4E800421 806D9348 +2C030046 41820010 +2C030047 41820008 +48000020 3860000C +38A00000 38C00C00 +3D808002 618C702C +7D8903A6 4E800421 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 1C630003 +80820108 7C841A14 +88640001 906D8238 +806D9348 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D808002 +618C7168 7D8903A6 +4E800421 4800001C +3C608001 606395D0 +3D808038 618C8B0C +7D8903A6 4E800421 +3D808002 618C7488 +7D8903A6 4E800421 +2C030001 4182FFD4 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C21A57FC 00000009 +A07E0016 3D808022 +618C519C 7D8903A6 +4E800421 80820108 +1C630003 7C632214 +88630000 3D808000 +618C56A8 7D8903A6 +4E800421 3D80801A +618C5814 7D8903A6 +4E800420 00000000 +C2028404 00000002 +80620060 80630014 +80030000 00000000 +C2028420 00000002 +81820060 818C0014 +800C0000 00000000 +C2028440 00000002 +81820060 818C0014 +800C0004 00000000 +C202845C 00000002 +81820060 818C0014 +800C0008 00000000 +C2028478 00000002 +81820060 818C0014 +800C000C 00000000 +C2028498 00000002 +80620060 80630014 +80030000 00000000 +C2026C3C 00000002 +80820060 80840010 +60000000 00000000 +C2026C5C 00000003 +80620060 8063000C +1C850004 7C04192E +60000000 00000000 +C2026CB0 00000002 +80C20060 80C60008 +60000000 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2026E38 00000002 +80820060 80840010 +7C7D212E 00000000 +C2026CB4 00000002 +80E20060 80E7000C +60000000 00000000 +C2028738 00000002 +80620060 8063000C +80030000 00000000 +C2028770 00000002 +81820060 818C0010 +906C0000 00000000 +C202890C 00000002 +81820060 818C000C +3BAC0004 00000000 +C2028910 00000002 +80620060 8063000C +80030004 00000000 +C2028948 00000002 +81820060 818C0010 +906C0004 00000000 +C202895C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2028960 00000002 +80620060 8063000C +800300D8 00000000 +C2028998 00000002 +81820060 818C0010 +906C00D8 00000000 +C20289AC 00000002 +81820060 818C000C +3BAC0008 00000000 +C20289B0 00000002 +80620060 8063000C +80030008 00000000 +C20289E8 00000002 +81820060 818C0010 +906C0008 00000000 +C2028780 00000002 +81820060 818C000C +900C0000 00000000 +C20287C4 00000002 +80620060 80630010 +60000000 00000000 +C20287C8 00000002 +80820060 80840004 +60000000 00000000 +C20287CC 00000002 +80A20060 80A50008 +60000000 00000000 +C20287D0 00000002 +80C20060 80C6000C +60000000 00000000 +C20288BC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C20288C0 00000002 +80620060 8063000C +800300CC 00000000 +C20288F8 00000002 +81820060 818C0010 +906C00CC 00000000 +C20267F4 00000002 +83420060 835A0008 +60000000 00000000 +C20267F0 00000002 +83820060 839C000C +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C20267F8 00000002 +83220060 83390010 +60000000 00000000 +C202719C 00000002 +80C20060 80C6000C +60000000 00000000 +C2027290 00000002 +80820060 80840004 +60000000 00000000 +C20272D4 00000002 +80620060 80630004 +60000000 00000000 +C20272D8 00000002 +80820060 80840008 +60000000 00000000 +C2027454 00000002 +80820060 80840010 +7C7D212E 00000000 +C2027464 00000002 +80620060 80630004 +60000000 00000000 +C2027BB4 0000000D +81820060 806C0010 +808C0004 80AC0008 +80CC000C 38E00000 +3800FFFF 81020158 +2C070000 41820014 +90030000 90040000 +90050000 90060000 +38630004 38840004 +38A50004 38C60004 +38E70001 7C074000 +4180FFD0 3D808002 +618C7C9C 7D8903A6 +4E800420 00000000 +C2027D4C 00000002 +81820060 818C000C +3BAC00D8 00000000 +C2027D50 00000002 +80620060 8063000C +800300D8 00000000 +C2027CE8 00000002 +81820060 818C000C +906C00CC 00000000 +C2027CAC 00000002 +81820060 818C000C +3BAC00CC 00000000 +C2027CB0 00000002 +81820060 818C000C +800C00CC 00000000 +C2027CFC 00000002 +81820060 818C000C +3BAC0004 00000000 +C2027D00 00000002 +80620060 8063000C +80030004 00000000 +C2087D3C 00000011 +2C1E0000 41820010 +2C1E000D 41820018 +48000024 3D808008 +618C7D78 7D8903A6 +4E800420 3D808008 +618C7F84 7D8903A6 +4E800420 81820020 +81420148 39600000 +4800001C 1C6B0010 +7C636214 88630000 +7C03F000 41820020 +396B0001 7C0B5000 +4180FFE4 3D808008 +618C803C 7D8903A6 +4E800420 3D808008 +618C7FFC 7D8903A6 +4E800420 00000000 +C20230D8 00000002 +80020158 2C030000 +60000000 00000000 +04023630 80620158 +040268B8 80020158 +C2027288 00000002 +81820158 7C056000 +60000000 00000000 +C2027278 00000002 +80620158 7C051810 +60000000 00000000 +C20273B4 00000002 +81820158 7C056010 +60000000 00000000 +C20273B8 00000002 +81820158 7C056000 +60000000 00000000 +C2023228 00000002 +81820158 7C036000 +60000000 00000000 +C2027140 00000002 +81820158 7C1C6000 +60000000 00000000 +04026C34 80020158 +C2027008 00000002 +81820158 7C1B6000 +60000000 00000000 +C22FF870 0000000A +80620158 48000019 +D03F0154 8062015C +4800000D D03F0194 +4800002C 9421FFF4 +6C638000 C822CA08 +90610008 3C604330 +90610004 C8410004 +EC220828 3821000C +4E800020 80010024 +60000000 00000000 +043883F8 38840037 +C2026880 00000002 +80620158 7C171800 +60000000 00000000 +04026EA4 80820020 +C202742C 00000002 +80820024 7C84E82E +60000000 00000000 +C2026E10 00000002 +80820024 7C84E82E +60000000 00000000 +C2028970 00000002 +80820024 808400D8 +60000000 00000000 +C2028748 00000002 +80820024 80840000 +60000000 00000000 +C20288D0 00000002 +80820024 808400CC +60000000 00000000 +C20289C0 00000002 +80820024 80840008 +60000000 00000000 +C2028920 00000002 +80820024 80840004 +60000000 00000000 +C2023E34 00000002 +80820024 7C84002E +60000000 00000000 +04023234 80820090 +040267DC 83C20090 +C2027AD0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2026664 00000002 +80820060 80A40008 +8084000C 00000000 +C2026E60 00000002 +80820060 8004000C +60000000 00000000 +C20268DC 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2027198 00000002 +83C20060 83DE0000 +60000000 00000000 +C2028368 00000002 +80620060 80630000 +60000000 00000000 +C202645C 00000002 +80620060 80630000 +60000000 00000000 +C20283A8 00000002 +83C20060 83DE0000 +60000000 00000000 +C20283B8 00000002 +3C608043 60633C24 +60000000 00000000 +C2028590 00000002 +3CC08044 60C61064 +60000000 00000000 +C2028530 00000002 +3CC08043 60C63C64 +60000000 00000000 +C20286B0 00000002 +83C20060 83DE0000 +60000000 00000000 +C2027E0C 00000002 +83E20060 83FF0000 +60000000 00000000 +C20270D0 00000002 +83E20060 83FF0004 +60000000 00000000 +C2026FC8 00000002 +83820060 839C0004 +60000000 00000000 +C2026C28 00000002 +83C20060 83DE0000 +60000000 00000000 +C20267C4 00000002 +83A20060 83BD0000 +60000000 00000000 +C202749C 00000002 +80C20060 80A60008 +80C6000C 00000000 +C2024DC8 00000002 +80A20060 80A50000 +60000000 00000000 +C202766C 00000002 +83A20060 83DD0008 +83BD000C 00000000 +C20269DC 00000002 +83020060 8338000C +83180010 00000000 +C21647FC 00000004 +80820178 80840008 +80840050 1C630002 +7C63222E 4E800020 +60000000 00000000 +C226B40C 00000023 +2C041388 41800108 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3BA4EC78 +3C608049 6063E6C8 +83830088 80620178 +80630028 8063000C +1C9C0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 4800008C +48000051 7C6802A6 +7FA4EB78 7F85E378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 4572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20737461 +67652025 640A0000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 3CA0804A +60000000 00000000 +C21C60C8 0000002B +80610014 7C0802A6 +90010004 9421FF00 +BE810008 7C7D1B78 +3C608049 6063E6C8 +83830088 3B400000 +7FA3EB78 48000075 +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 7C7B1B79 +41820034 7F63DB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F63DB78 80820178 +8084002C 1CBC0004 +7C84282E 4800003D +3B400001 7FA3EB78 +7F84E378 38A00001 +3D80803D 618C7070 +7D8903A6 4E800421 +7F5A1B78 48000084 +4E800021 67724675 +6E637469 6F6E0000 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 4800004C +1C680008 7D633A14 +806B0000 54600001 +40820018 1C830004 +806B0004 7C635214 +7C64492E 48000020 +808B0004 7C845214 +7C832050 548401BA +64844800 90830000 +48000004 39080001 +806C0010 7C081800 +4180FFB0 4E800020 +2C1A0000 4182001C +807D0040 809D0000 +3D808032 618C8F50 +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +80610014 00000000 +C22599EC 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83820100 83620154 +7F63DB78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +3BA00000 3A800000 +1C740020 7C83E214 +80640004 2C030000 +41800028 8864000A +3D808016 618C4330 +7D8903A6 4E800421 +2C030000 4182000C +7E9DF1AE 3BBD0001 +3A940001 7C14D800 +4180FFC0 2C1D0000 +4082002C 7F65DB78 +48000014 1C850020 +7C84E214 38600000 +90640004 38A5FFFF +2C050000 4080FFE8 +4BFFFF8C 7FA3EB78 +3D808038 618C0580 +7D8903A6 4E800421 +7FE3F0AE 1C9F0020 +7C84E214 3860FFFF +90640004 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 +7FE3FB78 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C225B39C 00000003 +80C20178 80C60004 +80C60000 38C60004 +60000000 00000000 +C225BC08 00000003 +80820100 1C630020 +7C632214 8063001C +4E800020 00000000 +042251A4 80020104 +04225204 80020104 +042251C8 80020104 +040569FC 80820110 +04056A2C 80A20110 +04056A64 80A20110 +04056A9C 80A20110 +04056AD4 80A20110 +04056B0C 80A20110 +04056B44 80A20110 +04259FE0 88030009 +0425B270 92FF00A0 +0425B274 881F00A8 +0425B294 981F00A8 +0425B2A8 889F00A9 +0425B1E8 3BFF0220 +0425B1D0 92DF03A0 +0425B044 92FC01A0 +0425B048 881C01A8 +0425B068 981C01A8 +0425B07C 889C01A9 +0425AFB0 3B9F0160 +0425AEDC 901B0020 +0425AEE0 881B0028 +0425AEFC 807B0020 +0425AF20 881B0029 +0425AF28 807B0020 +0425BB40 8004001C +C225A0F4 0000000A +81820154 7C036000 +4182002C 398CFFFF +7C036000 41820020 +1C030020 7C7F0214 +88630009 7C630774 +2C03FFFF 41820008 +48000014 3D808025 +618CA1D8 7D8903A6 +4E800420 807E0000 +60000000 00000000 +C225A62C 00000002 +81820154 7C056040 +60000000 00000000 +C2259FB4 00000002 +81820154 7C1E6000 +60000000 00000000 +C2259C4C 0000000A +81820154 7C036000 +41820020 398CFFFF +7C036000 41820024 +3D808025 618C9C84 +7D8903A6 4E800420 +3D808025 618C9C64 +7D8903A6 4E800420 +3D808025 618C9C74 +7D8903A6 4E800420 +60000000 00000000 +C2259C90 00000002 +81820154 7C036000 +60000000 00000000 +C2259E44 00000002 +81820154 7C036040 +60000000 00000000 +0425A0D4 80620154 +0425AA10 80E20154 +0425B580 80020154 +0425A578 83E20100 +0425A4C4 83E20100 +04259FCC 80020100 +04259CA0 80620100 +0425BB30 80820100 +0425A0A4 83E20100 +04259E54 80620100 +C225A9FC 00000002 +7C7C1B78 83E20100 +60000000 00000000 +C225A53C 00000002 +80620154 7C1E1800 +60000000 00000000 +0425A5A0 1C050020 +0425A634 1C050020 +0425A738 1C000020 +0425A7B8 1C000020 +0425A540 3BFF0020 +04259FC4 1C9E0020 +04259C98 1C030020 +0425AD6C 1C170020 +0425AD9C 3AD60020 +0425B0E8 3B9C0020 +0425B314 3BFF0020 +0425AF88 3B7B0040 +0425BB38 1C000020 +0425A0B8 1C050020 +0425A0F8 1C030020 +0425A27C 1C840020 +04259E4C 1C030020 +C2027A14 00000002 +80620108 7C630214 +88A30000 00000000 +04026EF0 80020108 +C20279E0 00000002 +80620108 7C630214 +88030001 00000000 +C21C17A8 00000002 +8082010C 7C840214 +80840000 00000000 +041C0784 8062010C +041C06D4 8002010C +041C1EC8 8002010C +C21C46A8 00000002 +8062010C 7C630214 +80630000 00000000 +041C0FD8 8002010C +041C0F8C 8002010C +041C0828 8082010C +041C2F60 8002010C +041C302C 8002010C +C21C28F0 00000002 +8382010C 3B9CFFCC +60000000 00000000 +C2223930 00000003 +3D80803D 618C7068 +7D8903A6 4E800421 +7C7F1B78 00000000 +C225ACA0 000000B3 +806DB5F4 480004DD +7C8802A6 3D808038 +618C0358 7D8903A6 +4E800421 2C030000 +41820568 906D4A08 +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E000C +3D808037 618C0E44 +7D8903A6 4E800421 +7C7D1B78 7E83A378 +888DC1A9 7FA5EB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00082 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 7FA3EB78 +809E0010 38A00000 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 82DD0010 +7EC3B378 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EC3B378 3D808037 +618C0928 7D8903A6 +4E800421 82D60008 +2C160000 4082FFCC +82820100 3AA00000 +8074001C 3D808016 +618C4430 7D8903A6 +4E800421 2C030000 +4182000C 38000002 +48000008 38000001 +98140008 3A940020 +3AB50001 80620154 +7C151800 4180FFC4 +3AC00000 82E20100 +831D0010 80620154 +3863FFFF 7C161800 +418201A0 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 807E0000 +3D808037 618C0E44 +7D8903A6 4E800421 +7C751B78 7E83A378 +888DC1A9 7EA5AB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00004 +38C00083 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +3C808022 6084EAE0 +38A00003 3D808038 +618CFD54 7D8903A6 +4E800421 7EA3AB78 +809E0004 80BE0008 +38C00000 3D808036 +618CFB5C 7D8903A6 +4E800421 7EA3AB78 +7F04C378 4800029D +92B70000 88170008 +2C000001 418200A8 +418000AC 7EA3AB78 +88970009 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +38760002 6C638000 +90610084 3C604330 +90610080 C822C9B8 +C8010080 EC200828 +7EA3AB78 38800010 +3D808036 618CF7B0 +7D8903A6 4E800421 +7EA3AB78 3D808037 +618C0928 7D8903A6 +4E800421 7EA3AB78 +38800006 38A00400 +3CC08036 60C6414C +38E00006 39000000 +39200000 4CC63182 +3D808036 618C4C08 +7D8903A6 4E800421 +48000028 38000000 +98170008 7EA3AB78 +38800010 3D808037 +618C1D9C 7D8903A6 +4E800421 48000004 +3AD60001 3AF70020 +83180008 2C180000 +4082FE44 38600004 +38800005 38A00080 +3D808039 618C01F0 +7D8903A6 4E800421 +7C741B78 806DB5F8 +80630010 3D808037 +618C0E44 7D8903A6 +4E800421 7C751B78 +7E83A378 888DC1A9 +7EA5AB78 3D808039 +618C0A70 7D8903A6 +4E800421 7E83A378 +3C808039 60841070 +38A00004 38C00083 +3D808039 618C069C +7D8903A6 4E800421 +7E83A378 3C808022 +6084EAE0 38A00004 +3D808038 618CFD54 +7D8903A6 4E800421 +7EA3AB78 38800000 +38A00000 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +7FA3EB78 38810080 +80A20154 38C0FFFF +4CC63182 3D808001 +618C1E24 7D8903A6 +4E800421 7EA3AB78 +80810080 480000C5 +7EA3AB78 C022C9C0 +3D808036 618CF8BC +7D8903A6 4E800421 +7EA3AB78 38800010 +C022C9F8 3D808036 +618CF7B0 7D8903A6 +4E800421 7EA3AB78 +3D808037 618C0928 +7D8903A6 4E800421 +7EA3AB78 38800006 +38A00400 3CC08036 +60C6414C 38E00000 +39000000 39200000 +4CC63182 3D808036 +618C4C08 7D8903A6 +4E800421 80620100 +80820154 3884FFFF +1C840020 7EA4192E +BA810008 80010104 +38210100 7C0803A6 +3D808025 618CB31C +7D8903A6 4E800420 +4E800021 6D65784D +61704461 74610000 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +3D808000 618CC2F8 +7D8903A6 4E800421 +3D808037 618CC444 +7D8903A6 4E800421 +7C7D1B78 3C809000 +60840008 3D808037 +618CAE90 7D8903A6 +4E800421 387D0000 +389E0000 3D808037 +618CCC90 7D8903A6 +4E800421 387F0000 +389D0000 3D808037 +618C1C68 7D8903A6 +4E800421 BA810008 +80010104 38210100 +7C0803A6 4E800020 +38600000 906D4A08 +38600004 00000000 +C225A014 00000004 +808D4A08 2C040000 +4182000C A3BC0000 +48000008 83A10024 +60000000 00000000 +C2259F64 00000004 +80ED4A08 2C070000 +4182000C 80A70014 +48000008 80A60038 +60000000 00000000 +C2173860 00000004 +2C03001A 41800014 +3D808017 618C38EC +7D8903A6 4E800420 +5463063E 00000000 +C21A50AC 00000002 +806200D4 4E800020 +60000000 00000000 +C21A45BC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3FE0803D 63FFACA4 +3D80801A 618C50AC +7D8903A6 4E800421 +7C7E1B78 7FFDFB78 +7FDCF378 889D0001 +2C040008 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C040008 +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 7FFDFB78 +7FDCF378 889D0001 +2C04000E 4182000C +3BBD0014 4BFFFFF0 +889C0001 2C04000E +4182000C 3B9C0018 +4BFFFFF0 807D0004 +907C0004 807D0008 +907C0008 807D000C +907C000C 807D0010 +907C0010 BA810008 +80010104 38210100 +7C0803A6 3BE00000 +60000000 00000000 +C21A4444 00000002 +81820164 7C1B6040 +60000000 00000000 +0401CEAC 80620164 +C21A4568 00000002 +81820164 7C006040 +60000000 00000000 +C21A43E0 00000002 +81820164 7C046040 +60000000 00000000 +C21A448C 00000002 +81820164 7C006040 +60000000 00000000 +C21A3F2C 00000002 +81820164 7C006040 +60000000 00000000 +041A4560 3BFF0018 +041A43D8 38630018 +041A4484 38630018 +041A3F24 3BFF0018 +C21A4D14 00000002 +81820168 7C006040 +60000000 00000000 +C21A50A0 00000002 +806200D8 4E800020 +60000000 00000000 +041A4D0C 38630014 +C21A43EC 00000046 +7C0802A6 90010004 +9421FF00 BE810008 +807E0014 2C030000 +418201EC 3D808033 +618C796C 7D8903A6 +4E800421 7C741B79 +418201D4 807E0014 +3D808001 618C63D8 +7D8903A6 4E800421 +7C7C1B78 80620184 +806300C0 3863001F +54630034 7C7B1B78 +387C001F 54630034 +7FBB1A14 38600063 +54630034 7C7D1A14 +80A20184 808500C0 +7C641850 906500C4 +38000000 900DAD28 +7E83A378 38800000 +7F65DB78 38DC001F +54C60034 38E00021 +39000001 3D208001 +6129615C 39400000 +3D808038 618CF6D4 +7D8903A6 4E800421 +3D808001 618C61A0 +7D8903A6 4E800421 +2C030000 4182FFEC +7FA3EB78 7F64DB78 +7F85E378 3D808001 +618C6A54 7D8903A6 +4E800421 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7A1B79 418200F8 +7F43D378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A00014 +3D808000 618C3100 +7D8903A6 4E800421 +7F43D378 38810080 +48000051 80610080 +2C030000 41820008 +907E0010 80610084 +2C030000 41820008 +907E0004 80610088 +2C030000 41820008 +907E0008 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000070 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6A4675 6E637469 +6F6E0000 80620184 +38630010 38800000 +908300B4 BA810008 +80010104 38210100 +7C0803A6 38000000 +60000000 00000000 +C21A40C8 0000002B +7C0802A6 90010004 +9421FF00 BE810008 +807A0010 2C030000 +41820124 807A0010 +3D808001 618C6BE0 +7D8903A6 4E800421 +7C7D1B78 7FA3EB78 +480000F5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7E1B79 418200E8 +7FC3F378 3D80803D +618C7074 7D8903A6 +4E800421 38610080 +38800000 38A0000F +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 38810080 +48000051 80610080 +2C030000 41820008 +907A0004 80610084 +2C030000 41820008 +907A0008 80610088 +2C030000 41820008 +907A000C 807D0020 +809D0000 3D808032 +618C8F50 7D8903A6 +4E800421 48000060 +7C6C1B78 7C892378 +80EC000C 814C0000 +39000000 48000028 +1C680008 7D633A14 +806B0004 7C635214 +808B0000 1C840004 +7C64492E 48000004 +39080001 806C0010 +7C081800 4180FFD4 +4E800020 4E800021 +6D6E4675 6E637469 +6F6E0000 BA810008 +80010104 38210100 +7C0803A6 7F23CB78 +60000000 00000000 +C20056BC 00000003 +3D808025 618CD5AC +7D8903A6 4E800420 +4E800020 00000000 +C20056B8 00000002 +80620000 4E800020 +60000000 00000000 +C200561C 00000012 +7C0802A6 90010004 +9421FF00 BE810008 +3CA08048 8BC59D30 +8BE59D33 83A200D4 +38800000 1CA40018 +7CBD2A14 88C50001 +7C06F000 4082000C +80650010 48000010 +38840001 2C04002C +4081FFDC 38800000 +1CA40018 7CA32A14 +88C50000 7C06F800 +4082000C 8865000C +48000010 38840001 +2C0600FF 4082FFDC +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +040D6968 80020050 +040D69D0 80020054 +040966A8 80020054 +040D68CC 80020038 +04096704 8002003C +040D6830 80020048 +04096800 8002004C +04096878 8002004C +0409655C 80020040 +0409660C 80020040 +040967C4 80020044 +0409677C 80020044 +C20056A8 00000005 +2C030037 41820018 +81820060 818C0004 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 +C23D7098 00000017 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 3A800000 +4800006C 807F23F8 +1C140004 7EA3002E +82F50000 2C170000 +41820050 2C1D0000 +41820008 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4D7C 7D8903A6 +4E800421 48000024 +38750010 7FC4F378 +38B50008 3D808007 +618C4CA0 7D8903A6 +4E800421 48000004 +3A940001 801F23F4 +7C140000 4180FF90 +48000004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7094 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +2C03000B 408000B4 +48000031 4800004D +48000051 48000055 +48000059 4800005D +48000061 48000065 +48000069 4800006D +48000071 48000075 +7C8802A6 1CA30004 +7C842A14 80A40000 +54A501BA 7C842A14 +7C8903A6 4E800420 +80620148 480000E0 +8062014C 480000D8 +80620150 480000D0 +80620000 480000C8 +8062016C 480000C0 +80620170 480000B8 +80620154 480000B0 +80620100 480000A8 +8062005C 480000A0 +8062010C 48000098 +80620178 80630028 +80630000 48000088 +7C641B78 48000049 +7C6802A6 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +45585F47 65744461 +74612829 20646F65 +73206E6F 74206861 +76652064 61746120 +666F7220 69642025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7068 00000005 +3D808049 618CE6C8 +818C0088 1D8C0004 +8062010C 7C63602E +80630004 4E800020 +60000000 00000000 +C23D7088 0000001C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +80620178 80630008 +8063004C 1C9F0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000084 +48000051 7C6802A6 +7FE4FB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 6974656D +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D708C 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +7C7E1B78 3C608049 +6063E6C8 83A30088 +80620178 80630028 +8063000C 1C9D0008 +7F832214 807C0000 +7C1E1800 40800014 +807C0004 1C9E0002 +7C63222E 48000080 +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2073 74616765 +20256420 646F6573 +206E6F74 20686176 +65206974 656D2025 +640A0000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7084 00000003 +1C630004 80820124 +7C63202E 4E800020 +60000000 00000000 +C23D7064 00000025 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +A07F0000 2C030004 +41820010 2C030003 +41820020 480000E0 +807F002C 83A30004 +80620178 80630008 +8063004C 48000020 +3C608049 6063E6C8 +83A30088 80620178 +80630028 8063000C +48000004 1C9D0008 +7F832214 807C0000 +7C1E1800 41810014 +807C0004 1C9E0002 +7C63222E 4800008C +48000051 7C6802A6 +7FA4EB78 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A2066 69676874 +65722025 6420646F +6573206E 6F742068 +61766520 61727469 +636C6520 49442025 +640A0000 3860FFFF +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D707C 0000000A +7C0802A6 90010004 +9421FF00 BE810008 +3C608049 6063E6C8 +80630088 80820178 +80840028 80840014 +1C630008 7D432214 +806A0004 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7058 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 80620178 +80630008 8063004C +1C9F0008 7F632214 +807B0000 7C1D1800 +40800028 807B0004 +1C9D0002 7C63222E +80820088 80840014 +3863FF13 1C630004 +7FC3212E 48000090 +48000051 7C6802A6 +7FA4EB78 7FE5FB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20636F6E 7461696E +20697465 6D202564 +20666F72 20666967 +68746572 2025640A +00000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7070 00000050 +7C0802A6 90010004 +9421FF00 BE810008 +7C9F2378 7CBE2B78 +480000C5 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +7C7D1B79 418200A0 +829D0000 3AA00000 +2C140000 41820090 +387D0004 1C950004 +7EC3202E 2C160000 +41820068 7EC3B378 +3D80803D 618C7074 +7D8903A6 4E800421 +7FE3FB78 7FC4F378 +7EA5AB78 48000071 +7C691B78 8176000C +81560000 39000000 +48000024 1C880008 +7CA45A14 80650004 +7C635214 80850000 +1C840004 7C64492E +39080001 80760010 +7C081800 4180FFD8 +3AB50001 7C15A000 +4180FF80 38600001 +48000194 38600000 +4800018C 4E800021 +69744675 6E637469 +6F6E0000 7C6B1B78 +7C8A2378 7CAC2B78 +2C0A0001 41820014 +80620178 80630008 +8063004C 48000014 +80620178 80630028 +8063000C 48000004 +1C8B0008 7C632214 +80630004 2C030000 +41820078 1C8C0002 +7C63222E 80820088 +2C03002B 41800020 +2C0300A1 41800020 +2C0300D0 41800024 +2C0300ED 41800028 +48000030 80840000 +48000034 3863FFD5 +80840004 48000028 +3863FF5F 80840008 +4800001C 3863FF30 +8084000C 48000010 +3863FF13 80840010 +48000004 1C63003C +7C632214 4E800020 +2C0A0001 41820010 +4800009D 7C8802A6 +48000010 4800009D +7C8802A6 48000004 +4800004D 7C6802A6 +7D655B78 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A204D +78447420 646F6573 +206E6F74 20636F6E +7461696E 20616E79 +20697465 6D732066 +6F722025 73202564 +0A000000 4E800021 +66696768 74657200 +4E800021 73746167 +65000000 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C23D7080 00000068 +7C0802A6 90010004 +9421FF00 BE810008 +D3C10080 D3A10084 +D3C10088 7C7F1B78 +7C9E2378 FFE00890 +FFC01090 FFA01890 +83BF002C 807D0004 +2C030004 40820268 +835D2238 80620144 +1C9A0004 7C63202E +2C030000 41820140 +1C9E0020 7F832214 +80620128 1C9A0004 +7C63202E 2C030000 +41820184 809C0000 +1C840018 7F632214 +7FE3FB78 388000EF +3CA02000 38C00000 +FC20F890 FC40F090 +FC60E890 3D808006 +618C93AC 7D8903A6 +4E800421 38600000 +907D0014 387E0190 +907D0010 3860FFFF +907D05A4 807B0004 +2C030000 41820174 +907D0590 807B000C +907D03EC 807D0590 +7FE3FB78 FC20F890 +FC40F090 FC60E890 +3D808006 618CEBE8 +7D8903A6 4E800421 +38600000 907D03E4 +7FE3FB78 3D808006 +618CE9B4 7D8903A6 +4E800421 C0028874 +FC00F840 40820030 +7FE3FB78 3D80800C +618C0408 7D8903A6 +4E800421 7FE3FB78 +3D808007 618C3240 +7D8903A6 4E800421 +48000018 7FE3FB78 +3D808007 618C3354 +7D8903A6 4E800421 +807C000C 907D21A0 +807C0010 907D219C +807C0014 907D21A4 +807C0018 907D21A8 +807C001C 907D21AC +4800018C 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +48000130 4E800021 +6572726F 723A206B +6266756E 6374696F +6E20696E 20257320 +6D697373 696E6720 +6D6F7665 5F6C6F67 +69632074 61626C65 +0A000000 48000029 +7C6802A6 80820114 +1CBA0008 7C84282E +3D808034 618C56A8 +7D8903A6 4E800421 +480000D0 4E800021 +6572726F 723A2025 +73206D69 7373696E +67206674 636D6420 +73796D62 6F6C0A00 +4800002D 7C6802A6 +80820114 1CBA0008 +7C84282E 7FC5F378 +3D808034 618C56A8 +7D8903A6 4E800421 +48000080 4E800021 +6572726F 723A2066 +74636D64 20696E20 +2573206D 69737369 +6E672061 6E696D61 +74696F6E 20666F72 +20737461 74652025 +640A0000 48000021 +7C6802A6 809D0004 +3D808034 618C56A8 +7D8903A6 4E800421 +48000028 4E800021 +6572726F 723A2066 +69676874 65722025 +64206973 206E6F74 +206B6972 62790A00 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +48000000 C3C10080 +C3A10084 C3C10088 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D709C 0000001E +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 7FE3FB78 +38810080 7FA5EB78 +38C00000 3D808001 +618C6C64 7D8903A6 +4E800421 7C7A1B78 +83210080 2C190000 +41820024 7F23CB78 +3D80803D 618C7074 +7D8903A6 4E800421 +7F23CB78 7FC4F378 +48000035 807A0020 +809A0000 3D808032 +618C8F50 7D8903A6 +4E800421 7F43D378 +BA810008 80010104 +38210100 7C0803A6 +4E800020 7C6C1B78 +7C892378 80EC000C +814C0000 39000000 +48000028 1C680008 +7D633A14 806B0004 +7C635214 808B0000 +1C840004 7C64492E +48000004 39080001 +806C0010 7C081800 +4180FFD4 4E800020 +60000000 00000000 +C23D7090 000000A4 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3FC0804A +63DE04F0 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +837C0008 A06DB528 +2C030000 40810010 +3863FFFF B06DB528 +480004C0 38600004 +3D808022 618C9624 +7D8903A6 4E800421 +7C7D1B78 93BE000C +38600000 907E0008 +57A006F7 4182028C +3A800000 4800003C +7E83A378 3D80801A +618C36A0 7D8903A6 +4E800421 5460063F +4182001C 7E83A378 +3D808016 618C77E8 +7D8903A6 4E800421 +48000010 3A940001 +2C140004 4180FFC4 +38600001 3D808002 +618C4030 7D8903A6 +4E800421 38600005 +B06DB528 38600001 +987E0011 A07E0002 +1C630008 7F43DA14 +887A0000 2C030000 +41820010 2C030001 +418201D4 48000404 +806DB8E0 80630004 +881A0001 1C000014 +7F230214 887A0001 +2C030007 40820038 +81990010 2C0C0000 +418200AC 7D8903A6 +38600000 38800001 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +480003B0 887A0001 +2C030008 40820014 +818DB614 7D8903A6 +4E800421 48000394 +887A0001 2C030021 +40820030 38600000 +3D808024 618CCD64 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 4800035C +80790010 2C030000 +41820024 7C6903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +48000330 887E0000 +987E0001 887A0001 +987E0000 3A800000 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182000C +B29E0002 48000010 +3A940001 7C145800 +4180FFD0 38600001 +3D808022 618CB3A0 +7D8903A6 4E800421 +3D808039 618C0CD4 +7D8903A6 4E800421 +7FE3FB78 3D808039 +618C0228 7D8903A6 +4E800421 806DB8E0 +80630004 881E0000 +1C000014 7F830214 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +48000238 3D80801A +618C4B9C 7D8903A6 +4E800421 881A0001 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 4800020C +57A006B5 41820148 +38600000 3D808002 +618C4030 7D8903A6 +4E800421 887C000D +7C630774 2C03FFFF +40820030 3D80801A +618C4B9C 7D8903A6 +4E800421 38000000 +98030000 3D80801A +618C4B60 7D8903A6 +4E800421 480001B4 +38600000 987E0011 +887E0000 987E0001 +887C000D 987E0000 +39800000 893E0001 +806DB8E0 80630004 +881E0000 1C000014 +7C630214 8963000C +81430008 1C0C0008 +7C6A0214 88030000 +2C000000 40820018 +88030001 7C004800 +4082000C B19E0002 +48000010 398C0001 +7C0C5800 4180FFD0 +38600003 3D808022 +618CB3A0 7D8903A6 +4E800421 3D808039 +618C0CD4 7D8903A6 +4E800421 7FE3FB78 +3D808039 618C0228 +7D8903A6 4E800421 +38600000 38800001 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 3C80803D +60847090 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +808DC19C 8803000D +508026B6 9803000D +480000C0 57A007FF +4182005C 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A94FFFF +7E800734 2C00FFFF +4181000C 887C000C +3A83FFFF 887E0000 +7E84A378 3D808022 +618C9938 7D8903A6 +4E800421 2C030000 +4182FFCC B29E0002 +48000060 57A007BD +41820058 38600002 +3D808002 618C4030 +7D8903A6 4E800421 +A29E0002 3A940001 +889C000C 7C142000 +41800008 3A800000 +887E0000 7E84A378 +3D808022 618C9938 +7D8903A6 4E800421 +2C030000 4182FFD0 +B29E0002 48000004 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D7074 0000003C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 83DF0008 +83BF0000 839F0004 +836200F8 807B0000 +2C030014 4080013C +3B400000 833B0000 +3B1B0004 48000018 +80780000 7C03F800 +4182010C 3B5A0001 +3B180004 7C1AC800 +4180FFE8 807B0000 +1C630004 38BB0004 +7FE3292E 807B0000 +38630001 907B0000 +807C0000 5479463E +5463023E 7F63EA14 +807C0004 54604636 +2C000080 4182000C +7F43EA14 48000008 +835C0004 2C190001 +41820028 2C190004 +41820028 2C190006 +41820020 2C19000A +41820060 2C19001A +41820070 48000078 +935B0000 48000070 +57438FFF 4182001C +5743843E 38630001 +5466801E 7C66D050 +5465043E 7CDA2B78 +2C190004 41820014 +2C190006 41820004 +5743843E 4800000C +5743043E 48000004 +B07B0000 48000028 +7C7BD050 546301BA +809B0000 7C632378 +907B0000 48000010 +7C7BD050 907B0000 +48000004 3B9C0008 +3BDEFFFF 2C1E0000 +4181FF28 BA810008 +80010104 38210100 +7C0803A6 4E800020 +48000049 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A206F 76657220 +32302078 46756E63 +74696F6E 7320696E +64657865 640A0000 +60000000 00000000 +C23D7078 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3C608049 +6063E6C8 80630088 +80820108 1C630003 +7C632214 88630000 +1C632710 7C63FA14 +3D80801C 618C53EC +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C2268648 00000026 +7C0802A6 90010004 +9421FF00 BE810008 +837E0008 2C1B1388 +41800100 3B7BEC78 +83FE0000 2C1F0000 +41820034 A07F0000 +2C030004 41820010 +2C030003 41820020 +480000D8 80620178 +80630008 8063004C +809F002C 80840004 +4800001C 80620178 +80630028 8063000C +3C808049 6084E6C8 +80840088 1C840008 +7F832214 807C0000 +7C1B1800 40800018 +807C0004 1C9B0002 +7C63222E 907E0008 +48000080 4800004D +7C6802A6 7F64DB78 +3D808034 618C56A8 +7D8903A6 4E800421 +48000025 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4E800021 +6D2D6578 00000000 +4E800021 6572726F +723A204D 78447420 +646F6573 206E6F74 +20686176 65206172 +7469636C 65204944 +2025640A 00000000 +BA810008 80010104 +38210100 7C0803A6 +807E000C 00000000 +C23D7060 00000016 +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 7C9E2378 +83ADB8DC 2C1D0000 +41820078 83820148 +387CFFFA 7C1F1800 +41800028 387CFFFF +7C1F1800 4181001C +387CFFFA 7C63F850 +48000045 7C8802A6 +7C6320AE 48000018 +A07D0000 A09D0002 +7C84F1D6 7C632214 +7C63FA14 6C638000 +C822CA08 90610084 +3C604330 90610080 +C8410080 EC220828 +48000010 4E800021 +03020101 05060000 +BA810008 80010104 +38210100 7C0803A6 +4E800020 00000000 +C23D706C 0000000C +7C0802A6 90010004 +9421FF00 BE810008 +7C7F1B78 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +38800000 7FE5FB78 +3D808000 618C3100 +7D8903A6 4E800421 +7FC3F378 BA810008 +80010104 38210100 +7C0803A6 4E800020 +60000000 00000000 +C202313C 00000002 +80820158 38840001 +1C042710 00000000 +C2088170 00000010 +3B830000 3CA068DB +60A58BAD 7C7D2896 +7C636670 2C030000 +4082005C 2C1D1388 +41800054 3CA068DB +60A58BAD 7CBD2896 +7CA35E70 7FA5FE70 +7CA51850 1CA51388 +7FA5E850 887C000C +3C808045 60843080 +1C630E90 7C632214 +80630004 80820020 +1C630010 7C6320AE +1C632710 7FA3EA14 +48000004 7F83E378 +7FA4EB78 00000000 +C2088204 0000000F +3CA068DB 60A58BAD +7C7E2896 7C636670 +2C030000 4082005C +2C1E1388 41800054 +3CA068DB 60A58BAD +7CBE2896 7CA35E70 +7FC5FE70 7CA51850 +1CA51388 7FC5F050 +887F000C 3C808045 +60843080 1C630E90 +7C632214 80630004 +80820020 1C630010 +7C6320AE 1C632710 +7FC3F214 48000004 +881F2225 00000000 +C20884B0 00000010 +3BA30000 3CA068DB +60A58BAD 7D642896 +7D6B6670 2C0B0000 +4082005C 2C041388 +41800054 3CA068DB +60A58BAD 7CA42896 +7CAB5E70 7C85FE70 +7CA55850 1CA51388 +7C852050 897D000C +3D808045 618C3080 +1D6B0E90 7D6B6214 +816B0004 81820020 +1D6B0010 7D6B60AE +1D6B2710 7C8B2214 +48000004 7FA3EB78 +60000000 00000000 +C20CBCB4 0000000E +80840014 3D8068DB +618C8BAD 7D646096 +7D6B6670 2C0B0000 +40820050 2C041388 +41800048 7D846096 +7D8B5E70 7C8CFE70 +7D8C5850 1D8C1388 +7C8C2050 897F000C +3D408045 614A3080 +1D6B0E90 7D6B5214 +816B0004 81420020 +1D6B0010 7D6B50AE +1D6B2710 7C8B2214 +60000000 00000000 +C2075124 00000005 +7FC3F378 38800002 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C2075188 00000005 +7FC3F378 38800003 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C20751F0 00000005 +7FC3F378 7FA4EB78 +7FE5FB78 3D80803D +618C7098 7D8903A6 +4E800421 809E0004 +60000000 00000000 +C207B4C0 00000082 +7C0802A6 90010004 +9421FF00 BE810008 +83FD0000 807D0004 +8082005C 1C630008 +7C63202E 881D0619 +1C000018 7C630214 +83C30014 7FC3F378 +48000271 7C8802A6 +3D808038 618C0358 +7D8903A6 4E800421 +2C030000 41820394 +3B830008 801C0000 +2C000000 41820384 +801C0000 901D23F4 +1C600004 3D808037 +618CF1E4 7D8903A6 +4E800421 907D23F8 +3A800000 4800020C +807C0004 1C140004 +7EA3002E 38600030 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C761B78 807D23F8 +1C140004 7EC3012E +3C608045 60639080 +3D808037 618CABC8 +7D8903A6 4E800421 +9076000C 80750000 +3D808037 618C0E44 +7D8903A6 4E800421 +90760000 80150004 +90160004 3D808007 +618C4148 7D8903A6 +4E800421 3D808007 +618C4170 7D8903A6 +4E800421 7FE3FB78 +80960000 38B60008 +3D808007 618C5650 +7D8903A6 4E800421 +38D60008 7CC73378 +38A00000 38960010 +38750010 3D808007 +618C487C 7D8903A6 +4E800421 3AE00000 +48000094 8075000C +1C170004 7F23002E +3B1D02F0 807D03E0 +1C030018 7F180214 +807D03E0 38630001 +907D03E0 2C03000A +40800128 80760000 +38810080 80B90000 +38C0FFFF 3D808001 +618C1E24 7D8903A6 +4E800421 80610080 +38980004 80B90008 +3D808000 618CFD48 +7D8903A6 4E800421 +38000000 90180000 +38790004 38980004 +3D808001 618C1710 +7D8903A6 4E800421 +3AF70001 80150008 +7C170000 4180FF68 +3D808021 618CB2D8 +7D8903A6 4E800421 +3AE00000 48000074 +8075001C 1C170004 +7F23002E 3B1D1670 +887D166C 1C030028 +7F180214 887D166C +38630001 987D166C +2C03000B 408000D0 +80790000 90780024 +80790000 809D05E8 +1C630010 7C63202E +90780010 C0390004 +D0380000 C0390008 +D0380004 C039000C +D0380008 C0390010 +D038000C 3AF70001 +80150018 7C170000 +4180FF88 3A940001 +801C0000 7C140000 +4180FDF0 48000150 +4E800021 6D657843 +6F737475 6D650000 +480000C5 7C6802A6 +8082000C 801D0004 +1C000004 7C84002E +881D0619 1C000010 +7C840214 80840000 +3D808034 618C56A8 +7D8903A6 4E800421 +48000081 7C6802A6 +38800000 3CA0804D +60A53940 3D808038 +618C8220 7D8903A6 +4E800421 4800009D +7C6802A6 8082000C +801D0004 1C000004 +7C84002E 881D0619 +1C000010 7C840214 +80840000 3D808034 +618C56A8 7D8903A6 +4E800421 48000025 +7C6802A6 38800000 +3CA0804D 60A53940 +3D808038 618C8220 +7D8903A6 4E800421 +4E800021 6D2D6578 +00000000 4E800021 +6572726F 723A2063 +6F737475 6D652025 +73207573 6573206D +6F726520 7468616E +20313020 64796E61 +6D696373 0A000000 +4E800021 6572726F +723A2063 6F737475 +6D652025 73207573 +6573206D 6F726520 +7468616E 20313120 +64796E61 6D696373 +20686974 730A0000 +38000000 901D23F4 +901D23F8 BA810008 +80010104 38210100 +7C0803A6 8001002C +60000000 00000000 +C2080DC8 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C2080BCC 0000001D +7C0802A6 90010004 +9421FF00 BE810008 +3A800000 480000B0 +807F23F8 1C140004 +7EA3002E 82F50000 +2C170000 41820094 +807F05E8 80150004 +1C000010 7EC3002E +7EC3B378 3D808037 +618C32E8 7D8903A6 +4E800421 38760044 +38970044 3D808034 +618C21D0 7D8903A6 +4E800421 80770014 +64630380 90770014 +7EE3BB78 3D808037 +618C32E8 7D8903A6 +4E800421 7F83E378 +3D808039 618C0EB8 +7D8903A6 4E800421 +7C651B78 7EE3BB78 +38800000 38C00000 +3D808037 618C09DC +7D8903A6 4E800421 +3A940001 801F23F4 +7C140000 4180FF4C +BA810008 80010104 +38210100 7C0803A6 +7FE3FB78 00000000 +C21A4C98 00000011 +818200F8 816DC018 +39400000 38E00000 +812C0000 390C0004 +48000028 80680000 +7C035800 40800014 +38AC0004 1C870004 +7C64292E 38E70001 +394A0001 39080004 +7C0A4800 4180FFD8 +90EC0000 818200F8 +386C0004 1C870004 +7C632214 38800000 +38A00050 1CC70004 +7CA62850 3D808000 +618C3100 7D8903A6 +4E800421 806DB08C +60000000 00000000 +C2394A74 0000002D +7C0802A6 90010004 +9421FF00 BE810008 +48000105 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +3BE00000 83DC0004 +480000D0 83A200F8 +3B800000 837D0000 +3B5D0004 48000088 +833A0000 80790000 +809E0004 7C041800 +4180006C 80B90014 +7C632A14 7C041800 +4181005C 3B000000 +82F90018 8079001C +1C98000C 7D832214 +80790000 808C0000 +7C632214 809E0004 +7C041800 41800024 +80790000 808C0004 +7C632214 809E0004 +7C041800 4181000C +80AC0008 48000028 +3B180001 7C18B800 +4180FFB4 3B9C0001 +3B5A0004 7C1CD800 +4180FF78 48000069 +7CA802A6 48000051 +7C6802A6 809E0004 +3D808034 618C56A8 +7D8903A6 4E800421 +83DE0000 3BFF0001 +2C1F0008 40800040 +2C1EFFFF 4082FF28 +48000034 4E800021 +204C5220 53617665 +3A202053 796D626F +6C0A0000 4E800021 +25583A20 2025730A +00000000 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 3D808039 +618C4B04 7D8903A6 +4E800420 00000000 +C2394BD4 00000021 +7C0802A6 90010004 +9421FF00 BE810008 +83A200F8 3B800000 +837D0000 3B5D0004 +48000088 833A0000 +80790000 809E0198 +7C041800 4180006C +80B90014 7C632A14 +7C041800 4181005C +3B000000 82F90018 +8079001C 1C98000C +7D832214 80790000 +808C0000 7C632214 +809E0198 7C041800 +41800024 80790000 +808C0004 7C632214 +809E0198 7C041800 +4181000C 808C0008 +48000028 3B180001 +7C18B800 4180FFB4 +3B9C0001 3B5A0004 +7C1CD800 4180FF78 +48000035 7C8802A6 +4800001D 7C6802A6 +3D808034 618C56A8 +7D8903A6 4E800421 +4800001C 4E800021 +53796D62 6F6C3A20 +25730A00 4E800021 +4E2F4100 BA810008 +80010104 38210100 +7C0803A6 5760018D +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag From 879aeff8a5a2853b2e850586df9f4f0d9743cd0a Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 17 Jun 2021 01:40:25 -0700 Subject: [PATCH 018/217] adjust opp name length --- Online/Online.s | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Online/Online.s b/Online/Online.s index 963e8d51..4769b1a3 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -258,15 +258,15 @@ .set MSRB_USER_CHATMSG_ID, MSRB_DELAY_FRAMES + 1 # u8 .set MSRB_OPP_CHATMSG_ID, MSRB_USER_CHATMSG_ID + 1 # u8 .set MSRB_CHATMSG_PLAYER_INDEX, MSRB_OPP_CHATMSG_ID + 1 # u8 -.set MSRB_VS_LEFT_PLAYERS, MSRB_CHATMSG_PLAYER_INDEX + 1 # u8 player ports 0xP1P2P3PN -.set MSRB_VS_RIGHT_PLAYERS, MSRB_VS_LEFT_PLAYERS + 4 # u8 player ports 0xP1P2P3PN +.set MSRB_VS_LEFT_PLAYERS, MSRB_CHATMSG_PLAYER_INDEX + 1 # u32 player ports 0xP1P2P3PN +.set MSRB_VS_RIGHT_PLAYERS, MSRB_VS_LEFT_PLAYERS + 4 # u32 player ports 0xP1P2P3PN .set MSRB_LOCAL_NAME, MSRB_VS_RIGHT_PLAYERS + 4 # string (31) .set MSRB_P1_NAME, MSRB_LOCAL_NAME + 31 # string (31) .set MSRB_P2_NAME, MSRB_P1_NAME + 31 # string (31) .set MSRB_P3_NAME, MSRB_P2_NAME + 31 # string (31) .set MSRB_P4_NAME, MSRB_P3_NAME + 31 # string (31) -.set MSRB_OPP_NAME, MSRB_P4_NAME + 31 # string (63) -.set MSRB_P1_CONNECT_CODE, MSRB_OPP_NAME + 63 # string (10) hashtag is shift-jis +.set MSRB_OPP_NAME, MSRB_P4_NAME + 31 # string (31) +.set MSRB_P1_CONNECT_CODE, MSRB_OPP_NAME + 31 # string (10) hashtag is shift-jis .set MSRB_P2_CONNECT_CODE, MSRB_P1_CONNECT_CODE + 10 # string (10) hashtag is shift-jis .set MSRB_P3_CONNECT_CODE, MSRB_P2_CONNECT_CODE + 10 # string (10) hashtag is shift-jis .set MSRB_P4_CONNECT_CODE, MSRB_P3_CONNECT_CODE + 10 # string (10) hashtag is shift-jis From 790cf17a39f08e816d5aaff391161961bd1fc87a Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 26 Jun 2021 23:30:11 -0700 Subject: [PATCH 019/217] add scene change logic for ranked --- Online/Slippi Online Scene/main.asm | 150 +++++++++++++++-- Output/Netplay/GALE01r2.ini | 243 ++++++++++++++++------------ Output/Netplay/GALJ01r2.ini | 243 ++++++++++++++++------------ 3 files changed, 423 insertions(+), 213 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 2b49dc82..edc05da7 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -131,6 +131,10 @@ InitMinorSceneStruct_Loop: bl PointerConvert addi r3,REG_MinorStructParse,0x8 bl PointerConvert + addi r3,REG_MinorStructParse,0x10 + bl PointerConvert + addi r3,REG_MinorStructParse,0x14 + bl PointerConvert addi REG_MinorStructParse,REG_MinorStructParse,0x18 b InitMinorSceneStruct_Loop InitMinorSceneStruct_Exit: @@ -261,8 +265,8 @@ bl SplashSceneDecide bl GamePrepSceneDecide #SceneDecide .byte 80 #Common Minor ID (Game Preparation) .align 2 -.long 0x00000000 #Minor Data 1 -.long 0x00000000 #Minor Data 2 +bl GamePrepData #Minor Data 1 +.long 0x00000000 #Minor Data 2 #End .byte -1 .align 2 @@ -328,6 +332,21 @@ blrl */ #endregion +GamePrepData_BLRL: +blrl +GamePrepData: +.set GPDO_MAX_GAMES, 0 +.byte 0x0 # max games +.set GPDO_CUR_GAME, GPDO_MAX_GAMES + 1 +.byte 0x0 # current game +.set GPDO_P1_SCORE, GPDO_CUR_GAME + 1 +.byte 0x0 # p1 score +.set GPDO_P2_SCORE, GPDO_P1_SCORE + 1 +.byte 0x0 # p2 score +.set GPDO_PREV_WINNER, GPDO_P2_SCORE + 1 +.byte 0x0 # previous winner +.align 2 + #region CSSScenePrep CSSScenePrep: backup @@ -399,6 +418,18 @@ b CSSSceneDecide_LoadSplash # Ranked Mode Logic ################################################################################ CSSSceneDecide_Adv_IsRanked: +# Initialize ranked mode data +bl GamePrepData_BLRL +mflr r4 +li r3, 3 +stb r3, GPDO_MAX_GAMES(r4) +li r3, 1 +stb r3, GPDO_CUR_GAME(r4) +li r3, 0 +stb r3, GPDO_P1_SCORE(r4) +stb r3, GPDO_P2_SCORE(r4) +stb r3, GPDO_PREV_WINNER(r4) + # Set next scene as game prep load r4, 0x80479d30 li r3, 0x06 @@ -536,8 +567,96 @@ li r3, 0 branchl r12, FN_LoadMatchState mr REG_MSRB_ADDR, r3 -VSSceneDecide_UpdateWinner: +########################################################################### +# VSSceneDecide: Handle Ranked Mode +########################################################################### +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +bne VSSceneDecide_SkipRankedHandler + +# Get the winner of last game +bl SinglesDetermineWinner +cmpwi r3, 0 +bge VSSceneDecide_SkipTieHandler + +# Here we have a tie, we want to start a new one-stock, 3 min game +# TODO: Prepare info to start a tiebreaker + +# Start a new game +load r4, 0x80479d30 +li r3, 0x03 +stb r3, 0x5(r4) +b VSSceneDecide_ModeHandlerEnd +VSSceneDecide_SkipTieHandler: + +# Here we have a conclusive game. Increment game prep game count and scores +bl GamePrepData_BLRL +mflr r6 + +stb r3, GPDO_PREV_WINNER(r6) # Store winner index + +addi r3, r3, GPDO_P1_SCORE # Get offset for winner +lbzx r4, r6, r3 +addi r5, r4, 1 +stbx r5, r6, r3 # Store the game score for the winner + +lbz r4, GPDO_MAX_GAMES(r6) +addi r4, r4, 1 +li r3, 2 +divwu r4, r4, r3 # Calculate number of wins needed +cmpw r5, r4 +bge VSSceneDecide_RankedSetOver + +lbz r3, GPDO_CUR_GAME(r6) +addi r3, r3, 1 +stb r3, GPDO_CUR_GAME(r6) + +# Go back to game prep, there are more games +load r4, 0x80479d30 +li r3, 0x06 +stb r3, 0x5(r4) +b VSSceneDecide_ModeHandlerEnd + +VSSceneDecide_RankedSetOver: +# Disconnect from opponent +# TODO: Figure out where to report result? It is likely someone rages and exits client by +# TODO: this point. Or someone just kills the client early even after winning. +# Prepare buffer for EXI transfer +li r3, 1 +branchl r12, HSD_MemAlloc +mr REG_TXB_ADDR, r3 +# Write tx data +li r3, CONST_SlippiCmdCleanupConnections +stb r3, 0(REG_TXB_ADDR) + +# Reset connections +mr r3, REG_TXB_ADDR +li r4, 1 +li r5, CONST_ExiWrite +branchl r12, FN_EXITransferBuffer + +mr r3, REG_TXB_ADDR +branchl r12, HSD_Free + +# Return to CSS since ranked set is over +load r4, 0x80479d30 +li r3, 0x01 +stb r3, 0x5(r4) +b VSSceneDecide_ModeHandlerEnd +VSSceneDecide_SkipRankedHandler: + +# Go back to CSS +load r4, 0x80479d30 +li r3, 0x01 +stb r3, 0x5(r4) + +VSSceneDecide_ModeHandlerEnd: + +########################################################################### +# VSSceneDecide: Handle Non-Ranked Modes +########################################################################### +VSSceneDecide_UpdateWinner: #Update ISWINNER static bool lbz r3,MSRB_LOCAL_PLAYER_INDEX(REG_MSRB_ADDR) bl CheckIfWonLastGame @@ -612,7 +731,10 @@ HACK_GOLD_TEXT_LOSER_END: # For teams, trick the text into never turning gold (Doesn't work for both LRAS and wins easily) lbz r3, OFST_R13_ONLINE_MODE(r13) cmpwi r3, ONLINE_MODE_TEAMS -bne HACK_GOLD_TEXT_END +beq HACK_GOLD_TEXT_FORCE_OFF +cmpwi r3, ONLINE_MODE_RANKED +bne HACK_GOLD_TEXT_END # Also prevent gold text in ranked +HACK_GOLD_TEXT_FORCE_OFF: li r3, 0 stb r3, 0x4(REG_MATCH_END_STRUCT) HACK_GOLD_TEXT_END: @@ -624,6 +746,7 @@ stb r3, OFST_R13_CHOSESTAGE (r13) # Prepare to reset RNG seed. This fixes the issue where both clients would # random the same character following a game +VSSceneDecide_ResetRNG: # Prepare buffer for EXI transfer li r3, 4 branchl r12, HSD_MemAlloc @@ -654,11 +777,6 @@ stw r3, 0x5F90(r4) #RNG seed mr r3, REG_TXB_ADDR branchl r12, HSD_Free -# Go back to CSS -load r4, 0x80479d30 -li r3, 0x01 -stb r3, 0x5(r4) - # Free the buffer we allocated to get match state mr r3, REG_MSRB_ADDR branchl r12, HSD_Free @@ -1010,6 +1128,20 @@ restore blr #endregion +################################################################################ +# Function: SinglesDetermineWinner +# ------------------------------------------------------------------------------ +# Output: +# r3: winnderIndex # Index of the winner, -1 if tie +################################################################################ +SinglesDetermineWinner: +li r3, 0 + +# TODO: Ties don't work atm, need to set match selections +# li r3, -1 + +blr + #region CheckIfWonLastGame CheckIfWonLastGame: .set MatchEndStruct,31 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index d1809b63..587fd239 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -741,7 +741,7 @@ B07E0015 3860003D 4E800421 3A940001 2C140004 4180FFA0 3A800000 3ABF0060 -3AFE023E 3B5900EF +3AFE023E 3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 @@ -1347,7 +1347,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 88780004 987B0001 80780005 907B0007 3C80804D 90645F90 -7FE3FB78 38980208 +7FE3FB78 389801E8 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 @@ -2994,7 +2994,7 @@ BA810008 800100B4 887E0000 2C030005 408200A8 3B60000B 3B200000 3B000000 -3AE00000 3ADE0117 +3AE00000 3ADE00F7 7EB6C8AE 56A00631 41820010 3B390002 3B180001 48000018 @@ -3009,7 +3009,7 @@ BA810008 800100B4 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 -387E0208 7C96CA14 +387E01E8 7C96CA14 7C041800 40800010 2C1B000E 41810008 4BFFFF78 4800014C @@ -3225,7 +3225,7 @@ BE810008 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600340 +93E30000 38600320 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -4562,7 +4562,7 @@ BE810008 38600000 989E004A C03F0000 D03E0008 C03F0004 D03E0024 D03E0028 -887D0210 2C030001 +887D01F0 2C030001 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C @@ -4587,7 +4587,7 @@ D03E0024 D03E0028 38800001 989E004A 989E0049 C03F0000 D03E0008 3CA0803B -60A57808 A0DD0216 +60A57808 A0DD01F6 38600000 1C830002 7C85222E 7C043000 41820014 38630001 @@ -4657,7 +4657,7 @@ BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 -1C630024 389F0268 +1C630024 389F0248 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -4728,18 +4728,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000184 #Online/Slippi Online Scene/main.asm +C21A45B8 000001AB #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 4800025D +6084DC1C 4800026D 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 -38600008 4800019D +38600008 480001AD 7C8802A6 4800002D -48000BB0 80830000 +48000CE8 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4748,8 +4748,8 @@ BE810008 3C80803E 9421FF50 BE810008 7C7F1B78 7C9E2378 3C80803D 6084AD30 -48000081 7C6802A6 -90640004 48000105 +48000091 7C6802A6 +90640004 48000115 7C6802A6 90640008 38600001 98640000 3C60803D 6063ACA4 @@ -4758,10 +4758,12 @@ BE810008 3C80803E 4BFFFFF0 93C30010 7FD4F378 88740000 7C630774 2C03FFFF -4182001C 38740004 +4182002C 38740004 4BFFFF65 38740008 -4BFFFF5D 3A940018 -4BFFFFDC BA810008 +4BFFFF5D 38740010 +4BFFFF55 38740014 +4BFFFF4D 3A940018 +4BFFFFCC BA810008 800100B4 382100B0 7C0803A6 4E800020 4E800021 7C0802A6 @@ -4790,104 +4792,141 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -48000099 4800010D +480000A5 48000119 08000000 80497758 80497758 01030000 -480001DD 4800020D +48000211 48000241 09000000 80480668 80480668 02030000 -801B1588 480002A5 +801B1588 480002D9 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000439 48000775 +48000559 48000895 20000000 80490880 804D68D0 05030000 -00000000 48000965 -50000000 00000000 +00000000 48000A8D +50000000 48000019 00000000 FF000000 4E800021 81940000 -7C0802A6 90010004 -9421FF50 BE810008 -808D8840 3BE40530 -3D80801A 618C427C -7D8903A6 4E800421 -88BF0002 3880000E -88FF0003 38C00000 -891F0004 895F0006 -39200000 3D80801B -618C06B0 7D8903A6 -4E800421 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7E1B78 3D80801B -618CAAD0 7D8903A6 -4E800421 809E0014 -88840003 2C040002 -40820008 4800009C -886DAFA0 2C030000 -41820020 2C030001 -41820014 2C030002 -41820024 2C030003 -4182001C 48000048 -3C808047 60849D30 -38600006 98640005 -48000060 886DAFC9 -7C630774 2C03FFFF -41820024 2C030001 -4182001C 2C030000 -40820000 886DAFCA -2C030000 41820020 -48000004 48000659 -3C808047 60849D30 -38600005 98640005 -48000018 3C808047 -60849D30 38600002 -98640005 48000004 +4E800021 00000000 +00000000 7C0802A6 +90010004 9421FF50 +BE810008 808D8840 +3BE40530 3D80801A +618C427C 7D8903A6 +4E800421 88BF0002 +3880000E 88FF0003 +38C00000 891F0004 +895F0006 39200000 +3D80801B 618C06B0 +7D8903A6 4E800421 +3D808001 618C74BC +7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3D80801B -618C1514 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 809F0014 -88840004 2C040000 -4082001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 -48000064 38600001 -986DAFCA 38600000 -3D808000 618C5610 +BE810008 7C7E1B78 +3D80801B 618CAAD0 7D8903A6 4E800421 -7C7E1B78 887E0001 -889E0002 7C032000 -4082001C 48000579 +809E0014 88840003 +2C040002 40820008 +480000C4 886DAFA0 +2C030000 41820020 +2C030001 41820014 +2C030002 4182004C +2C030003 41820044 +48000070 4BFFFF1D +7C8802A6 38600003 +98640000 38600001 +98640001 38600000 +98640002 98640003 +98640004 3C808047 +60849D30 38600006 +98640005 48000060 +886DAFC9 7C630774 +2C03FFFF 41820024 +2C030001 4182001C +2C030000 40820000 +886DAFCA 2C030000 +41820020 48000004 +48000745 3C808047 +60849D30 38600005 +98640005 48000018 3C808047 60849D30 -38600005 98640005 -4800001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 +38600002 98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C15C8 +3D80801B 618C1514 7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +809F0014 88840004 +2C040000 4082001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000064 +38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7F1B78 +4E800421 7C7E1B78 +887E0001 889E0002 +7C032000 4082001C +48000665 3C808047 +60849D30 38600005 +98640005 4800001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000004 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3D80801B +618C15C8 7D8903A6 +4E800421 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7F1B78 886DAFA0 +2C030000 408200DC +480006B5 2C030000 +40800018 3C808047 +60849D30 38600003 +98640005 480000CC +4BFFFD29 7CC802A6 +98660004 38630002 +7C8618AE 38A40001 +7CA619AE 88860000 +38840001 38600002 +7C841B96 7C052000 +40800024 88660001 +38630001 98660001 +3C808047 60849D30 +38600006 98640005 +48000078 38600001 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7E1B78 386000BA +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FC3F378 3D808037 +618CF1B0 7D8903A6 +4E800421 3C808047 +60849D30 38600001 +98640005 48000014 +3C808047 60849D30 +38600001 98640005 887F0003 480005D1 986DAFC9 886DAFA0 2C030003 40820020 @@ -4910,6 +4949,7 @@ BE810008 3D80801B 38600000 98740000 38600001 9874005D 886DAFA0 2C030003 +4182000C 2C030000 4082000C 38600000 98740004 38600000 986DAFCA 38600004 @@ -4927,9 +4967,7 @@ BE810008 3D80801B 807E0000 90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 7FE3FB78 +4E800421 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 BA810008 800100B4 @@ -4964,9 +5002,9 @@ FF2121EE 0000EE00 98640008 887F0087 9864000E 38600000 9864FFFF 9864FFFB -887E0210 2C030000 +887E01F0 2C030000 418200F4 887E0003 -1C630024 38630271 +1C630024 38630251 7F7E18AE 38600002 98640002 38600001 9864FFFB 98640006 @@ -5000,7 +5038,7 @@ FF2121EE 0000EE00 90640014 887F0063 98640018 887F0084 9064001C 887F0087 -98640020 887E0210 +98640020 887E01F0 2C030000 41820024 887F00A8 90640024 887F00AB 98640028 @@ -5054,26 +5092,27 @@ BE810008 38600000 7D8903A6 4E800421 7C7F1B78 83CD8840 3BDE0598 7FC3F378 -389F0208 38A00138 +389F01E8 38A00138 3D808000 618C31F4 7D8903A6 4E800421 3D808017 618CEB30 7D8903A6 4E800421 -889F0268 98830000 -889F026B 98830001 +889F0248 98830000 +889F024B 98830001 38800000 98830002 38800003 98830005 38800078 98830004 3C80803D 6084DEC8 -8084000C 887F028C +8084000C 887F026C 98640002 38602121 B0640003 3C808049 -60840880 887F028F +60840880 887F026F 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 +4E800020 3860FFFF 4E800020 7C0802A6 90010004 9421FF50 BE810008 7C7D1B78 @@ -5108,7 +5147,7 @@ BE810008 7C7D1B78 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFE1D 3C808047 +4BFFFE15 3C808047 60849D30 38600005 98640005 BA810008 800100B4 382100B0 @@ -5211,7 +5250,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 2C030000 40820018 -38600340 3D808037 +38600320 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5219,7 +5258,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800340 38A00000 +38800320 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 25d798f9..44b32046 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -741,7 +741,7 @@ B07E0015 3860003D 4E800421 3A940001 2C140004 4180FFA0 3A800000 3ABF0060 -3AFE023E 3B5900EF +3AFE023E 3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 @@ -1347,7 +1347,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 88780004 987B0001 80780005 907B0007 3C80804D 90645F90 -7FE3FB78 38980208 +7FE3FB78 389801E8 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 @@ -2994,7 +2994,7 @@ BA810008 800100B4 887E0000 2C030005 408200A8 3B60000B 3B200000 3B000000 -3AE00000 3ADE0117 +3AE00000 3ADE00F7 7EB6C8AE 56A00631 41820010 3B390002 3B180001 48000018 @@ -3009,7 +3009,7 @@ BA810008 800100B4 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 -387E0208 7C96CA14 +387E01E8 7C96CA14 7C041800 40800010 2C1B000E 41810008 4BFFFF78 4800014C @@ -3225,7 +3225,7 @@ BE810008 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600340 +93E30000 38600320 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -4562,7 +4562,7 @@ BE810008 38600000 989E004A C03F0000 D03E0008 C03F0004 D03E0024 D03E0028 -887D0210 2C030001 +887D01F0 2C030001 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C @@ -4587,7 +4587,7 @@ D03E0024 D03E0028 38800001 989E004A 989E0049 C03F0000 D03E0008 3CA0803B -60A57808 A0DD0216 +60A57808 A0DD01F6 38600000 1C830002 7C85222E 7C043000 41820014 38630001 @@ -4657,7 +4657,7 @@ BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 -1C630024 389F0268 +1C630024 389F0248 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -4728,18 +4728,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000184 #Online/Slippi Online Scene/main.asm +C21A45B8 000001AB #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 4800025D +6084DC1C 4800026D 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 -38600008 4800019D +38600008 480001AD 7C8802A6 4800002D -48000BB0 80830000 +48000CE8 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4748,8 +4748,8 @@ BE810008 3C80803E 9421FF50 BE810008 7C7F1B78 7C9E2378 3C80803D 6084AD30 -48000081 7C6802A6 -90640004 48000105 +48000091 7C6802A6 +90640004 48000115 7C6802A6 90640008 38600001 98640000 3C60803D 6063ACA4 @@ -4758,10 +4758,12 @@ BE810008 3C80803E 4BFFFFF0 93C30010 7FD4F378 88740000 7C630774 2C03FFFF -4182001C 38740004 +4182002C 38740004 4BFFFF65 38740008 -4BFFFF5D 3A940018 -4BFFFFDC BA810008 +4BFFFF5D 38740010 +4BFFFF55 38740014 +4BFFFF4D 3A940018 +4BFFFFCC BA810008 800100B4 382100B0 7C0803A6 4E800020 4E800021 7C0802A6 @@ -4790,104 +4792,141 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -48000099 4800010D +480000A5 48000119 08000000 80497758 80497758 01030000 -480001DD 4800020D +48000211 48000241 09000000 80480668 80480668 02030000 -801B1588 480002A5 +801B1588 480002D9 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000439 48000775 +48000559 48000895 20000000 80490880 804D68D0 05030000 -00000000 48000965 -50000000 00000000 +00000000 48000A8D +50000000 48000019 00000000 FF000000 4E800021 81940000 -7C0802A6 90010004 -9421FF50 BE810008 -808D8840 3BE40530 -3D80801A 618C427C -7D8903A6 4E800421 -88BF0002 3880000E -88FF0003 38C00000 -891F0004 895F0006 -39200000 3D80801B -618C06B0 7D8903A6 -4E800421 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7E1B78 3D80801B -618CAAD0 7D8903A6 -4E800421 809E0014 -88840003 2C040002 -40820008 4800009C -886DAFA0 2C030000 -41820020 2C030001 -41820014 2C030002 -41820024 2C030003 -4182001C 48000048 -3C808047 60849D30 -38600006 98640005 -48000060 886DAFC9 -7C630774 2C03FFFF -41820024 2C030001 -4182001C 2C030000 -40820000 886DAFCA -2C030000 41820020 -48000004 48000659 -3C808047 60849D30 -38600005 98640005 -48000018 3C808047 -60849D30 38600002 -98640005 48000004 +4E800021 00000000 +00000000 7C0802A6 +90010004 9421FF50 +BE810008 808D8840 +3BE40530 3D80801A +618C427C 7D8903A6 +4E800421 88BF0002 +3880000E 88FF0003 +38C00000 891F0004 +895F0006 39200000 +3D80801B 618C06B0 +7D8903A6 4E800421 +3D808001 618C74BC +7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3D80801B -618C1514 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 809F0014 -88840004 2C040000 -4082001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 -48000064 38600001 -986DAFCA 38600000 -3D808000 618C5610 +BE810008 7C7E1B78 +3D80801B 618CAAD0 7D8903A6 4E800421 -7C7E1B78 887E0001 -889E0002 7C032000 -4082001C 48000579 +809E0014 88840003 +2C040002 40820008 +480000C4 886DAFA0 +2C030000 41820020 +2C030001 41820014 +2C030002 4182004C +2C030003 41820044 +48000070 4BFFFF1D +7C8802A6 38600003 +98640000 38600001 +98640001 38600000 +98640002 98640003 +98640004 3C808047 +60849D30 38600006 +98640005 48000060 +886DAFC9 7C630774 +2C03FFFF 41820024 +2C030001 4182001C +2C030000 40820000 +886DAFCA 2C030000 +41820020 48000004 +48000745 3C808047 +60849D30 38600005 +98640005 48000018 3C808047 60849D30 -38600005 98640005 -4800001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 +38600002 98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C15C8 +3D80801B 618C1514 7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +809F0014 88840004 +2C040000 4082001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000064 +38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7F1B78 +4E800421 7C7E1B78 +887E0001 889E0002 +7C032000 4082001C +48000665 3C808047 +60849D30 38600005 +98640005 4800001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000004 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3D80801B +618C15C8 7D8903A6 +4E800421 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7F1B78 886DAFA0 +2C030000 408200DC +480006B5 2C030000 +40800018 3C808047 +60849D30 38600003 +98640005 480000CC +4BFFFD29 7CC802A6 +98660004 38630002 +7C8618AE 38A40001 +7CA619AE 88860000 +38840001 38600002 +7C841B96 7C052000 +40800024 88660001 +38630001 98660001 +3C808047 60849D30 +38600006 98640005 +48000078 38600001 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7E1B78 386000BA +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FC3F378 3D808037 +618CF1B0 7D8903A6 +4E800421 3C808047 +60849D30 38600001 +98640005 48000014 +3C808047 60849D30 +38600001 98640005 887F0003 480005D1 986DAFC9 886DAFA0 2C030003 40820020 @@ -4910,6 +4949,7 @@ BE810008 3D80801B 38600000 98740000 38600001 9874005D 886DAFA0 2C030003 +4182000C 2C030000 4082000C 38600000 98740004 38600000 986DAFCA 38600004 @@ -4927,9 +4967,7 @@ BE810008 3D80801B 807E0000 90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 7FE3FB78 +4E800421 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 BA810008 800100B4 @@ -4964,9 +5002,9 @@ FF2121EE 0000EE00 98640008 887F0087 9864000E 38600000 9864FFFF 9864FFFB -887E0210 2C030000 +887E01F0 2C030000 418200F4 887E0003 -1C630024 38630271 +1C630024 38630251 7F7E18AE 38600002 98640002 38600001 9864FFFB 98640006 @@ -5000,7 +5038,7 @@ FF2121EE 0000EE00 90640014 887F0063 98640018 887F0084 9064001C 887F0087 -98640020 887E0210 +98640020 887E01F0 2C030000 41820024 887F00A8 90640024 887F00AB 98640028 @@ -5054,26 +5092,27 @@ BE810008 38600000 7D8903A6 4E800421 7C7F1B78 83CD8840 3BDE0598 7FC3F378 -389F0208 38A00138 +389F01E8 38A00138 3D808000 618C31F4 7D8903A6 4E800421 3D808017 618CEB30 7D8903A6 4E800421 -889F0268 98830000 -889F026B 98830001 +889F0248 98830000 +889F024B 98830001 38800000 98830002 38800003 98830005 38800078 98830004 3C80803D 6084DEC8 -8084000C 887F028C +8084000C 887F026C 98640002 38602121 B0640003 3C808049 -60840880 887F028F +60840880 887F026F 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 +4E800020 3860FFFF 4E800020 7C0802A6 90010004 9421FF50 BE810008 7C7D1B78 @@ -5108,7 +5147,7 @@ BE810008 7C7D1B78 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFE1D 3C808047 +4BFFFE15 3C808047 60849D30 38600005 98640005 BA810008 800100B4 382100B0 @@ -5211,7 +5250,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 2C030000 40820018 -38600340 3D808037 +38600320 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5219,7 +5258,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800340 38A00000 +38800320 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA810008 From c06e400a330b4e9fe5afff2e8f6478e6ca69d926 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 27 Jun 2021 01:21:50 -0700 Subject: [PATCH 020/217] cause tiebreak to skip splash screen --- Online/Slippi Online Scene/main.asm | 39 ++++++++-- Output/Netplay/GALE01r2.ini | 106 +++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 106 +++++++++++++++------------- 3 files changed, 144 insertions(+), 107 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index edc05da7..bbb6344f 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -266,7 +266,7 @@ bl GamePrepSceneDecide #SceneDecide .byte 80 #Common Minor ID (Game Preparation) .align 2 bl GamePrepData #Minor Data 1 -.long 0x00000000 #Minor Data 2 +bl GamePrepData #Minor Data 2 #End .byte -1 .align 2 @@ -345,6 +345,8 @@ GamePrepData: .byte 0x0 # p2 score .set GPDO_PREV_WINNER, GPDO_P2_SCORE + 1 .byte 0x0 # previous winner +.set GPDO_IS_TIEBREAK, GPDO_PREV_WINNER + 1 +.byte 0x0 .align 2 #region CSSScenePrep @@ -429,6 +431,7 @@ li r3, 0 stb r3, GPDO_P1_SCORE(r4) stb r3, GPDO_P2_SCORE(r4) stb r3, GPDO_PREV_WINNER(r4) +stb r3, GPDO_IS_TIEBREAK(r4) # Set next scene as game prep load r4, 0x80479d30 @@ -582,11 +585,14 @@ bge VSSceneDecide_SkipTieHandler # Here we have a tie, we want to start a new one-stock, 3 min game # TODO: Prepare info to start a tiebreaker -# Start a new game -load r4, 0x80479d30 -li r3, 0x03 -stb r3, 0x5(r4) -b VSSceneDecide_ModeHandlerEnd +bl GamePrepData_BLRL +mflr r6 + +li r3, 1 +stb r3, GPDO_IS_TIEBREAK(r6) + +# Go to the game prep scene, with is tiebreak set to true, it will start a new game +b VSSceneDecide_MoveToGamePrep VSSceneDecide_SkipTieHandler: # Here we have a conclusive game. Increment game prep game count and scores @@ -611,6 +617,10 @@ lbz r3, GPDO_CUR_GAME(r6) addi r3, r3, 1 stb r3, GPDO_CUR_GAME(r6) +li r3, 0 +stb r3, GPDO_IS_TIEBREAK(r6) + +VSSceneDecide_MoveToGamePrep: # Go back to game prep, there are more games load r4, 0x80479d30 li r3, 0x06 @@ -1138,7 +1148,7 @@ SinglesDetermineWinner: li r3, 0 # TODO: Ties don't work atm, need to set match selections -# li r3, -1 +li r3, -1 blr @@ -1236,8 +1246,22 @@ blr #endregion GamePrepSceneDecide: +.set REG_GPD, 31 + backup +lwz REG_GPD, 0x10(r3) # Grabs load data +lbz r3, GPDO_IS_TIEBREAK(REG_GPD) +cmpwi r3, 0 +beq GamePrepSceneDecide_DisplaySplash + +# On tiebreak, go right back into VS scene +load r4, 0x80479d30 +li r3, 0x03 +stb r3, 0x5(r4) +b GamePrepSceneDecide_RestoreAndExit + +GamePrepSceneDecide_DisplaySplash: bl SplashSceneInit # This will cause the next scene to be the splash screen @@ -1245,6 +1269,7 @@ load r4, 0x80479d30 li r3, 0x05 stb r3, 0x5(r4) +GamePrepSceneDecide_RestoreAndExit: restore blr diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 587fd239..57ea7820 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4728,7 +4728,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001AB #Online/Slippi Online Scene/main.asm +C21A45B8 000001B1 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4739,7 +4739,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000CE8 80830000 +48000D18 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4804,12 +4804,12 @@ BE810008 38600012 00000000 00000000 05000000 00000000 00000000 04030000 -48000559 48000895 +48000561 4800089D 20000000 80490880 804D68D0 05030000 -00000000 48000A8D +00000000 48000A99 50000000 48000019 -00000000 FF000000 +48000015 FF000000 4E800021 81940000 4E800021 00000000 00000000 7C0802A6 @@ -4853,7 +4853,7 @@ BE810008 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000745 3C808047 +4800074D 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -4881,7 +4881,7 @@ BE810008 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000665 3C808047 +4800066D 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -4897,19 +4897,20 @@ BE810008 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 408200DC -480006B5 2C030000 -40800018 3C808047 -60849D30 38600003 -98640005 480000CC +2C030000 408200E4 +480006BD 2C030000 +40800018 4BFFFD3D +7CC802A6 38600001 +98660005 4800004C 4BFFFD29 7CC802A6 98660004 38630002 7C8618AE 38A40001 7CA619AE 88860000 38840001 38600002 7C841B96 7C052000 -40800024 88660001 +4080002C 88660001 38630001 98660001 +38600000 98660005 3C808047 60849D30 38600006 98640005 48000078 38600001 @@ -4927,7 +4928,7 @@ BE810008 3D80801B 98640005 48000014 3C808047 60849D30 38600001 98640005 -887F0003 480005D1 +887F0003 480005D5 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -4935,14 +4936,14 @@ BE810008 3D80801B 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -48000595 2C030000 +48000599 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -4800055D 2C030000 +48000561 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5112,42 +5113,47 @@ B0640003 3C808049 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -4E800020 3860FFFF -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 +4E800020 38600000 +3860FFFF 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFE15 3C808047 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 83E30010 +887F0005 2C030000 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFDED 3C808047 60849D30 38600005 98640005 BA810008 800100B4 382100B0 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 44b32046..8268e7a5 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4728,7 +4728,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001AB #Online/Slippi Online Scene/main.asm +C21A45B8 000001B1 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4739,7 +4739,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000CE8 80830000 +48000D18 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4804,12 +4804,12 @@ BE810008 38600012 00000000 00000000 05000000 00000000 00000000 04030000 -48000559 48000895 +48000561 4800089D 20000000 80490880 804D68D0 05030000 -00000000 48000A8D +00000000 48000A99 50000000 48000019 -00000000 FF000000 +48000015 FF000000 4E800021 81940000 4E800021 00000000 00000000 7C0802A6 @@ -4853,7 +4853,7 @@ BE810008 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000745 3C808047 +4800074D 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -4881,7 +4881,7 @@ BE810008 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000665 3C808047 +4800066D 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -4897,19 +4897,20 @@ BE810008 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 408200DC -480006B5 2C030000 -40800018 3C808047 -60849D30 38600003 -98640005 480000CC +2C030000 408200E4 +480006BD 2C030000 +40800018 4BFFFD3D +7CC802A6 38600001 +98660005 4800004C 4BFFFD29 7CC802A6 98660004 38630002 7C8618AE 38A40001 7CA619AE 88860000 38840001 38600002 7C841B96 7C052000 -40800024 88660001 +4080002C 88660001 38630001 98660001 +38600000 98660005 3C808047 60849D30 38600006 98640005 48000078 38600001 @@ -4927,7 +4928,7 @@ BE810008 3D80801B 98640005 48000014 3C808047 60849D30 38600001 98640005 -887F0003 480005D1 +887F0003 480005D5 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -4935,14 +4936,14 @@ BE810008 3D80801B 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -48000595 2C030000 +48000599 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -4800055D 2C030000 +48000561 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5112,42 +5113,47 @@ B0640003 3C808049 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -4E800020 3860FFFF -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 +4E800020 38600000 +3860FFFF 4E800020 7C0802A6 90010004 9421FF50 BE810008 -4BFFFE15 3C808047 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 83E30010 +887F0005 2C030000 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFDED 3C808047 60849D30 38600005 98640005 BA810008 800100B4 382100B0 From eb3654050804270b26233c6c29411bbbdf3ea289 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 27 Jun 2021 03:05:11 -0700 Subject: [PATCH 021/217] overwrite stocks and timer for tiebreak --- Online/Core/InitOnlinePlay.asm | 22 + Online/Slippi Online Scene/main.asm | 2 +- Output/Netplay/GALE01r2.ini | 702 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 702 ++++++++++++++-------------- 4 files changed, 733 insertions(+), 695 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 98156a3b..ec78bb43 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -121,6 +121,28 @@ addi r4, REG_MSRB_ADDR, MSRB_GAME_INFO_BLOCK li r5, MATCH_STRUCT_LEN branchl r12, memcpy +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +bne SKIP_TIEBREAK_OVERWRITE + +# For ranked, in the case of a tiebreak, overwrite stock count and timer +loadwz r5, 0x803dad40 # Load minor scene data array ptr +lwz r5, 0x88(r5) # Load game prep minor scene data +lbz r3, 0x5(r5) # Load is_tiebreak +cmpwi r3, 0 +beq SKIP_TIEBREAK_OVERWRITE # If not a tiebreak, do nothing + +li r3, 180 +stw r3, 0x10(REG_GAME_INFO_START) + +li r3, 1 +stb r3, 0x62(REG_GAME_INFO_START) +stb r3, 0x62 + 0x24(REG_GAME_INFO_START) +stb r3, 0x62 + 0x24 * 2(REG_GAME_INFO_START) +stb r3, 0x62 + 0x24 * 3(REG_GAME_INFO_START) + +SKIP_TIEBREAK_OVERWRITE: + # For teams, overwrite the colors in the game info block with the proper color for the given team ID lbz r3, OFST_R13_ONLINE_MODE(r13) cmpwi r3, ONLINE_MODE_TEAMS diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index bbb6344f..f735e85e 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -346,7 +346,7 @@ GamePrepData: .set GPDO_PREV_WINNER, GPDO_P2_SCORE + 1 .byte 0x0 # previous winner .set GPDO_IS_TIEBREAK, GPDO_PREV_WINNER + 1 -.byte 0x0 +.byte 0x0 # Referenced directly in InitOnlinePlay.asm, if moved, must change reference .align 2 #region CSSScenePrep diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 57ea7820..ddd38cb0 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1297,21 +1297,21 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 00000070 #Online/Core/InitOnlinePlay.asm +C216E748 00000078 #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007BC +4082037C 386007BC 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 388007BC 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 -907B0003 4800023D +907B0003 48000281 7C6802A6 907B07A5 38600012 3D808037 618CF1E4 7D8903A6 @@ -1351,65 +1351,73 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 -2C030003 40820048 -3AE00000 1CB70024 -38650069 7C7F18AE -38630001 38850060 -7C9F20AE 3D808000 -618C56B0 7D8903A6 -4E800421 1C970024 -38840063 7C7F21AE -3AF70001 2C170004 -4180FFC4 88780009 -2C030001 41800010 -2C03000F 41810010 -48000010 38600001 -48000008 3860000F -987B001B 38A00000 -3C60804C 606320BC -1C850044 7C632214 -38800000 90830000 -38A50001 2C050004 -4180FFE0 38600004 -38800007 38A00000 -3D808039 618C01F0 +2C030000 4082003C +3CA0803D 60A5AD40 +80A50000 80A50088 +88650005 2C030000 +41820020 386000B4 +907F0010 38600001 +987F0062 987F0086 +987F00AA 987F00CE +886DAFA0 2C030003 +40820048 3AE00000 +1CB70024 38650069 +7C7F18AE 38630001 +38850060 7C9F20AE +3D808000 618C56B0 7D8903A6 4E800421 -48000021 7C8802A6 -38A00000 3D808038 -618CFD54 7D8903A6 -4E800421 480000EC -4E800021 3C608048 -80639D60 5464803E -806DB61C 80630007 -7C841A14 3C60804D -90835F90 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 838DB61C -886DAFA0 2C030001 -4082008C 38600011 -3D808037 618CF1E4 +1C970024 38840063 +7C7F21AE 3AF70001 +2C170004 4180FFC4 +88780009 2C030001 +41800010 2C03000F +41810010 48000010 +38600001 48000008 +3860000F 987B001B +38A00000 3C60804C +606320BC 1C850044 +7C632214 38800000 +90830000 38A50001 +2C050004 4180FFE0 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +480000EC 4E800021 +3C608048 80639D60 +5464803E 806DB61C +80630007 7C841A14 +3C60804D 90835F90 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +838DB61C 886DAFA0 +2C030001 4082008C +38600011 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BD 987E0000 +807C0003 907E0001 +3BE00000 3BBE0005 +7FE3FB78 3D808003 +618C1724 7D8903A6 +4E800421 38800001 +989D0000 8883008E +989D0001 80830D28 +909D0002 3BFF0001 +3BBD0006 2C1F0002 +4180FFC8 7FC3F378 +38800011 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7C7E1B78 386000BD -987E0000 807C0003 -907E0001 3BE00000 -3BBE0005 7FE3FB78 -3D808003 618C1724 -7D8903A6 4E800421 -38800001 989D0000 -8883008E 989D0001 -80830D28 909D0002 -3BFF0001 3BBD0006 -2C1F0002 4180FFC8 -7FC3F378 38800011 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 BA810008 800100B4 382100B0 7C0803A6 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 00000000 C216E904 0000004E #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 @@ -4739,7 +4747,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000D18 80830000 +48000D1C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4795,19 +4803,19 @@ BE810008 38600012 480000A5 48000119 08000000 80497758 80497758 01030000 -48000211 48000241 +48000215 48000245 09000000 80480668 80480668 02030000 -801B1588 480002D9 +801B1588 480002DD 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000561 4800089D +48000565 480008A1 20000000 80490880 804D68D0 05030000 -00000000 48000A99 +00000000 48000A9D 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4834,334 +4842,334 @@ BE810008 7C7E1B78 7D8903A6 4E800421 809E0014 88840003 2C040002 40820008 -480000C4 886DAFA0 +480000C8 886DAFA0 2C030000 41820020 2C030001 41820014 -2C030002 4182004C -2C030003 41820044 -48000070 4BFFFF1D +2C030002 41820050 +2C030003 41820048 +48000074 4BFFFF1D 7C8802A6 38600003 98640000 38600001 98640001 38600000 98640002 98640003 -98640004 3C808047 -60849D30 38600006 -98640005 48000060 -886DAFC9 7C630774 -2C03FFFF 41820024 -2C030001 4182001C -2C030000 40820000 -886DAFCA 2C030000 -41820020 48000004 -4800074D 3C808047 -60849D30 38600005 -98640005 48000018 +98640004 98640005 3C808047 60849D30 -38600002 98640005 -48000004 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3D80801B 618C1514 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 -809F0014 88840004 -2C040000 4082001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000064 -38600001 986DAFCA -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0001 889E0002 -7C032000 4082001C -4800066D 3C808047 -60849D30 38600005 -98640005 4800001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000004 +38600006 98640005 +48000060 886DAFC9 +7C630774 2C03FFFF +41820024 2C030001 +4182001C 2C030000 +40820000 886DAFCA +2C030000 41820020 +48000004 4800074D +3C808047 60849D30 +38600005 98640005 +48000018 3C808047 +60849D30 38600002 +98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 3D80801B -618C15C8 7D8903A6 -4E800421 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7F1B78 886DAFA0 -2C030000 408200E4 -480006BD 2C030000 -40800018 4BFFFD3D -7CC802A6 38600001 -98660005 4800004C -4BFFFD29 7CC802A6 -98660004 38630002 -7C8618AE 38A40001 -7CA619AE 88860000 -38840001 38600002 -7C841B96 7C052000 -4080002C 88660001 -38630001 98660001 -38600000 98660005 -3C808047 60849D30 -38600006 98640005 -48000078 38600001 -3D808037 618CF1E4 +618C1514 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 809F0014 +88840004 2C040000 +4082001C 38600000 +3D80801A 618C42A0 7D8903A6 4E800421 -7C7E1B78 386000BA -987E0000 7FC3F378 -38800001 38A00001 -3D808000 618C55F0 +48000064 38600001 +986DAFCA 38600000 +3D808000 618C5610 7D8903A6 4E800421 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 48000014 +7C7E1B78 887E0001 +889E0002 7C032000 +4082001C 4800066D 3C808047 60849D30 -38600001 98640005 -887F0003 480005D5 -986DAFC9 886DAFA0 -2C030003 40820020 -887F0003 38800001 -2C030000 40820008 -38800000 988DAFC9 -4800003C 3A800000 -3AA00000 7E83A378 -48000599 2C030000 -41820008 3AB50001 -3A940001 2C140004 -4180FFE4 2C150001 -4182000C 38600000 -986DAFC9 3E808047 -62949DA4 887F0003 -48000561 2C030000 -41820018 38600001 -98740000 38600000 -9874005D 48000014 -38600000 98740000 -38600001 9874005D -886DAFA0 2C030003 -4182000C 2C030000 -4082000C 38600000 -98740004 38600000 -986DAFCA 38600004 -3D808037 618CF1E4 +38600005 98640005 +4800001C 38600000 +3D80801A 618C42A0 7D8903A6 4E800421 -7C7E1B78 386000BC -987E0000 7FC3F378 -38800001 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7FC3F378 38800004 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C80804D -807E0000 90645F90 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -01780101 01FF2121 -FF2121EE 0000EE00 +48000004 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 +3D80801B 618C15C8 +7D8903A6 4E800421 38600000 3D808000 618C5610 7D8903A6 +4E800421 7C7F1B78 +886DAFA0 2C030000 +408200E4 480006BD +2C030000 40800018 +4BFFFD39 7CC802A6 +38600001 98660005 +4800004C 4BFFFD25 +7CC802A6 98660004 +38630002 7C8618AE +38A40001 7CA619AE +88860000 38840001 +38600002 7C841B96 +7C052000 4080002C +88660001 38630001 +98660001 38600000 +98660005 3C808047 +60849D30 38600006 +98640005 48000078 +38600001 3D808037 +618CF1E4 7D8903A6 4E800421 7C7E1B78 -83ED8840 3BFF0598 -886DAFA0 2C030003 -40820048 3BA00000 -1CBD0024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 +386000BA 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3D808037 618CF1B0 7D8903A6 4E800421 -1C9D0024 38840063 -7C7F21AE 3BBD0001 -2C1D0004 4180FFC4 -3C608049 60630888 -4BFFFF65 7C8802A6 -38A00010 3D808000 -618C31F4 7D8903A6 -4E800421 3C808049 -60840888 887F0060 -98640005 887F0063 -9864000B 887F0084 -98640008 887F0087 -9864000E 38600000 -9864FFFF 9864FFFB -887E01F0 2C030000 -418200F4 887E0003 -1C630024 38630251 -7F7E18AE 38600002 -98640002 38600001 -9864FFFB 98640006 -98640007 98640009 -9864000A 9864000C -9864000D 9864000F -98640010 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 40820030 -1CBD0024 38A50060 -7CBF28AE 38DC0005 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000B 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840003 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 41820030 -1CBD0024 38A50060 -7CBF28AE 38DC0008 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000E 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840004 3C808043 -60842078 887F0060 -90640014 887F0063 -98640018 887F0084 -9064001C 887F0087 -98640020 887E01F0 -2C030000 41820024 -887F00A8 90640024 -887F00AB 98640028 -887F00CC 9064002C -887F00CF 98640030 -A07F000E 9064000C -3D808001 618C8254 -7D8903A6 4E800421 -386000C7 3D808001 -618C8C2C 7D8903A6 -4E800421 38600004 -3D808001 618C7700 -7D8903A6 4E800421 -3860001C 3D808002 -618C6F2C 7D8903A6 -4E800421 3A800000 -1C140024 7FF5FB78 -7EB50214 3D808000 -618C569C 7D8903A6 -4E800421 88950060 -7C840774 7C041800 -41820028 38600000 -3D808000 618C56A0 +3C808047 60849D30 +38600001 98640005 +48000014 3C808047 +60849D30 38600001 +98640005 887F0003 +480005D5 986DAFC9 +886DAFA0 2C030003 +40820020 887F0003 +38800001 2C030000 +40820008 38800000 +988DAFC9 4800003C +3A800000 3AA00000 +7E83A378 48000599 +2C030000 41820008 +3AB50001 3A940001 +2C140004 4180FFE4 +2C150001 4182000C +38600000 986DAFC9 +3E808047 62949DA4 +887F0003 48000561 +2C030000 41820018 +38600001 98740000 +38600000 9874005D +48000014 38600000 +98740000 38600001 +9874005D 886DAFA0 +2C030003 4182000C +2C030000 4082000C +38600000 98740004 +38600000 986DAFCA +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BC 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +38800004 38A00000 +3D808000 618C55F0 7D8903A6 4E800421 -3D808000 618C56A8 +3C80804D 807E0000 +90645F90 7FC3F378 +3D808037 618CF1B0 7D8903A6 4E800421 -3A940001 2C140006 -3AB50024 4180FFB0 -A07F000E 3D808022 -618C519C 7D8903A6 -4E800421 7C641B78 -38600001 3D808000 -618C56A0 7D8903A6 -4E800421 3D808000 -618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3C808047 60849D30 -38600003 98640005 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 +4E800021 01780101 +01FF2121 FF2121EE +0000EE00 7C0802A6 90010004 9421FF50 BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 -7C7F1B78 83CD8840 -3BDE0598 7FC3F378 -389F01E8 38A00138 +7C7E1B78 83ED8840 +3BFF0598 886DAFA0 +2C030003 40820048 +3BA00000 1CBD0024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C9D0024 +38840063 7C7F21AE +3BBD0001 2C1D0004 +4180FFC4 3C608049 +60630888 4BFFFF65 +7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F0248 98830000 -889F024B 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F026C -98640002 38602121 -B0640003 3C808049 -60840880 887F026F -98640016 7FE3FB78 -3D808037 618CF1B0 +3C808049 60840888 +887F0060 98640005 +887F0063 9864000B +887F0084 98640008 +887F0087 9864000E +38600000 9864FFFF +9864FFFB 887E01F0 +2C030000 418200F4 +887E0003 1C630024 +38630251 7F7E18AE +38600002 98640002 +38600001 9864FFFB +98640006 98640007 +98640009 9864000A +9864000C 9864000D +9864000F 98640010 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +40820030 1CBD0024 +38A50060 7CBF28AE +38DC0005 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000B +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840003 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +41820030 1CBD0024 +38A50060 7CBF28AE +38DC0008 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000E +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840004 +3C808043 60842078 +887F0060 90640014 +887F0063 98640018 +887F0084 9064001C +887F0087 98640020 +887E01F0 2C030000 +41820024 887F00A8 +90640024 887F00AB +98640028 887F00CC +9064002C 887F00CF +98640030 A07F000E +9064000C 3D808001 +618C8254 7D8903A6 +4E800421 386000C7 +3D808001 618C8C2C +7D8903A6 4E800421 +38600004 3D808001 +618C7700 7D8903A6 +4E800421 3860001C +3D808002 618C6F2C +7D8903A6 4E800421 +3A800000 1C140024 +7FF5FB78 7EB50214 +3D808000 618C569C +7D8903A6 4E800421 +88950060 7C840774 +7C041800 41820028 +38600000 3D808000 +618C56A0 7D8903A6 +4E800421 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140006 3AB50024 +4180FFB0 A07F000E +3D808022 618C519C +7D8903A6 4E800421 +7C641B78 38600001 +3D808000 618C56A0 +7D8903A6 4E800421 +3D808000 618C56A8 +7D8903A6 4E800421 +3D808002 618C7168 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600000 -3860FFFF 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 83E30010 -887F0005 2C030000 -41820018 3C808047 +BE810008 3C808047 60849D30 38600003 -98640005 48000018 -4BFFFDED 3C808047 -60849D30 38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7F1B78 +83CD8840 3BDE0598 +7FC3F378 389F01E8 +38A00138 3D808000 +618C31F4 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F0248 +98830000 889F024B +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F026C 98640002 +38602121 B0640003 +3C808049 60840880 +887F026F 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +38600000 3860FFFF +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFDED +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8268e7a5..f29afa12 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1297,21 +1297,21 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 00000070 #Online/Core/InitOnlinePlay.asm +C216E748 00000078 #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007BC +4082037C 386007BC 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 388007BC 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 -907B0003 4800023D +907B0003 48000281 7C6802A6 907B07A5 38600012 3D808037 618CF1E4 7D8903A6 @@ -1351,65 +1351,73 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 -2C030003 40820048 -3AE00000 1CB70024 -38650069 7C7F18AE -38630001 38850060 -7C9F20AE 3D808000 -618C56B0 7D8903A6 -4E800421 1C970024 -38840063 7C7F21AE -3AF70001 2C170004 -4180FFC4 88780009 -2C030001 41800010 -2C03000F 41810010 -48000010 38600001 -48000008 3860000F -987B001B 38A00000 -3C60804C 606320BC -1C850044 7C632214 -38800000 90830000 -38A50001 2C050004 -4180FFE0 38600004 -38800007 38A00000 -3D808039 618C01F0 +2C030000 4082003C +3CA0803D 60A5AD40 +80A50000 80A50088 +88650005 2C030000 +41820020 386000B4 +907F0010 38600001 +987F0062 987F0086 +987F00AA 987F00CE +886DAFA0 2C030003 +40820048 3AE00000 +1CB70024 38650069 +7C7F18AE 38630001 +38850060 7C9F20AE +3D808000 618C56B0 7D8903A6 4E800421 -48000021 7C8802A6 -38A00000 3D808038 -618CFD54 7D8903A6 -4E800421 480000EC -4E800021 3C608048 -80639D60 5464803E -806DB61C 80630007 -7C841A14 3C60804D -90835F90 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 838DB61C -886DAFA0 2C030001 -4082008C 38600011 -3D808037 618CF1E4 +1C970024 38840063 +7C7F21AE 3AF70001 +2C170004 4180FFC4 +88780009 2C030001 +41800010 2C03000F +41810010 48000010 +38600001 48000008 +3860000F 987B001B +38A00000 3C60804C +606320BC 1C850044 +7C632214 38800000 +90830000 38A50001 +2C050004 4180FFE0 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +480000EC 4E800021 +3C608048 80639D60 +5464803E 806DB61C +80630007 7C841A14 +3C60804D 90835F90 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +838DB61C 886DAFA0 +2C030001 4082008C +38600011 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BD 987E0000 +807C0003 907E0001 +3BE00000 3BBE0005 +7FE3FB78 3D808003 +618C1724 7D8903A6 +4E800421 38800001 +989D0000 8883008E +989D0001 80830D28 +909D0002 3BFF0001 +3BBD0006 2C1F0002 +4180FFC8 7FC3F378 +38800011 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7C7E1B78 386000BD -987E0000 807C0003 -907E0001 3BE00000 -3BBE0005 7FE3FB78 -3D808003 618C1724 -7D8903A6 4E800421 -38800001 989D0000 -8883008E 989D0001 -80830D28 909D0002 -3BFF0001 3BBD0006 -2C1F0002 4180FFC8 -7FC3F378 38800011 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 BA810008 800100B4 382100B0 7C0803A6 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 00000000 C216E904 0000004E #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 @@ -4739,7 +4747,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000D18 80830000 +48000D1C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4795,19 +4803,19 @@ BE810008 38600012 480000A5 48000119 08000000 80497758 80497758 01030000 -48000211 48000241 +48000215 48000245 09000000 80480668 80480668 02030000 -801B1588 480002D9 +801B1588 480002DD 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000561 4800089D +48000565 480008A1 20000000 80490880 804D68D0 05030000 -00000000 48000A99 +00000000 48000A9D 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4834,334 +4842,334 @@ BE810008 7C7E1B78 7D8903A6 4E800421 809E0014 88840003 2C040002 40820008 -480000C4 886DAFA0 +480000C8 886DAFA0 2C030000 41820020 2C030001 41820014 -2C030002 4182004C -2C030003 41820044 -48000070 4BFFFF1D +2C030002 41820050 +2C030003 41820048 +48000074 4BFFFF1D 7C8802A6 38600003 98640000 38600001 98640001 38600000 98640002 98640003 -98640004 3C808047 -60849D30 38600006 -98640005 48000060 -886DAFC9 7C630774 -2C03FFFF 41820024 -2C030001 4182001C -2C030000 40820000 -886DAFCA 2C030000 -41820020 48000004 -4800074D 3C808047 -60849D30 38600005 -98640005 48000018 +98640004 98640005 3C808047 60849D30 -38600002 98640005 -48000004 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3D80801B 618C1514 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 -809F0014 88840004 -2C040000 4082001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000064 -38600001 986DAFCA -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0001 889E0002 -7C032000 4082001C -4800066D 3C808047 -60849D30 38600005 -98640005 4800001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000004 +38600006 98640005 +48000060 886DAFC9 +7C630774 2C03FFFF +41820024 2C030001 +4182001C 2C030000 +40820000 886DAFCA +2C030000 41820020 +48000004 4800074D +3C808047 60849D30 +38600005 98640005 +48000018 3C808047 +60849D30 38600002 +98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 3D80801B -618C15C8 7D8903A6 -4E800421 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7F1B78 886DAFA0 -2C030000 408200E4 -480006BD 2C030000 -40800018 4BFFFD3D -7CC802A6 38600001 -98660005 4800004C -4BFFFD29 7CC802A6 -98660004 38630002 -7C8618AE 38A40001 -7CA619AE 88860000 -38840001 38600002 -7C841B96 7C052000 -4080002C 88660001 -38630001 98660001 -38600000 98660005 -3C808047 60849D30 -38600006 98640005 -48000078 38600001 -3D808037 618CF1E4 +618C1514 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 809F0014 +88840004 2C040000 +4082001C 38600000 +3D80801A 618C42A0 7D8903A6 4E800421 -7C7E1B78 386000BA -987E0000 7FC3F378 -38800001 38A00001 -3D808000 618C55F0 +48000064 38600001 +986DAFCA 38600000 +3D808000 618C5610 7D8903A6 4E800421 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 48000014 +7C7E1B78 887E0001 +889E0002 7C032000 +4082001C 4800066D 3C808047 60849D30 -38600001 98640005 -887F0003 480005D5 -986DAFC9 886DAFA0 -2C030003 40820020 -887F0003 38800001 -2C030000 40820008 -38800000 988DAFC9 -4800003C 3A800000 -3AA00000 7E83A378 -48000599 2C030000 -41820008 3AB50001 -3A940001 2C140004 -4180FFE4 2C150001 -4182000C 38600000 -986DAFC9 3E808047 -62949DA4 887F0003 -48000561 2C030000 -41820018 38600001 -98740000 38600000 -9874005D 48000014 -38600000 98740000 -38600001 9874005D -886DAFA0 2C030003 -4182000C 2C030000 -4082000C 38600000 -98740004 38600000 -986DAFCA 38600004 -3D808037 618CF1E4 +38600005 98640005 +4800001C 38600000 +3D80801A 618C42A0 7D8903A6 4E800421 -7C7E1B78 386000BC -987E0000 7FC3F378 -38800001 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7FC3F378 38800004 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C80804D -807E0000 90645F90 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -01780101 01FF2121 -FF2121EE 0000EE00 +48000004 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 +3D80801B 618C15C8 +7D8903A6 4E800421 38600000 3D808000 618C5610 7D8903A6 +4E800421 7C7F1B78 +886DAFA0 2C030000 +408200E4 480006BD +2C030000 40800018 +4BFFFD39 7CC802A6 +38600001 98660005 +4800004C 4BFFFD25 +7CC802A6 98660004 +38630002 7C8618AE +38A40001 7CA619AE +88860000 38840001 +38600002 7C841B96 +7C052000 4080002C +88660001 38630001 +98660001 38600000 +98660005 3C808047 +60849D30 38600006 +98640005 48000078 +38600001 3D808037 +618CF1E4 7D8903A6 4E800421 7C7E1B78 -83ED8840 3BFF0598 -886DAFA0 2C030003 -40820048 3BA00000 -1CBD0024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 +386000BA 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3D808037 618CF1B0 7D8903A6 4E800421 -1C9D0024 38840063 -7C7F21AE 3BBD0001 -2C1D0004 4180FFC4 -3C608049 60630888 -4BFFFF65 7C8802A6 -38A00010 3D808000 -618C31F4 7D8903A6 -4E800421 3C808049 -60840888 887F0060 -98640005 887F0063 -9864000B 887F0084 -98640008 887F0087 -9864000E 38600000 -9864FFFF 9864FFFB -887E01F0 2C030000 -418200F4 887E0003 -1C630024 38630251 -7F7E18AE 38600002 -98640002 38600001 -9864FFFB 98640006 -98640007 98640009 -9864000A 9864000C -9864000D 9864000F -98640010 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 40820030 -1CBD0024 38A50060 -7CBF28AE 38DC0005 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000B 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840003 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 41820030 -1CBD0024 38A50060 -7CBF28AE 38DC0008 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000E 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840004 3C808043 -60842078 887F0060 -90640014 887F0063 -98640018 887F0084 -9064001C 887F0087 -98640020 887E01F0 -2C030000 41820024 -887F00A8 90640024 -887F00AB 98640028 -887F00CC 9064002C -887F00CF 98640030 -A07F000E 9064000C -3D808001 618C8254 -7D8903A6 4E800421 -386000C7 3D808001 -618C8C2C 7D8903A6 -4E800421 38600004 -3D808001 618C7700 -7D8903A6 4E800421 -3860001C 3D808002 -618C6F2C 7D8903A6 -4E800421 3A800000 -1C140024 7FF5FB78 -7EB50214 3D808000 -618C569C 7D8903A6 -4E800421 88950060 -7C840774 7C041800 -41820028 38600000 -3D808000 618C56A0 +3C808047 60849D30 +38600001 98640005 +48000014 3C808047 +60849D30 38600001 +98640005 887F0003 +480005D5 986DAFC9 +886DAFA0 2C030003 +40820020 887F0003 +38800001 2C030000 +40820008 38800000 +988DAFC9 4800003C +3A800000 3AA00000 +7E83A378 48000599 +2C030000 41820008 +3AB50001 3A940001 +2C140004 4180FFE4 +2C150001 4182000C +38600000 986DAFC9 +3E808047 62949DA4 +887F0003 48000561 +2C030000 41820018 +38600001 98740000 +38600000 9874005D +48000014 38600000 +98740000 38600001 +9874005D 886DAFA0 +2C030003 4182000C +2C030000 4082000C +38600000 98740004 +38600000 986DAFCA +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BC 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +38800004 38A00000 +3D808000 618C55F0 7D8903A6 4E800421 -3D808000 618C56A8 +3C80804D 807E0000 +90645F90 7FC3F378 +3D808037 618CF1B0 7D8903A6 4E800421 -3A940001 2C140006 -3AB50024 4180FFB0 -A07F000E 3D808022 -618C519C 7D8903A6 -4E800421 7C641B78 -38600001 3D808000 -618C56A0 7D8903A6 -4E800421 3D808000 -618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3C808047 60849D30 -38600003 98640005 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 +4E800021 01780101 +01FF2121 FF2121EE +0000EE00 7C0802A6 90010004 9421FF50 BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 -7C7F1B78 83CD8840 -3BDE0598 7FC3F378 -389F01E8 38A00138 +7C7E1B78 83ED8840 +3BFF0598 886DAFA0 +2C030003 40820048 +3BA00000 1CBD0024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C9D0024 +38840063 7C7F21AE +3BBD0001 2C1D0004 +4180FFC4 3C608049 +60630888 4BFFFF65 +7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F0248 98830000 -889F024B 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F026C -98640002 38602121 -B0640003 3C808049 -60840880 887F026F -98640016 7FE3FB78 -3D808037 618CF1B0 +3C808049 60840888 +887F0060 98640005 +887F0063 9864000B +887F0084 98640008 +887F0087 9864000E +38600000 9864FFFF +9864FFFB 887E01F0 +2C030000 418200F4 +887E0003 1C630024 +38630251 7F7E18AE +38600002 98640002 +38600001 9864FFFB +98640006 98640007 +98640009 9864000A +9864000C 9864000D +9864000F 98640010 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +40820030 1CBD0024 +38A50060 7CBF28AE +38DC0005 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000B +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840003 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +41820030 1CBD0024 +38A50060 7CBF28AE +38DC0008 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000E +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840004 +3C808043 60842078 +887F0060 90640014 +887F0063 98640018 +887F0084 9064001C +887F0087 98640020 +887E01F0 2C030000 +41820024 887F00A8 +90640024 887F00AB +98640028 887F00CC +9064002C 887F00CF +98640030 A07F000E +9064000C 3D808001 +618C8254 7D8903A6 +4E800421 386000C7 +3D808001 618C8C2C +7D8903A6 4E800421 +38600004 3D808001 +618C7700 7D8903A6 +4E800421 3860001C +3D808002 618C6F2C +7D8903A6 4E800421 +3A800000 1C140024 +7FF5FB78 7EB50214 +3D808000 618C569C +7D8903A6 4E800421 +88950060 7C840774 +7C041800 41820028 +38600000 3D808000 +618C56A0 7D8903A6 +4E800421 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140006 3AB50024 +4180FFB0 A07F000E +3D808022 618C519C +7D8903A6 4E800421 +7C641B78 38600001 +3D808000 618C56A0 +7D8903A6 4E800421 +3D808000 618C56A8 +7D8903A6 4E800421 +3D808002 618C7168 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600000 -3860FFFF 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 83E30010 -887F0005 2C030000 -41820018 3C808047 +BE810008 3C808047 60849D30 38600003 -98640005 48000018 -4BFFFDED 3C808047 -60849D30 38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7F1B78 +83CD8840 3BDE0598 +7FC3F378 389F01E8 +38A00138 3D808000 +618C31F4 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F0248 +98830000 889F024B +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F026C 98640002 +38602121 B0640003 +3C808049 60840880 +887F026F 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +38600000 3860FFFF +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFDED +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 From a4c0e93b34ad72575b90c90303bb309f8e63badd Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 28 Jun 2021 04:56:08 -0700 Subject: [PATCH 022/217] disable pause in ranked --- Online/Core/InitPause.asm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Online/Core/InitPause.asm b/Online/Core/InitPause.asm index 9141bc35..7f93835a 100644 --- a/Online/Core/InitPause.asm +++ b/Online/Core/InitPause.asm @@ -10,6 +10,11 @@ getMinorMajor r3 cmpwi r3, SCENE_ONLINE_IN_GAME bne INJECTION_EXIT +# Don't enable client pause in ranked +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +beq INJECTION_EXIT + ################################################################################ # Initialize Client Pause ################################################################################ From b019ea2cdd98c7ee65c7413411e77f7869895d05 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 28 Jun 2021 04:58:32 -0700 Subject: [PATCH 023/217] detect ties and winner --- Online/Slippi Online Scene/main.asm | 75 +++++++- Output/Netplay/GALE01r2.ini | 258 ++++++++++++++++------------ Output/Netplay/GALJ01r2.ini | 258 ++++++++++++++++------------ 3 files changed, 362 insertions(+), 229 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index f735e85e..4c25de15 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -583,8 +583,6 @@ cmpwi r3, 0 bge VSSceneDecide_SkipTieHandler # Here we have a tie, we want to start a new one-stock, 3 min game -# TODO: Prepare info to start a tiebreaker - bl GamePrepData_BLRL mflr r6 @@ -691,7 +689,6 @@ b SELECTOR_OVERWRITE_END SELECTOR_OVERWRITE_NON_TEAMS: .set REG_Count,20 .set REG_Winners,21 -# todo: add check for teams (if that ever gets added) # Count number of winners li REG_Count,0 li REG_Winners,0 @@ -1141,15 +1138,83 @@ blr ################################################################################ # Function: SinglesDetermineWinner # ------------------------------------------------------------------------------ +# Description: Designed to be used only when playing online (only works with +# ports 1 + 2). Will output the winner of the match or -1 if it's a tie. +# +# Does not handle LRAS +# ------------------------------------------------------------------------------ # Output: # r3: winnderIndex # Index of the winner, -1 if tie ################################################################################ +.set REG_MATCH_END, 31 +.set REG_MATCH_END_P1, 30 +.set REG_MATCH_END_P2, 29 +.set REG_TEMP_VAR, 27 SinglesDetermineWinner: +backup + +load REG_MATCH_END, 0x80479da4 + +# The following may be needed if we add LGL but are not needed right now +# addi REG_MATCH_END_P1, REG_MATCH_END, 0x58 # Start of player array +# addi REG_MATCH_END_P2, REG_MATCH_END_P1, 0xA8 + +lbz r3, 0x4(REG_MATCH_END) +cmpwi r3, 1 +beq SinglesDetermineWinner_HANDLE_TIMEOUT +cmpwi r3, 2 +beq SinglesDetermineWinner_HANDLE_COMPLETION + +# We can only handle GAME and TIME atm. For LRAS (or something else?), stall +b 0 + +SinglesDetermineWinner_HANDLE_TIMEOUT: li r3, 0 +branchl r12, 0x80033bd8 # PlayerBlock_LoadStocksLeft +mr REG_TEMP_VAR, r3 +li r3, 1 +branchl r12, 0x80033bd8 # PlayerBlock_LoadStocksLeft +cmpw REG_TEMP_VAR, r3 +bgt SinglesDetermineWinner_P1_WIN +blt SinglesDetermineWinner_P2_WIN -# TODO: Ties don't work atm, need to set match selections -li r3, -1 +li r3, 0 +branchl r12, 0x800342b4 # PlayerBlock_LoadDamage +mr REG_TEMP_VAR, r3 +li r3, 1 +branchl r12, 0x800342b4 # PlayerBlock_LoadDamage +cmpw REG_TEMP_VAR, r3 +blt SinglesDetermineWinner_P1_WIN +bgt SinglesDetermineWinner_P2_WIN +# We only get here if stock and percent is the same, if so, it's a tie +b SinglesDetermineWinner_TIE + +SinglesDetermineWinner_HANDLE_COMPLETION: +# Here we check who won by looking at stock counts +li r3, 0 +branchl r12, 0x80033bd8 # PlayerBlock_LoadStocksLeft +cmpwi r3, 0 +bne SinglesDetermineWinner_P1_WIN + +li r3, 1 +branchl r12, 0x80033bd8 # PlayerBlock_LoadStocksLeft +cmpwi r3, 0 +bne SinglesDetermineWinner_P2_WIN + +# If we get here, both players have zero stocks which indicates a same-frame double KO, it's a tie +b SinglesDetermineWinner_TIE + +SinglesDetermineWinner_P1_WIN: +li r3, 0 +b SinglesDetermineWinner_RESTORE_AND_EXIT +SinglesDetermineWinner_P2_WIN: +li r3, 1 +b SinglesDetermineWinner_RESTORE_AND_EXIT +SinglesDetermineWinner_TIE: +li r3, -1 +SinglesDetermineWinner_RESTORE_AND_EXIT: +restore blr #region CheckIfWonLastGame diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ddd38cb0..0c92babb 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1418,85 +1418,87 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 -C216E904 0000004E #Online/Core/InitPause.asm +C216E904 00000050 #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 -40820258 3D808046 -618CDB68 886C0002 -54630739 41820028 -48000029 7C6802A6 -906C0040 38600000 -986DAFC8 886C0002 -38800000 50831F38 -986C0002 4800021C -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 83ADB61C -3BC00000 7FC3F378 -3D808003 618C241C +40820264 886DAFA0 +2C030000 41820258 +3D808046 618CDB68 +886C0002 54630739 +41820028 48000029 +7C6802A6 906C0040 +38600000 986DAFC8 +886C0002 38800000 +50831F38 986C0002 +4800021C 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +83ADB61C 3BC00000 +7FC3F378 3D808003 +618C241C 7D8903A6 +4E800421 2C030000 +40820060 887D000D +2C030000 40820020 +7FC3F378 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +41820038 3C80804C +60841FAC 1C7E0044 +7C632214 80630000 +54600673 4182001C +546006B5 41820014 +546005EF 4182000C +546004E7 40820068 +3BDE0001 2C1E0004 +4180FF80 8BDD0000 +3C80804C 60841FAC +1C7E0044 7FE32214 +886DAFC8 2C030000 +418200C8 887D000D +2C030000 40820020 +7FC3F378 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +41820070 807F0008 +546004E7 40820064 +4800010C 38600002 +3D808002 618C4030 7D8903A6 4E800421 -2C030000 40820060 -887D000D 2C030000 -40820020 7FC3F378 -3D808003 618C3BD8 +3D808037 618C8330 7D8903A6 4E800421 -2C030000 41820038 -3C80804C 60841FAC -1C7E0044 7C632214 -80630000 54600673 -4182001C 546006B5 -41820014 546005EF -4182000C 546004E7 -40820068 3BDE0001 -2C1E0004 4180FF80 -8BDD0000 3C80804C -60841FAC 1C7E0044 -7FE32214 886DAFC8 -2C030000 418200C8 +3C608046 6063B6A0 +9BC30001 7FC3F378 +38800007 3D808016 +618CCF4C 7D8903A6 +4E800421 38600003 +3C808046 6084B6A0 +98640000 480000B0 +38600000 986DAFC8 +3D80802F 618C33CC +7D8903A6 4E800421 +7FC3F378 3D80801A +618C10FC 7D8903A6 +4E800421 48000080 887D000D 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 41820070 +2C030000 41820058 807F0008 546004E7 -40820064 4800010C -38600002 3D808002 -618C4030 7D8903A6 -4E800421 3D808037 -618C8330 7D8903A6 -4E800421 3C608046 -6063B6A0 9BC30001 -7FC3F378 38800007 -3D808016 618CCF4C -7D8903A6 4E800421 -38600003 3C808046 -6084B6A0 98640000 -480000B0 38600000 +4182004C 38600001 986DAFC8 3D80802F -618C33CC 7D8903A6 +618C3394 7D8903A6 4E800421 7FC3F378 -3D80801A 618C10FC -7D8903A6 4E800421 -48000080 887D000D -2C030000 40820020 -7FC3F378 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -41820058 807F0008 -546004E7 4182004C -38600001 986DAFC8 -3D80802F 618C3394 -7D8903A6 4E800421 -7FC3F378 38800005 -3D80801A 618C0FEC +38800005 3D80801A +618C0FEC 7D8903A6 +4E800421 38600005 +3D808002 618C4030 7D8903A6 4E800421 -38600005 3D808002 -618C4030 7D8903A6 -4E800421 48000004 -3860FFFF BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -881F0001 00000000 +48000004 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 881F0001 +60000000 00000000 C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 @@ -4736,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001B1 #Online/Slippi Online Scene/main.asm +C21A45B8 000001D1 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4747,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000D1C 80830000 +48000E18 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4815,7 +4817,7 @@ BE810008 38600012 48000565 480008A1 20000000 80490880 804D68D0 05030000 -00000000 48000A9D +00000000 48000B99 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4937,21 +4939,21 @@ BE810008 3D80801B 48000014 3C808047 60849D30 38600001 98640005 887F0003 -480005D5 986DAFC9 +480006D1 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 2C030000 40820008 38800000 988DAFC9 4800003C 3A800000 3AA00000 -7E83A378 48000599 +7E83A378 48000695 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 -887F0003 48000561 +887F0003 4800065D 2C030000 41820018 38600001 98740000 38600000 9874005D @@ -5122,54 +5124,86 @@ BE810008 3C808047 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -38600000 3860FFFF -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 +7C0802A6 90010004 +9421FF50 BE810008 3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 +887F0004 2C030001 +41820010 2C030002 +4182007C 48000000 +38600000 3D808003 +618C3BD8 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -83E30010 887F0005 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFDED -3C808047 60849D30 -38600005 98640005 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 83E30010 +887F0005 2C030000 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFCF1 3C808047 +60849D30 38600005 +98640005 BA810008 800100B4 382100B0 -7C0803A6 38600028 -987E0000 00000000 +7C0803A6 4E800020 +BA810008 800100B4 +382100B0 7C0803A6 +38600028 987E0000 +60000000 00000000 C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f29afa12..a3a03cc1 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1418,85 +1418,87 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 -C216E904 0000004E #Online/Core/InitPause.asm +C216E904 00000050 #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 -40820258 3D808046 -618CDB68 886C0002 -54630739 41820028 -48000029 7C6802A6 -906C0040 38600000 -986DAFC8 886C0002 -38800000 50831F38 -986C0002 4800021C -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 83ADB61C -3BC00000 7FC3F378 -3D808003 618C241C +40820264 886DAFA0 +2C030000 41820258 +3D808046 618CDB68 +886C0002 54630739 +41820028 48000029 +7C6802A6 906C0040 +38600000 986DAFC8 +886C0002 38800000 +50831F38 986C0002 +4800021C 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +83ADB61C 3BC00000 +7FC3F378 3D808003 +618C241C 7D8903A6 +4E800421 2C030000 +40820060 887D000D +2C030000 40820020 +7FC3F378 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +41820038 3C80804C +60841FAC 1C7E0044 +7C632214 80630000 +54600673 4182001C +546006B5 41820014 +546005EF 4182000C +546004E7 40820068 +3BDE0001 2C1E0004 +4180FF80 8BDD0000 +3C80804C 60841FAC +1C7E0044 7FE32214 +886DAFC8 2C030000 +418200C8 887D000D +2C030000 40820020 +7FC3F378 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +41820070 807F0008 +546004E7 40820064 +4800010C 38600002 +3D808002 618C4030 7D8903A6 4E800421 -2C030000 40820060 -887D000D 2C030000 -40820020 7FC3F378 -3D808003 618C3BD8 +3D808037 618C8330 7D8903A6 4E800421 -2C030000 41820038 -3C80804C 60841FAC -1C7E0044 7C632214 -80630000 54600673 -4182001C 546006B5 -41820014 546005EF -4182000C 546004E7 -40820068 3BDE0001 -2C1E0004 4180FF80 -8BDD0000 3C80804C -60841FAC 1C7E0044 -7FE32214 886DAFC8 -2C030000 418200C8 +3C608046 6063B6A0 +9BC30001 7FC3F378 +38800007 3D808016 +618CCF4C 7D8903A6 +4E800421 38600003 +3C808046 6084B6A0 +98640000 480000B0 +38600000 986DAFC8 +3D80802F 618C33CC +7D8903A6 4E800421 +7FC3F378 3D80801A +618C10FC 7D8903A6 +4E800421 48000080 887D000D 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 41820070 +2C030000 41820058 807F0008 546004E7 -40820064 4800010C -38600002 3D808002 -618C4030 7D8903A6 -4E800421 3D808037 -618C8330 7D8903A6 -4E800421 3C608046 -6063B6A0 9BC30001 -7FC3F378 38800007 -3D808016 618CCF4C -7D8903A6 4E800421 -38600003 3C808046 -6084B6A0 98640000 -480000B0 38600000 +4182004C 38600001 986DAFC8 3D80802F -618C33CC 7D8903A6 +618C3394 7D8903A6 4E800421 7FC3F378 -3D80801A 618C10FC -7D8903A6 4E800421 -48000080 887D000D -2C030000 40820020 -7FC3F378 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -41820058 807F0008 -546004E7 4182004C -38600001 986DAFC8 -3D80802F 618C3394 -7D8903A6 4E800421 -7FC3F378 38800005 -3D80801A 618C0FEC +38800005 3D80801A +618C0FEC 7D8903A6 +4E800421 38600005 +3D808002 618C4030 7D8903A6 4E800421 -38600005 3D808002 -618C4030 7D8903A6 -4E800421 48000004 -3860FFFF BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -881F0001 00000000 +48000004 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 881F0001 +60000000 00000000 C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 @@ -4736,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001B1 #Online/Slippi Online Scene/main.asm +C21A45B8 000001D1 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4747,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000D1C 80830000 +48000E18 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4815,7 +4817,7 @@ BE810008 38600012 48000565 480008A1 20000000 80490880 804D68D0 05030000 -00000000 48000A9D +00000000 48000B99 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4937,21 +4939,21 @@ BE810008 3D80801B 48000014 3C808047 60849D30 38600001 98640005 887F0003 -480005D5 986DAFC9 +480006D1 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 2C030000 40820008 38800000 988DAFC9 4800003C 3A800000 3AA00000 -7E83A378 48000599 +7E83A378 48000695 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 -887F0003 48000561 +887F0003 4800065D 2C030000 41820018 38600001 98740000 38600000 9874005D @@ -5122,54 +5124,86 @@ BE810008 3C808047 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -38600000 3860FFFF -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 +7C0802A6 90010004 +9421FF50 BE810008 3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 +887F0004 2C030001 +41820010 2C030002 +4182007C 48000000 +38600000 3D808003 +618C3BD8 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -83E30010 887F0005 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFDED -3C808047 60849D30 -38600005 98640005 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 83E30010 +887F0005 2C030000 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFCF1 3C808047 +60849D30 38600005 +98640005 BA810008 800100B4 382100B0 -7C0803A6 38600028 -987E0000 00000000 +7C0803A6 4E800020 +BA810008 800100B4 +382100B0 7C0803A6 +38600028 987E0000 +60000000 00000000 C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 From 8e0e3e96d725cb8fdc29839575f0811b2d073372 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 8 Jul 2021 02:38:01 -0700 Subject: [PATCH 024/217] add logic for saving game winners --- Online/Slippi Online Scene/main.asm | 29 ++++-- Output/Netplay/GALE01r2.ini | 135 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 135 ++++++++++++++-------------- 3 files changed, 158 insertions(+), 141 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 4c25de15..362e01ce 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -347,6 +347,12 @@ GamePrepData: .byte 0x0 # previous winner .set GPDO_IS_TIEBREAK, GPDO_PREV_WINNER + 1 .byte 0x0 # Referenced directly in InitOnlinePlay.asm, if moved, must change reference +.set GPDO_GAME_RESULTS, GPDO_IS_TIEBREAK + 1 +.set MAX_RESULT_COUNT, 9 +.long 0x0 +.long 0x0 +.byte 0x0 # Take space for 9 results, I guess? Probably a better way to write this +.set GPDO_SIZE, GPDO_GAME_RESULTS + MAX_RESULT_COUNT .align 2 #region CSSScenePrep @@ -376,8 +382,9 @@ blr CSSSceneDecide: .set REG_MSRB_ADDR, 31 .set REG_MINORSCENE, 30 -.set REG_EVENTCSS_DATA,29 +.set REG_EVENTCSS_DATA, 29 .set REG_VS_SSS_DATA, 28 +.set REG_GAME_PREP_DATA, 27 backup mr REG_MINORSCENE,r3 @@ -422,16 +429,16 @@ b CSSSceneDecide_LoadSplash CSSSceneDecide_Adv_IsRanked: # Initialize ranked mode data bl GamePrepData_BLRL -mflr r4 +mflr REG_GAME_PREP_DATA + +mr r3, REG_GAME_PREP_DATA +li r4, GPDO_SIZE +branchl r12, Zero_AreaLength + li r3, 3 -stb r3, GPDO_MAX_GAMES(r4) +stb r3, GPDO_MAX_GAMES(REG_GAME_PREP_DATA) li r3, 1 -stb r3, GPDO_CUR_GAME(r4) -li r3, 0 -stb r3, GPDO_P1_SCORE(r4) -stb r3, GPDO_P2_SCORE(r4) -stb r3, GPDO_PREV_WINNER(r4) -stb r3, GPDO_IS_TIEBREAK(r4) +stb r3, GPDO_CUR_GAME(REG_GAME_PREP_DATA) # Set next scene as game prep load r4, 0x80479d30 @@ -599,6 +606,10 @@ mflr r6 stb r3, GPDO_PREV_WINNER(r6) # Store winner index +lbz r4, GPDO_CUR_GAME(r6) +addi r4, r4, GPDO_GAME_RESULTS - 1 # Move offset to index in array (cur_game is 1-indexed) +stbx r3, r6, r4 + addi r3, r3, GPDO_P1_SCORE # Get offset for winner lbzx r4, r6, r3 addi r5, r4, 1 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 0c92babb..3b8a2a17 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4738,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001D1 #Online/Slippi Online Scene/main.asm +C21A45B8 000001D4 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E18 80830000 +48000E30 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4802,26 +4802,27 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -480000A5 48000119 +480000AD 48000121 08000000 80497758 80497758 01030000 -48000215 48000245 +48000221 48000251 09000000 80480668 80480668 02030000 -801B1588 480002DD +801B1588 480002E9 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000565 480008A1 +4800057D 480008B9 20000000 80490880 804D68D0 05030000 -00000000 48000B99 +00000000 48000BB1 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 00000000 +00000000 00000000 00000000 7C0802A6 90010004 9421FF50 BE810008 808D8840 @@ -4844,76 +4845,78 @@ BE810008 7C7E1B78 7D8903A6 4E800421 809E0014 88840003 2C040002 40820008 -480000C8 886DAFA0 +480000CC 886DAFA0 2C030000 41820020 2C030001 41820014 -2C030002 41820050 -2C030003 41820048 -48000074 4BFFFF1D -7C8802A6 38600003 -98640000 38600001 -98640001 38600000 -98640002 98640003 -98640004 98640005 -3C808047 60849D30 -38600006 98640005 -48000060 886DAFC9 -7C630774 2C03FFFF -41820024 2C030001 -4182001C 2C030000 -40820000 886DAFCA -2C030000 41820020 -48000004 4800074D -3C808047 60849D30 -38600005 98640005 -48000018 3C808047 -60849D30 38600002 -98640005 48000004 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B -618C1514 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 809F0014 -88840004 2C040000 -4082001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 -48000064 38600001 -986DAFCA 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0001 -889E0002 7C032000 -4082001C 4800066D +2C030002 41820054 +2C030003 4182004C +48000078 4BFFFF15 +7F6802A6 7F63DB78 +3880000F 3D808000 +618CC160 7D8903A6 +4E800421 38600003 +987B0000 38600001 +987B0001 3C808047 +60849D30 38600006 +98640005 48000060 +886DAFC9 7C630774 +2C03FFFF 41820024 +2C030001 4182001C +2C030000 40820000 +886DAFCA 2C030000 +41820020 48000004 +48000759 3C808047 +60849D30 38600005 +98640005 48000018 3C808047 60849D30 -38600005 98640005 -4800001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 +38600002 98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C15C8 +3D80801B 618C1514 7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +809F0014 88840004 +2C040000 4082001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000064 +38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7F1B78 -886DAFA0 2C030000 -408200E4 480006BD -2C030000 40800018 -4BFFFD39 7CC802A6 -38600001 98660005 -4800004C 4BFFFD25 -7CC802A6 98660004 +4E800421 7C7E1B78 +887E0001 889E0002 +7C032000 4082001C +48000679 3C808047 +60849D30 38600005 +98640005 4800001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000004 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3D80801B +618C15C8 7D8903A6 +4E800421 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7F1B78 886DAFA0 +2C030000 408200F0 +480006C9 2C030000 +40800018 4BFFFD2D +7CC802A6 38600001 +98660005 48000058 +4BFFFD19 7CC802A6 +98660004 88860001 +38840005 7C6621AE 38630002 7C8618AE 38A40001 7CA619AE 88860000 38840001 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a3a03cc1..1103d8af 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4738,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001D1 #Online/Slippi Online Scene/main.asm +C21A45B8 000001D4 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E18 80830000 +48000E30 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4802,26 +4802,27 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -480000A5 48000119 +480000AD 48000121 08000000 80497758 80497758 01030000 -48000215 48000245 +48000221 48000251 09000000 80480668 80480668 02030000 -801B1588 480002DD +801B1588 480002E9 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000565 480008A1 +4800057D 480008B9 20000000 80490880 804D68D0 05030000 -00000000 48000B99 +00000000 48000BB1 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 00000000 +00000000 00000000 00000000 7C0802A6 90010004 9421FF50 BE810008 808D8840 @@ -4844,76 +4845,78 @@ BE810008 7C7E1B78 7D8903A6 4E800421 809E0014 88840003 2C040002 40820008 -480000C8 886DAFA0 +480000CC 886DAFA0 2C030000 41820020 2C030001 41820014 -2C030002 41820050 -2C030003 41820048 -48000074 4BFFFF1D -7C8802A6 38600003 -98640000 38600001 -98640001 38600000 -98640002 98640003 -98640004 98640005 -3C808047 60849D30 -38600006 98640005 -48000060 886DAFC9 -7C630774 2C03FFFF -41820024 2C030001 -4182001C 2C030000 -40820000 886DAFCA -2C030000 41820020 -48000004 4800074D -3C808047 60849D30 -38600005 98640005 -48000018 3C808047 -60849D30 38600002 -98640005 48000004 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B -618C1514 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 809F0014 -88840004 2C040000 -4082001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 -48000064 38600001 -986DAFCA 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0001 -889E0002 7C032000 -4082001C 4800066D +2C030002 41820054 +2C030003 4182004C +48000078 4BFFFF15 +7F6802A6 7F63DB78 +3880000F 3D808000 +618CC160 7D8903A6 +4E800421 38600003 +987B0000 38600001 +987B0001 3C808047 +60849D30 38600006 +98640005 48000060 +886DAFC9 7C630774 +2C03FFFF 41820024 +2C030001 4182001C +2C030000 40820000 +886DAFCA 2C030000 +41820020 48000004 +48000759 3C808047 +60849D30 38600005 +98640005 48000018 3C808047 60849D30 -38600005 98640005 -4800001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 +38600002 98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C15C8 +3D80801B 618C1514 7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +809F0014 88840004 +2C040000 4082001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000064 +38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7F1B78 -886DAFA0 2C030000 -408200E4 480006BD -2C030000 40800018 -4BFFFD39 7CC802A6 -38600001 98660005 -4800004C 4BFFFD25 -7CC802A6 98660004 +4E800421 7C7E1B78 +887E0001 889E0002 +7C032000 4082001C +48000679 3C808047 +60849D30 38600005 +98640005 4800001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000004 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3D80801B +618C15C8 7D8903A6 +4E800421 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7F1B78 886DAFA0 +2C030000 408200F0 +480006C9 2C030000 +40800018 4BFFFD2D +7CC802A6 38600001 +98660005 48000058 +4BFFFD19 7CC802A6 +98660004 88860001 +38840005 7C6621AE 38630002 7C8618AE 38A40001 7CA619AE 88860000 38840001 From 9c7615c1a11fc159e5b91f4bb803f73f08ef06e1 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 8 Jul 2021 20:58:45 -0700 Subject: [PATCH 025/217] fix bug with char changes causing crashes thank you to my hero UnclePunch --- Online/Slippi Online Scene/main.asm | 11 +++++++++- Output/Netplay/GALE01r2.ini | 32 +++++++++++++++++------------ Output/Netplay/GALJ01r2.ini | 32 +++++++++++++++++------------ 3 files changed, 48 insertions(+), 27 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 362e01ce..619202a7 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -261,7 +261,7 @@ bl SplashSceneDecide .byte 5 #Minor Scene ID .byte 3 #Amount of persistent heaps .align 2 -.long 0x00000000 #ScenePrep +bl GamePrepScenePrep #ScenePrep bl GamePrepSceneDecide #SceneDecide .byte 80 #Common Minor ID (Game Preparation) .align 2 @@ -1321,12 +1321,21 @@ restore blr #endregion +GamePrepScenePrep: +backup +# Invalidate pre-load cache otherwise changing one character mid-set crashes +branchl r12, 0x800174bc +restore +blr + GamePrepSceneDecide: .set REG_GPD, 31 backup lwz REG_GPD, 0x10(r3) # Grabs load data + +# Check if there was a tie last game and a tiebreak is needed lbz r3, GPDO_IS_TIEBREAK(REG_GPD) cmpwi r3, 0 beq GamePrepSceneDecide_DisplaySplash diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 3b8a2a17..00a6680d 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4738,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001D4 #Online/Slippi Online Scene/main.asm +C21A45B8 000001DA #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E30 80830000 +48000E64 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4817,7 +4817,7 @@ BE810008 38600012 4800057D 480008B9 20000000 80490880 804D68D0 05030000 -00000000 48000BB1 +48000BB5 48000BE5 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -5193,20 +5193,26 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 83E30010 -887F0005 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFCF1 3C808047 -60849D30 38600005 -98640005 BA810008 +BE810008 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFCBD +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 1103d8af..d24bc219 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4738,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001D4 #Online/Slippi Online Scene/main.asm +C21A45B8 000001DA #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E30 80830000 +48000E64 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4817,7 +4817,7 @@ BE810008 38600012 4800057D 480008B9 20000000 80490880 804D68D0 05030000 -00000000 48000BB1 +48000BB5 48000BE5 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -5193,20 +5193,26 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 83E30010 -887F0005 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFCF1 3C808047 -60849D30 38600005 -98640005 BA810008 +BE810008 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFCBD +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 From 296a58cdde8490b6ea4811ef3dbfdcb965412505 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 9 Jul 2021 15:09:11 -0700 Subject: [PATCH 026/217] add stage win information --- Online/Slippi Online Scene/main.asm | 53 ++++---- Output/Netplay/GALE01r2.ini | 185 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 185 ++++++++++++++-------------- 3 files changed, 219 insertions(+), 204 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 619202a7..a2f5f235 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -339,20 +339,18 @@ GamePrepData: .byte 0x0 # max games .set GPDO_CUR_GAME, GPDO_MAX_GAMES + 1 .byte 0x0 # current game -.set GPDO_P1_SCORE, GPDO_CUR_GAME + 1 -.byte 0x0 # p1 score -.set GPDO_P2_SCORE, GPDO_P1_SCORE + 1 -.byte 0x0 # p2 score -.set GPDO_PREV_WINNER, GPDO_P2_SCORE + 1 +.set GPDO_SCORE_BY_PLAYER, GPDO_CUR_GAME + 1 +.fill 2, 1, 0 +.set GPDO_PREV_WINNER, GPDO_SCORE_BY_PLAYER + 2 * 1 .byte 0x0 # previous winner .set GPDO_IS_TIEBREAK, GPDO_PREV_WINNER + 1 .byte 0x0 # Referenced directly in InitOnlinePlay.asm, if moved, must change reference .set GPDO_GAME_RESULTS, GPDO_IS_TIEBREAK + 1 .set MAX_RESULT_COUNT, 9 -.long 0x0 -.long 0x0 -.byte 0x0 # Take space for 9 results, I guess? Probably a better way to write this -.set GPDO_SIZE, GPDO_GAME_RESULTS + MAX_RESULT_COUNT +.fill MAX_RESULT_COUNT, 1, 0 # Take space for 9 bytes +.set GPDO_LAST_STAGE_WIN_BY_PLAYER, GPDO_GAME_RESULTS + MAX_RESULT_COUNT +.fill 2, 2, 0 +.set GPDO_SIZE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 .align 2 #region CSSScenePrep @@ -566,6 +564,8 @@ VSSceneDecide: .set REG_MSRB_ADDR, 31 .set REG_TXB_ADDR, 30 .set REG_SHOULD_PICK_STAGE, 29 +.set REG_WINNER_IDX, 28 +.set REG_GPD, 27 backup @@ -586,8 +586,9 @@ bne VSSceneDecide_SkipRankedHandler # Get the winner of last game bl SinglesDetermineWinner -cmpwi r3, 0 -bge VSSceneDecide_SkipTieHandler +mr REG_WINNER_IDX, r3 +cmpwi REG_WINNER_IDX, 0 +bge VSSceneDecide_SkipTieHandler # If winner is not -1, it is not a tie # Here we have a tie, we want to start a new one-stock, 3 min game bl GamePrepData_BLRL @@ -602,32 +603,40 @@ VSSceneDecide_SkipTieHandler: # Here we have a conclusive game. Increment game prep game count and scores bl GamePrepData_BLRL -mflr r6 +mflr REG_GPD -stb r3, GPDO_PREV_WINNER(r6) # Store winner index +stb REG_WINNER_IDX, GPDO_PREV_WINNER(REG_GPD) # Store winner index -lbz r4, GPDO_CUR_GAME(r6) +# Set winner ID at game index +lbz r4, GPDO_CUR_GAME(REG_GPD) addi r4, r4, GPDO_GAME_RESULTS - 1 # Move offset to index in array (cur_game is 1-indexed) -stbx r3, r6, r4 +stbx REG_WINNER_IDX, REG_GPD, r4 -addi r3, r3, GPDO_P1_SCORE # Get offset for winner -lbzx r4, r6, r3 +# Increment game score +addi r3, REG_WINNER_IDX, GPDO_SCORE_BY_PLAYER # Get offset for winner +lbzx r4, REG_GPD, r3 addi r5, r4, 1 -stbx r5, r6, r3 # Store the game score for the winner +stbx r5, REG_GPD, r3 # Store the game score for the winner -lbz r4, GPDO_MAX_GAMES(r6) +# Store stage win +mulli r4, REG_WINNER_IDX, 2 +addi r4, r4, GPDO_LAST_STAGE_WIN_BY_PLAYER +lhz r3, MSRB_GAME_INFO_BLOCK + 0xE(REG_MSRB_ADDR) # Load last stage played +sthx r3, REG_GPD, r4 + +lbz r4, GPDO_MAX_GAMES(REG_GPD) addi r4, r4, 1 li r3, 2 divwu r4, r4, r3 # Calculate number of wins needed cmpw r5, r4 bge VSSceneDecide_RankedSetOver -lbz r3, GPDO_CUR_GAME(r6) +lbz r3, GPDO_CUR_GAME(REG_GPD) addi r3, r3, 1 -stb r3, GPDO_CUR_GAME(r6) +stb r3, GPDO_CUR_GAME(REG_GPD) li r3, 0 -stb r3, GPDO_IS_TIEBREAK(r6) +stb r3, GPDO_IS_TIEBREAK(REG_GPD) VSSceneDecide_MoveToGamePrep: # Go back to game prep, there are more games diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 00a6680d..513d1625 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4738,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001DA #Online/Slippi Online Scene/main.asm +C21A45B8 000001DD #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E64 80830000 +48000E7C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4802,129 +4802,132 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -480000AD 48000121 +480000B1 48000125 08000000 80497758 80497758 01030000 -48000221 48000251 +48000225 48000255 09000000 80480668 80480668 02030000 -801B1588 480002E9 +801B1588 480002ED 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -4800057D 480008B9 +48000595 480008D1 20000000 80490880 804D68D0 05030000 -48000BB5 48000BE5 +48000BCD 48000BFD 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 00000000 00000000 00000000 -00000000 7C0802A6 -90010004 9421FF50 -BE810008 808D8840 -3BE40530 3D80801A -618C427C 7D8903A6 -4E800421 88BF0002 -3880000E 88FF0003 -38C00000 891F0004 -895F0006 39200000 -3D80801B 618C06B0 -7D8903A6 4E800421 -3D808001 618C74BC +00000000 00000000 +7C0802A6 90010004 +9421FF50 BE810008 +808D8840 3BE40530 +3D80801A 618C427C +7D8903A6 4E800421 +88BF0002 3880000E +88FF0003 38C00000 +891F0004 895F0006 +39200000 3D80801B +618C06B0 7D8903A6 +4E800421 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 3D80801B +618CAAD0 7D8903A6 +4E800421 809E0014 +88840003 2C040002 +40820008 480000CC +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +41820054 2C030003 +4182004C 48000078 +4BFFFF11 7F6802A6 +7F63DB78 38800013 +3D808000 618CC160 7D8903A6 4E800421 +38600003 987B0000 +38600001 987B0001 +3C808047 60849D30 +38600006 98640005 +48000060 886DAFC9 +7C630774 2C03FFFF +41820024 2C030001 +4182001C 2C030000 +40820000 886DAFCA +2C030000 41820020 +48000004 4800076D +3C808047 60849D30 +38600005 98640005 +48000018 3C808047 +60849D30 38600002 +98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 7C7E1B78 -3D80801B 618CAAD0 +BE810008 3D80801B +618C1514 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 809F0014 +88840004 2C040000 +4082001C 38600000 +3D80801A 618C42A0 7D8903A6 4E800421 -809E0014 88840003 -2C040002 40820008 -480000CC 886DAFA0 -2C030000 41820020 -2C030001 41820014 -2C030002 41820054 -2C030003 4182004C -48000078 4BFFFF15 -7F6802A6 7F63DB78 -3880000F 3D808000 -618CC160 7D8903A6 -4E800421 38600003 -987B0000 38600001 -987B0001 3C808047 -60849D30 38600006 -98640005 48000060 -886DAFC9 7C630774 -2C03FFFF 41820024 -2C030001 4182001C -2C030000 40820000 -886DAFCA 2C030000 -41820020 48000004 -48000759 3C808047 -60849D30 38600005 -98640005 48000018 +48000064 38600001 +986DAFCA 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0001 +889E0002 7C032000 +4082001C 4800068D 3C808047 60849D30 -38600002 98640005 +38600005 98640005 +4800001C 38600000 +3D80801A 618C42A0 +7D8903A6 4E800421 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C1514 +3D80801B 618C15C8 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 -809F0014 88840004 -2C040000 4082001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000064 -38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0001 889E0002 -7C032000 4082001C -48000679 3C808047 -60849D30 38600005 -98640005 4800001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000004 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B -618C15C8 7D8903A6 -4E800421 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7F1B78 886DAFA0 -2C030000 408200F0 -480006C9 2C030000 -40800018 4BFFFD2D +4E800421 7C7F1B78 +886DAFA0 2C030000 +40820104 480006DD +7C7C1B78 2C1C0000 +40800018 4BFFFD25 7CC802A6 38600001 -98660005 48000058 -4BFFFD19 7CC802A6 -98660004 88860001 -38840005 7C6621AE -38630002 7C8618AE -38A40001 7CA619AE -88860000 38840001 +98660005 48000068 +4BFFFD11 7F6802A6 +9B9B0004 889B0001 +38840005 7F9B21AE +387C0002 7C9B18AE +38A40001 7CBB19AE +1C9C0002 3884000F +A07F01F6 7C7B232E +889B0000 38840001 38600002 7C841B96 7C052000 4080002C -88660001 38630001 -98660001 38600000 -98660005 3C808047 +887B0001 38630001 +987B0001 38600000 +987B0005 3C808047 60849D30 38600006 98640005 48000078 38600001 3D808037 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index d24bc219..ea652ae5 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4738,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001DA #Online/Slippi Online Scene/main.asm +C21A45B8 000001DD #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E64 80830000 +48000E7C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4802,129 +4802,132 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -480000AD 48000121 +480000B1 48000125 08000000 80497758 80497758 01030000 -48000221 48000251 +48000225 48000255 09000000 80480668 80480668 02030000 -801B1588 480002E9 +801B1588 480002ED 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -4800057D 480008B9 +48000595 480008D1 20000000 80490880 804D68D0 05030000 -48000BB5 48000BE5 +48000BCD 48000BFD 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 00000000 00000000 00000000 -00000000 7C0802A6 -90010004 9421FF50 -BE810008 808D8840 -3BE40530 3D80801A -618C427C 7D8903A6 -4E800421 88BF0002 -3880000E 88FF0003 -38C00000 891F0004 -895F0006 39200000 -3D80801B 618C06B0 -7D8903A6 4E800421 -3D808001 618C74BC +00000000 00000000 +7C0802A6 90010004 +9421FF50 BE810008 +808D8840 3BE40530 +3D80801A 618C427C +7D8903A6 4E800421 +88BF0002 3880000E +88FF0003 38C00000 +891F0004 895F0006 +39200000 3D80801B +618C06B0 7D8903A6 +4E800421 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 3D80801B +618CAAD0 7D8903A6 +4E800421 809E0014 +88840003 2C040002 +40820008 480000CC +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +41820054 2C030003 +4182004C 48000078 +4BFFFF11 7F6802A6 +7F63DB78 38800013 +3D808000 618CC160 7D8903A6 4E800421 +38600003 987B0000 +38600001 987B0001 +3C808047 60849D30 +38600006 98640005 +48000060 886DAFC9 +7C630774 2C03FFFF +41820024 2C030001 +4182001C 2C030000 +40820000 886DAFCA +2C030000 41820020 +48000004 4800076D +3C808047 60849D30 +38600005 98640005 +48000018 3C808047 +60849D30 38600002 +98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 7C7E1B78 -3D80801B 618CAAD0 +BE810008 3D80801B +618C1514 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 809F0014 +88840004 2C040000 +4082001C 38600000 +3D80801A 618C42A0 7D8903A6 4E800421 -809E0014 88840003 -2C040002 40820008 -480000CC 886DAFA0 -2C030000 41820020 -2C030001 41820014 -2C030002 41820054 -2C030003 4182004C -48000078 4BFFFF15 -7F6802A6 7F63DB78 -3880000F 3D808000 -618CC160 7D8903A6 -4E800421 38600003 -987B0000 38600001 -987B0001 3C808047 -60849D30 38600006 -98640005 48000060 -886DAFC9 7C630774 -2C03FFFF 41820024 -2C030001 4182001C -2C030000 40820000 -886DAFCA 2C030000 -41820020 48000004 -48000759 3C808047 -60849D30 38600005 -98640005 48000018 +48000064 38600001 +986DAFCA 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0001 +889E0002 7C032000 +4082001C 4800068D 3C808047 60849D30 -38600002 98640005 +38600005 98640005 +4800001C 38600000 +3D80801A 618C42A0 +7D8903A6 4E800421 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C1514 +3D80801B 618C15C8 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 -809F0014 88840004 -2C040000 4082001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000064 -38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0001 889E0002 -7C032000 4082001C -48000679 3C808047 -60849D30 38600005 -98640005 4800001C -38600000 3D80801A -618C42A0 7D8903A6 -4E800421 48000004 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B -618C15C8 7D8903A6 -4E800421 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7F1B78 886DAFA0 -2C030000 408200F0 -480006C9 2C030000 -40800018 4BFFFD2D +4E800421 7C7F1B78 +886DAFA0 2C030000 +40820104 480006DD +7C7C1B78 2C1C0000 +40800018 4BFFFD25 7CC802A6 38600001 -98660005 48000058 -4BFFFD19 7CC802A6 -98660004 88860001 -38840005 7C6621AE -38630002 7C8618AE -38A40001 7CA619AE -88860000 38840001 +98660005 48000068 +4BFFFD11 7F6802A6 +9B9B0004 889B0001 +38840005 7F9B21AE +387C0002 7C9B18AE +38A40001 7CBB19AE +1C9C0002 3884000F +A07F01F6 7C7B232E +889B0000 38840001 38600002 7C841B96 7C052000 4080002C -88660001 38630001 -98660001 38600000 -98660005 3C808047 +887B0001 38630001 +987B0001 38600000 +987B0005 3C808047 60849D30 38600006 98640005 48000078 38600001 3D808037 From 80902265efb5de0564dddf5616a7b81d585cbfec Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 11 Jul 2021 16:09:52 -0700 Subject: [PATCH 027/217] add logic to handle a frame advance request --- Online/Core/LoopEngineForRollback.asm | 13 +- Online/Core/TriggerSendInput.asm | 10 + Online/Online.s | 4 +- Output/Netplay/GALE01r2.ini | 277 +++++++++++++------------- Output/Netplay/GALJ01r2.ini | 277 +++++++++++++------------- 5 files changed, 309 insertions(+), 272 deletions(-) diff --git a/Online/Core/LoopEngineForRollback.asm b/Online/Core/LoopEngineForRollback.asm index 92ed17c1..b6ba144c 100644 --- a/Online/Core/LoopEngineForRollback.asm +++ b/Online/Core/LoopEngineForRollback.asm @@ -167,8 +167,19 @@ branchl r12, OSRestoreInterrupts lbz REG_IS_ROLLBACK_ACTIVE, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) cmpwi REG_IS_ROLLBACK_ACTIVE, 1 -bne RESTORE_AND_EXIT # If no rollback active, continue as normal +beq HANDLE_ROLLBACK # If no rollback active, continue as normal +# Here there is no rollback, check instead for a requested frame advance +lbz r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) +cmpwi r3, 1 +bne RESTORE_AND_EXIT + +# Fetch new inputs immediately to skip a frame +# logf LOG_LEVEL_ERROR, "Forcing an input" +branchl r12, RenewInputs_Prefunction +b RESTORE_AND_EXIT + +HANDLE_ROLLBACK: # Here we have a rollback, we are going to loop back to the start of the # updateFunction loop bl FN_ExecCameraTasks diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 48f04267..67d1670d 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -175,11 +175,17 @@ li r4, RXB_SIZE li r5, CONST_ExiRead branchl r12, FN_EXITransferBuffer +# Default to no frame advance +li r3, 0 +stb r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) + lbz r3, RXB_RESULT(REG_RXB_ADDRESS) cmpwi r3, RESP_SKIP beq SKIP_INPUT cmpwi r3, RESP_DISCONNECTED beq HANDLE_DISCONNECT +cmpwi r3, RESP_ADVANCE +beq HANDLE_ADVANCE b RESP_RES_CONTINUE HANDLE_DISCONNECT: @@ -194,6 +200,10 @@ SKIP_INPUT: restore branch r12, 0x80376cec # branch to restore of parent function to skip handling input +HANDLE_ADVANCE: +li r3, 1 +stb r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) + RESP_RES_CONTINUE: ################################################################################ diff --git a/Online/Online.s b/Online/Online.s index 963e8d51..4a377dd5 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -191,7 +191,8 @@ .set ODB_IS_GAME_OVER, ODB_GAME_OVER_COUNTER + 1 # bool .set ODB_IS_DISCONNECTED, ODB_IS_GAME_OVER + 1 # bool .set ODB_IS_DISCONNECT_STATE_DISPLAYED, ODB_IS_DISCONNECTED + 1 # bool -.set ODB_LAST_LOCAL_INPUTS, ODB_IS_DISCONNECT_STATE_DISPLAYED + 1 # PAD_REPORT_SIZE +.set ODB_IS_FRAME_ADVANCE, ODB_IS_DISCONNECT_STATE_DISPLAYED + 1 # bool +.set ODB_LAST_LOCAL_INPUTS, ODB_IS_FRAME_ADVANCE + 1 # PAD_REPORT_SIZE .set ODB_DELAY_FRAMES, ODB_LAST_LOCAL_INPUTS + PAD_REPORT_SIZE # u8 .set ODB_DELAY_BUFFER_INDEX, ODB_DELAY_FRAMES + 1 # u8 .set ODB_DELAY_BUFFER, ODB_DELAY_BUFFER_INDEX + 1 # PAD_REPORT_SIZE * MAX_DELAY_FRAMES @@ -404,3 +405,4 @@ .set RESP_NORMAL, 1 .set RESP_SKIP, 2 .set RESP_DISCONNECTED, 3 +.set RESP_ADVANCE, 4 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index de54982e..5c6185a7 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -579,7 +579,7 @@ C23219EC 0000001C #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 40820024 8885000C 2C040000 -40820018 808507B3 +40820018 808507B4 3884FF85 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1252,17 +1252,17 @@ C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500D9 2C040000 +888500DA 2C040000 41820038 3B600001 -888500D9 988507A9 -808500DB 908507AA -888500DA 988507AE -80850237 908507AF -808500D5 80840002 -908507B3 48000028 -888507B7 2C040000 +888500DA 988507AA +808500DC 908507AB +888500DB 988507AF +80850238 908507B0 +808500D6 80840002 +908507B4 48000028 +888507B8 2C040000 4182001C 38800000 -988507B7 3D808001 +988507B8 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 618C738C @@ -1277,7 +1277,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407A5 +808DB61C 806407A6 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1304,39 +1304,39 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007BC +40820338 386007BD 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007BC +7C7B1B78 388007BD 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D -7C6802A6 907B07A5 +7C6802A6 907B07A6 38600012 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D1 +4E800421 907B00D2 3860010A 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D5 +4E800421 907B00D6 7C7A1B78 3880010A 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B024A 3860009E +933B024B 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B024E 3880009E +907B024F 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007BC +93790005 386007BD 90790009 9359000D 3860010A 90790011 -807B024E 90790015 +807B024F 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1365,7 +1365,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 2C03000F 41810010 48000010 38600001 48000008 3860000F -987B001B 38A00000 +987B001C 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 90830000 @@ -1489,23 +1489,23 @@ BE810008 83ADB61C 800100B4 382100B0 7C0803A6 4E800020 881F0001 00000000 -C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm +C21A5014 00000053 #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820250 +2C030208 40820270 3C608047 60639D64 80630000 2C030000 -4082023C 7C0802A6 +4082025C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF0252 +83EDB61C 3BDF0253 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07A1 7C18B800 +82FF07A2 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1534,14 +1534,18 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07A1 +4081001C 931F07A2 3B9C0001 2C1C0007 41800008 3B9CFFF9 9B9E0000 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 -8B7F07A9 2C1B0001 -408200CC 48000025 +8B7F07AA 2C1B0001 +41820024 887F000F +2C030001 408200E0 +3D808001 618C95FC +7D8903A6 4E800421 +480000CC 48000025 BA810008 800100B4 382100B0 7C0803A6 3D80801A 618C4DE4 @@ -1591,7 +1595,7 @@ C2376A20 0000000A #Online/Core/SkipNewInputFetchOnRollback.asm 40820038 3C608047 60639D64 80630000 2C030000 40820024 -806DB61C 886300D9 +806DB61C 886300DA 2C030001 40820014 3D808037 618C6A28 7D8903A6 4E800420 @@ -1623,7 +1627,7 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B8 3D80803A +809A07B9 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1643,11 +1647,11 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987A000E -887A07A9 2C030000 -418200B8 887A07AE +887A07AA 2C030000 +418200B8 887A07AF 2C030000 41820084 -807A024A 809A07AF -80BA024E 3D808000 +807A024B 809A07B0 +80BA024F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1657,21 +1661,21 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3F608048 -837B9D60 807A0237 +837B9D60 807A0238 907A0003 38600000 -987A0236 987A0247 -987A0248 987A0249 -987A00DA 987A07AE +987A0237 987A0248 +987A0249 987A024A +987A00DB 987A07AF 3D808001 618C95FC 7D8903A6 4E800421 -807A07AA 7C1B1800 +807A07AB 7C1B1800 41800010 38600000 -987A00D9 987A07A9 -887A0236 2C030000 -4182002C 807A0237 +987A00DA 987A07AA +887A0237 2C030000 +4182002C 807A0238 7C1B1800 41800020 -807A024A 7F64DB78 -80BA024E 3D808000 +807A024B 7F64DB78 +80BA024F 3D808000 618C5608 7D8903A6 4E800421 887A000C 2C030001 4182004C @@ -1682,26 +1686,26 @@ C0570010 3D80803A 887A000B 38630001 987A000B 2C030007 40810018 38600001 -987A000C 807A07A5 +987A000C 807A07A6 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000DD #Online/Core/TriggerSendInput.asm +C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206B0 3C608047 +408206C8 3C608047 60639D64 80630000 -2C030000 4082069C -836DB61C 833B00D1 -831B00D5 82FB024A -835B0003 887B00D9 -2C030001 418205F8 -887B001B 38800054 +2C030000 408206B4 +836DB61C 833B00D2 +831B00D6 82FB024B +835B0003 887B00DA +2C030001 41820610 +887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 3D808000 @@ -1711,16 +1715,16 @@ C2376A28 000000DD #Online/Core/TriggerSendInput.asm 7C6118AE 7C630774 2C03FFFD 40820024 386400DC 7C611A14 -389B000F 38A0000C +389B0010 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 889B0002 1C84000C -388400DC 387B000F +388400DC 387B0010 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 887B001B +93590001 887B001C 98790005 889B0002 1C84000C 388400DC 38790006 7C812214 @@ -1733,57 +1737,60 @@ C2376A28 000000DD #Online/Core/TriggerSendInput.asm 38780000 3880010A 38A00000 3D808000 618C55F0 7D8903A6 -4E800421 88780000 -2C030002 4182001C -2C030003 41820008 -48000030 38600001 -987B000D 48000024 +4E800421 38600000 +987B000F 88780000 +2C030002 41820024 +2C030003 41820010 +2C030004 41820034 +48000038 38600001 +987B000D 4800002C BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 -889B001C 1C84000C -3884001D 887B0000 +38600001 987B000F +889B001D 1C84000C +3884001E 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00DF -1C63000C 386300E0 +4E800421 887B00E0 +1C63000C 386300E1 889B0000 1C84000C 388400DC 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00DF 38630001 +887B00E0 38630001 2C030007 41800008 -38600000 987B00DF -887B001C 1C63000C -3863001D 7C7B1A14 +38600000 987B00E0 +887B001D 1C63000C +3863001E 7C7B1A14 38990006 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -889B001B 887B001C +889B001C 887B001D 38630001 7C032000 41800008 38600000 -987B001C 887B0236 +987B001D 887B0237 2C030000 40820018 -38600000 987B0247 -987B0248 987B0249 +38600000 987B0248 +987B0249 987B024A 48000284 3A800000 -38D40247 7C66D8AE +38D40248 7C66D8AE 2C030001 40820178 1CD40004 38C60002 7C66C02E 1CD40004 -38C6023B 7C86D82E +38C6023C 7C86D82E 7C641851 41800158 -7C761B78 38D40134 -7C66D8AE 38D40137 +7C761B78 38D40135 +7C66D8AE 38D40138 7C86D8AE 7EC3B378 1C63000C 3863000E 1CD40054 7C633214 -38D40134 7C86D8AE -1C84000C 3884013A +38D40135 7C86D8AE +1C84000C 3884013B 1CB40054 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1801,68 +1808,68 @@ BA810008 800100B4 2C04002A 4081FFE0 7C032000 40820064 4BFFFFD4 1CD40004 -38C6023B 7C66D82E +38C6023C 7C66D82E 38630001 7C66D92E -38D40134 7C66D8AE +38D40135 7C66D8AE 38630001 2C030007 41800008 3863FFF9 -7C66D9AE 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +7C66D9AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40135 +7C66D8AE 38D40138 7C86D8AE 7C041800 4082FEC0 48000040 -1CD40004 38C6023B +1CD40004 38C6023C 7C66D82E 38600001 -987B00D9 987B00DA -935B00DB BA810008 +987B00DA 987B00DB +935B00DC BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 2C140003 4180FE74 3AA00000 3A800000 -807B0237 7C761B78 -7EC3B378 38D40247 +807B0238 7C761B78 +7EC3B378 38D40248 7C86D8AE 7C761B78 -7EC3B378 38D40247 +7EC3B378 38D40248 7C86D8AE 2C040001 40820030 1CD40004 -38C6023B 7C86D82E +38C6023C 7C86D82E 2C150000 4182000C 7C041800 40800014 7C832378 7C761B78 7EC3B378 3AA00001 3A940001 2C140003 -4180FFAC 907B0237 -3A800000 38D40247 +4180FFAC 907B0238 +3A800000 38D40248 7C86D8AE 2C040001 -40820038 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +40820038 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40135 +7C66D8AE 38D40138 7C86D8AE 7C041800 40820010 38600000 -38D40247 7C66D9AE +38D40248 7C66D9AE 3A940001 2C140003 4180FFB4 3A800000 -38D40247 7C86D8AE +38D40248 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B0236 3A800000 +987B0237 3A800000 3AA00000 887B0000 7C151800 40820008 3AB50001 1CD40004 38C60002 7C66C02E 7C7A1850 2C030000 -408000D4 887B001B +408000D4 887B001C 38800054 7C632050 7C1A1800 418000BC 887B000C 2C030001 -418200B0 38D40137 +418200B0 38D40138 7EC6D8AE 1C76000C -3863013A 1CB40054 +3863013B 1CB40054 7C632A14 1CD40054 38C6000E 7C7B1A14 7C983214 38A0000C @@ -1870,18 +1877,18 @@ BA810008 800100B4 7D8903A6 4E800421 38760001 2C030007 41800008 3863FFF9 -38D40137 7C66D9AE -38D40134 7C66D8AE -38D40137 7C86D8AE -38D40247 7C66D8AE +38D40138 7C66D9AE +38D40135 7C66D8AE +38D40138 7C86D8AE +38D40248 7C66D8AE 2C030001 4182003C -1CD40004 38C6023B +1CD40004 38C6023C 7F46D92E 38600001 -38D40247 7C66D9AE -38D40134 7EC6D9AE -887B0236 2C030001 -41820010 935B0237 -38600001 987B0236 +38D40248 7C66D9AE +38D40135 7EC6D9AE +887B0237 2C030001 +41820010 935B0238 +38600001 987B0237 38600000 1C63000C 38A3000E 1CD40054 7CA53214 1C75000C @@ -1891,17 +1898,17 @@ BA810008 800100B4 7D8903A6 4E800421 3A940001 3AB50001 2C140003 4180FEC8 -48000080 807B00DB +48000080 807B00DC 7C1A1800 40810024 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 -807B00DB 7C7A1850 -38630001 889B00DF +807B00DC 7C7A1850 +38630001 889B00E0 7C632051 40800008 38630007 1C63000C -388300E0 887B0000 +388300E1 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 @@ -2022,9 +2029,9 @@ C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 4082003C 3C608037 60635E00 2C000003 4082002C 80ADB61C -886500D9 2C030000 +886500DA 2C030000 4182001C 38600001 -986507B7 3D808001 +986507B8 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2043,11 +2050,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF0252 8B9E0000 +3BDF0253 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F07A2 7C032000 41810028 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2065,12 +2072,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF0253 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F07A2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2095,12 +2102,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF0253 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F07A2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2127,13 +2134,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF0252 +83EDB61C 3BDF0253 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F07A2 7C032000 41810070 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3933,7 +3940,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B8 +83CDB61C 93FE07B9 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -3948,7 +3955,7 @@ D03D0008 C03C0004 D03D0024 D03D0028 C03C0008 C05C000C 7FA3EB78 389C0048 -88BE001B 3D80803A +88BE001C 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 38800000 C03C0010 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f1992e64..7c4676a1 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -579,7 +579,7 @@ C23219EC 0000001C #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 40820024 8885000C 2C040000 -40820018 808507B3 +40820018 808507B4 3884FF85 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1252,17 +1252,17 @@ C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500D9 2C040000 +888500DA 2C040000 41820038 3B600001 -888500D9 988507A9 -808500DB 908507AA -888500DA 988507AE -80850237 908507AF -808500D5 80840002 -908507B3 48000028 -888507B7 2C040000 +888500DA 988507AA +808500DC 908507AB +888500DB 988507AF +80850238 908507B0 +808500D6 80840002 +908507B4 48000028 +888507B8 2C040000 4182001C 38800000 -988507B7 3D808001 +988507B8 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 618C738C @@ -1277,7 +1277,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407A5 +808DB61C 806407A6 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1304,39 +1304,39 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007BC +40820338 386007BD 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007BC +7C7B1B78 388007BD 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D -7C6802A6 907B07A5 +7C6802A6 907B07A6 38600012 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D1 +4E800421 907B00D2 3860010A 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D5 +4E800421 907B00D6 7C7A1B78 3880010A 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B024A 3860009E +933B024B 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B024E 3880009E +907B024F 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007BC +93790005 386007BD 90790009 9359000D 3860010A 90790011 -807B024E 90790015 +807B024F 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1365,7 +1365,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 2C03000F 41810010 48000010 38600001 48000008 3860000F -987B001B 38A00000 +987B001C 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 90830000 @@ -1489,23 +1489,23 @@ BE810008 83ADB61C 800100B4 382100B0 7C0803A6 4E800020 881F0001 00000000 -C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm +C21A5014 00000053 #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820250 +2C030208 40820270 3C608047 60639D64 80630000 2C030000 -4082023C 7C0802A6 +4082025C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF0252 +83EDB61C 3BDF0253 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07A1 7C18B800 +82FF07A2 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1534,14 +1534,18 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07A1 +4081001C 931F07A2 3B9C0001 2C1C0007 41800008 3B9CFFF9 9B9E0000 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 -8B7F07A9 2C1B0001 -408200CC 48000025 +8B7F07AA 2C1B0001 +41820024 887F000F +2C030001 408200E0 +3D808001 618C95FC +7D8903A6 4E800421 +480000CC 48000025 BA810008 800100B4 382100B0 7C0803A6 3D80801A 618C4DE4 @@ -1591,7 +1595,7 @@ C2376A20 0000000A #Online/Core/SkipNewInputFetchOnRollback.asm 40820038 3C608047 60639D64 80630000 2C030000 40820024 -806DB61C 886300D9 +806DB61C 886300DA 2C030001 40820014 3D808037 618C6A28 7D8903A6 4E800420 @@ -1623,7 +1627,7 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B8 3D80803A +809A07B9 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1643,11 +1647,11 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987A000E -887A07A9 2C030000 -418200B8 887A07AE +887A07AA 2C030000 +418200B8 887A07AF 2C030000 41820084 -807A024A 809A07AF -80BA024E 3D808000 +807A024B 809A07B0 +80BA024F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1657,21 +1661,21 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3F608048 -837B9D60 807A0237 +837B9D60 807A0238 907A0003 38600000 -987A0236 987A0247 -987A0248 987A0249 -987A00DA 987A07AE +987A0237 987A0248 +987A0249 987A024A +987A00DB 987A07AF 3D808001 618C95FC 7D8903A6 4E800421 -807A07AA 7C1B1800 +807A07AB 7C1B1800 41800010 38600000 -987A00D9 987A07A9 -887A0236 2C030000 -4182002C 807A0237 +987A00DA 987A07AA +887A0237 2C030000 +4182002C 807A0238 7C1B1800 41800020 -807A024A 7F64DB78 -80BA024E 3D808000 +807A024B 7F64DB78 +80BA024F 3D808000 618C5608 7D8903A6 4E800421 887A000C 2C030001 4182004C @@ -1682,26 +1686,26 @@ C0570010 3D80803A 887A000B 38630001 987A000B 2C030007 40810018 38600001 -987A000C 807A07A5 +987A000C 807A07A6 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000DD #Online/Core/TriggerSendInput.asm +C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206B0 3C608047 +408206C8 3C608047 60639D64 80630000 -2C030000 4082069C -836DB61C 833B00D1 -831B00D5 82FB024A -835B0003 887B00D9 -2C030001 418205F8 -887B001B 38800054 +2C030000 408206B4 +836DB61C 833B00D2 +831B00D6 82FB024B +835B0003 887B00DA +2C030001 41820610 +887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 3D808000 @@ -1711,16 +1715,16 @@ C2376A28 000000DD #Online/Core/TriggerSendInput.asm 7C6118AE 7C630774 2C03FFFD 40820024 386400DC 7C611A14 -389B000F 38A0000C +389B0010 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 889B0002 1C84000C -388400DC 387B000F +388400DC 387B0010 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 887B001B +93590001 887B001C 98790005 889B0002 1C84000C 388400DC 38790006 7C812214 @@ -1733,57 +1737,60 @@ C2376A28 000000DD #Online/Core/TriggerSendInput.asm 38780000 3880010A 38A00000 3D808000 618C55F0 7D8903A6 -4E800421 88780000 -2C030002 4182001C -2C030003 41820008 -48000030 38600001 -987B000D 48000024 +4E800421 38600000 +987B000F 88780000 +2C030002 41820024 +2C030003 41820010 +2C030004 41820034 +48000038 38600001 +987B000D 4800002C BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 -889B001C 1C84000C -3884001D 887B0000 +38600001 987B000F +889B001D 1C84000C +3884001E 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00DF -1C63000C 386300E0 +4E800421 887B00E0 +1C63000C 386300E1 889B0000 1C84000C 388400DC 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00DF 38630001 +887B00E0 38630001 2C030007 41800008 -38600000 987B00DF -887B001C 1C63000C -3863001D 7C7B1A14 +38600000 987B00E0 +887B001D 1C63000C +3863001E 7C7B1A14 38990006 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -889B001B 887B001C +889B001C 887B001D 38630001 7C032000 41800008 38600000 -987B001C 887B0236 +987B001D 887B0237 2C030000 40820018 -38600000 987B0247 -987B0248 987B0249 +38600000 987B0248 +987B0249 987B024A 48000284 3A800000 -38D40247 7C66D8AE +38D40248 7C66D8AE 2C030001 40820178 1CD40004 38C60002 7C66C02E 1CD40004 -38C6023B 7C86D82E +38C6023C 7C86D82E 7C641851 41800158 -7C761B78 38D40134 -7C66D8AE 38D40137 +7C761B78 38D40135 +7C66D8AE 38D40138 7C86D8AE 7EC3B378 1C63000C 3863000E 1CD40054 7C633214 -38D40134 7C86D8AE -1C84000C 3884013A +38D40135 7C86D8AE +1C84000C 3884013B 1CB40054 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1801,68 +1808,68 @@ BA810008 800100B4 2C04002A 4081FFE0 7C032000 40820064 4BFFFFD4 1CD40004 -38C6023B 7C66D82E +38C6023C 7C66D82E 38630001 7C66D92E -38D40134 7C66D8AE +38D40135 7C66D8AE 38630001 2C030007 41800008 3863FFF9 -7C66D9AE 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +7C66D9AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40135 +7C66D8AE 38D40138 7C86D8AE 7C041800 4082FEC0 48000040 -1CD40004 38C6023B +1CD40004 38C6023C 7C66D82E 38600001 -987B00D9 987B00DA -935B00DB BA810008 +987B00DA 987B00DB +935B00DC BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 2C140003 4180FE74 3AA00000 3A800000 -807B0237 7C761B78 -7EC3B378 38D40247 +807B0238 7C761B78 +7EC3B378 38D40248 7C86D8AE 7C761B78 -7EC3B378 38D40247 +7EC3B378 38D40248 7C86D8AE 2C040001 40820030 1CD40004 -38C6023B 7C86D82E +38C6023C 7C86D82E 2C150000 4182000C 7C041800 40800014 7C832378 7C761B78 7EC3B378 3AA00001 3A940001 2C140003 -4180FFAC 907B0237 -3A800000 38D40247 +4180FFAC 907B0238 +3A800000 38D40248 7C86D8AE 2C040001 -40820038 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +40820038 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40135 +7C66D8AE 38D40138 7C86D8AE 7C041800 40820010 38600000 -38D40247 7C66D9AE +38D40248 7C66D9AE 3A940001 2C140003 4180FFB4 3A800000 -38D40247 7C86D8AE +38D40248 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B0236 3A800000 +987B0237 3A800000 3AA00000 887B0000 7C151800 40820008 3AB50001 1CD40004 38C60002 7C66C02E 7C7A1850 2C030000 -408000D4 887B001B +408000D4 887B001C 38800054 7C632050 7C1A1800 418000BC 887B000C 2C030001 -418200B0 38D40137 +418200B0 38D40138 7EC6D8AE 1C76000C -3863013A 1CB40054 +3863013B 1CB40054 7C632A14 1CD40054 38C6000E 7C7B1A14 7C983214 38A0000C @@ -1870,18 +1877,18 @@ BA810008 800100B4 7D8903A6 4E800421 38760001 2C030007 41800008 3863FFF9 -38D40137 7C66D9AE -38D40134 7C66D8AE -38D40137 7C86D8AE -38D40247 7C66D8AE +38D40138 7C66D9AE +38D40135 7C66D8AE +38D40138 7C86D8AE +38D40248 7C66D8AE 2C030001 4182003C -1CD40004 38C6023B +1CD40004 38C6023C 7F46D92E 38600001 -38D40247 7C66D9AE -38D40134 7EC6D9AE -887B0236 2C030001 -41820010 935B0237 -38600001 987B0236 +38D40248 7C66D9AE +38D40135 7EC6D9AE +887B0237 2C030001 +41820010 935B0238 +38600001 987B0237 38600000 1C63000C 38A3000E 1CD40054 7CA53214 1C75000C @@ -1891,17 +1898,17 @@ BA810008 800100B4 7D8903A6 4E800421 3A940001 3AB50001 2C140003 4180FEC8 -48000080 807B00DB +48000080 807B00DC 7C1A1800 40810024 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 -807B00DB 7C7A1850 -38630001 889B00DF +807B00DC 7C7A1850 +38630001 889B00E0 7C632051 40800008 38630007 1C63000C -388300E0 887B0000 +388300E1 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 @@ -2022,9 +2029,9 @@ C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 4082003C 3C608037 60635E00 2C000003 4082002C 80ADB61C -886500D9 2C030000 +886500DA 2C030000 4182001C 38600001 -986507B7 3D808001 +986507B8 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2043,11 +2050,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF0252 8B9E0000 +3BDF0253 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F07A2 7C032000 41810028 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2065,12 +2072,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF0253 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F07A2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2095,12 +2102,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF0253 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F07A2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2127,13 +2134,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF0252 +83EDB61C 3BDF0253 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F07A2 7C032000 41810070 3C608048 -80639D60 809F07A1 +80639D60 809F07A2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3933,7 +3940,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B8 +83CDB61C 93FE07B9 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -3948,7 +3955,7 @@ D03D0008 C03C0004 D03D0024 D03D0028 C03C0008 C05C000C 7FA3EB78 389C0048 -88BE001B 3D80803A +88BE001C 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 38800000 C03C0010 From dbed08a5c1bb4fef387261392b82406181508bd9 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 28 Sep 2021 14:24:01 -0700 Subject: [PATCH 028/217] build codeset --- Output/Netplay/GALE01r2.ini | 489 +++++++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 489 +++++++++++++++++++++--------------- 2 files changed, 566 insertions(+), 412 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 513d1625..a188dd04 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -562,25 +562,26 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm -C23219EC 0000001C #Recording/FlushFrameBuffer.asm +C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 418200A8 806DB64C 83C30000 83ADB650 7F9EEA14 -2C1D0000 41820088 +2C1D0000 41820090 3860003C 987C0000 806DB654 907C0001 3C608048 80639D30 5463443E 2C030208 -806DB654 40820034 +806DB654 4082003C 80ADB61C 8885000D -2C040000 40820024 +2C040000 4082002C 8885000C 2C040000 -40820018 808507B3 -3884FF85 7C041800 +40820020 808507B3 +3884FF85 80E507BC +7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 7FC3F378 7FA4EB78 @@ -1258,7 +1259,7 @@ C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 808500DB 908507AA 888500DA 988507AE 80850237 908507AF -808500D5 80840002 +808500D5 8084010A 908507B3 48000028 888507B7 2C040000 4182001C 38800000 @@ -1304,10 +1305,10 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 386007BC +4082037C 386007C0 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007BC +7C7B1B78 388007C0 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1316,10 +1317,10 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 38600012 3D808037 618CF1E4 7D8903A6 4E800421 907B00D1 -3860010A 3D808037 +3860010E 3D808037 618CF1E4 7D8903A6 4E800421 907B00D5 -7C7A1B78 3880010A +7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1333,9 +1334,9 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007BC +93790005 386007C0 90790009 9359000D -3860010A 90790011 +3860010E 90790011 807B024E 90790015 3860009E 90790019 38600000 9079001D @@ -1579,6 +1580,10 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 +C216D26C 00000003 #Online/Core/PauseCounter.asm +808DB61C 806407BC +38630001 906407BC +387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 5463443E 2C030208 @@ -1740,7 +1745,7 @@ C2376A28 000000DD #Online/Core/TriggerSendInput.asm 38800012 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -38780000 3880010A +38780000 3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 88780000 @@ -4538,10 +4543,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000077 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 0000007D #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -4082039C 48000060 +408203D0 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4576,88 +4581,94 @@ D03E0024 D03E0028 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C -4800010D 387F0014 +48000141 387F0014 389F0055 38BD0053 38C00000 C03F0020 -480000F5 48000038 -807D000D 480001E9 +48000129 48000038 +807D000D 4800021D 387F0010 389F0044 -C03F001C 480000D9 -807D0011 480001D1 +C03F001C 4800010D +807D0011 48000205 387F0014 389F004B -C03F0020 480000C1 +C03F0020 480000F5 48000004 38600000 -38800000 C03F0024 -C05F002C C07F0030 -C09F0034 C0BF0038 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C7E1B78 C03F0004 -D03E0024 D03E0028 -38800001 989E004A -989E0049 C03F0000 -D03E0008 3CA0803B -60A57808 A0DD01F6 -38600000 1C830002 -7C85222E 7C043000 -41820014 38630001 -2C03001D 4180FFE8 -38600000 3C80803E -6084D488 7C841A14 -8884005C 7FC3F378 -3D80803A 618C6368 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4800017C 7C0802A6 -90010004 9421FF50 -BE810008 FFE00890 -7C761B78 7C942378 -7CB92B78 7CDA3378 -7CF83B78 7D174378 -93210008 9301000C -92E10010 C3DF0028 -C07F0040 7F43D378 -3D808000 618C55F4 -7D8903A6 4E800421 -EC630072 EFDE1828 -7FC3F378 389F0018 -7EC4B378 38A00000 -7E87A378 C03F0008 -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39C00008 39E00000 -7C6E0A14 80E30000 -2C0F0000 4182000C -C07F003C EFFF182A -C09F0040 EFDE202A -7FC3F378 389F0018 -38A00000 C03F000C -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39CE0004 39EF0001 -7C0FD000 4180FFAC -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38A00008 -38C000FF 7C7A3039 -7C632C30 38E00008 -39200000 7C643039 -1C84001F 38840034 -7C84EA14 7D070A14 -90880000 7C632C30 -38E70004 39290001 -2C090003 4180FFD8 -7F46D378 80A10010 -80E1000C 81010008 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 3800FFFF -60000000 00000000 +38800000 3D80803A +618C6754 7D8903A6 +4E800421 7C7E1B78 +C03F0024 D03E0000 +C03F002C D03E0004 +C03F0030 D03E0008 +C03F0034 D03E000C +C03F0038 D03E0010 +C03F0004 D03E0024 +D03E0028 38800001 +989E004A 989E0049 +C03F0000 D03E0008 +7FC3F378 A09D01F6 +3D808000 618C5690 +7D8903A6 4E800421 +2C030001 41820058 +3CA0803B 60A57808 +A0DD01F6 38600000 +1C830002 7C85222E +7C043000 41820014 +38630001 2C03001D +4180FFE8 38600000 +3C80803E 6084D488 +7C841A14 8884005C +7FC3F378 3D80803A +618C6368 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4800017C +7C0802A6 90010004 +9421FF50 BE810008 +FFE00890 7C761B78 +7C942378 7CB92B78 +7CDA3378 7CF83B78 +7D174378 93210008 +9301000C 92E10010 +C3DF0028 C07F0040 +7F43D378 3D808000 +618C55F4 7D8903A6 +4E800421 EC630072 +EFDE1828 7FC3F378 +389F0018 7EC4B378 +38A00000 7E87A378 +C03F0008 FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39C00008 +39E00000 7C6E0A14 +80E30000 2C0F0000 +4182000C C07F003C +EFFF182A C09F0040 +EFDE202A 7FC3F378 +389F0018 38A00000 +C03F000C FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39CE0004 +39EF0001 7C0FD000 +4180FFAC BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38A00008 38C000FF +7C7A3039 7C632C30 +38E00008 39200000 +7C643039 1C84001F +38840034 7C84EA14 +7D070A14 90880000 +7C632C30 38E70004 +39290001 2C090003 +4180FFD8 7F46D378 +80A10010 80E1000C +81010008 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +3800FFFF 00000000 C2184DE4 00000010 #Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm 3D808048 818C9D30 558C443E 2C0C0408 @@ -4738,7 +4749,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001DD #Online/Slippi Online Scene/main.asm +C21A45B8 000001E0 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4760,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E7C 80830000 +48000E90 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4817,7 +4828,7 @@ BE810008 38600012 48000595 480008D1 20000000 80490880 804D68D0 05030000 -48000BCD 48000BFD +48000BE1 48000C11 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4910,7 +4921,7 @@ BE810008 3D80801B 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 2C030000 -40820104 480006DD +40820104 480006F1 7C7C1B78 2C1C0000 40800018 4BFFFD25 7CC802A6 38600001 @@ -4945,21 +4956,21 @@ A07F01F6 7C7B232E 48000014 3C808047 60849D30 38600001 98640005 887F0003 -480006D1 986DAFC9 +480006E5 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 2C030000 40820008 38800000 988DAFC9 4800003C 3A800000 3AA00000 -7E83A378 48000695 +7E83A378 480006A9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 -887F0003 4800065D +887F0003 48000671 2C030000 41820018 38600001 98740000 38600000 9874005D @@ -5112,110 +5123,114 @@ BE810008 3C808047 7FC3F378 389F01E8 38A00138 3D808000 618C31F4 7D8903A6 -4E800421 3D808017 -618CEB30 7D8903A6 -4E800421 889F0248 -98830000 889F024B -98830001 38800000 -98830002 38800003 -98830005 38800078 -98830004 3C80803D -6084DEC8 8084000C -887F026C 98640002 -38602121 B0640003 -3C808049 60840880 -887F026F 98640016 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3FE08047 63FF9DA4 -887F0004 2C030001 -41820010 2C030002 -4182007C 48000000 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 +4E800421 7FC3F378 +3D808000 618C5694 +7D8903A6 4E800421 +3D808017 618CEB30 +7D8903A6 4E800421 +889F0248 98830000 +889F024B 98830001 +38800000 98830002 +38800003 98830005 +38800078 98830004 +3C80803D 6084DEC8 +8084000C 887F026C +98640002 38602121 +B0640003 3C808049 +60840880 887F026F +98640016 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3FE08047 +63FF9DA4 887F0004 +2C030001 41820010 +2C030002 4182007C +48000000 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 +7C7B1B78 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 +7D8903A6 4E800421 +7C7B1B78 38600001 +3D808003 618C42B4 +7D8903A6 4E800421 +7C1B1800 41800048 +4181004C 48000050 +38600000 3D808003 618C3BD8 7D8903A6 4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA810008 +40820024 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +3D808001 618C74BC +7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 +BE810008 83E30010 +887F0005 2C030000 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFCA9 3C808047 +60849D30 38600005 +98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -83E30010 887F0005 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFCBD -3C808047 60849D30 -38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 +04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5235,14 +5250,14 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056AC 0000002E #Online/Static/ChatMessages.asm +C20056AC 0000002F #Online/Static/ChatMessages.asm 7CA802A6 2C030008 4182001C 2C030004 41820020 2C030002 41820024 2C030001 41820028 48000075 7C6802A6 48000024 -480000F9 7C6802A6 +480000FD 7C6802A6 48000018 480000C9 7C6802A6 4800000C 4800007D 7C6802A6 @@ -5269,19 +5284,23 @@ C20056AC 0000002E #Online/Static/ChatMessages.asm 00746861 6E6B7300 746F6F20 676F6F64 00000000 4E800021 -0A040504 52656163 -74696F6E 73006F6F -66006D79 2062006C -6F6C0077 6F770000 -4E800021 05050917 -4D697363 006F6B61 -79007468 696E6B69 -6E67006C 65742773 -20706C61 79206167 -61696E20 6C617465 -72006261 6420636F -6E6E6563 74696F6E -00000000 00000000 +0A060504 52656163 +74696F6E 7300736F +72727900 6D792062 +006C6F6C 00776F77 +00000000 4E800021 +05090817 4D697363 +00676F74 74612067 +6F006F6E 65207365 +63006C65 74277320 +706C6179 20616761 +696E206C 61746572 +00626164 20636F6E +6E656374 696F6E00 +60000000 00000000 +C2005690 00000002 #Online/Static/CheckAltStageName.asm +38600000 4E800020 +60000000 00000000 C20056B8 00000002 #Online/Static/GetCSSIconData.asm 3C60803F 60630A48 4E800020 00000000 @@ -11570,6 +11589,34 @@ C2394BD4 00000021 80010104 38210100 7C0803A6 5760018D 60000000 00000000 +C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm +7C7D1B78 3BC00000 +60000000 00000000 +C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm +48000018 4E800021 +C2F00000 42F00000 +42A00000 C1A00000 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 4BFFFFD9 +7FA802A6 807E002C +A86300EE 3D808003 +618C4110 7D8903A6 +4E800421 83E3002C +7FC3F378 3D80801D +618C32D0 7D8903A6 +4E800421 C05F00B0 +C03D0000 FC020840 +41800034 C03D0004 +FC020840 41810028 +C05F00B4 C03D0008 +FC020840 41810018 +C03D000C FC020840 +4180000C 38600001 +48000008 38600000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag @@ -11806,8 +11853,8 @@ C208D690 00000009 #External/FlashRedFailedLCancel/TriggerColor.asm 4180000C 39E000D4 99E30564 00000000 -$Optional: Force Nametag for Local Player [Fizzi] -*When playing online, nametag YOU will show above your character --------------------- +$Optional: Show Friendly Player Indicators [Fizzi, UnclePunch] +*When playing online, nametag YOU will show above your character. A heart will always be shown over your teammate. Helpful for colorblind players to keep track of the players. *Will not cause desyncs when playing online C20355B4 00000008 #Online/Optional/IndicateLocalPlayer/ForceLocalPlayerTag.asm 3C608048 80639D30 @@ -11833,3 +11880,33 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 3D808023 618C754C 7D8903A6 4E800421 60000000 00000000 +C22FC9E4 0000001D #Online/Optional/ShowAllyIndicator/ShowAllyIndicator.asm +3B840000 7C0802A6 +90010004 9421FF50 +BE810008 7C7E1B78 +3C608048 80639D30 +5463443E 2C030208 +408200A4 3D808016 +618CB168 7D8903A6 +4E800421 2C030000 +4182008C 806DB61C +88630000 7C03F000 +4182007C 3D808003 +618C3370 7D8903A6 +4E800421 7C7D1B78 +7FC3F378 3D808003 +618C3370 7D8903A6 +4E800421 7C03E800 +4082004C 1C7E000E +3C808046 6084B6A0 +7CA32214 8865003C +60630010 9865003C +1C7D0004 7C63FA14 +C0230064 BA810008 +800100B4 382100B0 +7C0803A6 3D80802F +618CCA84 7D8903A6 +4E800420 7FC3F378 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index ea652ae5..109f796f 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -562,25 +562,26 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm -C23219EC 0000001C #Recording/FlushFrameBuffer.asm +C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 418200A8 806DB64C 83C30000 83ADB650 7F9EEA14 -2C1D0000 41820088 +2C1D0000 41820090 3860003C 987C0000 806DB654 907C0001 3C608048 80639D30 5463443E 2C030208 -806DB654 40820034 +806DB654 4082003C 80ADB61C 8885000D -2C040000 40820024 +2C040000 4082002C 8885000C 2C040000 -40820018 808507B3 -3884FF85 7C041800 +40820020 808507B3 +3884FF85 80E507BC +7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 7FC3F378 7FA4EB78 @@ -1258,7 +1259,7 @@ C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 808500DB 908507AA 888500DA 988507AE 80850237 908507AF -808500D5 80840002 +808500D5 8084010A 908507B3 48000028 888507B7 2C040000 4182001C 38800000 @@ -1304,10 +1305,10 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 386007BC +4082037C 386007C0 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007BC +7C7B1B78 388007C0 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1316,10 +1317,10 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 38600012 3D808037 618CF1E4 7D8903A6 4E800421 907B00D1 -3860010A 3D808037 +3860010E 3D808037 618CF1E4 7D8903A6 4E800421 907B00D5 -7C7A1B78 3880010A +7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1333,9 +1334,9 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007BC +93790005 386007C0 90790009 9359000D -3860010A 90790011 +3860010E 90790011 807B024E 90790015 3860009E 90790019 38600000 9079001D @@ -1579,6 +1580,10 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 +C216D26C 00000003 #Online/Core/PauseCounter.asm +808DB61C 806407BC +38630001 906407BC +387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 5463443E 2C030208 @@ -1740,7 +1745,7 @@ C2376A28 000000DD #Online/Core/TriggerSendInput.asm 38800012 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -38780000 3880010A +38780000 3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 88780000 @@ -4538,10 +4543,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000077 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 0000007D #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -4082039C 48000060 +408203D0 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4576,88 +4581,94 @@ D03E0024 D03E0028 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C -4800010D 387F0014 +48000141 387F0014 389F0055 38BD0053 38C00000 C03F0020 -480000F5 48000038 -807D000D 480001E9 +48000129 48000038 +807D000D 4800021D 387F0010 389F0044 -C03F001C 480000D9 -807D0011 480001D1 +C03F001C 4800010D +807D0011 48000205 387F0014 389F004B -C03F0020 480000C1 +C03F0020 480000F5 48000004 38600000 -38800000 C03F0024 -C05F002C C07F0030 -C09F0034 C0BF0038 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C7E1B78 C03F0004 -D03E0024 D03E0028 -38800001 989E004A -989E0049 C03F0000 -D03E0008 3CA0803B -60A57808 A0DD01F6 -38600000 1C830002 -7C85222E 7C043000 -41820014 38630001 -2C03001D 4180FFE8 -38600000 3C80803E -6084D488 7C841A14 -8884005C 7FC3F378 -3D80803A 618C6368 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4800017C 7C0802A6 -90010004 9421FF50 -BE810008 FFE00890 -7C761B78 7C942378 -7CB92B78 7CDA3378 -7CF83B78 7D174378 -93210008 9301000C -92E10010 C3DF0028 -C07F0040 7F43D378 -3D808000 618C55F4 -7D8903A6 4E800421 -EC630072 EFDE1828 -7FC3F378 389F0018 -7EC4B378 38A00000 -7E87A378 C03F0008 -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39C00008 39E00000 -7C6E0A14 80E30000 -2C0F0000 4182000C -C07F003C EFFF182A -C09F0040 EFDE202A -7FC3F378 389F0018 -38A00000 C03F000C -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39CE0004 39EF0001 -7C0FD000 4180FFAC -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38A00008 -38C000FF 7C7A3039 -7C632C30 38E00008 -39200000 7C643039 -1C84001F 38840034 -7C84EA14 7D070A14 -90880000 7C632C30 -38E70004 39290001 -2C090003 4180FFD8 -7F46D378 80A10010 -80E1000C 81010008 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 3800FFFF -60000000 00000000 +38800000 3D80803A +618C6754 7D8903A6 +4E800421 7C7E1B78 +C03F0024 D03E0000 +C03F002C D03E0004 +C03F0030 D03E0008 +C03F0034 D03E000C +C03F0038 D03E0010 +C03F0004 D03E0024 +D03E0028 38800001 +989E004A 989E0049 +C03F0000 D03E0008 +7FC3F378 A09D01F6 +3D808000 618C5690 +7D8903A6 4E800421 +2C030001 41820058 +3CA0803B 60A57808 +A0DD01F6 38600000 +1C830002 7C85222E +7C043000 41820014 +38630001 2C03001D +4180FFE8 38600000 +3C80803E 6084D488 +7C841A14 8884005C +7FC3F378 3D80803A +618C6368 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4800017C +7C0802A6 90010004 +9421FF50 BE810008 +FFE00890 7C761B78 +7C942378 7CB92B78 +7CDA3378 7CF83B78 +7D174378 93210008 +9301000C 92E10010 +C3DF0028 C07F0040 +7F43D378 3D808000 +618C55F4 7D8903A6 +4E800421 EC630072 +EFDE1828 7FC3F378 +389F0018 7EC4B378 +38A00000 7E87A378 +C03F0008 FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39C00008 +39E00000 7C6E0A14 +80E30000 2C0F0000 +4182000C C07F003C +EFFF182A C09F0040 +EFDE202A 7FC3F378 +389F0018 38A00000 +C03F000C FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39CE0004 +39EF0001 7C0FD000 +4180FFAC BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38A00008 38C000FF +7C7A3039 7C632C30 +38E00008 39200000 +7C643039 1C84001F +38840034 7C84EA14 +7D070A14 90880000 +7C632C30 38E70004 +39290001 2C090003 +4180FFD8 7F46D378 +80A10010 80E1000C +81010008 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +3800FFFF 00000000 C2184DE4 00000010 #Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm 3D808048 818C9D30 558C443E 2C0C0408 @@ -4738,7 +4749,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001DD #Online/Slippi Online Scene/main.asm +C21A45B8 000001E0 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4749,7 +4760,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E7C 80830000 +48000E90 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4817,7 +4828,7 @@ BE810008 38600012 48000595 480008D1 20000000 80490880 804D68D0 05030000 -48000BCD 48000BFD +48000BE1 48000C11 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4910,7 +4921,7 @@ BE810008 3D80801B 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 2C030000 -40820104 480006DD +40820104 480006F1 7C7C1B78 2C1C0000 40800018 4BFFFD25 7CC802A6 38600001 @@ -4945,21 +4956,21 @@ A07F01F6 7C7B232E 48000014 3C808047 60849D30 38600001 98640005 887F0003 -480006D1 986DAFC9 +480006E5 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 2C030000 40820008 38800000 988DAFC9 4800003C 3A800000 3AA00000 -7E83A378 48000695 +7E83A378 480006A9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 -887F0003 4800065D +887F0003 48000671 2C030000 41820018 38600001 98740000 38600000 9874005D @@ -5112,110 +5123,114 @@ BE810008 3C808047 7FC3F378 389F01E8 38A00138 3D808000 618C31F4 7D8903A6 -4E800421 3D808017 -618CEB30 7D8903A6 -4E800421 889F0248 -98830000 889F024B -98830001 38800000 -98830002 38800003 -98830005 38800078 -98830004 3C80803D -6084DEC8 8084000C -887F026C 98640002 -38602121 B0640003 -3C808049 60840880 -887F026F 98640016 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3FE08047 63FF9DA4 -887F0004 2C030001 -41820010 2C030002 -4182007C 48000000 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 +4E800421 7FC3F378 +3D808000 618C5694 +7D8903A6 4E800421 +3D808017 618CEB30 +7D8903A6 4E800421 +889F0248 98830000 +889F024B 98830001 +38800000 98830002 +38800003 98830005 +38800078 98830004 +3C80803D 6084DEC8 +8084000C 887F026C +98640002 38602121 +B0640003 3C808049 +60840880 887F026F +98640016 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3FE08047 +63FF9DA4 887F0004 +2C030001 41820010 +2C030002 4182007C +48000000 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 +7C7B1B78 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 +7D8903A6 4E800421 +7C7B1B78 38600001 +3D808003 618C42B4 +7D8903A6 4E800421 +7C1B1800 41800048 +4181004C 48000050 +38600000 3D808003 618C3BD8 7D8903A6 4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA810008 +40820024 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +3D808001 618C74BC +7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 +BE810008 83E30010 +887F0005 2C030000 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFCA9 3C808047 +60849D30 38600005 +98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -83E30010 887F0005 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFCBD -3C808047 60849D30 -38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 +04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5235,14 +5250,14 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056AC 0000002E #Online/Static/ChatMessages.asm +C20056AC 0000002F #Online/Static/ChatMessages.asm 7CA802A6 2C030008 4182001C 2C030004 41820020 2C030002 41820024 2C030001 41820028 48000075 7C6802A6 48000024 -480000F9 7C6802A6 +480000FD 7C6802A6 48000018 480000C9 7C6802A6 4800000C 4800007D 7C6802A6 @@ -5269,19 +5284,23 @@ C20056AC 0000002E #Online/Static/ChatMessages.asm 00746861 6E6B7300 746F6F20 676F6F64 00000000 4E800021 -0A040504 52656163 -74696F6E 73006F6F -66006D79 2062006C -6F6C0077 6F770000 -4E800021 05050917 -4D697363 006F6B61 -79007468 696E6B69 -6E67006C 65742773 -20706C61 79206167 -61696E20 6C617465 -72006261 6420636F -6E6E6563 74696F6E -00000000 00000000 +0A060504 52656163 +74696F6E 7300736F +72727900 6D792062 +006C6F6C 00776F77 +00000000 4E800021 +05090817 4D697363 +00676F74 74612067 +6F006F6E 65207365 +63006C65 74277320 +706C6179 20616761 +696E206C 61746572 +00626164 20636F6E +6E656374 696F6E00 +60000000 00000000 +C2005690 00000002 #Online/Static/CheckAltStageName.asm +38600000 4E800020 +60000000 00000000 C20056B8 00000002 #Online/Static/GetCSSIconData.asm 3C60803F 60630A48 4E800020 00000000 @@ -11570,6 +11589,34 @@ C2394BD4 00000021 80010104 38210100 7C0803A6 5760018D 60000000 00000000 +C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm +7C7D1B78 3BC00000 +60000000 00000000 +C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm +48000018 4E800021 +C2F00000 42F00000 +42A00000 C1A00000 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 4BFFFFD9 +7FA802A6 807E002C +A86300EE 3D808003 +618C4110 7D8903A6 +4E800421 83E3002C +7FC3F378 3D80801D +618C32D0 7D8903A6 +4E800421 C05F00B0 +C03D0000 FC020840 +41800034 C03D0004 +FC020840 41810028 +C05F00B4 C03D0008 +FC020840 41810018 +C03D000C FC020840 +4180000C 38600001 +48000008 38600000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag @@ -11806,8 +11853,8 @@ C208D690 00000009 #External/FlashRedFailedLCancel/TriggerColor.asm 4180000C 39E000D4 99E30564 00000000 -$Optional: Force Nametag for Local Player [Fizzi] -*When playing online, nametag YOU will show above your character --------------------- +$Optional: Show Friendly Player Indicators [Fizzi, UnclePunch] +*When playing online, nametag YOU will show above your character. A heart will always be shown over your teammate. Helpful for colorblind players to keep track of the players. *Will not cause desyncs when playing online C20355B4 00000008 #Online/Optional/IndicateLocalPlayer/ForceLocalPlayerTag.asm 3C608048 80639D30 @@ -11833,3 +11880,33 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 3D808023 618C754C 7D8903A6 4E800421 60000000 00000000 +C22FC9E4 0000001D #Online/Optional/ShowAllyIndicator/ShowAllyIndicator.asm +3B840000 7C0802A6 +90010004 9421FF50 +BE810008 7C7E1B78 +3C608048 80639D30 +5463443E 2C030208 +408200A4 3D808016 +618CB168 7D8903A6 +4E800421 2C030000 +4182008C 806DB61C +88630000 7C03F000 +4182007C 3D808003 +618C3370 7D8903A6 +4E800421 7C7D1B78 +7FC3F378 3D808003 +618C3370 7D8903A6 +4E800421 7C03E800 +4082004C 1C7E000E +3C808046 6084B6A0 +7CA32214 8865003C +60630010 9865003C +1C7D0004 7C63FA14 +C0230064 BA810008 +800100B4 382100B0 +7C0803A6 3D80802F +618CCA84 7D8903A6 +4E800420 7FC3F378 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 From ce0e02e7083bf2d3a8d3995b0ac719165a8b0190 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 28 Sep 2021 21:09:21 -0700 Subject: [PATCH 029/217] update codeset --- Binary/m-ex.bin | Bin 48128 -> 57200 bytes Output/Netplay/GALE01r2.ini | 4982 +++++++++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 4982 +++++++++++++++++++++-------------- 3 files changed, 6116 insertions(+), 3848 deletions(-) diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin index 1d949a944ca2baeeeea4929b077dfc211888efdb..a457789426f3b4576c61bc6d2db64d8cbbc0446c 100644 GIT binary patch delta 11540 zcmc&)4Rljgp1&`7ZPOAYXrO_l?MpwPK&(Yj(=VGskpk5%4r*0kk~Y=Weh_WZps&2w zrmRKcG0y91aVm8A5|4azCb)|ZA2GmL_E6UzhjSJebUULv;>y{B4xVL>jNRXTd1*cf z4&u!EPH%7Sz5n~a|F8SM|NnhYysWx-L_PEpGi4vIQSI_EgzYnrkt1D1Q$5!+xVuI}Z@4D&RtDVtT_xD>VH&V#|K0p z>EUYm`fNQGeVFf6?fRa{^BmrFE#bK#!bo)#a>n6p9u1FQgD|VZD?L4Lvaq6xkV49& zsUF04gZO%`Km?Ow>(CC+062AR7#Cn!1)qj@eo;`|N0^dN2xHL`RfYK7FvbT^9DJi{ zSE6*EFHA#x-~6aUV9oL z_ld+zL8Oa|^#Z{YG%V;tbyF8K*VRlkDB8}gU+Xt|$)yZ0QFk`i={GhLlF>}qu5Q41 z0plgE&SraoWdb1;-9&%vOJX>7ikObQMK}}?%rFjHgr}RT$Y~Nx8Aee4eQO5e0Qe{_(iM9buA6D2@3UR-5^(fU=mmG<7$iOj&&@(uM?eY5uax3OE|?MV9Zg@ zMX`v{uycu6#MT(+B2e!VWfK427LgtCF0x6)QYRB9`KC-wBN3CZtELFg8bd|_rsJGV zVxxEtMqyKoBD91?aQ?0UTPx&gqm7~xMo|Q#7{mUZmcS@5M<3^&|F%X^D#9pIqy5vy z0rJ&#`X+5)j?6dpNiDzwzf)#Gl@^0?lGOJA@*1g`Hdo@j@r+SVFg6 zw-eO{;4EdlY9UN%C3h9212L4|AfaU=SK*D8fYAKC?w(2j0Yj{t2SSMUZYtvM6YXCj zSWEE=5Uo2_wB?!~iCCu)%*W!r$8{Cn0RsI;jNva)d<{t~)+RuFop=R8MJ$WrYDp~K zedCB_yon{DDz5=v6;Ak-y#HR!bcVTI(#_A1Hl*I6VhqxuRJRW9b-ofJalTGMqydY8 z5_vC;QLL{KMsf{Qo7S{F&gD4~c(iklHm<4dX-7+wlWTG!_8|V6w7E(CukIR5lOC=s z^cVenh*8g&v%-Jc{`ZW(xL&84T|z_3Bv4Vq6FZ_pVzAl?!67%p;Vr3Bf+x-dx8<*F zsAgUik_^7ANyBzJ4-cEX?vPc?HTgyT zVwE||l66aOg-Fg@vU2imA{mVjXC#y1)^aluix?sX?k1KIGwHGZ4&^VgSs+@*EJXp6zQ=bRU0yH))VrJEy+~iCSl=k-Rpa{OV1hR3WzXD z?J{B5fXN+{$HImafXKwDYv9VFi(kip^FmnmY#sp<2`c6m} zr%zRpE7ED>&nDC82|^(v3XkHJT*gclsg-I?Im~?8ke)Ry$PcTFE!uG0^pW~JoAgil z)Ns83lLu7AOx{g`zy2xIU!3ZmP77D5aUGA*NJWOp4M>veIfT zCRu467L%+rUlmEowS-_z3M^n`*baS1Qb2Jl7_8K6P8WR9E0*k{sR- zY+*`)CpSDMocJU4K^TAEB5~$I|H16#j4;zX2#d^tgTr~pXyYA>;sj4CPH%lcdWv3N_YIsMlMp-dh-1f#yhI1bvPWbHjSEQ7IR7FlE?$o1qheY8*ty#BfViao6OC9t zD4^r;Cnv2!5W5M1qh5~PRf>8E>e;9(WCB{f&-S-^pF`nMx=}nRJt!}r zY(nwAi#s2YVOXn~A-qPt3v*leW+R+6Q(crZ_NPIFfEG1VRq<#y2}xiRB)}4tMWaYS zqe!3;5=eyvFa{)H3DDnR39zyRnn^O101jb}O2H2H{keI27=cYcTT72(*0}s!sIEI7 zsvqnK)sLK^bEo+_n$6J-2d_J#QjIEjQ1x+;W1jN zUB@ykpeLAqltxdXf#?b8M{BRqKRDhWBcY?CiTeYHUg8!;M=(85P1ld52pzBq8#TpX z`X}y0fyAG}8Y@x=W_;W)aQMzD4O(I;pu z>P2-Gqd{ZET@evSPcW?Bk#K_H=fiRR{!=sB)VHN1iL@V5qZhDRln%5>FeUj=OustR zFIi{5oSyt2=i|mSbdLYz?3D})|E7~_=Dh5G$I{CR+L`?oT`8XhwKJ&zQ?aq!xH-|H z9H5aSy@jCHok~QR%QvZap&$1?@Z0N+)R}7?-kB%Eu9nWBOR?I*9Ti>VWKdh!e-&OK zg10aRF?1F_5JHFxPmd$UB#PK?oBOL||H}(17?pZJI<)Zc&FTLlqMvG@%GxsatsOA! zm3!EUS~18}@ob?DbW}=~B{Ne@xREy6MCtw|?lNN^CTTE6B!$gl*JJ&NnOjh8<4LQqamJL_Fg5@*MQ$ZZBBIF}!;2nb?V?TyWWjoP%x|v!GREwDuJ7Ex1%oj64E8#ai z7kA1l(S?p)b0N0mFkwSdAEk@YYtOZGUOZ9gU+tvHW7<87@8zl*9IoQD2ihB)T%kL! zmb)!f)vfDjXirOnT@o_|t6t-9HaLsZpfR~mo?Fw<=4@(voc2;UdLd8iH0i6wx3E?r zU6igoS*>HqzClM(|N7}8vRH^IL>E?dWNPSxkz&Se_^a+v&2T;-e zYRUWR+vQU4#)MrrBS8XGx>G(;&twbF_o8FEbL`{!CYNd31cT}4$-LJIiJ4!mGW zg`9ZO;m|Dn>pAYIDb=3;#Idvmx0HCpC_V?-XBgl|p5L_+7Yrq_uIZz~I`$YlBQU^(?c!f_-)JHPY`zsy$8BM(x8PKF#AAk~9k&eTKT z{yCZlqs?g0Rx53mZV~^$mhEb$NwRG#XIzrFEj^vvrn*x{W;lK z3a?`m7de&|iW#$R@^#L-U*9#0uvnPOn1#c8R?WVQSu=IQoByo`9+qao!j3Q9phx0t6lhk+~@x=z4M-&$bO%( zA0Z{-N_N2Eg{2{s#fW26@pxyt)Yp*4pF`3R-iSy;cmp2r2BjguHQu-fyiRF^J)oT$ z1fJlG{Q*=|64?J?QT!y5!27VsVek`3LeOl0e~?|_PvQyb{>L%+BRIc7PsrZ!htGUj zWR(j)Mrjht-f`iIFO#5sA=JJz%_>es`_8mdn&`22e1Ugm#1%At4S|s)#2WOD7hgUl ziQ%L`>_&1@PfYX+txem>$A0Ip_p(Cr*%3^b8Xtg(>vJwCslQk(%7H>H`YxOFcn@%l z6ojH%pD4b9JugSNd%5w2o|fMnBI=#u3-{4EA-J!G!hQ79D}$JsbBTvDL}s*uE)WKi zM)n$1R>7b4&!02%QcpF4$Yh?Sa5x-9F%{S7;qS+|Q2UfiK`iGf(uIR-7`L?Yojf7i ztHW%y9shi-`!D-m+<(cpcmGA-`};4Ti?G?7uF$by_6wJ3ll}(W1*;v&KZS1veCz&; zw4Xk~qGhL1-5oD7PdB+-V#nurE0Oad=7Q<=dZy8g6Q`TFh3V&6IbdxO4-!3Jk2hho z-9=Uwj}p>-1~2Q}xa4>hu@wy#=^QVDTpH{~=H`lSsqHsY1PZd1evfOXCQYrW;==T~SmxSR#TZ5bZ(e?OBK;xBe!Vki+zu*3soY)Qc?<5)mKg z3ni!AJb$u=hQ2h9#axER9KN3E6LNkp=&|5QOkx$D3M~dXMz#v2bmEz7O{DXDlz0p7 z4Y0f9SQ3H?Wxt36ph|pi_~`hzU?AXDTNlZ-I`D!5@u78)+*&4Pip1fadns&4CI2YD z`IE0XD3EmUH&sHg$ZZA33GQ3S$I5L(qK^;p`dG1@d*)|NEiE!kT?0NJXlUzbdaS9zSwLV<7p%CO1hYjB@6z$h z1oU54K2OM{zeVgX5&KKT{tCe^Gtk|fPbtTr`~-`ZQi|`3-$Z!vmx_z0Oo2Igt^E|* zPUEI`1KVkQF1C}r&5)DPZKm{h;WAD5n{2Sq0@ty@^uk|xgPoACmlAKV*>M|eHne6= zw85UF_DIEq3>mN3-!=*v%JhXzP4PAqjK_vxx?@dJ<~P z_8dRHDo3$eD>tf8lmQumW+kB{k5*}xWsD|LCv_T?qA6`q!_-KnYyV*FCN)|X?_B&K z#EYhAmX6Q8=bn4t@11jg=e~ujyz)Ia@g~XsjjZQJV+4c~wm4kv0(~uT7w8%COHxj) z+-9PqK5i{X{!JBbki=9gUrN-V@K26!d}59UQtzsrS?dWYphKqJ9Q4!DY!lUIx6oj= zsOobz>D06hm7H4p^dGp?l+G)5rSP6w`pgb4{1YiZE8SirPF?0}^VH_LptoU0|hF&zhXIDTbH`KnGF`3|x5l>tML| z3;L309o<)+NzI#WWPnz@`!@c6{_fBAx_pYuhmmH#>68u`)&6AQiL7x$kC8RG=T{&d zugJ~Zw3H%dpw^1qrp$zeh|J;`WC_81oO&qMUoGV$;iKi_VV~=o&y5v1D8g5Ljz%kf zwC3#I5pr4XebOW+f@{Tc!E%B+I#l^AMf}`)6_$fa>t&7`n z`X!yRTgvs4$f%GClBiKZT%>|q5*Ml9lf*?TD7BC>>$C!N4`3X=j$FXo^c!CjvC8H7LG=@GC#e;Gl8I5-CPqo04#fZL_98ujJT3XdA zpwlEBs&bMbovo7etbWn76-{Mq&47a{j?B)Uc~I8)|!_{D-G1_ zSZxjWd=a#Farcnpx~Ax#-RgWz7fH437BKUfH0H5n*V^YWY|$#y(RGk6rGX8L$x2;Y zEa7zfmq4Uc;5|zGV@DK>Sf-N-0R!%ZX-nAxs%#`|wa@=o*8UvYxD3Y|65~0n7qBJ9 zw@=_$^S>RzaT-dC+-|{^O6nY2;&+GIv7C8QiwF?a6U(r;m9X+S4VIw6N@1{G#O}?Y zslt|XL|xeN3Qv#jjH#RI4ie7OrM~fkMW^oHGm)Y?EJNvP+5r!t%?ICBZ4IMBW`;6N zYGt9+?digF-0&4szUeTXZhEggJ-PMtpr;e#g@{WSdBj018{W3j83!WgF91SXpi|9e zb+);|pcisFg9=CLRQs!eRJ{-V*^gd&?HT&*Yd==g)=v=ilj5Hf`dQJ_bl2et)$_yE zoZ9`=c5*TJK?=Lv)GJ4}^Xf0U1BAZQxBd9*Cn?t*R8PKcH>;lwe3C&k#;o+aF*9|Z z8>L^J>!y1qt`%)a1}*WB;Z|T0!@UXR1(aR1?7}+QdSU%;m}AjL(@oS~)HB!z0rf{X zZ%2)H5DB2ZgnBRP3Dj(z^-I=bhH%bWdq3)+;)jys7jF|0uVV8m&7wzZoj6E0PTGvU z=($U7xoGfu2CUuboL;XhFWj=Mvk4ALnUv?{+|ZePIosnNO`Qa z!QSQd-{Jc3%YpF7{eV1T_KG7}k?_d8H-dMYOTjy_w^R}Rt75Xhz=Y5R1qmVg!H8(a zMSrm|Jp4BkzJ|cK6+ZKI5Fm_v(04OV{b2baN0LCSO#*RM195!?i0cd9Ncb^9eE97m zh)8}x5qmxY=$$}ibPhj=M5v|Ytxy|AB14OWkOblkf*5-_Aonp4^^1{^`>fuhAuwRa z*wz#+Rr1Bo#WfIjYr58-q zO6#qr=&|#m7T-!BUMT^jHq?vuV+bI6KM;!6d-I}M5jlzgFbdUf1n~S4fZYiI&n^M* zE(7pkiv;z~%y~h5?k{tMHr+f#y!7LnMHa{N9SG#V_<;RiM~xRvVaDX1Szv8=rsvo2 zy;H$?2*BC6Xp8hzA=5ii@N-WV%*bwNS3Urf?8p0@&AXt%iBIUhi(d|%Ad3C?wbg?~ z!}dh6eX#<1uy>ti$Fg3udlH9sfk8RPK6# Date: Wed, 29 Sep 2021 00:54:55 -0400 Subject: [PATCH 030/217] trim m-ex codeset fixes bugs due to not having modified css and hud files --- Binary/m-ex.bin | Bin 57200 -> 21552 bytes Output/Netplay/GALE01r2.ini | 4486 +---------------------------------- Output/Netplay/GALJ01r2.ini | 4486 +---------------------------------- 3 files changed, 30 insertions(+), 8942 deletions(-) diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin index a457789426f3b4576c61bc6d2db64d8cbbc0446c..059c31f3983a216cc7e59ce5f9050742d30ef4fa 100644 GIT binary patch delta 51 zcmV-30L=gJz5}qR0kCiflkgfzv#Df{3bV+483L0*fM~M;fZm{bX|Pea<=0dCqg5bIx;~^G_?hr-3n6qezZN5&{#qluogy2boj{ zXmlGB)s<|-H_9X>ROX3pXJTagZ^KQD-KxYLk1SEuVEeGMZQyR_BcE2qQss`4P0NN@ zO(gVE7=BCIhx__XKZ2=4LRgJ4SLDuD3CGPyLm+&S*sI~-7-L49zEqr>N+{gkPphnS zRsSb9t_}5fuUpF)eXm)W`Q6(YZfWlibs;ZI=_v^-cP|Vpk6aX1CzxxnnXyHH16QlB zi%A2a#U6DHK4c~|3^Bhi#6%_9R1KJ@gs%7a9)a6&K{dkr)qC(ByWXQj{VlCA;mM9z z6H7!nE^(2>1ht2`70Jt%sZ+Z^mp@R#7BrcqttG8dDJl zG^`pnc5zpnoxdlPBoPQ-VduQh30xyt&?MqG?6SNIv4{_ zq~J~_1PYjh@;OB^NU{c6Gs*CiBcDji<_mixFw2WuUcq~8x@BH`w zil1G+Ecy8lf2H)V4L9~zceM9YV)TtV+}PgVuD^e*Gi<_{$i%5BCNakUyZC<(|F6S+ z{Jk9iy+)WI-rdH#AMY+kv0NPD;@DiQibDeYznA|fJTB(u{|Uc~>2V3O#NiUF$Ge+j z)A73v+6bG(B>tapN{nzytd{?;!GABu#%aZun}_unG&TU@VhaDS^8YdZKaT$rYvli% zIAoarPw@X+_FZCFMWdNkq7 zyWqIc_q7JwSrzJkDYaQ>Lu$}Yu=e4PziGB<@C%ZhIuJp<_VNje@1*y-M-IbTV7wnE zxDn|e6>;`ZT=E+bt(#naHqW@Sf$NX)i>mbd~8GRS}3fs7!Xdm9xW5zZ5t7Z#s^p$JIP5(S}W#~^R zSJE9?!RQ*wFUf;CgnXb3RODCf-Ma%cXT(8R(ZDS!9lxnwyoCvMFQd=%Fvl|Wog?t4 zf@`Nf&5j1;PE%jFVV6lO!dFmu=nSlWOubg#xu`);cgSys;qA4hjqY5(e%<=T{)!FM zp!+-4b#CylUDxmLYQL@1zhP7F%5^>Po36L>W}BZ~M;RW?d*v25vj!oDgKL)qxqDf1ZQCW!{57WWIynWPapD zN|v+!MbP!gzn-aHnO!-mOyfGMU#3LyXx^Lm!D-2s&uqDjZ(}ndUtBgxM~0k)vt(1w zlFb%VCT#dG>N036Uy!@Jvbptr$Y!5O2hz-tO{KpioQJjySyL3Q-*4F*-45MNsIb-T zxZcQuHu5W~y^po(a%34ZC?(-KS=XmcIgZ4BQ=OtG-5&KtI?k`IyUCF6VlLltl<&SX z$hY`kDc@8_R`*`LwtxM)tJ*hgYHeTH(+L@4*>X>MDOkWC$l)Yja^-L+vwe(jWo|Bq zua zohF@){v0|-KMXpT9L>S|-tsRQ`A_v_zz4owLHzw7e03Rk!3XJl>MBjx?@K-cn`DuJ!lASLaFDMVew)fOUVH(RppD1e|zHZc{&lpct zLGSmV-IpR!*e!uMsxUF&CH+wFQaew5rtfyj`_J^eFGAj-TPVdzJ@2qz>AH#~?_bjU zi0rtjyaPvY6Y@US$a@+e&%4F0Kib8osJ;D2cDX>e zyjBkNuE4mF+SAY4>V^@nKhpTuL1|%(Ju8@GvxDQ@K0AAnA8rFX7kOUXKHTmz%M|!r zq)V+_-J7F30oN=dOq=r?6;3RhF5vQE{IETv_f&q`ox3Q# zpo-rZAA2uq9~RQ~)XlK7%FK^6FK-|I{cC2L$^f^&5*+q~XJr!}c?7oagW!Y8#QHJy za(Uo}+D87IWb@baHoedECqIn27s)YqAM!REvcU8(g{ktOG*#FkDDQ^n`w`x$eO@|rD+)OJOG!2;1| zSXJ~PuCrf2Wk+)$*|er%mz*@|Cs=Thso;epn4FqI9E{`Umz(}-JN#7e>1!+oKgim* zj+lPQB`lEqJoA9o^5ilWGiYXj*I3|jz^jlK(FpIJC}rP2a@G65|q`5a$ zcGNC{pEX850=Zmq$fU<;yCLh2RQZ7KIsF2)hs4X}|HRmpRgjN6=kI?8d8}XfPtzOV z(r=l}*t7WMYa<|IbK%V&t>n+;c#%-9#d4^{qnB&L5X#j}J`-~ z*yFA|ZPHGNw2GHhI194NI6m_`pM|1J^Gb)*-u)+xzF|M`6!nBucDU^Cr9?Z6)yvCk z;Hrn0F?FI$sybTAVs+!NCH8*D&&&83c4@vc25nya$VMk65fAiT+CF@ene>qySi|7G z1NC+s;ZR3D3G81=rc~G-|T7| zJp1zE$>BSjhPG@nM^-Jm^tywowrPveHYLzDC8%wpwi^9PVQ@@j^-1)H&o6U9XA_#A zzvN22O=*_QJR9wLMw?<2zZvlh7oh@?&S%Iy+NMlANYic96|de-%}ezy$d3VAkZSh; zv+X~!#~Re9$Vi(Wt>SkwoTB)4wt?u}9NQi?^bC~ck9V8-Li+grUBB_2j$b)*FX9&j zH=y5D@f+iM3iTNo@nr;}2mMAEj?>^tD!fddc(lr^kPQ~p`I^>qvdb=?{z~IB$lX=8 zI;?ItlcIMpk>>po&VGJ=pk!0@-u=e{KHg4A(NX3y)-|-&ja%y78Tu&VMWhq!29jK- zL)oVDV(DY{8|B+%$~XAO+Y{tJvmH$LX(HBDNW^D^LBIF%m{~>!y^R)Jylu;e%d+ky z0}l!yK)S?d`a@sr4y{GW>bk{MD|>ps*oztJwcWj6yk%YY+Wy?}n@oZ6XqDH%msP&s zas&;}*_NSQ+35WV@zCr~cz=*D-{?>B^H9e{JT!6fz9}EBGw{$yJUknoQCc#XMGxek z`1a8cz_%a2N4_;@$#gZftNHSKM&9Z5B`tr?uuq%`S3ceu^+SXX)&n^>Yd#YH#EO^t zzY=3V*D9BJ@aaH1u~ZICZ&E@I`iB2oJy8vAWy53?eXm&Y`>LT=i0{HN3Xk<(EQr3C z`d|vLRkBm|@ad;bIN_G@K@apovPW_}n=|0kWfKnkC+LG7tuh}TmjZ7G(W*RDX2st~ z@TE!URWBo7o1f(Q(kd^lCpgicNe@|j?BEyq^T5?S@Ns*1purw~(LQ^4zVMi_wWTxA zZx6qy)fQgy)@y(}m#W~;DEKpa32btgr1@7dxu3@y0-s|4Y=OViWsmQjVKY3|Q>DwT zV#-bM=qqUFr>uCUCenB;@JhCVhe!ED?y$hMg0*=+Wlfw*?NTGYejCz?&(oj1PJcp34cPn-RXUfXfx9#~QxUe+1EVK4id4 z$L-)^<+LrTLuf&}kj}SgNxyOimy7ItiC1<%0qMmP_AM+$DuN5wlmL3C$Y<#hr07c^nYj`V}2y1Ij)Qw?2 z0X#)tGnou=d-u1(`&h%v7(viuL8XBPur%-qSJ z!FKp(=ACpkH7rwE)1<4Rp+RL0lQV+!9h{s|L*F%IQ_CK^&{_@XCXgkUInJc{0_!}> zmh3os_?bIQ*(1HI0hw(G9C842!VLcTGz z!SfR)56PZG_@Hkc0KI;#@>5hF8q#=$2~Hd6#W?FlLp~U{qn7=!m1M#Ao0?BY(m}-xwFY38x?}U(AF2 zpdI+sq$!h#Q-o;z5wAToy6hyyn|TTVryh2?xqrYf>%lM%n06ZSd04DmcRZ-hKB`sT zs=&*USWw_iESP;H6|Qj8fuLIM(+c15lfUX*I6)1q>8}-zj^nc+Fc-Xm4IQ)yiQ5-W zAb&L1%;>!eeyQ+thQUF04xbxaDJV+l>PpJA_6yJ*idm%fMJ>8}p z=d=$GH<-L4o=ZiAjAR9LK(G1r0XTu|bo1F+z_WAg%2wY4BZze>?-#~>K2{!#Fgdc_ z;Ry~2N>Il9aK|tA#OJ|why^E$O&i3Kj6$X8!s3Xl-i+TX|&_=%ZW;tVvfph5l zOd5KLx#9zCI?8lm`|!qQGme7!Y4BV2^<&=K`E8FH#+adqHH!tf4K*E-L$q;@$91c@iFW@5nyjA#5?sr9^$9f zUXsm!vUef7OqI?qp!W!YcH2_ZOphqn?E^UYD|7XYMS)3 z7SQi#9}d)*`G!4MT_i9yc?AoQZ8-Q#{GJtJ>eB@$Z zh5kJQ3;zN#CFAG}Y7Z~x&)A6nT!s~|rQS}z28-hbQWXZ zQpQ{;$pP&FAiv4@N3v09HmH3mJUsh`kW8?2p zhgb}47vDdCw!v>xM^J}0nscf-{xVe-JmR7|5BYxTJSi4@rwY2jIdEliwSprv46)>Wv#H#Q6wg@+zOo!XqLQ*Q8**Qp_@OZ}F*XMJwrM7^N*QNe| zkJqI{6DukY=wW?EScKtW`{5_ix}e1;jQX?%Hg>0fPsDi;^{L)drq@zOWN(xX=%L2?aj~Ym(H0M!bugx9>IU8)Q+S z^$J(v_bBQ;d+G1pQ2< zIZi2659)di&0p55?v--v+8<$$#sf<1vOa``p7<}R`4-X(K*!#^xVFQNgtZ^Ej!2ik z!ydCgKwRuYb@ZbR713^1<;4-gSO)#vQS{MBt1)l5Gp9v#O7Al+=oF4*(do$H8_~It zuiF8g!f3v;i><-uMvap%JW+d9uD(yo~lSOfZC*I`Gz32l}Hw*`H_7i&=bsK-^{M*!~uxHWKV z;MT&Wai@|O|MqN|Ihbnib$MeAXCL>u)LIrJu84lVKn^|GkmxTxX1pK5`*GWGJmy}( zC$xd{%(+v)rM^mfeHFH#zPgP1T7kUXY}D0daF^h>2(WMA_iuQgXIxB<`^&&%I~@0L!wZ2+DIs{6q~$D}T6|6uC% zq(hXOev#+Qw&BHq**3sGXO5WGWo4Izwf{2mMf=c6*X4VuRJ7fAzgyV_z2v9Zi?;I; z&*tYJCp;f`z2;T=UaD2ytGoI;*VB^C%>7gq8~mNCR$;6Nuj%LnN%!tu*U{O7_rCs6 z&+5*#4773k3(=WP6Lgio;_FM%PSl@af7iRw0V1yK#160Sb?f=w7NRA)pQrv9V5WU^ zcnr=$)M*K_>dNl7jq$)SV?2O1arP1D=5(Gwl8*%jSdz*C{f<95Pdt*mSv-pNz;-M^ zHl;{8U%&fNj1!V(*(;qTVLnd4S~$x%p`YgbNuL3qGRFoR&oDNaHzS$APRskAnvn#r zeU#?r9p5zM=!|0n(DYTWL6ctwQ|Qr3t{36V(rNe=Y>PtkqUBS6ilb1GZ`upr5*$b4 zHoVw#cR8CLn8x>jR>3U=Pd&lzsb39TSnPQaexL`oI-z-_gTITxUt_FR#GDwb9fHl? zjq=~E3e2UaTTAuA|L_A2Gyn8%=AY(M4=q~53Mv0omx%{5F#(TO z^5`KrvuI7q;Jx3LP5uvp|0dsY7KDfPn}U{dlmRo!zzf&E3~SvjWx$B%NJ|9YX^c#K z=jTO$?oZ%*_Yl%RQcSyettVEw+zN+25-;|vH> z&++s4bALPrm+bS+i-r-0$pmKF+#gf9+Q6SBJ1B<-T~lw%_@D>jX?$*mpG@Joq;Q1b z#E)QTYEs4rJ=!IOyWn8{4Dgr*KKI8wyg|>OQh4V6g!FY2e;V#x+nfj9W(ODNzSO2V zgl4hix)Zv)@}%zG(675U9Vb^Sx#+YRUzsBtTmjvA;Nsk$yD2YP$>oPr@eoVK2R&NJ zWeGT(e#(Kb?N- zJXuK)l5Ur;X96j>HT>LXQstE~-!}J|u~hgBzCAN;4^P74VwY|*B_~$;ArB2Co7&u$ z!}jrBw&znxu)!`o@EzguGxuft@+%1{cJZ_lj7sh3E(ub*k}Dr2i(2x)68i1>vME!iazMkN*?6+Iovt*j?AGP&gCN)zNP^|%y!|eRCsS0 z(O*b%23uMIgrx-SnH#Q;+$Pux(eC^it_$v4a7oUP{u*n$^yd`5lD^&Wwo7LM@b{5U z-x%Q|`iKr0AM|J?cbtG@lg`3@fWMD)?l?;La?`mj&F9dRg>MT<9^OYfw>8_Q<1HsS zeINL~JYtKl2FSv6#d*6ZI)eY=dn^k_3Z0CRkFR)9-&u?~WZQd^DcU@OGJudaZ7bA@>B!K3_J zYI{?Me`Nw=fEA+j*$K?IA>3Vb7S;-}$XP?KCSA|VcS(a<-+oQSn=&EABTCorA9TRK zs6fRh@rBOQaN*Za{#sGtfeg6QfX_Hdaz_0rKO+ls9b@=rV&Ofqs&*p?>>mtZVAq&{tgT!%vQyx~}n^nuq52&UupP z^JeRx=3W`KchA10lf@^oCq8*aVL90aplgL;n_tn&3NAvLJw!`@Z1&Kb)cIuryb~?0 zDEJzb;VA5!qHibY#CaeFok7y~gRoJVv?8pz&YA31=d=%hzsK~Wxh(jTY~_q^NY;=X z)6RMFIGo~q`M}&nEa})fPV_f7oI3Ai83L`9(^79T^C`6tA4%tP zK{}tBbWjGKBH-C)gU4s#6>uCplHwK8L_FmG1#*av{WkHl`3)Q|q~^X=D;+L@%FoId znGkEzoI`L5P@cO9ztZ8|V~pErz8d(>_nI{E@UA+Nj~Sq6hYdaT>H@0gOhA3E!Fw0# z{J-G6TnUv}@$&GwHRw6xFCiX``^^F56C)Xpd!LN(w_oAKK?`A1)2dwovK z>rMgp0tO9Ge>CZ)a=bZ|RV88Hb|#r{QM##~@{Il?09ljZ`oQB6^iN6kVK##P>losF zWRZ&TZW*f@yprvubQ7!jPfT>fy#?zV00Te$Y8Mo^d(ci}KQ#~60sjsrVT>!pyHL(E z_!)>N7F_@s&OyWYS6XxpepqXWKCnq~asM%jTR)~=CGQ;Bugk+{OdG79;Sr@9gOm@r z^*X&b_6IweD7rp6vTU&EHO=+WVFa6I=_mKmyr?8UlsMuRCBQQOhXO|bwnbHw6(z$qqenpOvK>PD!aG9nW?8^x8Iyy zYL})V$1b9g>L0Ij`g_h=3#<|H$dni!?c$Ih&a@o<4`Cl*$iL^kteN5X=G;>YcX~Fy zjB^-JmNcJ?GR)Ygmt95~dilj;`+&DliM)cne_|w`Y$?yczf+80-`v}ro{P6pyY=q! z1wHgbm9GIxo%p+w>Zu!f#oSs_G3tHJUhn9m`^SyFO^s(O>$F}jn9Np^!6s$k>4U48$DX#eJA0V@IR;E zt{?PR;BP5T8J`I6`T^F`b&pMcN!nFo%G@WbvhsW|xETmw%=FWANe@%IVZ#5MqW3&)H^E6q zfqnZe86Wg$=Nl!ec7I zbIN({4^nW=H)1QJnWke^rdVU;E z8oyJzbLeRv6 z`fZt4dZESwpOo=Ik5;)U0jDZkuYkQKjyiwQG8Jd3JK5LZmcu;?HvsnyxU|Njk@RTw z(eK3YPV-VfCVdy*Blxbz_ZRUk;TvnVSODKO_;%Hgsn^ImXUl+j0Xr8kH^xG7btfYu zq3Cn6`p6-N2d)^wno*;+GgG_!JA3(IsoiV4 z`@3-_)9synT0h6ugfuJLhi{LYZJy4@ermr&j5nnK6t@m&ADnC5?Li0AtELbCDuiRb!v^Dcb5@m?v%es=`#F5<5O z+edH=X9^^tpXhV%SpSvY1CZVK>3P4a$;`Wq%+RCFo-+Z*rD_;siZx^#Z1jnY&TDM2 z*d;M;#hDy;vT9Rb106oh<(4#H?i{#hw-3)T&vEkW-`>+^T0EUuzdHmsx4(4=HNH$+ zj>}9VI}aJ|p zI82=NyF{>*m5a09NaEaYzc%Z4D!`wJel2$`gx(GaU538+4O@Nj?C!oOCmkCM7_4hB z?!M5^L1W-Qjh*_;GD2HNHf*|wgWr*XILmC))z9Rm^$t}&?1_m)OKBct6tb3cN5-oD zP;Un^`CocJMlsLVS>KO=v2+zkW?EU2`W@HcOpL1}j-y3cjk9*Xyf6≷|sBo`ERr z9z8firVw|0EO&UY_JVlm!Wx>{;E69j9kwV63;8FT3igl?T%>wQ{H8}Md$tcw5ynyD zMj2Gmcp|<42oR6bxaSC)jq<{|gU{|W<-JN|rAGWNxGqcl=Ir>G;gZH8%mJGf=)B3p z=|XxG&ZO<0gZ632ln5TJZ0i`DxjFUdMbJH;=Q|#Khq?8&aNN#vgWcE#c8P1`ka&vr z(+om>K$A!5DJI^`ve*i8&V-@!gunyXWd2lZ%B%syp0Fa-gk{%HlxMw8|M!l=l?Lwx zy)I5~0BxWchkS584?8^gmhdg$TN=Q3e3&^)2Hn2-Su}5R z==R*QmyjJMTH?DQvm(w!AUmrR41H%W{6XIdFPs8PIO2!si|FM;VM&H%3XDf9<5$TP zTEhDXZyc%NkIVZ#n1`fz_k^TYna84dkH3jmYdpWY8|iGMI2U@NuQK+PgUqFD;QK+O zuN;zEDXLcX?eeU6KB6xU*`xG$dEwR#N-yrTrnd*6jP!EiMWNA9yy$kRNk(9Lw6fno zN;3Hdonna`>mwZx_a{hgdblxaCuUgq(8TGQm!=EflJ5?bPjsaRZG-bna!&P!@K2Pn z3w8WEj@sfk+Xu7!m9xaJ+aN6Xzk9+KzlE=y{#(xufABV)m)KKk(EqC%;9r>CZlE2= zcOKquN>?&DWE{HiP#EX-zEYb?NiWdOFPZfY0kb%hdbPPEkD#s<0i8 zu_A<*g5%i71({#uhugsIU>WCt>NeDK-1ooAMABPP{@2Q}bIM__rnR^M;G;d0<9PQ| z|95Tp+O_6g1N4nOme+Q!-I$|SBc2mc`2%~ciWf(s_dB&gyd-AsABO|^8>Mk%M!k(f z^Q@biBKxdV_xheLJ=|76v%*21>z*>g?MQ_iK{yBUaD^Ou+)^JOBE69I09=8yD!Y;a zk?>)C%DIG})|l(w6YP3e?eOQh1%@0w%TrS?#4BtQ4#0C z?dScE*w=Ep+4Eri}LHF^pXpqtAkFg>knGu*yGDdM_WR4!K=<1Vja^{!LGM|aF$mfG+ z$Y%@X&B$kCa9hD{YEy&1D3}ON`RgHb$X`=x4lFw#y8ktz(XRW|h~Od|G^cAH_Ubpy zuq2OG9?4(=J*X%B3smNYdjNaT-H<~SU`G^X9=YQmQ~EI0_w~RIgm7&gkVhBfau;lU zSkHGOt$$ddoqLevs)5d^j-Frv+*d>UdNH@Xu*T94;mm;hg64Ppp~CYOk@ivY`3SP1 zoZCKp$Xq9uvxfq@aHcHI=X3j97Nh7hp~Ga#pzhCQFuIU=^g9#mA6O!X3ikO*F!o;#+mSxLp5*s3HvWkE){J;KA99nrS)lcZO(es0POej2C5IB! zk7Dfh&D7j}Vslv|?RnSX>2p2+H_CpQX^$&Ke=Nl3msPaL)%!-^A`WC@S<0S4eT4c@ zS$**7vIgDnh8B~r!I#S#g1*`hgAz^1hipJ+AXp^oyi@vL$J zIvCMsBVSZj{YG3rg7HTycqf4uYL9)YlcnTGE7*4m@EKg*(MG_&DEnT=IOwkPtLaWj zrJ#oNms8wdMPIlQ`<-7$o0H`anz7IFiDTL6iiPXpXp8!9F@S zhTye^8-wlYHJlqz1A1^K2WV+$WP`OmTLf)d%=a|t(C;rz@OC|GpBC^ySJCenF!s;B zufC)AW9d5@jlE*VzBIiH>EKrFo^|aVhCv(YiiQ0Ru)9(IPQdQw#dobLFuyqC0C z5jlNW&(B?2*Ng9YO@`ZN{nngoIUd3pbf)oW&UGt*&Jops|79z@nA+u>bhX0u`v?xZ zuFUmZr;Jau;H2U6Wqg9p%3H=%2llg6u5lY~i|$SX{n*zqM{GebikG=>V~*I7 z2VP|huXv}~fa~YBi84Mxmt*ZP938(?W->nL(Hu2t{LVC7EPPvvJ`8$io$73&zNOV*+r5ej!GAjUe1Tv=T7SGd9Ug2Is0|@BgeSwzW*5b2EM$#g?~>wHcqZK>-Sz{!EwV5_hRBJ z=_L4uo%&znoX@jozscjxo-xMb&6#(}4c{5uYCar4{-&JE^de-{|^OdZj~|C3vX7uM?T^q3C+|3>uhX_q~TQ;ai&Y@B4RHUF{<;^729Z zKze(hOof97aB7!LeclRh$^)14z{7dq2@W4Zy0MIO57>rx-}jmYo|0e9t*`Ge=(oV{ zhen*D-wL;mQ>^gDJmGmeiT;P^w1$u832%>ocALV(XXBaeZUejk_lJ20A1Vvt-Y{{X zr>**K=wx_z)4h=DH!b@)XP>*{y@fxo`8|a%a-``Qwa_zap=XAbo^z-@eGl}1M13#e zMd4=X5kgE9RxsWDd=l~-(}a5oPZ9P=kWI#c_K@~sIpInWP#@aX!XQFGPr>@jwxgzQ zMd9fYg|<_KM-|BsK)t3{Sxx=IYQ)Jq=Fee;Kw%BG=TdE za2LEs*Rfd)?`~rZ6oyM{(P>Qr@iGXPcqzjb;nu?~fZKvNl8W+IoDPpNkDp~xugr5& z-fIDulw!aJvHqc$!~7ZHeLTEN@o_(q^a#w6(48Ez&gYv_>-uF7Pmd^kE{3}ZQ9hsF zf^)gxe$Jzp(d7QkJRiMJ?k z4K(M_8WOGmAEbsMMsqrnIlq$(VBbC6LleN69dz$Z0B3eA;p;iv2*)T~!_ZU`dBiv* zxy#grxIlnO!#x1g`T^SajrDXgLt1{MrI=}f zcAS&8+#FMvs@U%i-CI&5I;V%%59oQTRN$FK<0kbLmQZ%#-jcf)hSAQp@wNR$WWO!y zSEf_h0KdfB5xU>TqfVoDZjX`(AJ+WS9(NIY0BAl-P@LSxo4oWIgu$6{l<#!9cOFK% zGhy#%gJnqT0@#*UG8yMoit2XMor4%3ze;QVFrVK6{S9`K#47w&L)XJP1dPGN;Pd$D zX$lHjGt`gcdY->5XP1}exNQriM{Ql?FxD%7ubZ(}`U8)-40~Ps#*XfF z{=8N@q6YLh`pLOGTfa7K*6O{F?ouCpbT2<&?a@a^kf$vAblY||oXU*stkA{V>XLk1 zi9I{IT%aAS0{&9!A0U_Id|V1UXf_Vx3{p{#Tli^eGuM)Qv+%DZPU+34FyCTmrU0SuW$+H7Yk?Ps9p+ovtk7(icBGEV7JJ=b}IeHEN??=q~PW3~5m?h8_$m$PJ4}Z;E)HlWpjCKHNg3kdJJuUPB;<;ZfO7Wa* zVrX-EPn-1*bO{-CH9hyUw>HGvg}4#NY^VI72l?$j4JT)PV00zq4CA(_1{z5gVACa8 zAlZPuO#n^Q|2CR(fcGHT<_(z$;0!9Nuds>TW3~~c=&PttN5_D+2J(|Yc*vwK7o(D19LLgewJtREIIC9~>2*wWbd5u{x*&I5^I?RW{oQlAG~ zD&)IIox^3F-eq+z>c>VpC)EqP2WZDQU2$@KtMrM`C{qH#IRs!x}f%W8AvMWP;_IfLp) z-Ac##KfxV!{QP7>h0%7b3z&Jr-Q9g?>vVgSQzkx=e&Yv^VMFJ-8TR0$??%OZ0G(xxGa4B` za|e0Ey?r;D^~{fSK!2F%yC%CIMEYd^M;%J1k8jwVz7;d+G3s^#VW|ztm@7d2g1+Y` z9SruA{4|ox(L9ij`~E%?wQ6%$AS;^l$+}>sZFDCNrRDAK3dNv zEjl-8OzpkD2{?ZWoHQ1C9WIR@Xz%$RZ|LiSq{Of;tpjzXcL-;;-`|uSj>1q_<32gUogp9iM)}^_W%3;K`|`EZdf5KB z85Vg)A2F5F?xy6v_{K@d)wHqAY|i_j3v$}#G1Bq_59Bn4o}JoTv^kiMRB1$u2XH?e zjBl8XF_TAi5tPFl;8@`lpTd*8Tj7!cr*^>#=a>+Fgy6a9_SADYwSibSFXMwAwBv-I z_CFJyF5jKdv&8dL?K%AS!ry_p4OxBOGJovo(fgTK0EdntBM?2XN257Jcq1KUpj4kX z&l~51015W*-nQs^Hm~eva;a0v9 zp5q1{ISY>oAIZXF!gpKXgvThKyLG;$^JT(MTEY`O2K+A70(T{NX;OagIz(`zd@SX5 z*I^FV`E1Mv@bE`C{9%;KPHTDHb(F(3UXGUXiXR}j!DphM;v?O7lHjIXfS)G(G{G(9 zV!&5ZKj4U7iN5_NYr3mXaX9G2T5wCct2v%%8Q_bo@|X{P>nNuuhyL{m4hMe7wS^Ds zk8$`)z|p76_@D=RIF*|zpOQ>KJQ!cK!ZG3QwA}W0aCi=$J4pU#5+7hQajURrswjK) z2-?$e(g~)f1|341v4+`${Ty7^Pr%}pfbMP4`OR^#pcFOmv8mp6DXF~zNC)%{G{Z6Z zZjsl47J^&K$&gFMDrYXpnNd#4?kqeee6JObcFBZKTH)#X21PtGUA3*2=fj`+a zlo>6=r`PoOYJC>IN%NZs#5|Z@-c%MS1EA)Q=(wzgbZ6+Zn70(#AQy3XfWJap#`$NC z^gklE z{k4lv_W?eg=mKxgKe|+)d6X4+pNaP^a08fke$%ox7I!A|JBvl!3o6pRps*$JJw~c! zzq=TWp2j%ia?R1DQo20fbG;V2*6twv2=yhv{pqZR*hx!&vDR%5znkc#`c;m4dR)c_ zJ!s!RY6_l82kp;M3;c+T4|>r4C*hcQEcN$pzXfio?^o2Ca0PpoWPH#gIxfL{6{@6T z^@%9PqMGA&o*v%i=*ww2fqhM{|5VR+pnhW?8pTIHC&SU(3(?xHb)DdF;87nz_~*^= zw~i1z7k{*ihhNFtDNFu4R@lR%yYk@SatD2Axg4r5ml22_jN=k;9JoiNQGVXtArlY} z;5BdvzFdC3-U9#fUV`V+xta3qh`s{;Oj-HUr}IsRTll{2Fb_Y(+kFeXr^+7xYTnO9 zA4d46toZv!DLmIdGWdBd$FCwh`Z){VZtLOr3D3`AXL`!ye>X3er~~jIYz|)LMmXFX z@~KHUB6LqWw~NZR1v;pM&Lbn;P=+TxTID{<|H6PsXU#*Gl`tP7FcEc3AJ@{Db;m>) z{J&Zb{pv968Z_@4M&CpGPh7rHoc%)c5_h02o5$B6RpDLqZPn9)EXI+xhxRoheVnhs z_W{w`Y`#vAY>sq>Gupfin;QHp$kr898LL0TS->`HJ+2Km_NNyKhSsg^Z|`2~=erpz zI{d5Ft@m%}Z(oh2gtVJ6+g?GuL3-E7U(N{bw*4k4)xJ+eL7>m&zG#Dcx1f6xaol3TEdljm z?sgdNsNo*d-8C-5ZRBpnwsEXWpC(p(yYId!HU_spzJTq5y9Mj}$=wy-#=ap|eCuT0 zl*14A=zYI%BHZ4_`z8f)o8mqJ;r4co=&lkU6%hWhy>;6JS*+M|B2j{MRuy~3Vc)8P zJBjuK-;eq6eF0o*Pw@Ty232G}tzzs=WOMr9kkG0)Wh&DEw`b|^e(d4(D-o>q4`J>r zgthKimy9rE6CgWIMf>pAj+=TE);Tg6$mr239tpr9eWVq7QiDuDJX*!JeQF5`(+@bN2?f3z|qrlTGM-|(E?A=CsvHnx}8?B z;(xo)GVLi`=N|3jo_A^mSqzv1BP zPhSx%`Q2Gha7s&=Z_%47c8>W9m|v`Tq*iyo9`vF85G%gEUw3yl!1jgjZHKTA6z=E< zm62HSXpe6$cSm7g#P{Blu#>@k+@ptoEDoDv1L!pHjqTU*kDb=zKdkt$o^zr>?xHp|YqGRnT^}*v(>$%pgbn=!bNsMhWA6UQ5M+HZ@T&d%-XQc1jX8Zo z5aoe(LV_!dcyOoV7UsvgJUS8xk;&{H}bZ zJZ16~XZf3a-Mo{Z(+{5Iy_b;q8U>Cs@s(r;ebd{mCLcC$|K=I*B_#idco2P`W9xn2 z#eCIVer5yBJ?%n&x|{stf5WEP@g4j495fb#Jw9fP!_>oNFYG@oFm=K&RZ(2X8l6jp zvi##-D@{5t(&c4@Eewu{4Epo0(gKg? znRbR!gb~rk2$;X{LqC=RUXqD-8sD|NdY?FrzLjYIk1jKsE6OP|@QwB$+SUcqLFmjW z^6;0SE^Ae2iPfB3E6RreTg6o3o zg6oFs&cZj#2A>W)OMKboP&aPT@;71JY zTN3yew1!wM#;0NIW909V?-$efC&b|c#U8XXG4)QC#JRaGSo3s<+T6s1GP3Mth^4mCHHHY7~GvaTW-?xLmR({{k+mn3!mOpfUuTAqio4>S& zO$Jlx(bx@J;LOP8FSSXyt6awVvu5PghkbmsU$GQ+2I=pfh9Axf!djm4zyiJ|;I-^D zs0{#K!hZk`>2&BHe{8nX)IXa3G+wklr=I#pq`fh+%khX&P8svp)Ye0mOk19t&gp@@ zr>Z{}-QaMr<^k(69?KrVED3H~%rfd9rO(;w-1NnWoUW9(T_xb*x7|CWAe zO9Z<-%1nQd&;59#_K((_rTZ^-!-x(STC(7y2D~{7?gRWI+2v6`rZ(O4+}4_VUf=qO z=)>$-P(`8a0N~$gux;>V#b$K@SsWc6X@`)&iH-`?iWRZ}D??+NxdpcNfOzEGSM}EyArAXLi-V zZ4#$-F}Tfe!@AqK0&asiZIw%RS094ghPUd z&$Rz8=^I1%71{iDrZfg^PKcL@_CaA_8zO}|3zPQUb zr}{iJQ~2551>P)_o&kS&A~Nn z+DJbW?|+j?_wQq_WIgU5tYvPvB3ut#39dI;$Kk%@V($8>PqmXHmG)3l8Dedh(GPLk zE9#tn_aAtJcm3|a!=M*;{|$UOL^|?^Wn2Gn?*0Rv*)&0q{HwFE_Z#~;^U`5=_aEe& zX-oR39mzSD$|~oJRj#M^sF8)IeIDAY$Et_^4ed78)Ka+Fb2jsv7S*5dH z=+4d0;`cfHZpN=2zfSzR@$1F!R{S>Nw+X)i{O-o@uSu7}x%RO2>-Se@-<^y8p$TiH zvA&u2W2fP^ARhMKa9+{gz8-v!!|j869BwPzqi|`i;4s3`+-(xyF1Y*Qn*9y=@3MTm z@jYUEOVCTnKThYk!~L+&w!HSLwl99Fv!BM6RTrcui*RXVr@sS0K26l!k$;Xzrb5Ak za_NFo02#QtefU?0vGyrWd%!5aN=U9oKKMCqG6Kg@F zFJOjzD06-dW56KR9*F3x8q{aXf|!?}cDU9W5AzqBw_Gs4)dMo%moU>jVdXXuOp(UL{>6HP^O1YYuWN@*BlGh=R5owrSJ{ zdMDoT`A+18>-W^Y@cBlZb@(CX*PKnv5~Fl(?eZ#9X7M1uF*r_Y*I^?mr?x#qpIOq^ z0so48{WH$%BfXMjfYv|K+Dbq2JC5@;0$6`ea!B=!%M;-Kd_067$wvksv1T-zkHZL; zp11vQ`Ixs&Z(rZv9m3f!S2ybQ@r?VFmh?dia_d z%&xm&VS*X7z8#~gtRp~AX58j5k z@f%WeyMjcw3JZh?zFOBhD| zE$!}4k00sYSmi6o-|maT0i5-z%TGqVB>6G>Md~L-+-ZY(EIzlZ&ub5{uy0sz&!7ip zpGED5T+&(8<#6dN>MG!%v!$sIt;HM#KZhFcRe0xTP~+W)cYgjf-racT=T76D&f2V} zw5c63=%v1SE0qg{wY-zQ$@h*8bbkInUgp}@ZsO}WHt_BlM?t0UnKnd_#*U@DL57gM zOS`KgNO!gz{^(hz{^)Bg1~+cj(W!AMF_m;DrpCO9=rb7qK<2<_^udn4=*?w8lwG3_ zcZ8+&a-j)*kDvERD}|~ozhQNh%axbb&5&FMRrW9SV}5SupY)$jOg5ZKOv)z{sKdBd z?0$31PiNV%!~oXPY!(u5^*x9K1v{v32R)E|K}if0B=GHqy9KT*G2om~0i$$sasT$D zsk7?1ov%?iJ>B2zGyRf|c>g3j-2k1V#_-3TMWST-8!+g=mo%6#$b~lz|3u1$hkh9} zm5#v$jisY-J#crx^}^i+*9Uhu)g$1zfck8-*B;-Ks1G*#C~a($M!TZp|G(!H=I?m#c$yZ{Ww> ztm$6AaucWXJ?VA8%MPMW97LUf8@H=d2tw^Tq?*mou1{tiQl7eq+l|Q9YPnAa_Fc;v zoV16k6gJrNc{^TCb~eajW;+fTwd0`cQrIp1xSNmWR5R?aWYe{y^TV_e%9Lq5$T!*F zcG%^6X%c5xzHB+eaz5%kbcION;fZ3NWUTjzDyp~GZ%^&-)LwjJPCtpdNaJJJ>K;hV z<&i!1{-?19TSglI+w+ZMg@0T&#19br`S$qKW)QHnVfEhlHOE9a;V}PyBYScT#^#dMElc z;TUKaQ|EB%=Og2+Fs#M79qBk(5!#R7;DZS7;^oWRHOdd#KY`9_H`)u#ZKu!EY+}y6 zMts`0?-{)JJ06oh_-!%#$gWyLxR8hP_Td-JbvF5Mu7C~8JUfBk$##bHYshws{0o#8 zTt+-k<#WDXrnDA>&Ksq$n`68zP=2X9AyezmzKt=7$$Q1qM*721;;&xb`Og})<4raV zBv&RsG1s92CwTe(&L72EfFR;Sp8g^=k4|S^k3e1xxSTErhYRxf1Z1GeD1!_+!g;MT z&9zumPT6>a4E(jlE9@hDBzvhc04^$nMJR*2uYgWwp8J|r4ui|j;@nrGEckg?u2fl& ztsQ0e-pb;`<2y^Z%~?a9sH<-?$P@s_En&1z9C?H$G#%?19t7DuP1&MbRV zM-17Mf&VGsZ_AG#vW`71ipNjuDW%2W^}FCcYT&lDVWD`bo$QBGZ`V%3&LKgsV$p3( zjILy-p|{YOc7B5@)YmltUWfUT5^me{s$q=rou^6Han;>~ITSDSuHwT~k4{oN8b=4e zk9EecUQkWnm?skwaG_VQ)=i(hqBZ2WA`<#%KCW$*KY1A@aaHib60k_kAX|1aER}^ak)sYxED0Sty1nloRILO`gh1@XknOW2i#3?<6Xo$IXd%g zitj}koT{?x>k#L|wwXbLTJOK4#ve9EHXER0b##XLA$l?jmmZWeN(izeWvwH}dX20x zc*dScUkLkpLw~0ESzr6`XC}xv`ohbUoKnY*V&g$-%2;&T7hB-Fs zr)u-qN{(B{-?-~FfN>LzYv`P@)R?Ru_B}cFtHbb%W1OG1laz3KlNa(O`u!7Fhmt<39s)7@WzfqockmtB1A zvP*$Q0Ac-r3l_N7fD;baK=ZrDvJ<7ydwf0Pa*NtC00<<6P|6Udngfc1yXJ zXXTymow1br4n6P6o$0(Qcluifmt^IA$$vuLmz-VRmAlJ$-f7JTWnFU}*av4G+B?q@ z*7Z`m1bHuSu*&-pea{d(l=2thKkW;BO8lL^0ja5Fo^)D`)_D>6dYTuJucO`j zZ_Ep`-IIw4c)*7wod2H>(w)?O{Eut@#7lqm8qT!tgF8-p-o;BNCKL1NdqV%dYh127b}47*aF=nV~?0R#K$K-(u?ld&VEh-wW90FDLk#u zg3jWgyEPDxY+k7~S1Q(J$rKn5!pGs5;hkp@{*)P>&wait{(VV=AIjDbqi;i@h20x@ zNZ(B`kDnW_p9_Bwb}i%qc7t0r#M{n_!D^PzK+Kp*0#_qQZ& zL;i3UGtN6A+Z$}z=`-Yw?>=)(Lbe$70gNrbW3K(UA+`21h&?CD4?YnNj=}!{*!8eZ zM30|7Gk)!_XM*vsUNcpV;k=VMp67zBR>4sT3 zx$4$}lNg`VoM|;+?&Kn@g92f2CAcD77hDOh8?MWs$!pLQCwnEyi@s*&?NhM*x6s(Z zdd@x?tLJn(Jj!_<#$?dv6zq?W>#~YFLBQJ>FaPZE*dWCVs-)-P{-&La8o&e8-yy%r zBjDcpK5@U_v0g~Oi-Tq|Hg4#|bjG^%o&Nr=_OccXjtuL@pPof2f0}v&TiMzydOG)1wu>bQDg`xKZ7_@J*C8jZaj)uCg}3jC#mY z^$_*N*i-gsik~FU;4$jqc?pxpn-4NNhmq>`UK7U4eST`K)DFU*9VVOhV1$zm{e9+P zyydJXF=*YJXRX&3HBxYr+5^ZB_MEZm^!~C-QZ{t#eQFH;4Qm7~kfqY2CcWyHn5QG; zR1VW0UeBQQN$aq|eAa|W?zV6Zpo zUDN=+k25xij%ksL+kdK5V5YNT(T;h7yCDmAp)JAv6*${fz&Kl=^H&wz{EqhWcwz!^ zfh*W!ghLEgfy^Hv{rX@m1?KuI=z+roE$kLuh)(x*lUbe}n%^ z-90@#$jVNCcSq;i{_a)XogLMf_d}gixlV`n`3 z;Whb`-F8!6@W&r*(KR$r^6Bh)3mtfx9Utn(Q8!LdJr?#y&seupa{oT+b}DXG-8SI= zVRc)_|6fqIpW}OG?CbW0S#|qDlrOdG*>(F?DlZzl*{!dovzTZP5auSJ+p`t=S={e5 zK%U8_F4&bd;9Qpd&DZ-sgO$pQ{eHc9fF4IOUeN{!H55iTySBoRMYAsZWeSYv{{rHY B)c^nh diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 17d016ab..c2ee9b6d 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5811,2989 +5811,15 @@ C20186A8 0000000C 02000000 804D37E4 00000000 00000000 043BA3AC 0064B400 -041A6440 38600008 -C21A6454 00000005 -80820178 80840008 -80840068 1C630004 -7C63202E 3D80801A -618C6468 7D8903A6 -4E800420 00000000 -C21604F0 00000005 -9421FFF8 2C03001A -41800018 38600000 -3D808016 618C054C -7D8903A6 4E800420 -2C040015 00000000 -C2160578 00000005 -9421FFF8 2C03001A -41800018 38600000 -3D808016 618C05D4 -7D8903A6 4E800420 -2C040015 00000000 -C21A9C38 00000003 -80620178 80630008 -80630060 1C9F0004 -7C63202E 00000000 -C21A9C48 00000003 -80620178 80630008 -80630064 1C9F0004 -7C63202E 00000000 -C21A9C28 00000003 -80620178 80630008 -8063005C 1C9F0004 -7C63202E 00000000 -C21A693C 00000044 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 3A800000 -83A200B0 80620178 -80630008 8063000C -1C9F0003 7FC32214 -3A800000 48000134 -887E0000 7C630774 -2C03FFFF 4182011C -1C830008 7C84E82E -2C040000 4082010C -3C608043 60632058 -889E0000 1C840004 -80A20078 7C84282E -80840008 3D808032 -618C5A50 7D8903A6 -4E800421 3C608043 -60632058 3D808032 -618C5B04 7D8903A6 -4E800421 3C808043 -60842058 7C632214 -48000159 7C8802A6 -3D808032 618C5A50 -7D8903A6 4E800421 -3C608043 60632058 -3D808033 618C796C -7D8903A6 4E800421 -2C03FFFF 4182004C -3C608043 60632058 -3D808001 618C6BE0 -7D8903A6 4E800421 -889E0000 1C840004 -80A20078 7C84282E -80840008 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -41820054 48000030 -887E0000 1C630004 -80820078 7C63202E -80830008 806DB0A4 -3D808038 618C0358 -7D8903A6 4E800421 -48000004 889E0000 -1C840008 7C64E92E -3A940001 3BDE0001 -2C140002 4180FECC -4800009C 48000061 -7C6802A6 889E0000 -1C840004 80A20078 -7C84282E 80840008 -7C852378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2025 -732E6461 7420646F -6573206E 6F742068 -61766520 73796D62 -6F6C2025 730A0000 -4E800021 2E646174 -00000000 BA810008 -80010104 38210100 -7C0803A6 00000000 -C2184294 0000000E -81620178 816B0008 -816B000C 7D9FF214 -898C00F4 1D8C0003 -7D6B6214 896B0000 -1D6B0004 81820178 -818C0008 818C0070 -7D6B602E 2C0B0000 -41820014 C3EB0018 -C3CB001C C3AB0020 -48000008 C0240074 -39600001 2C0B0000 -3C008018 6000429C -7C0903A6 4E800420 -60000000 00000000 -C2185DB4 00000050 -7C0802A6 90010004 -9421FF00 BE810008 -83A200B0 80620178 -80630008 8063000C -889F000D 1C840003 -7FC32214 3B400000 -48000178 887E0000 -7C630774 2C03FFFF -41820160 1C830008 -7C84E82E 2C040000 -40820150 3C608043 -60632058 889E0000 -1C840004 80A20078 -7C84282E 80840004 -3D808032 618C5A50 -7D8903A6 4E800421 -3C608043 60632058 -3D808032 618C5B04 -7D8903A6 4E800421 -3C808043 60842058 -7C632214 4800019D -7C8802A6 3D808032 -618C5A50 7D8903A6 -4E800421 3C608043 -60632058 3D808033 -618C796C 7D8903A6 -4E800421 2C03FFFF -41820070 3C608043 -60632058 3D808001 -618C6BE0 7D8903A6 -4E800421 7C741B78 -889E0000 1C840004 -80A20078 7C84282E -80840004 3D808038 -618C0358 7D8903A6 -4E800421 7C7C1B79 -41820094 7E83A378 -48000125 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B78 48000038 -887E0000 1C630004 -80820078 7C63202E -80830004 806DAF54 -3D808038 618C0358 -7D8903A6 4E800421 -7C7C1B78 3B600000 -48000004 889E0000 -1C840008 7F84E92E -889E0000 1C840004 -80620178 80630008 -80630070 7F64192E -3B5A0001 3BDE0001 -2C1A0002 4180FE88 -480000B4 48000061 -7C6802A6 889E0000 -1C840004 80A20078 -7C84282E 80840004 -7C852378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2025 -732E6461 7420646F -6573206E 6F742068 -61766520 73796D62 -6F6C2025 730A0000 -4E800021 2E646174 -00000000 4E800021 -676D496E 74726F45 -61737954 61626C65 -00000000 BA810008 -80010104 38210100 -7C0803A6 7F63DB78 -60000000 00000000 -C2185DFC 00000050 -7C0802A6 90010004 -9421FF00 BE810008 -838200B0 80620178 -80630008 8063000C -889D0010 1C840003 -7FE32214 3B200000 -48000178 887F0000 -7C630774 2C03FFFF -41820160 1C830008 -7C84E02E 2C040000 -40820150 3C608043 -60632058 889F0000 -1C840004 80A20078 -7C84282E 80840004 -3D808032 618C5A50 -7D8903A6 4E800421 -3C608043 60632058 -3D808032 618C5B04 -7D8903A6 4E800421 -3C808043 60842058 -7C632214 4800019D -7C8802A6 3D808032 -618C5A50 7D8903A6 -4E800421 3C608043 -60632058 3D808033 -618C796C 7D8903A6 -4E800421 2C03FFFF -41820070 3C608043 -60632058 3D808001 -618C6BE0 7D8903A6 -4E800421 7C741B78 -889F0000 1C840004 -80A20078 7C84282E -80840004 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820094 7E83A378 -48000125 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7A1B78 48000038 -887F0000 1C630004 -80820078 7C63202E -80830004 806DAF54 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B78 3B400000 -48000004 889F0000 -1C840008 7F64E12E -889F0000 1C840004 -80620178 80630008 -80630070 7F44192E -3B390001 3BFF0001 -2C190002 4180FE88 -480000B4 48000061 -7C6802A6 889F0000 -1C840004 80A20078 -7C84282E 80840004 -7C852378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2025 -732E6461 7420646F -6573206E 6F742068 -61766520 73796D62 -6F6C2025 730A0000 -4E800021 2E646174 -00000000 4E800021 -676D496E 74726F45 -61737954 61626C65 -00000000 BA810008 -80010104 38210100 -7C0803A6 7F63DB78 -60000000 00000000 -C2183C80 00000009 -81620178 816B0008 -816B000C 899C00F1 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0000 48000008 -C024006C 00000000 -C2183D2C 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0004 48000008 -C0240070 39600001 -2C0B0000 00000000 -C2184364 00000009 -81620178 816B0008 -816B000C 899F00F4 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C00B0000 48000008 -C003006C 00000000 -C2184420 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0004 48000008 -C0240070 39600001 -2C0B0000 00000000 -C2183DD0 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0008 48000008 -C0240074 39600001 -2C0B0000 00000000 -C2183E6C 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B000C 48000008 -C0240078 39600001 -2C0B0000 00000000 -C2183F08 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0010 48000008 -C024007C 39600001 -2C0B0000 00000000 -C2184670 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0008 48000008 -C0240074 39600001 -2C0B0000 00000000 -C218470C 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B000C 48000008 -C0240078 39600001 -2C0B0000 00000000 -C21847A8 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0010 48000008 -C024007C 39600001 -2C0B0000 00000000 -C2023F50 00000002 -8182015C 7C036000 -60000000 00000000 -C2023F70 00000002 -8182015C 7C036000 -60000000 00000000 -C2023F90 00000002 -80820094 7C84002E -60000000 00000000 -C215ED1C 00000019 -7C0802A6 90010004 -9421FF00 BE810008 -80620178 80630014 -83C30004 83630008 -3BA00000 3B800000 -2C1B0000 4082000C -38600034 48000074 -1C7D0004 7C83F214 -A0640002 7F9C1A14 -3BBD0001 7C1DD800 -4180FFE8 7F83E378 -3D808038 618C0580 -7D8903A6 4E800421 -7C7A1B78 3BA00000 -3B800000 1C7D0004 -7C83F214 A0640002 -2C030000 41820014 -7F9C1A14 387CFFFF -7C1A1800 40810010 -3BBD0001 7C1DD800 -4180FFD4 A0640000 -987F0001 48000004 -BA810008 80010104 -38210100 7C0803A6 -8001001C 00000000 -041C2A48 4800007C -C21C24F8 00000032 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 7FE3FB78 -3D808022 618C519C -7D8903A6 4E800421 -80820178 80840028 -80840014 1C630008 -7F832214 831C0000 -837C0004 2C180000 -41820118 3B400000 -3B200000 1C7A0004 -7C83DA14 A0640002 -7F391A14 3B5A0001 -7C1AC000 4180FFE8 -7F23CB78 3D808038 -618C0580 7D8903A6 -4E800421 7C771B78 -3B400000 3B200000 -1C7A0004 7C83DA14 -A0640002 2C030000 -41820014 7F391A14 -3879FFFF 7C171800 -40810010 3B5A0001 -7C1AC000 4180FFD4 -A0640000 7C630734 -2C03FFFF 41820020 -907D0000 38600000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 4800004D -7C6802A6 389A0001 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 6572726F -723A2073 6F6E6720 -25642068 61732061 -6E20696E 76616C69 -64206964 0A000000 -7FE3FB78 7FC4F378 -7FA5EB78 BA810008 -80010104 38210100 -7C0803A6 7C0802A6 -60000000 00000000 -C22FF064 00000012 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60636D5C -80630000 48000055 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7F1B79 -41820040 38600002 -7FC4F378 38A0000E -38C0000F 38E00000 -3900000F 39200000 -39400013 3D80803A -618C611C 7D8903A6 -4E800421 4800000C -4E800021 62676D00 -BA810008 80010104 -38210100 7C0803A6 -3860000E 00000000 -C216E980 00000084 -7C0802A6 90010004 -9421FF00 BE810008 -3D80801C 618C5A94 -7D8903A6 4E800421 -2C03FFFF 418203E0 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -480003BD 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7F1B79 418203A8 -3860000E 3880000E -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 7C7E1B78 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -38800020 3D808000 -618CC160 7D8903A6 -4E800421 7FA6EB78 -7FC3F378 38800004 -3CA08037 60A5F1B0 -3D808039 618C0B68 -7D8903A6 4E800421 -7FC3F378 480001B5 -7C8802A6 38A00000 -3D808038 618CFD54 -7D8903A6 4E800421 -480002E5 7F6802A6 -38600002 38800001 -3D80803A 618C6754 -7D8903A6 4E800421 -7C7C1B78 939D0000 -38000001 981C0048 -C03B0000 D03C000C -C03B0004 D03C0010 -38000001 981C0049 -3D80801C 618C5A94 -7D8903A6 4E800421 -80820178 80840014 -8084000C 1C630004 -7C83202E 7F83E378 -C022E0C8 C042E0C8 -3D80803A 618C6B98 -7D8903A6 4E800421 -807F0000 3D808037 -618C0E44 7D8903A6 -4E800421 7C7C1B78 -7FC3F378 38800003 -7F85E378 3D808039 -618C0A70 7D8903A6 -4E800421 7FC3F378 -3C808039 60841070 -38A0000F 38C00000 -3D808039 618C069C -7D8903A6 4E800421 -7F83E378 809F0004 -38A00000 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -7F83E378 C022E0C8 -3D808036 618CF8BC -7D8903A6 4E800421 -7F83E378 3D808037 -618C0928 7D8903A6 -4E800421 3D808016 -618CAE50 7D8903A6 -4E800421 88030001 -5400CFFF 40820014 -88030000 5400FFFF -40820008 4800000C -C03B001C D03C003C -3C608036 6063A4A8 -80630000 3C80C03F -60840034 7C032000 -41820014 C03B0020 -C05C0038 EC21102A -D03C0038 7FC3F378 -4800000D 48000180 -4E800021 7C0802A6 -90010004 9421FF00 -BE810008 7C7F1B78 -83DF002C 83BF0028 -839E0000 48000129 -7F6802A6 7FA3EB78 -3D808037 618C0928 -7D8903A6 4E800421 -7FA3EB78 3D808037 -618C32E8 7D8903A6 -4E800421 7FA3EB78 -38810080 38A00002 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 38A10084 -3D808000 618CB1CC -7D8903A6 4E800421 -C03D002C C05B0014 -EC211024 C0410084 -EC21102A D03C0000 -C03D0030 C05B0014 -EC211024 C0410088 -EC211028 D03C0004 -C03D002C C05B0010 -EC2100B2 C05B0018 -EC2100B2 D03C0024 -C03D0030 C05B0010 -EC2100B2 C05B0018 -EC2100B2 D03C0028 -7FA3EB78 3D808000 -618CB09C 7D8903A6 -4E800421 2C030000 -40820030 7F83E378 -3D80803A 618C5CC4 -7D8903A6 4E800421 -7FE3FB78 3D808039 -618C0228 7D8903A6 -4E800421 48000004 -BA810008 80010104 -38210100 7C0803A6 -4E800020 4E800021 -43D70000 42280000 -3D851EB8 BF800000 -3C23D70A 40800000 -40800000 41600000 -C1600000 4E800021 -62676D00 BA810008 -80010104 38210100 -7C0803A6 3C808017 -60000000 00000000 -C21BFA24 00000008 -3C60801A 60635014 -80630000 3C804082 -60840010 7C032000 -40820010 80620174 -80630028 48000008 -38600001 3D80801A -618C42F8 7D8903A6 -4E800421 00000000 -C225DB80 0000001F -7C0802A6 90010004 -9421FF00 BE810008 -880DB655 2C000001 -408200C4 806DB8DC -2C030000 418200B8 -38600007 6C638000 -C822CA08 90610084 -3C604330 90610080 -C8410080 EC220828 -D0210084 3BE00000 -806DB620 38810080 -38BF0035 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630008 80630008 -C0210084 3D808035 -618CE800 7D8903A6 -4E800421 80610080 -80630018 80630008 -80630008 80630064 -C022E0E0 3D808036 -618C530C 7D8903A6 -4E800421 80610080 -3D808037 618C0928 -7D8903A6 4E800421 -3BFF0001 2C1F0005 -4180FF78 BA810008 -80010104 38210100 -7C0803A6 1C1F000C -60000000 00000000 -C2260DB4 0000001F -7C0802A6 90010004 -9421FF00 BE810008 -880DB655 2C000001 -408200C4 806DB8DC -2C030000 418200B8 -38600007 6C638000 -C822CA08 90610084 -3C604330 90610080 -C8410080 EC220828 -D0210084 3BE00000 -806DB620 38810080 -38BF0035 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630008 80630008 -C0210084 3D808035 -618CE800 7D8903A6 -4E800421 80610080 -80630018 80630008 -80630008 80630064 -C022E0E0 3D808036 -618C530C 7D8903A6 -4E800421 80610080 -3D808037 618C0928 -7D8903A6 4E800421 -3BFF0001 2C1F0005 -4180FF78 BA810008 -80010104 38210100 -7C0803A6 1C13000C -60000000 00000000 -C225D5AC 00000078 -7C0802A6 90010004 -9421FF00 BE810008 -7C7D1B78 7C9F2378 -7CBE2B78 7CDC3378 -3F60803F 637B0A48 -880DB655 2C000001 -408201F0 2C1D0000 -41820080 806DB624 -38810080 38A00006 -38C0FFFF 4CC63182 -3D808001 618C1E24 -7D8903A6 4E800421 -806DB8D4 80630010 -7C1E19D6 7C9F0214 -80610080 7F85E378 -48000235 806DB624 -38810080 38A00004 -38C0FFFF 4CC63182 -3D808001 618C1E24 -7D8903A6 4E800421 -80620070 7C83F8AE -80610080 7F85E378 -480001FD 480002F0 -806DB620 38810080 -38A0002D 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 806DB8D4 -80630010 7C1E19D6 -7C9F0214 80610080 -7F85E378 480001B9 -806DB620 38810080 -38A0002B 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 80620070 -7C83F8AE 80610080 -7F85E378 48000181 -1C7D0024 7C63DA14 -886303C2 1C63001C -80820000 7C632214 -886300DD 80020008 -1C630003 7C6300AE -1C9D0024 7C84DA14 -888403C1 3D80803D -618C7060 7D8903A6 -4E800421 D0210084 -3B400000 806DB620 -38810080 38BA0035 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 80630008 -80630008 C0210084 -3D808035 618CE800 -7D8903A6 4E800421 -80610080 80630018 -80630008 80630008 -80630064 C022E0E0 -3D808036 618C530C -7D8903A6 4E800421 -80610080 3D808037 -618C0928 7D8903A6 -4E800421 3B5A0001 -2C1A0005 4180FF78 -7F83E378 3D808025 -618CC020 7D8903A6 -4E800421 48000188 -806DB620 38810080 -1CBD0024 7CA5DA14 -88A503B5 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 806DB8D4 -80630010 7C1E19D6 -7C9F0214 80610080 -7F85E378 48000049 -806DB620 38810080 -1CBD0024 7CA5DA14 -88A503B4 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 80620070 -7C83F8AE 80610080 -7F85E378 48000009 -480000FC 7C0802A6 -90010004 9421FF00 -BE810008 7C7F1B78 -7C9E2378 7CBD2B78 -6FC38000 C822CA08 -90610094 3C604330 -90610090 C8410090 -EC220828 7FE3FB78 -38800006 38A00400 -3CC08036 60C6410C -38E00001 4CC63242 -3D808036 618C4C08 -7D8903A6 4E800421 -7FE3FB78 3D808037 -618C0928 7D8903A6 -4E800421 7FE3FB78 -38800006 38A00400 -3CC08036 60C6414C -38E00006 39000000 -39200000 4CC63182 -3D808036 618C4C08 -7D8903A6 4E800421 -7FE3FB78 38800010 -2C1D0000 41820018 -3D808037 618C1D9C -7D8903A6 4E800421 -48000018 3D808037 -618C1F00 7D8903A6 -4E800421 48000004 -BA810008 80010104 -38210100 7C0803A6 -4E800020 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C225EE60 00000007 -88A30073 7FE3FB78 -7E84A378 38C00000 -3D808025 618CD5AC -7D8903A6 4E800421 -3D808025 618CEE74 -7D8903A6 4E800420 -60000000 00000000 -C2260DB0 00000005 -38730000 38800000 -38A00000 38C00001 -3D808025 618CD5AC -7D8903A6 4E800421 -60000000 00000000 -C225DB78 00000003 -7FE3FB78 38800000 -38A00000 38C00001 -60000000 00000000 -C2264548 00000038 -3D808036 618CFB5C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -7C7A1B78 48000145 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820008 837B0004 -7F43D378 4800012D -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7D1B79 -838DB8D4 2C1C0000 -41820008 839C000C -2C1B0000 41820054 -3BE00000 806DB620 -38810080 38BF0035 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 7F65DB78 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 3BFF0001 -2C1F0005 4180FFB8 -2C1D0000 41820048 -806DB620 38810080 -38A0002B 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630004 809D0008 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 2C1C0000 -41820044 806DB620 -38810080 38A0002D -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 7F84E378 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 4800002C -4E800021 5374635F -69636E73 00000000 -4E800021 45626C6D -5F6D6174 616E696D -5F6A6F69 6E740000 -BA810008 80010104 -38210100 7C0803A6 -60000000 00000000 -C2264A74 00000026 -3D808036 618CFB5C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -480000C5 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7D1B79 838DB8D4 -2C1C0000 41820008 -839C000C 2C1D0000 -41820048 806DB624 -38810080 38A00004 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 80630004 -809D0008 38A00000 -3D808035 618CDEA0 -7D8903A6 4E800421 -2C1D0000 41820044 -806DB624 38810080 -38A00006 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -7F84E378 38A00000 -3D808035 618CDEA0 -7D8903A6 4E800421 -4800001C 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 BA810008 -80010104 38210100 -7C0803A6 806DB624 -60000000 00000000 -C2264574 00000027 -3D808036 618CFB5C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -480000D5 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7D1B79 838DB8D4 -2C1C0000 41820008 -839C000C 2C1D0000 -4182004C 3BE00000 -806DB620 38810080 -38BF002E 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630004 809D0008 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 2C1C0000 -41820044 806DB620 -38810080 38BF0033 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 7F84E378 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 3BFF0001 -2C1F0004 4180FF6C -4800001C 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 BA810008 -80010104 38210100 -7C0803A6 00000000 -0425DB74 8A8400DD -C2264114 00000002 -3C60803F 60630A48 -7C630214 00000000 -0425FB6C 83C20000 -042640FC 83820000 -0425F128 82E20000 -C22601D4 00000002 -80620000 386300DD -7C6300AE 00000000 -C22600F0 00000002 -80620000 386300DD -7C6300AE 00000000 -C2260AF8 00000002 -80620000 7C630214 -60000000 00000000 -C2260D6C 00000002 -80620000 7E630214 -60000000 00000000 -C2260A60 00000002 -80620000 386300DC -60000000 00000000 -C2260AF8 00000002 -80620000 7C630214 -60000000 00000000 -C2260C7C 00000002 -83C20000 7C9E2214 -60000000 00000000 -C2260D44 00000002 -3FC0803F 63DE0A48 -7C7EBA14 00000000 -C226353C 00000002 -80620000 7C630214 -60000000 00000000 -C2263B40 00000002 -80620000 7C630214 -60000000 00000000 -C2262B20 00000002 -80620000 7C630214 -60000000 00000000 -C2262B80 00000002 -80620000 7C630214 -60000000 00000000 -C2262BE0 00000002 -80620000 7C630214 -60000000 00000000 -C2262C40 00000002 -80620000 7C630214 -60000000 00000000 -C2262BB4 00000002 -80620000 7C630214 -60000000 00000000 -C2262C40 00000002 -80620000 7C630214 -60000000 00000000 -C2262C14 00000002 -80620000 7C630214 -60000000 00000000 -C2262C74 00000002 -80620000 7C630214 -60000000 00000000 -C2262B54 00000002 -80620000 7C630214 -60000000 00000000 -C225FBE4 00000003 -3F80803F 639C0A48 -7C9C3214 7F9C3214 -60000000 00000000 -C225FCB8 00000002 -80820000 7C84EA14 -60000000 00000000 -C225FE68 00000002 -80620000 7C630214 -60000000 00000000 -C225FE8C 00000002 -80820000 388400DC -60000000 00000000 -C225FF10 00000002 -83E20000 7FFFEA14 -60000000 00000000 -C225FFEC 00000002 -80620000 7C63EA14 -60000000 00000000 -C226005C 00000002 -83620000 7F7B0214 -60000000 00000000 -C2264F84 00000002 -3F80803F 639C0A48 -3BDC0444 00000000 -C2264D58 00000002 -3FE0803F 63FF0A48 -3BFF03B4 00000000 -C2264F84 00000002 -3F80803F 639C0A48 -3BDC0444 00000000 -C225F308 00000002 -3EE0803F 62F70A48 -3BF703B4 00000000 -C225F78C 00000002 -3EE0803F 62F70A48 -38B70483 00000000 -C225DB70 00000002 -80820000 7C840214 -60000000 00000000 -C225DBE0 00000002 -80620000 7C630214 -60000000 00000000 -C225EDE0 00000002 -80620000 7C632214 -60000000 00000000 -C2264914 00000002 -81820150 7C116000 -60000000 00000000 -C2264EDC 00000002 -81820150 7C116000 -60000000 00000000 -C2264ED0 00000002 -81820150 7C116000 -60000000 00000000 -C22600C4 00000002 -81820150 7C006000 -60000000 00000000 -C22600D0 00000002 -81820150 7C006000 -60000000 00000000 -C226015C 00000002 -81820150 7C036000 -60000000 00000000 -C226022C 00000002 -81820150 7C036000 -60000000 00000000 -C21692C0 00000002 -81820150 398C0001 -7C006000 00000000 -C2169294 00000002 -81820150 398C0001 -7C006000 00000000 -C216923C 00000002 -8182014C 7C006000 -60000000 00000000 -C2169268 00000002 -81820150 398C0001 -7C006000 00000000 -C22605B8 00000002 -81820150 7C006000 -60000000 00000000 -C22620CC 00000002 -81820150 7C006000 -60000000 00000000 -C22621E0 00000002 -81820150 7C006000 -60000000 00000000 -04260994 80020150 -C2260AD0 00000002 -81820150 7C046000 -60000000 00000000 -C2260B58 00000002 -81820150 7C036000 -60000000 00000000 -04260BCC 80020150 -04260DE4 80020150 -C226183C 00000002 -81820150 7C056000 -60000000 00000000 -C22618CC 00000002 -81820150 7C066000 -60000000 00000000 -C2261F8C 00000002 -81820150 7C006000 -60000000 00000000 -C2262FFC 00000002 -81820150 7C006000 -60000000 00000000 -C2263050 00000002 -81820150 7C006000 -60000000 00000000 -C2263B3C 00000005 -81820150 7C006000 -40820018 38600000 -3D808026 618C3B48 -7D8903A6 4E800420 -1C00001C 00000000 -C22634EC 00000002 -81820150 7C006000 -60000000 00000000 -C2263B7C 00000002 -81820150 7C006000 -60000000 00000000 -C22626CC 00000002 -81820150 7C006000 -60000000 00000000 -C2262A1C 00000002 -81820150 7C006000 -60000000 00000000 -0425FB70 80620150 -C225FC54 00000002 -81820150 7C046000 -60000000 00000000 -04264ADC 80620150 -C2264EEC 00000002 -80820150 38840001 -60000000 00000000 -C225F2AC 00000002 -81820150 7C1B6000 -60000000 00000000 -C225DAFC 00000002 -81820150 7C006000 -60000000 00000000 -C225DB98 00000002 -81820150 7C156000 -60000000 00000000 -C225DC88 00000002 -81820150 7C036000 -60000000 00000000 -C225DF4C 00000002 -81820150 7C006000 -60000000 00000000 -C225ED78 00000002 -81820150 7C006000 -60000000 00000000 -C225EDA4 00000002 -81820150 7C046000 -60000000 00000000 -0425FE6C 38000004 -C226512C 00000005 -4800001D 7C8802A6 -C0240000 C00100F0 -EE600072 D2630004 -4800000C 4E800021 -BF800000 00000000 -04167978 8002014C -C2260BD4 00000020 -806DB8D4 2C030000 -418200EC 7C0802A6 -90010004 9421FF00 -BE810008 83C20000 -3BDE00DC 3BA00000 -83620150 806200FC -C0630000 480000B1 -7C6802A6 C0230004 -C0430008 C19F000C -C17F0010 ED8C082A -ED6B102A 1C7D001C -7F43F214 C13A000C -C11A0010 C0DA0014 -C0FA0018 FC0C4840 -41800048 FC0C4040 -40800040 FC0B3840 -41800038 FC0B3040 -40800030 7FA3EB78 -BA810008 80010104 -38210100 7C0803A6 -7C741B78 3D808026 -618C0C20 7D8903A6 -4E800420 48000010 -3BBD0001 7C1DD800 -4180FF94 BA810008 -80010104 38210100 -7C0803A6 3D808026 -618C0DA4 7D8903A6 -4E800420 4E800021 -40000000 402CCCCD -C0000000 3C60803F -60630B24 00000000 -C2264C48 00000012 -3BC30000 806DB8D4 -2C030000 4182007C -809E0010 806200FC -C0230000 C044002C -EC4100B2 D044002C -C0440030 EC4100B2 -D0440030 C0440034 -EC4100B2 D0440034 -48000041 7C6802A6 -C0630000 EC230828 -C042CB40 EC4100B2 -D0440038 C042CB44 -EC4100B2 D044003C -7FC3F378 3D808037 -618C32E8 7D8903A6 -4E800421 4800000C -4E800021 3F800000 -60000000 00000000 -C2264DA8 00000008 -3A430000 806DB8D4 -2C030000 41820030 -806200FC C0230000 -C052002C EC4100B2 -D052002C C0520030 -EC4100B2 D0520030 -C0520034 EC4100B2 -D0520034 00000000 -C2260C8C 00000009 -806DB8D4 2C030000 -41820038 806DB8D8 -38810098 38B40001 -38C0FFFF 4CC63182 -3D808001 618C1E24 -7D8903A6 4E800421 -3D808026 618C0CDC -7D8903A6 4E800420 -880DB655 00000000 -0425DBBC 48000020 -C22647FC 00000040 -806DB8D4 2C030000 -418201EC 806200FC -C0430000 480001CD -7C6802A6 C0230000 -EC2100B2 D022CB54 -C0230004 EC2100B2 -D022CB34 C0230008 -EC2100B2 D022CA34 -C023000C EC2100B2 -D022CAA0 7C0802A6 -90010004 9421FF00 -BE810008 3FE0803F -63FF0B24 83A20000 -3BBD00DC 3BC00000 -806DB620 38810080 -88BF0005 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80830014 38A00001 -50A426F6 90830014 -38600002 987D0002 -3BDE0001 3BFF001C -3BBD001C 2C1E0019 -4180FFB0 83CDB8D4 -38600004 38800005 -38A00080 3D808039 -618C01F0 7D8903A6 -4E800421 7C741B78 -807E0000 3D808037 -618C0E44 7D8903A6 -4E800421 7C7D1B78 -93ADB8D8 7E83A378 -888DC1A9 7FA5EB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00001 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -3C808022 6084EAE0 -38A00004 3D808038 -618CFD54 7D8903A6 -4E800421 7FA3EB78 -809E0004 80BE0008 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 7FA3EB78 -38800006 38A00020 -3CC08036 60C6410C -38E00001 3D808036 -618C4C08 7D8903A6 -4E800421 7FA3EB78 -3D808037 618C0928 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -3D808026 618C4924 -7D8903A6 4E800420 -4E800021 41000000 -41100000 3FC00000 -3951B717 3A9400DC -60000000 00000000 -C2266984 0000000A -806DB630 48000029 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -41820020 906DB8D4 -48000020 4E800021 -6D657853 656C6563 -74436872 00000000 -38600000 906DB8D4 -806DB630 00000000 -C22645F4 00000005 -806DB8D4 2C030000 -41820014 3D808026 -618C47FC 7D8903A6 -4E800420 38600007 -60000000 00000000 -044DC49C 41E80000 -C2260DF0 00000003 -3D808026 618C0AD8 -7D8903A6 4E800420 -60000000 00000000 -042609F8 480001C8 -04266FD8 38800FD0 -C226717C 00000002 -901F0518 901F0FCC -60000000 00000000 -040679BC 3880241C -C206FE20 00000002 -800323EC 2C000000 -60000000 00000000 -C2069CE0 00000005 -2C170000 41820010 -38600001 907A23EC -4800000C 38600000 -907A23EC 28170000 -60000000 00000000 -C2168C10 00000011 -7C7D1B78 3862017C -7C63E8AE 7C630774 -2C03FFFF 4182006C -7C0802A6 90010004 -9421FF00 BE810008 -808DB8DC 8084000C -1C630008 7C632214 -88630000 6C638000 -C822CA08 90610084 -3C604330 90610080 -C8410080 EC220828 -BA810008 80010104 -38210100 7C0803A6 -3D808016 618C8C40 -7D8903A6 4E800420 -4E800021 08070600 -7FA3EB78 00000000 -C216E7BC 0000002C -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -48000111 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B79 41820104 -3B800000 480000E0 -1C1C0024 387F0060 -7FA30214 3882017C -3860FFFF 7C64E1AE -881D0001 2C000000 -408200B8 7F83E378 -3D808003 618C345C -7D8903A6 4E800421 -3C80804C 608420BC -1C630044 7C632214 -83430000 3A800000 -82BB0008 82DB000C -887D000A 3D808023 -618C754C 7D8903A6 -4E800421 7C771B78 -48000060 1C740008 -7F03B214 80780004 -2C030000 41820028 -2C170000 41820040 -7EE4BB78 3D808032 -618C58E8 7D8903A6 -4E800421 2C030000 -40820024 80780000 -5463023E 7C60D038 -7C030000 40820010 -3862017C 7E83E1AE -48000010 3A940001 -7C14A800 4180FFA0 -3B9C0001 2C1C0006 -4180FF20 48000014 -4E800021 5374635F -69636E73 00000000 -BA810008 80010104 -38210100 7C0803A6 -7FE3FB78 00000000 -C20A0070 0000001F -2C1F1388 418000E8 -2C1F2328 408000E0 -7C0802A6 90010004 -9421FF00 BE810008 -C0228DF0 807E00E0 -2C030000 40820020 -C01E0844 C05E0848 -FC200050 3D808002 -618C2C30 7D8903A6 -4E800421 D0210080 -39010080 C03E002C -D0210084 38E10084 -38C10184 80BE05E8 -57602036 7CA5002E -7F44D378 7FE3FB78 -3D80803D 618C70A0 -7D8903A6 4E800421 -7C741B78 806DC198 -2C030000 41820020 -8803000C 2C000009 -40800014 801E060C -90140000 929E060C -4800001C 7F43D378 -7E84A378 3D808006 -618C744C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 3D80800A -618C0084 7D8903A6 -4E800420 3C60803C -60000000 00000000 -C206747C 00000065 -7C0802A6 90010004 -9421FF00 BE810008 -839D002C A07D0000 -2C030006 40820018 -807D002C 80630FCC -2C030000 41820008 -8383002C 807C0004 -2C030004 41820030 -2C1F1388 418002CC -2C1F1770 4180003C -2C1F1B58 41800054 -2C1F1F40 4180006C -2C1F2328 41800084 -480002A8 2C1F1388 -418002A0 2C1F1770 -41800050 2C1F1B58 -41800068 4800028C -399FEC78 80620018 -809C0004 7D2320AE -7D234B78 48000245 -7C6A1B78 48000064 -399FE890 80620018 -809C0004 7D2320AE -7D234B78 48000225 -7C6A1B78 48000110 -399FEC78 80620018 -809C2238 7D2320AE -7D234B78 48000205 -7C6A1B78 48000024 -399FE890 80620018 -809C2238 7D2320AE -7D234B78 480001E5 -7C6A1B78 480000D0 -806A0004 7D6360AE -48000021 48000049 -48000049 48000089 -48000089 48000089 -48000089 480000A5 -7C8802A6 1CAB0004 -7C842A14 80A40000 -2C050000 418201CC -54A501BA 7C842A14 -7C8903A6 4E800420 -48000198 4800004C -807E000C 389E0010 -38A10080 3D808000 -618CB1CC 7D8903A6 -4E800421 7FE3FB78 -7FA4EB78 38A10080 -38DE001C 38FE0020 -3D808005 618CFDDC -7D8903A6 4E800421 -48000150 4BFFFFBC -4BFFFFB8 4BFFFFB4 -7FE3FB78 7FA4EB78 -80BE000C 3D808005 -618CFDDC 7D8903A6 -4E800421 48000124 -4BFFFFE0 806A000C -7D6360AE 48000025 -48000049 48000089 -48000089 48000089 -48000089 48000089 -480000A5 480000C5 -7C8802A6 1CAB0004 -7C842A14 80A40000 -2C050000 418200FC -54A501BA 7C842A14 -7C8903A6 4E800420 -807E000C 389E0010 -38A10080 3D808000 -618CB1CC 7D8903A6 -4E800421 7FE3FB78 -7FA4EB78 38A10080 -38DE001C 38FE0020 -3D808005 618CFDDC -7D8903A6 4E800421 -48000088 48000084 -48000080 4800007C -48000078 7FE3FB78 -7FA4EB78 80BE000C -3D808005 618CFDDC -7D8903A6 4E800421 -48000058 7FE3FB78 -7FA4EB78 80BE000C -38DE001C 3D808005 -618CFDDC 7D8903A6 -4E800421 48000034 -7FE3FB78 7FA4EB78 -80BE000C 3D808005 -618CFDDC 7D8903A6 -4E800421 48000014 -80820084 1C630004 -7C63202E 4E800020 -BA810008 80010104 -38210100 7C0803A6 -3D808006 618C75F8 -7D8903A6 4E800420 -BA810008 80010104 -38210100 7C0803A6 -60000000 00000000 -043985C4 1CD903E8 -0405B628 38A00011 -0405B660 38A00011 -C205FF38 000000F5 -7C0802A6 90010004 -9421FF00 BE810008 -381CFB45 2C000057 -40810778 829E002C -A07E0000 2C030006 -40820010 807E002C -80630FCC 8283002C -80740004 2C030004 -41820030 2C1C1388 -41800748 2C1C1770 -4180003C 2C1C1B58 -41800058 2C1C1F40 -41800074 2C1C2328 -41800090 48000724 -2C1C1388 4180071C -2C1C1770 41800058 -2C1C1B58 41800074 -48000708 3B200000 -3ADCEC78 80620018 -80940004 7F0320AE -7F03C378 480005B5 -7C771B78 48000070 -3B200001 3ADCE890 -80620018 80940004 -7F0320AE 7F03C378 -48000591 7C771B78 -480003FC 3B200000 -3ADCEC78 80620018 -80942238 7F0320AE -7F03C378 4800056D -7C771B78 48000028 -3B200001 3ADCE890 -80620018 80942238 -7F0320AE 7F03C378 -48000549 7C771B78 -480003B4 1C7803E8 -7F83B214 80770000 -7C161800 40800544 -80770004 7EA3B0AE -48000021 480000A5 -4800010D 48000145 -480001AD 48000221 -480002C5 480002FD -7C8802A6 1CB50004 -7C842A14 80A40000 -2C050000 41820624 -54A0463E 2C000048 -40820014 54A501BA -7C842A14 7C8903A6 -4E800420 7CA903A6 -4E800420 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80C30000 -38600000 7F85E378 -3C801062 60844DD3 -7C842896 7C843670 -3D808039 618CEFAC -7D8903A6 4E800421 -7C7D1B78 480002B0 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80A30000 7F83E378 -7FC4F378 3D808005 -618CC814 7D8903A6 -4E800421 7C7D1B79 -41820274 807D0004 -83830028 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80630000 -C0030000 D01C0024 -48000244 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80A30000 -7F83E378 7FC4F378 -3D808005 618CC814 -7D8903A6 4E800421 -7C7D1B78 48000208 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80A30000 7F83E378 -7FC4F378 3D808005 -618CC814 7D8903A6 -4E800421 7C7D1B79 -418201CC 807D0004 -83830028 386102FC -38800002 3D808032 -618C2620 7D8903A6 -4E800421 80630000 -C0230000 D03C0024 -4800019C 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 83630000 -7F63DB78 38800000 -38A10080 3D808000 -618CB1CC 7D8903A6 -4E800421 7F83E378 -7FC4F378 38A10080 -3D808005 618CC814 -7D8903A6 4E800421 -7C7D1B79 41820140 -807D0004 83830028 -C0028808 D01C0020 -C01B0024 D01C0024 -48000124 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 83630000 -7F83E378 7FC4F378 -7F65DB78 3D808005 -618CC814 7D8903A6 -4E800421 7C7D1B79 -418200E4 807D0004 -83830028 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80630000 -C0230000 C0028830 -FC010040 4080000C -C8028848 48000008 -C8028850 FC200018 -D03C0020 807E0028 -C023002C D03C002C -C0230030 D03C0030 -C0230034 D03C0034 -4800007C 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80A30000 -7F83E378 7FC4F378 -3D808005 618CC3DC -7D8903A6 4E800421 -7C7D1B78 48000040 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80A30000 7F83E378 -7FC4F378 3D808005 -618CC5C4 7D8903A6 -4E800421 7C7D1B78 -48000004 3C608005 -6063BA40 907421D4 -3C608005 6063BAC4 -907421D8 7FA3EB78 -BA810008 80010104 -38210100 7C0803A6 -7C7F1B78 3D808006 -618C1D08 7D8903A6 -4E800420 1C7803E8 -7F83B214 80770008 -7C161800 40800194 -8077000C 7EA3B0AE -48000025 4800005D -48000145 48000141 -4800013D 48000139 -480000B1 480000F5 -4800010D 7C8802A6 -1CB50004 7C842A14 -80A40000 2C050000 -41820270 54A0463E -2C000048 40820014 -54A501BA 7C842A14 -7C8903A6 4E800420 -7CA903A6 4E800420 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -83A30000 38600000 -7F85E378 3C801062 -60844DD3 7C842896 -7C843670 3D808039 -618CF05C 7D8903A6 -4E800421 2C030000 -4182001C C03D0000 -D0230024 C03D0004 -D0230028 C03D0008 -D023002C 48000088 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80C30000 38600000 -7F85E378 3C801062 -60844DD3 7C842896 -7C843670 3D808039 -618CEFAC 7D8903A6 -4E800421 48000040 -7F83E378 388102FC -3D808005 618CCF40 -7D8903A6 4E800421 -48000024 7F83E378 -388102FC 7FC5F378 -3D808005 618CCD2C -7D8903A6 4E800421 -48000004 BA810008 -80010104 38210100 -7C0803A6 7C7F1B78 -3D808006 618C1D08 -7D8903A6 4E800420 -80820084 1C630004 -7C63202E 2C030000 -418200B0 4E800020 -48000061 7C6802A6 -80940004 48000089 -7CA802A6 1CD90008 -7CA53214 7EC6B378 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 4572726F -723A2066 69676874 -65722025 6420646F -6573206E 6F742068 -61766520 25732065 -66666563 74202564 -0A000000 4E800021 -6D6F6465 6C000000 -7074636C 67656E00 -48000041 7C6802A6 -80940004 3D808034 -618C56A8 7D8903A6 -4E800421 4BFFFF91 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 4572726F -723A2066 69676874 -65722025 6420646F -6573206E 6F742068 -61766520 65666642 -65686176 696F7254 -61626C65 0A000000 -BA810008 80010104 -38210100 7C0803A6 -381CFB45 00000000 -C2278CA0 00000023 -40800008 4800010C -7C0802A6 90010004 -9421FF00 BE810008 -2C1F1388 418000D4 -2C1F2328 408000CC -807D0FCC 7C741B79 -418200C0 C0228DF0 -807D00C0 2C030000 -40820020 C01D04CC -C05D04D0 FC200050 -3D808002 618C2C30 -7D8903A6 4E800421 -D0210080 7FC3F378 -7F24CB78 3D808027 -618C2CC0 7D8903A6 -4E800421 7C651B78 -39010080 C03D002C -D0210084 38E10084 -38C10174 7E84A378 -7FE3FB78 3D80803D -618C70A0 7D8903A6 -4E800421 7C751B78 -806DC198 2C030000 -41820020 8803000C -2C000009 40800014 -801D0BC0 90150000 -92BD0BC0 4800001C -7FC3F378 7EA4AB78 -3D808006 618C744C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -3D808027 618C8F18 -7D8903A6 4E800420 -60000000 00000000 -C21B5204 0000000E -3D80803D 618CE650 -8062014C 3943FFF9 -886C0000 2C0300FF -41820050 38E00000 -7C8C3A14 8924000A -2C09001A 41800028 -2C090021 40800014 -3869FFE6 7D2A1A14 -9924000A 48000010 -8062014C 9864000A -48000004 38E70001 -2C070003 4180FFC4 -398C0010 4BFFFFAC -8001000C 00000000 -C21B34F0 00000020 -7C0802A6 90010004 -9421FF00 BE810008 -3FE0803D 63FFDC58 -3FC08049 63DE0880 -3FA0803D 63BDDEC8 -387F0520 48000061 -387F04DC 48000059 -387F0428 48000051 -387F033C 48000049 -387F032A 48000041 -8062014C 986D8C7A -986D8C7B 986D8C7C -986D8C82 986D8C83 -986D8C84 986D8C8A -986D8C8B 986D8C8C -BA810008 80010104 -38210100 7C0803A6 -4800006C 7C6B1B78 -8062014C 3923FFF9 -A06B0000 2C030148 -41820050 38E00000 -7C8B3A14 89040002 -2C08001A 41800028 -2C080021 40800014 -3868FFE6 7D091A14 -99040002 48000010 -8062014C 98640002 -48000004 38E70001 -2C070004 4180FFC4 -396B0006 4BFFFFAC -4E800020 8001000C -60000000 00000000 -C21BADC4 0000000E -39000000 818DB260 -8062014C 3943FFF9 -816C0000 38E00000 -7C8C3A14 808B0014 -2C040000 41820024 -89240000 2C09001A -41800018 2C090020 -41810010 3869FFE6 -7D2A1A14 99240000 -38E70001 396B0004 -2C070006 4180FFC4 -398C0004 39080001 -2C080033 4180FFAC -828DB260 00000000 -C22F62FC 00000007 -8182014C 386CFFF9 -7C1C1800 41820014 -386CFFFD 7C1C1800 -41820008 48000008 -3B80001B 3D80802F -618C6314 7D8903A6 -4E800420 00000000 -C217D5A0 00000002 -8182014C 398CFFFD -7C006000 00000000 -C217D5F0 00000002 -8182014C 398CFFFD -7C006000 00000000 -C217C134 00000002 -8182014C 380CFFFD -60000000 00000000 -C217D578 00000002 -8182014C 398CFFFC -7C006000 00000000 -C2320698 00000002 -8062014C 3863FFFC -60000000 00000000 -C23206A8 00000002 -8082014C 3884FFFC -60000000 00000000 -C217D598 00000002 -8182014C 398CFFF9 -7C006000 00000000 -C217D638 00000002 -8182014C 398CFFF9 -7C006000 00000000 -C2186E4C 00000002 -8182014C 398CFFF9 -7C006000 00000000 -C2186E58 00000002 -8182014C 398CFFF9 -7C006000 00000000 -0417DB58 8002014C -041B51DC 8002014C -041B62E8 8002014C -041B5674 8002014C -041B5AD8 8002014C -C21B2BF8 00000002 -8182014C 7C166000 -60000000 00000000 -C21B2BF8 00000002 -8182014C 7C166000 -60000000 00000000 -0417DD10 8082014C -C21B37C8 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3690 00000002 -8182014C 7C006000 -60000000 00000000 -C217D27C 00000002 -8182014C 7C006000 -60000000 00000000 -C217D28C 00000002 -8182014C 7C006000 -60000000 00000000 -C217D268 00000002 -8182014C 7C006000 -60000000 00000000 -C217CFC0 00000002 -8182014C 7C006000 -60000000 00000000 -C217CFB0 00000002 -8182014C 7C006000 -60000000 00000000 -C217CF9C 00000002 -8182014C 7C006000 -60000000 00000000 -C217D43C 00000002 -8182014C 7C006000 -60000000 00000000 -C217DDA8 00000002 -8182014C 7C006000 -60000000 00000000 -C217BEFC 00000002 -8182014C 7C056000 -60000000 00000000 -C21B3804 00000002 -8182014C 7C006000 -60000000 00000000 -C217BF2C 00000002 -8182014C 7C056000 -60000000 00000000 -C217BF58 00000002 -8182014C 7C056000 -60000000 00000000 -C217BFA0 00000002 -8182014C 7C006000 -60000000 00000000 -C217BFE0 00000002 -8182014C 7C006000 -60000000 00000000 -C217C014 00000002 -8182014C 7C006000 -60000000 00000000 -C217C04C 00000002 -8182014C 7C006000 -60000000 00000000 -0417DB40 8062014C -C217DE78 00000002 -8182014C 7C006000 -60000000 00000000 -C217DE9C 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3840 00000002 -8182014C 7C006000 -60000000 00000000 -0417DBCC 8002014C -C217DE8C 00000002 -8182014C 7C006000 -60000000 00000000 -C21B387C 00000002 -8182014C 7C006000 -60000000 00000000 -C21B38A0 00000002 -8182014C 7C006000 -60000000 00000000 -C21B38C4 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3950 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3988 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3758 00000002 -8182014C 7C006000 -60000000 00000000 -C2185EA4 00000002 -8182014C 7C006000 -60000000 00000000 -C2185FCC 00000002 -8182014C 7C006000 -60000000 00000000 -C21B6560 00000002 -8062014C 3883FFFF -60000000 00000000 -C21B9958 00000002 -8062014C 3803FFFE -60000000 00000000 -C21B99FC 00000002 -8062014C 3803FFFE -60000000 00000000 -C21B6B40 00000002 -8062014C 3863FFFB -60000000 00000000 -C2182288 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B6B34 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B70AC 00000002 -8062014C 3863FFFB -60000000 00000000 -C21822EC 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B70A0 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B7BDC 00000002 -8062014C 3863FFFB -60000000 00000000 -C21823B4 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B7BD0 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B7658 00000002 -8062014C 3863FFFB -60000000 00000000 -C2182350 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B764C 00000002 -8182014C 380CFFFA -60000000 00000000 -C218247C 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B8698 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B86A4 00000002 -8062014C 3863FFFB -60000000 00000000 -C21B8178 00000002 -8062014C 3863FFFB -60000000 00000000 -C2182418 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B816C 00000002 -8182014C 380CFFFA -60000000 00000000 -C202305C 00000006 -2C030000 4180001C -1C630004 1C840002 -80A200CC 7C632A14 -7C63222E 48000008 -3860005D 4E800020 -60000000 00000000 -C20D1448 00000002 -81820178 818C000C -800C0064 00000000 -04085830 8002005C -04068F5C 8062005C -0413C3D0 8002005C -040858F4 8002005C -04068AEC 8082005C -040855EC 83A2005C -04068704 8062005C -04070330 8062005C -C20852D0 00000002 -3D40803C 614A25F4 -60000000 00000000 -040852B8 8102005C -C2070580 00000002 -80620178 8063000C -80630074 00000000 -C20706BC 00000002 -80620178 8063000C -80030074 00000000 -C20BE8B4 00000002 -80820178 8084000C -808400A0 00000000 -04068B60 80C2002C -041609A8 80020004 -C2160A24 00000002 -80820004 7C64002E -60000000 00000000 -C2160B08 00000002 -80620004 7C63002E -60000000 00000000 -C206D654 00000002 -81820178 818C000C -800C0030 00000000 -C207FB9C 00000002 -80620178 8063000C -8003004C 00000000 -04068660 80020034 -C206DAE8 00000002 -80620178 8063000C -80030008 00000000 -C20CBA30 00000009 -801E0004 806200A0 -1C000004 7D83002E -2C0C0000 41820020 -7FA3EB78 7D8903A6 -4E800421 3D80800C -618CBA9C 7D8903A6 -4E800420 3D80800C -618CBAA4 7D8903A6 -4E800420 00000000 -C211BA54 00000018 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 83DF002C -806DAEB4 C0030088 -FC000050 C03E0624 -FC010040 41810078 -801E065C 5400052B -4182006C 801E0004 -2C000009 40820014 -801E222C 2C000000 -41820054 48000030 -8082009C 80BE0004 -1CA50004 7D84282E -2C0C0000 41820038 -7FE3FB78 38800001 -7D8903A6 4E800421 -48000028 7FE3FB78 -38800001 3D808011 -618CBB6C 7D8903A6 -4E800421 38600001 -48000008 38600000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C211BAD8 0000001A -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 83DF002C -C03E0084 C0029DE0 -FC010040 4C401382 -4082008C 806DAEB4 -C0030070 C03E0624 -FC010040 40800010 -801E065C 5400052B -4182006C 801E0004 -2C000009 40820014 -801E222C 2C000000 -41820054 48000030 -8082009C 80BE0004 -1CA50004 7D84282E -2C0C0000 41820038 -7FE3FB78 38800001 -7D8903A6 4E800421 -48000028 7FE3FB78 -38800001 3D808011 -618CBB6C 7D8903A6 -4E800421 38600001 -48000008 38600000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C206AA28 00000002 -80620178 8063000C -8003005C 00000000 -04094860 800200C0 -04094924 800200C0 -0407E740 800200C8 -C207F830 00000002 -81820178 818C000C -800C0054 00000000 -C207F878 00000002 -81820178 818C000C -800C0058 00000000 -C2069924 00000008 -806200A8 809A0004 -1C840004 7D84182E -2C0C0000 41820020 -7FC3F378 7D8903A6 -4E800421 3D808006 -618C9938 7D8903A6 -4E800420 801A0004 -60000000 00000000 -040BEA28 80020030 -040690F0 80020030 -C207F918 00000002 -80820178 8084000C -80040050 00000000 -C2080D9C 00000002 -80620178 8063000C -80030068 00000000 -C2080BA0 00000002 -80620178 8063000C -80030068 00000000 -C207512C 00000002 -80620178 8063000C -8003006C 00000000 -C2075190 00000002 -80620178 8063000C -8003006C 00000000 -C20751F8 00000002 -80620178 8063000C -8003006C 00000000 -C208CC14 00000008 -800200BC 809F0004 -1C840004 7D84002E -2C0C0000 41820020 -7FC3F378 7D8903A6 -4E800421 3D808008 -618CCC38 7D8903A6 -4E800420 801F0004 -60000000 00000000 -C208C360 00000007 -800200B4 809F0004 -1C840004 7D84002E -2C0C0000 4182001C -7D8903A6 4E800421 -3D808008 618CC3CC -7D8903A6 4E800420 -809F0004 00000000 -C208C900 00000008 -800200B8 809F0004 -1C840004 7D84002E -2C0C0000 41820020 -7FC3F378 7D8903A6 -4E800421 3D808008 -618CC924 7D8903A6 -4E800420 801F0004 -60000000 00000000 -C20C0158 00000002 -80620178 8063000C -80030060 00000000 -C20816C4 00000005 -806200AC 809F0004 -7C6418AE 2C030000 -40820014 3D808008 -618C1918 7D8903A6 -4E800420 00000000 -C20C3B54 0000000B -800200A4 809F0004 -1C840004 7D84002E -2C0C0000 4182003C -801F065C 54000001 -41820030 801F0668 -540005EF 41820024 -7C631B78 7D8903A6 -4E800421 3D80800C -618C3BB8 7D8903A6 -4E800420 48000008 -38600000 00000000 -C20F5A78 00000002 -80620098 80630020 -60000000 00000000 -C20F5AA0 00000002 -80620098 80630020 -60000000 00000000 -C20F5AC8 00000002 -80620098 80630020 -60000000 00000000 -C20F5AE0 00000002 -80620098 80630020 -60000000 00000000 -C2085C04 00000003 -806200B0 801C0004 -1C000008 7C630214 -80030004 00000000 -C2085BD0 00000003 -806200B0 801C0004 -1C000008 7FC3002E -60000000 00000000 -C2085CC0 00000003 -808200B0 801C0004 -1C000008 38600000 -7C64012E 00000000 -C20BEB88 00000003 -83E200B0 1C030008 -7FFF0214 801F0000 -60000000 00000000 -C2085A24 00000002 -7C661B78 1CA30008 -60000000 00000000 -04085A3C 80620098 -04068B2C 1C840008 -04068B1C 80020098 -040852C0 80A20098 -C20852D4 00000012 -39800000 81220028 -814200B0 38600000 -90670000 90670004 -90690000 906A0000 -39600000 48000020 -80680000 1C8B0018 -7C832214 38600000 -90640000 90640008 -396B0001 88680004 -7C0B1800 4180FFDC -39290008 39080008 -38E70008 394A0008 -398C0001 80620148 -7C0C1800 4180FFA0 -38600000 3CA08045 -60A598B8 3D808008 -618C53DC 7D8903A6 -4E800420 00000000 -04085738 1CA30008 -0408573C 80020098 -04085774 38650004 -040C2798 418107E4 -C20C278C 00000009 -80820178 8084000C -808400B4 807C0004 -1C630004 7C63202E -2C030000 41820024 -7C6903A6 807C0000 -4E800421 7C7E1B78 -3D80800C 618C27C8 -7D8903A6 4E800420 -807C0004 00000000 -040C30A4 418100C8 -C20C3098 00000009 -80820178 8084000C -808400B4 807F0004 -1C630004 7C63202E -2C030000 41820024 -7C6903A6 807F0000 -4E800421 7C651B78 -3D80800C 618C30D4 -7D8903A6 4E800420 -807F0004 00000000 -0431C9A4 800200D0 -C214A42C 00000004 -80820178 80840034 -80840000 881F0619 -1C000008 7C840214 -60000000 00000000 -C214A7F8 00000005 -88030619 1C000008 -80620178 80630034 -80630000 7C630214 -80630000 90640000 -4E800020 00000000 -C214A364 00000006 -881F0619 1C000008 -80820178 80840034 -80840000 7C840214 -80840004 909F2434 -909F0614 8001001C -60000000 00000000 -C214A818 00000005 -88030619 1C000008 -80620178 80630034 -80630000 7C630214 -80630004 90640000 -4E800020 00000000 -C22F9888 00000005 -387C0000 38800000 -3D808003 618C25C8 -7D8903A6 4E800421 -7C641B78 38BD0000 -387C0000 00000000 -C22F9764 0000000F -7C0802A6 90010004 -9421FF00 BE810008 -806DB8DC 2C030000 -41820048 82830004 -7FC3F378 38810080 -38A00001 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 38800000 -7E85A378 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -387E0000 00000000 -C22F6770 00000011 -3C60804D 60636D5C -80630000 48000049 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 906DB8DC -3C60804D 60636D5C -80630000 48000031 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 906DB8E0 -4800002C 4E800021 -5374635F 69636E73 -00000000 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 80010024 -60000000 00000000 -C2266994 0000000D -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -48000035 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 4182000C -906DB8DC 48000020 -38600000 906DB8DC -48000014 4E800021 -5374635F 69636E73 -00000000 806DB614 -60000000 00000000 -C22F6320 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -80820070 7C6320AE -6C638000 C822CA08 -90610084 3C604330 -90610080 C8410080 -EC220828 BA810008 -80010104 38210100 -7C0803A6 00000000 -C2168B34 0000000A -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 7FC3F378 -7FA4EB78 3D80803D -618C7060 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C22FA0B4 00000006 -7C7FE214 8863047F -38800000 3D808003 -618C25C8 7D8903A6 -4E800421 7C641B78 -7CBFE214 8865047F -88A503FD 00000000 -C22F9FD4 0000000F -7C0802A6 90010004 -9421FF00 BE810008 -806DB8DC 2C030000 -41820048 82830004 -7FA3EB78 38810080 -38A00001 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 38800000 -7E85A378 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -387D0000 00000000 -C22F62F8 00000010 -3D808000 618CC07C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -83ADB8E0 2C1D0000 -41820044 7FC3F378 -38810080 38A00001 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 7FA5EB78 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 00000000 -C22F99C0 00000012 -7C0802A6 90010004 -9421FF00 BE810008 -806DB8DC 2C030000 -4182005C 83C30004 -3BE00000 7FA3EB78 -38810080 38BF0001 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 7FC5F378 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 3BFF0001 -2C1F0007 4180FFB8 -48000004 BA810008 -80010104 38210100 -7C0803A6 7FA3EB78 -60000000 00000000 -C2175E4C 0000002C -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -7C7D1B78 480000F1 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -418200FC 83C30004 -3BE00000 7F63DB78 -38810080 38BF0019 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 80630004 -809E0008 38A00000 -3D808035 618CDEA0 -7D8903A6 4E800421 -3BFF0001 2C1F0004 -4180FFB4 7FA3EB78 -48000085 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7E1B79 41820080 -3BE00000 7F63DB78 -38810080 38BF0042 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 809E0008 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 3BFF0001 -2C1F0004 4180FFB8 -4800002C 4E800021 -5374635F 69636E73 -00000000 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 BA810008 -80010104 38210100 -7C0803A6 7F63DB78 -60000000 00000000 -C21777C8 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -80820070 7C6320AE -6C638000 C822CA08 -90610084 3C604330 -90610080 C8410080 -EC220828 BA810008 -80010104 38210100 -7C0803A6 00000000 -C20692FC 00000002 -81820148 398CFFFB -7C006000 00000000 -C20692E8 00000002 -81820148 398CFFFA -7C006000 00000000 -C20CC76C 00000002 -81820148 398CFFFB -7C036000 00000000 -C20CC750 00000002 -81820148 398CFFFA -7C036000 00000000 -C20BDA14 0000000C -81820148 380CFFFC -7C030000 41820038 -81820148 380CFFFD -7C030000 41820028 -81820148 380CFFFF -7C030000 41820018 -2C03000B 41820008 -48000010 3860000A -48000008 80652238 -3D80800B 618CDA3C -7D8903A6 4E800420 -60000000 00000000 -C208A2F0 00000002 -81820148 398CFFFB -7C036000 00000000 -C208A2D4 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C2AC 00000002 -80620148 3863FFFB -60000000 00000000 -C215C320 00000002 -80620148 3863FFFB -60000000 00000000 -C215C3A4 00000002 -80620148 3863FFFB -60000000 00000000 -C215039C 00000002 -80620148 3863FFFB -60000000 00000000 -C215C4E8 00000002 -81820148 398CFFFB -7C036000 00000000 -C215C4E8 00000002 -81820148 398CFFFB -7C036000 00000000 -C21551B4 00000002 -80620148 3863FFFB -60000000 00000000 -C215531C 00000002 -80620148 3863FFFB -60000000 00000000 -C21554A4 00000002 -80620148 3863FFFB -60000000 00000000 -C215B500 00000002 -80620148 3863FFFB -60000000 00000000 -C206D480 00000002 -81820148 398CFFFB -7C006000 00000000 -C217C780 00000002 -81820148 386CFFFB -60000000 00000000 -C20C8E98 00000002 -81820148 398CFFFB -7C006000 00000000 -C215CB18 00000002 -81820148 398CFFFB -7C036000 00000000 -C20C744C 00000002 -81820148 398CFFFE -7C006000 00000000 -C215C274 00000002 -80620148 3863FFFA -60000000 00000000 -C215C2E4 00000002 -80620148 3863FFFA -60000000 00000000 -C215C35C 00000002 -80620148 3863FFFA -60000000 00000000 -C215143C 00000002 -80620148 3863FFFA -60000000 00000000 -C215A2CC 00000002 -80620148 3863FFFA -60000000 00000000 -C215A414 00000002 -80620148 3863FFFA -60000000 00000000 -C215A580 00000002 -80620148 3863FFFA -60000000 00000000 -C206D48C 00000002 -81820148 398CFFFA -7C006000 00000000 -C20C8E90 00000002 -81820148 398CFFFA -7C006000 00000000 -C20C8EA4 00000002 -81820148 398CFFFA -7C006000 00000000 -C215C55C 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C6E0 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C770 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C8B0 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C9F0 00000002 -81820148 398CFFFA -7C036000 00000000 -C215CABC 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C810 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C950 00000002 -81820148 398CFFFA -7C036000 00000000 -C207CDBC 00000002 -81820148 398CFFFF -7C006000 00000000 -C207CE10 00000002 -81820148 398CFFFF -7C006000 00000000 -C217C938 00000002 -81820148 380CFFFD -60000000 00000000 -C217C930 00000002 -81820148 380CFFFC -60000000 00000000 -C2267990 00000028 -7C0802A6 90010004 -9421FF00 BE810008 -80820088 2C03002B -41800020 2C0300A1 -41800024 2C0300D0 -4180002C 2C0300ED -41800034 48000044 -80840000 80ADB684 -4800004C 3863FFD5 -80840004 80ADB698 -4800003C 3863FF5F -80840008 80ADB690 -4800002C 3863FF30 -8084000C 3CA0804A -60A50F60 48000018 -3863FF13 80840010 -80A20088 80A50014 -48000004 1C03003C -7FC40214 1C030004 -7FA5002E 2C1D0000 -41820010 93DF00B8 -93BF00C4 48000070 -48000049 7C6802A6 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 6572726F -723A2069 74656D20 -6E6F7420 696E6974 -69616C69 7A65640A -00000000 BA810008 -80010104 38210100 -7C0803A6 3D808026 -618C7A88 7D8903A6 -4E800420 00000000 -C22674AC 00000004 -80030008 2C0000ED -41800010 38000008 -9003000C 4E800020 -60000000 00000000 -C2268684 0000001A -7C0802A6 90010004 -9421FF00 BE810008 -807E0008 80820088 -2C03002B 41800020 -2C0300A1 41800024 -2C0300D0 4180002C -2C0300ED 41800034 -48000040 3C80803F -60841418 48000040 -3863FFD5 3C80803F -60842F28 48000030 -3863FF5F 3C80803F -60842310 48000020 -3863FF30 3C80803F -60844CA8 48000010 -3C808026 6084EECC -4800000C 1C030004 -7C84002E 38A00006 -38C00000 7FE3FB78 -3D808039 618C069C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -3D808026 618C8748 -7D8903A6 4E800420 -60000000 00000000 -C20F16EC 0000000C -80C20148 7C043040 -41810044 1C040004 -80620140 7D83002E -2C0C0000 41820018 -7C832378 7C85002E -7D8903A6 4E800421 -4800001C 2C04001B -40800014 3D80800F -618C16F0 7D8903A6 -4E800420 3D80800F -618C18F8 7D8903A6 -4E800420 00000000 -C20EEEC4 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -80020130 1C840004 -7D84002E 2C0C0000 -4182000C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C20F1B94 00000008 -81820178 818C0024 -818C001C 1C000004 -7D8C002E 2C0C0000 -41820010 7D8903A6 -7C631B78 4E800421 -3D80800F 618C1B9C -7D8903A6 4E800420 -60000000 00000000 -C20F1AA8 0000000B -80820148 7C002040 -41810038 1C800004 -8062013C 7D83202E -2C0C0000 41820024 -7FE3FB78 7D8903A6 -4E800421 48000014 -3D80800F 618C1AB0 -7D8903A6 4E800420 -3D80800F 618C1B58 -7D8903A6 4E800420 -60000000 00000000 -C20F1BF8 00000007 -8002012C 1C840004 -7D84002E 2C0C0000 -41820010 7D8903A6 -7FA3EB78 4E800421 -3D80800F 618C1C1C -7D8903A6 4E800420 -60000000 00000000 -040F163C 80020134 -040F168C 80020138 -C216E148 0000000D -7C0802A6 90010004 -9421FF00 BE810008 -83C20148 3BE00000 -80620178 83A30020 -83BD0014 83830024 -839C001C 38000000 -1C9F0004 7C1D212E -7C1C212E 3BFF0001 -7C1FF000 4180FFEC -BA810008 80010104 -38210100 7C0803A6 -3800FFFF 90010010 -60000000 00000000 -C20EED58 00000002 -9421FFDC 38000000 -90010020 00000000 -040EEE90 38210024 -040EEDC0 38610020 -C20EEE80 00000033 -83A10020 7C0802A6 -90010004 9421FF00 -BE810008 2C1D0000 -41820168 7FA3EB78 -480000A9 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B79 41820030 -7F63DB78 3D80803D -618C7074 7D8903A6 -4E800421 7F63DB78 -80820178 80840024 -7FC5F378 48000081 -3B400001 7FA3EB78 -7FC4F378 38A00000 -3D80803D 618C7070 -7D8903A6 4E800421 -2C030000 41820008 -3B400001 7FA3EB78 -48000041 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7C1B79 41820010 -80620128 1C9E0004 -7F83212E 4800009C -4E800021 6B624675 -6E637469 6F6E0000 -4E800021 6674636D -64000000 7C6C1B78 -7C892378 7CA62B78 -80EC000C 814C0000 -39000000 48000054 -1C680008 7D633A14 -806B0000 54600001 -40820020 1C630004 -7C83482E 806B0004 -7C635214 1CA60004 -7C64292E 48000020 -808B0004 7C845214 -7C832050 548401BA -64844800 90830000 -48000004 39080001 -806C0010 7C081800 -4180FFA8 4E800020 -2C1A0000 4182001C -807D0040 809D0000 -3D808032 618C8F50 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -80010028 00000000 +C21BFA24 00000008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +40820010 80620174 +80630028 48000008 +38600001 3D80801A +618C42F8 7D8903A6 +4E800421 00000000 C222C010 0000000C 810DB8E0 2C080000 41820050 7C671B78 @@ -9126,478 +6152,12 @@ C222B750 0000000F 3D808001 618C1E24 7D8903A6 4E800421 80610080 38800000 -7FE5FB78 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -38700000 00000000 -C2085A44 00000002 -83820028 7F9C0214 -801C0000 00000000 -04085B5C 80620028 -C2085A58 00000002 -80820014 1CA60004 -7C84282E 00000000 -C208602C 00000002 -80620098 80630050 -60000000 00000000 -040856E4 800200D0 -C20856E4 00000002 -80820014 7C84D02E -60000000 00000000 -C2017924 00000011 -2C03FFFF 40820078 -48000051 7C6802A6 -3C808043 60842058 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6C626669 6C650000 -4E800021 6572726F -723A2066 696C6520 -25732064 6F657320 -6E6F7420 65786973 -740A0000 93E10008 -60000000 00000000 -C2085614 00000002 -80820010 7C84D82E -60000000 00000000 -04085760 80020010 -C21692DC 00000002 -80620058 7C630214 -60000000 00000000 -C21692B0 00000002 -80620058 7C630214 -60000000 00000000 -C2169258 00000002 -80620058 7C632214 -60000000 00000000 -C2169284 00000002 -80620058 7C630214 -60000000 00000000 -C20703A8 0000001C -7C0802A6 90010004 -9421FF00 BE810008 -801F0004 8062000C -1C000004 7C63002E -881F0619 1C000010 -7C630214 8283000C -2C140000 40820078 -807F0004 8082005C -1C630008 7C63202E -881F0619 1C000018 -7C630214 80630014 -4800005D 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 41820038 -80630004 2C030000 -4182002C 80630000 -BA810008 80010104 -38210100 7C0803A6 -7C601B78 3D808007 -618C03B8 7D8903A6 -4E800420 7E83A378 -48000014 4E800021 -6D657843 6F737475 -6D650000 BA810008 -80010104 38210100 -7C0803A6 7C601B78 -60000000 00000000 -C20749E8 00000021 -7C0802A6 90010004 -9421FF00 BE810008 -801F0004 8062000C -1C000004 7C63002E -881F0619 1C000010 -7C630214 8283000C -2C140000 40820090 -807F0004 8082005C -1C630008 7C63202E -881F0619 1C000018 -7C630214 80630014 -48000099 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 41820050 -80630000 2C030000 -41820044 389F05AC -38A00000 38DF05EC -38FF203C 3D808007 -618C487C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 3D808007 -618C4A04 7D8903A6 -4E800420 807F010C -389F05AC 7E85A378 -BA810008 80010104 -38210100 7C0803A6 -3D808007 618C49F4 -7D8903A6 4E800420 -4E800021 6D657843 -6F737475 6D650000 -60000000 00000000 -04085674 1F800010 -040856BC 3B9C0010 -C2085680 00000002 -8362000C 7F7BD214 -60000000 00000000 -0408586C 1C040010 -04085864 8002000C -040857A8 80A2005C -040857C0 80A2005C -C213C384 00000040 -7C7C1B78 83DC002C -887E000C 3D808003 -618C2330 7D8903A6 -4E800421 3D808016 -618C9238 7D8903A6 -4E800421 889E0619 -7C041800 40800008 -48000014 3D808013 -618CC46C 7D8903A6 -4E800420 7C0802A6 -90010004 9421FF00 -BE810008 881E0004 -8062000C 1C000004 -7C63002E 881E0619 -1C000010 7C630214 -8363000C 807E0004 -8082005C 1C630008 -7C63202E 881E0619 -1C000018 7C630214 -83230014 7F23CB78 -48000121 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 40820114 -3C60803D 606305B4 -1C1B0004 7F43002E -2C1A0000 418200FC -7F23CB78 7F44D378 -3D808038 618C0358 -7D8903A6 4E800421 -7C7A1B79 807E010C -80630048 80630004 -3B030004 3C608045 -60639080 3D808037 -618CABC8 7D8903A6 -4E800421 907E2244 -7F43D378 3D808037 -618C0E44 7D8903A6 -4E800421 907E223C -3D808007 618C4148 -7D8903A6 4E800421 -38600001 881E2225 -50602EB4 981E2225 -3D808007 618C4170 -7D8903A6 4E800421 -7F83E378 809E223C -38BE2240 3D808007 -618C5650 7D8903A6 -4E800421 38DE2240 -38E60000 7F65DB78 -389E2248 7F03C378 -3D808007 618C487C -7D8903A6 4E800421 -7FC3F378 3D808009 -618CDC54 7D8903A6 -4E800421 4800001C -4E800021 6D657843 -6F737475 6D650000 -38600000 907E223C -BA810008 80010104 -38210100 7C0803A6 -3D808013 618CC474 -7D8903A6 4E800420 -60000000 00000000 -C205FE90 00000002 -8062001C 80030014 -60000000 00000000 -C205B4F0 0000000B -38A00000 38630008 -80C20160 1CE5000C -7C87192E 38A50001 -7C053000 4180FFF0 -38A00000 38800000 -80620084 1CE50004 -7C87192E 38A50001 -7C053000 4180FFF0 -3D808005 618CB5D4 -7D8903A6 4E800420 -60000000 00000000 -040672B0 8002001C -0406739C 8002001C -0405BED8 80C2001C -0405B4EC 8062001C -04067334 8062001C -04067384 9421FFE4 -C2067430 00000018 -901F0008 80610018 -48000029 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -80820084 1CBE0004 -7C64292E 48000090 -4E800021 65666642 -65686176 696F7254 -61626C65 00000000 -4800004D 7C6802A6 -7FC4F378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -4572726F 723A2065 -66666563 74206669 -6C652025 64206E6F -74206C6F 61646564 -0A000000 00000000 -04067440 3821001C -040673DC 38610018 -04067434 80010020 -040BE8B8 80020018 -04068F38 80020018 -C20856D0 00000002 -80620018 7C63F8AE -7C630774 00000000 -04087530 80020018 -040325F8 80620008 -C2032634 00000002 -83E20008 3BFFFFE0 -60000000 00000000 -040325D8 80020008 -04031CCC 80020008 -04031CF4 80020008 -04031D48 80020008 -04031D70 80020008 -04031D48 80020008 -C2036E34 00000002 -80620008 3803FFE0 -60000000 00000000 -C2036F5C 00000002 -83C20008 3BDEFFE0 -60000000 00000000 -C2031AE8 00000002 -83E20008 3BFFFFE0 -60000000 00000000 -C20672B4 00000002 -81820160 398C0001 -7C036000 00000000 -C20673A0 00000002 -81820160 398C0001 -7C1E6000 00000000 -04266AA0 8002014C -04266B10 8002014C -04266B50 8002014C -042609D8 8002014C -C2160450 00000002 -8182014C 7C006000 -60000000 00000000 -C2160464 00000002 -8182014C 7C006000 -60000000 00000000 -C2160428 00000002 -8182014C 7C006000 -60000000 00000000 -C225FE4C 00000002 -81820150 398C0001 -7C046000 00000000 -C2026E8C 00000002 -8182014C 7C036000 -60000000 00000000 -C2023064 00000002 -8182014C 7C036000 -60000000 00000000 -0406FD08 83A2014C -040EF070 80620120 -040EE538 80820124 -040EE53C 80A20120 -040EEE70 8002011C -040EEDA4 80020124 -040EEDD4 80020118 -040EEE10 1C1F0010 -040EECCC 1FA00010 -040EEDEC 80020120 -040EED88 80020114 -C20EE528 00000013 -7C0802A6 90010004 -9421FF00 BE810008 -83E2014C 38600004 -3D808016 618C9238 -7D8903A6 4E800421 -7C7E1B78 83A20124 -83820120 3B600000 -38000000 901D0000 -3A800000 1C7B0004 -7EA3E02E 2C150000 -4182001C 90150000 -90150004 3A940001 -3AB50008 7C14F000 -4180FFEC 3B7B0001 -3BBD0004 7C1BF800 -4180FFC0 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -040EECA0 80020118 -040EED24 8002011C -040EEC50 80020114 -040F16E0 80A20124 -040F10B0 80820124 -040F13FC 80820124 -040F15E4 80820124 -040F11B8 80820124 -040F12D4 80820124 -041093D4 80620124 -040EFD94 80820124 -0409D4E0 80820124 -C20EF118 00000002 -56A4103A 80620120 -7C63202E 00000000 -040EF388 80620120 -040F0FF4 80620124 -040F0BA0 80820124 -040EFC88 80820124 -040EFB7C 80820124 -040F14E8 80620124 -040F0DC8 80820124 -040F1100 80620124 -0409D828 80820124 -040EFEB0 80820124 -0409D080 80820124 -040F0740 80820124 -040EFA70 80820124 -040F084C 80820124 -0409D92C 80820124 -040F121C 80620124 -0409DB5C 80820124 -040F00E8 80820124 -040F01F4 80820124 -040F0CAC 80820124 -0409D3C8 80820124 -040F040C 80820124 -0409D2B0 80820124 -040F0300 80820124 -040F0ED4 80820124 -0409DA44 80820124 -040F0528 80820124 -040EFFCC 80820124 -0409D710 80820124 -040F0634 80820124 -040F0A84 80820124 -0409D198 80820124 -040F0968 80820124 -0409D5F8 80820124 -040F1340 80620124 -040EEB20 80620124 -0410B554 80620124 -0410B398 80620124 -04109528 80620124 -0410A110 80C20124 -04109F40 80C20124 -040EEB04 80620124 -0410B398 80620124 -04108EAC 80620124 -04108DC4 80620124 -0410B398 80620124 -04109448 80620124 -041093A4 80620124 -041093A4 80620124 -C212CD18 00000002 -80620098 80630070 -60000000 00000000 -C212CD30 00000002 -80620098 80630070 -60000000 00000000 -C212CD48 00000002 -80620098 80630070 -60000000 00000000 -C212CD60 00000002 -80620098 80630070 -60000000 00000000 -C212CD78 00000002 -80620098 80630070 -60000000 00000000 -C212CD90 00000002 -80820098 80840070 -60000000 00000000 -C212CDBC 00000002 -80620098 80630070 -60000000 00000000 -C21092E4 00000002 -80620098 80630020 -60000000 00000000 -C21092FC 00000002 -80620098 80630020 -60000000 00000000 -C2109314 00000002 -80620098 80630020 -60000000 00000000 -C210932C 00000002 -80620098 80630020 -60000000 00000000 -C2109344 00000002 -80620098 80630020 -60000000 00000000 -C210935C 00000002 -80820098 80840020 -60000000 00000000 -C2109388 00000002 -80620098 80630020 -60000000 00000000 -C210932C 00000002 -80620098 80630020 -60000000 00000000 -C20F587C 00000002 -80820098 80840020 -60000000 00000000 -C20F1058 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C20F13A4 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C20F154C 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C2070258 00000005 -81620118 819C2238 -1D8C0004 7D6C582E -899C0619 1D8C0010 -7D6B6214 800B000C -60000000 00000000 -C20F1164 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C20F1280 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 +7FE5FB78 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38700000 00000000 04015D9C 80020184 04015C00 80020184 04015BC0 80620184 @@ -9665,18 +6225,6 @@ C20159B4 00000018 04015984 2C190007 04015B94 2C1C0007 04015914 83E20184 -C20179B4 00000002 -8182014C 7C036000 -60000000 00000000 -C20179F0 00000002 -8182014C 7C1D6000 -60000000 00000000 -C2017A08 00000002 -8182014C 7C006000 -60000000 00000000 -C2017A38 00000002 -8182014C 7C1A6000 -60000000 00000000 C237C050 0000000C 7FECFB78 48000040 806C0004 5463013E @@ -9690,49 +6238,6 @@ D03D0034 48000010 4082FFC0 3D808037 618CC0A8 7D8903A6 4E800420 00000000 -C2219230 00000004 -80820178 80840008 -8084006C 1C630004 -7C63202E 4E800020 -60000000 00000000 -C20BEC18 00000002 -81820178 818C000C -800C0098 00000000 -040BEBD0 80020078 -C2160438 00000003 -8082006C 1C630004 -7C63202E 4E800020 -60000000 00000000 -C2176C40 00000004 -80820070 7C1C20AE -3D808017 618C6C8C -7D8903A6 4E800420 -60000000 00000000 -0417A890 80020074 -C2160400 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -8182014C 7C036000 -41810014 80820080 -1C630004 7C63202E -48000008 3860FFFF -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C20BE938 00000002 -81820178 818C000C -800C009C 00000000 -040C0AB4 4800003C -040C09D0 48000040 -C2168C6C 00000008 -8182014C 398CFFFC -7C036000 41810020 -8082007C 1C630004 -7C63202E 3D808002 -618C43F4 7D8903A6 -4E800421 8001000C -38210008 7C0803A6 -4E800020 00000000 C2026680 0000000E 38600000 80E20090 7CA82B78 7C892378 @@ -10413,452 +6918,6 @@ C202766C 00000002 C20269DC 00000002 83020060 8338000C 83180010 00000000 -C21647FC 00000004 -80820178 80840008 -80840050 1C630002 -7C63222E 4E800020 -60000000 00000000 -C226B40C 00000023 -2C041388 41800108 -7C0802A6 90010004 -9421FF00 BE810008 -7C7E1B78 3BA4EC78 -3C608049 6063E6C8 -83830088 80620178 -80630028 8063000C -1C9C0008 7F632214 -807B0000 7C1D1800 -40800028 807B0004 -1C9D0002 7C63222E -80820088 80840014 -3863FF13 1C630004 -7FC3212E 4800008C -48000051 7C6802A6 -7FA4EB78 7F85E378 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 4572726F -723A204D 78447420 -646F6573 206E6F74 -20636F6E 7461696E -20697465 6D202564 -20666F72 20737461 -67652025 640A0000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 3CA0804A -60000000 00000000 -C21C60C8 0000002B -80610014 7C0802A6 -90010004 9421FF00 -BE810008 7C7D1B78 -3C608049 6063E6C8 -83830088 3B400000 -7FA3EB78 48000075 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820034 7F63DB78 -3D80803D 618C7074 -7D8903A6 4E800421 -7F63DB78 80820178 -8084002C 1CBC0004 -7C84282E 4800003D -3B400001 7FA3EB78 -7F84E378 38A00001 -3D80803D 618C7070 -7D8903A6 4E800421 -7F5A1B78 48000084 -4E800021 67724675 -6E637469 6F6E0000 -7C6C1B78 7C892378 -80EC000C 814C0000 -39000000 4800004C -1C680008 7D633A14 -806B0000 54600001 -40820018 1C830004 -806B0004 7C635214 -7C64492E 48000020 -808B0004 7C845214 -7C832050 548401BA -64844800 90830000 -48000004 39080001 -806C0010 7C081800 -4180FFB0 4E800020 -2C1A0000 4182001C -807D0040 809D0000 -3D808032 618C8F50 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -80610014 00000000 -C22599EC 00000021 -7C0802A6 90010004 -9421FF00 BE810008 -83820100 83620154 -7F63DB78 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -3BA00000 3A800000 -1C740020 7C83E214 -80640004 2C030000 -41800028 8864000A -3D808016 618C4330 -7D8903A6 4E800421 -2C030000 4182000C -7E9DF1AE 3BBD0001 -3A940001 7C14D800 -4180FFC0 2C1D0000 -4082002C 7F65DB78 -48000014 1C850020 -7C84E214 38600000 -90640004 38A5FFFF -2C050000 4080FFE8 -4BFFFF8C 7FA3EB78 -3D808038 618C0580 -7D8903A6 4E800421 -7FE3F0AE 1C9F0020 -7C84E214 3860FFFF -90640004 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 -7FE3FB78 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C225B39C 00000003 -80C20178 80C60004 -80C60000 38C60004 -60000000 00000000 -C225BC08 00000003 -80820100 1C630020 -7C632214 8063001C -4E800020 00000000 -042251A4 80020104 -04225204 80020104 -042251C8 80020104 -040569FC 80820110 -04056A2C 80A20110 -04056A64 80A20110 -04056A9C 80A20110 -04056AD4 80A20110 -04056B0C 80A20110 -04056B44 80A20110 -04259FE0 88030009 -0425B270 92FF00A0 -0425B274 881F00A8 -0425B294 981F00A8 -0425B2A8 889F00A9 -0425B1E8 3BFF0220 -0425B1D0 92DF03A0 -0425B044 92FC01A0 -0425B048 881C01A8 -0425B068 981C01A8 -0425B07C 889C01A9 -0425AFB0 3B9F0160 -0425AEDC 901B0020 -0425AEE0 881B0028 -0425AEFC 807B0020 -0425AF20 881B0029 -0425AF28 807B0020 -0425BB40 8004001C -C225A0F4 0000000A -81820154 7C036000 -4182002C 398CFFFF -7C036000 41820020 -1C030020 7C7F0214 -88630009 7C630774 -2C03FFFF 41820008 -48000014 3D808025 -618CA1D8 7D8903A6 -4E800420 807E0000 -60000000 00000000 -C225A62C 00000002 -81820154 7C056040 -60000000 00000000 -C2259FB4 00000002 -81820154 7C1E6000 -60000000 00000000 -C2259C4C 0000000A -81820154 7C036000 -41820020 398CFFFF -7C036000 41820024 -3D808025 618C9C84 -7D8903A6 4E800420 -3D808025 618C9C64 -7D8903A6 4E800420 -3D808025 618C9C74 -7D8903A6 4E800420 -60000000 00000000 -C2259C90 00000002 -81820154 7C036000 -60000000 00000000 -C2259E44 00000002 -81820154 7C036040 -60000000 00000000 -0425A0D4 80620154 -0425AA10 80E20154 -0425B580 80020154 -0425A578 83E20100 -0425A4C4 83E20100 -04259FCC 80020100 -04259CA0 80620100 -0425BB30 80820100 -0425A0A4 83E20100 -04259E54 80620100 -C225A9FC 00000002 -7C7C1B78 83E20100 -60000000 00000000 -C225A53C 00000002 -80620154 7C1E1800 -60000000 00000000 -0425A5A0 1C050020 -0425A634 1C050020 -0425A738 1C000020 -0425A7B8 1C000020 -0425A540 3BFF0020 -04259FC4 1C9E0020 -04259C98 1C030020 -0425AD6C 1C170020 -0425AD9C 3AD60020 -0425B0E8 3B9C0020 -0425B314 3BFF0020 -0425AF88 3B7B0040 -0425BB38 1C000020 -0425A0B8 1C050020 -0425A0F8 1C030020 -0425A27C 1C840020 -04259E4C 1C030020 -C2027A14 00000002 -80620108 7C630214 -88A30000 00000000 -04026EF0 80020108 -C20279E0 00000002 -80620108 7C630214 -88030001 00000000 -C21C17A8 00000002 -8082010C 7C840214 -80840000 00000000 -041C0784 8062010C -041C06D4 8002010C -041C1EC8 8002010C -C21C46A8 00000002 -8062010C 7C630214 -80630000 00000000 -041C0FD8 8002010C -041C0F8C 8002010C -041C0828 8082010C -041C2F60 8002010C -041C3154 8002010C -041C302C 8002010C -C21C28F0 00000002 -8382010C 3B9CFFCC -60000000 00000000 -C2223930 00000003 -3D80803D 618C7068 -7D8903A6 4E800421 -7C7F1B78 00000000 -C225ACA0 000000B3 -806DB5F4 480004DD -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -41820568 906D4A08 -7C0802A6 90010004 -9421FF00 BE810008 -7C7E1B78 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 807E000C -3D808037 618C0E44 -7D8903A6 4E800421 -7C7D1B78 7E83A378 -888DC1A9 7FA5EB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00004 -38C00082 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -3C808022 6084EAE0 -38A00004 3D808038 -618CFD54 7D8903A6 -4E800421 7FA3EB78 -809E0010 38A00000 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 82DD0010 -7EC3B378 C022C9C0 -3D808036 618CF8BC -7D8903A6 4E800421 -7EC3B378 3D808037 -618C0928 7D8903A6 -4E800421 82D60008 -2C160000 4082FFCC -82820100 3AA00000 -8074001C 3D808016 -618C4430 7D8903A6 -4E800421 2C030000 -4182000C 38000002 -48000008 38000001 -98140008 3A940020 -3AB50001 80620154 -7C151800 4180FFC4 -3AC00000 82E20100 -831D0010 80620154 -3863FFFF 7C161800 -418201A0 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 807E0000 -3D808037 618C0E44 -7D8903A6 4E800421 -7C751B78 7E83A378 -888DC1A9 7EA5AB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00004 -38C00083 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -3C808022 6084EAE0 -38A00003 3D808038 -618CFD54 7D8903A6 -4E800421 7EA3AB78 -809E0004 80BE0008 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 7EA3AB78 -7F04C378 4800029D -92B70000 88170008 -2C000001 418200A8 -418000AC 7EA3AB78 -88970009 C022C9C0 -3D808036 618CF8BC -7D8903A6 4E800421 -38760002 6C638000 -90610084 3C604330 -90610080 C822C9B8 -C8010080 EC200828 -7EA3AB78 38800010 -3D808036 618CF7B0 -7D8903A6 4E800421 -7EA3AB78 3D808037 -618C0928 7D8903A6 -4E800421 7EA3AB78 -38800006 38A00400 -3CC08036 60C6414C -38E00006 39000000 -39200000 4CC63182 -3D808036 618C4C08 -7D8903A6 4E800421 -48000028 38000000 -98170008 7EA3AB78 -38800010 3D808037 -618C1D9C 7D8903A6 -4E800421 48000004 -3AD60001 3AF70020 -83180008 2C180000 -4082FE44 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 806DB5F8 -80630010 3D808037 -618C0E44 7D8903A6 -4E800421 7C751B78 -7E83A378 888DC1A9 -7EA5AB78 3D808039 -618C0A70 7D8903A6 -4E800421 7E83A378 -3C808039 60841070 -38A00004 38C00083 -3D808039 618C069C -7D8903A6 4E800421 -7E83A378 3C808022 -6084EAE0 38A00004 -3D808038 618CFD54 -7D8903A6 4E800421 -7EA3AB78 38800000 -38A00000 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -7FA3EB78 38810080 -80A20154 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 7EA3AB78 -80810080 480000C5 -7EA3AB78 C022C9C0 -3D808036 618CF8BC -7D8903A6 4E800421 -7EA3AB78 38800010 -C022C9F8 3D808036 -618CF7B0 7D8903A6 -4E800421 7EA3AB78 -3D808037 618C0928 -7D8903A6 4E800421 -7EA3AB78 38800006 -38A00400 3CC08036 -60C6414C 38E00000 -39000000 39200000 -4CC63182 3D808036 -618C4C08 7D8903A6 -4E800421 80620100 -80820154 3884FFFF -1C840020 7EA4192E -BA810008 80010104 -38210100 7C0803A6 -3D808025 618CB31C -7D8903A6 4E800420 -4E800021 6D65784D -61704461 74610000 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -3D808000 618CC2F8 -7D8903A6 4E800421 -3D808037 618CC444 -7D8903A6 4E800421 -7C7D1B78 3C809000 -60840008 3D808037 -618CAE90 7D8903A6 -4E800421 387D0000 -389E0000 3D808037 -618CCC90 7D8903A6 -4E800421 387F0000 -389D0000 3D808037 -618C1C68 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 4E800020 -38600000 906D4A08 -38600004 00000000 -C225A014 00000004 -808D4A08 2C040000 -4182000C A3BC0000 -48000008 83A10024 -60000000 00000000 -C2259F64 00000004 -80ED4A08 2C070000 -4182000C 80A70014 -48000008 80A60038 -60000000 00000000 -C2173860 00000004 -2C03001A 41800014 -3D808017 618C38EC -7D8903A6 4E800420 -5463063E 00000000 C21A50AC 00000002 806200D4 4E800020 60000000 00000000 @@ -11103,19 +7162,6 @@ C200561C 00000012 BA810008 80010104 38210100 7C0803A6 4E800020 00000000 -040D6968 80020050 -040D69D0 80020054 -040D6A20 80020054 -040966A8 80020054 -040D68CC 80020038 -04096704 8002003C -040D6830 80020048 -04096800 8002004C -04096878 8002004C -0409655C 80020040 -0409660C 80020040 -040967C4 80020044 -0409677C 80020044 C20056A8 00000005 2C030037 41820018 81820060 818C0004 @@ -11988,263 +8034,6 @@ C23D706C 0000000C 80010104 38210100 7C0803A6 4E800020 60000000 00000000 -C202313C 00000002 -80820158 38840001 -1C042710 00000000 -C2088170 0000001F -3B830000 3CA068DB -60A58BAD 7D3D2896 -7D296670 2C090000 -408200D0 2C1D1388 -418000C8 3CA068DB -60A58BAD 7CBD2896 -7CA95E70 7FA5FE70 -7CA54850 1CA51388 -7FA5E850 813C0004 -2C090004 41820008 -48000068 813C2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893C000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7FA9EA14 48000004 -7F83E378 7FA4EB78 -60000000 00000000 -C2088204 0000001E -3CA068DB 60A58BAD -7D3E2896 7D296670 -2C090000 408200D0 -2C1E1388 418000C8 -3CA068DB 60A58BAD -7CBE2896 7CA95E70 -7FC5FE70 7CA54850 -1CA51388 7FC5F050 -813F0004 2C090004 -41820008 48000068 -813F2238 81420008 -39600000 48000048 -898A0000 7D8C0774 -2C0CFFFF 4182000C -7C0C4800 41820020 -898A0001 7D8C0774 -2C0CFFFF 41820018 -7C0C4800 41820008 -4800000C 7D695B78 -48000034 394A0003 -396B0001 8182014C -7C0B6000 4180FFB4 -48000000 893F000C -3D408045 614A3080 -1D290E90 7D295214 -81290004 81420020 -1D290010 7D2950AE -1D292710 7FC9F214 -48000004 881F2225 -60000000 00000000 -C20884B0 0000001E -3BA30000 3CA068DB -60A58BAD 7D242896 -7D296670 2C090000 -408200D0 2C041388 -418000C8 3CA068DB -60A58BAD 7CA42896 -7CA95E70 7C85FE70 -7CA54850 1CA51388 -7C852050 813D0004 -2C090004 41820008 -48000068 813D2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893D000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7C892214 48000004 -7FA3EB78 00000000 -C20CBCB4 0000001D -80840014 3D0068DB -61088BAD 7D244096 -7D296670 2C090000 -408200CC 2C041388 -418000C4 3D0068DB -61088BAD 7D044096 -7D095E70 7C88FE70 -7D084850 1D081388 -7C882050 813F0004 -2C090004 41820008 -48000068 813F2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893F000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7C892214 00000000 -C226AEBC 00000020 -3CE068DB 60E78BAD -7D243896 7D296670 -2C090000 408200E0 -2C041388 418000D8 -811D0518 2C080000 -418200CC 8108002C -3CE068DB 60E78BAD -7CE43896 7CE95E70 -7C87FE70 7CE74850 -1CE71388 7C872050 -81280004 2C090004 -41820008 48000068 -81282238 81420008 -39600000 48000048 -898A0000 7D8C0774 -2C0CFFFF 4182000C -7C0C4800 41820020 -898A0001 7D8C0774 -2C0CFFFF 41820018 -7C0C4800 41820008 -4800000C 7D695B78 -48000034 394A0003 -396B0001 8182014C -7C0B6000 4180FFB4 -48000000 8928000C -3D408045 614A3080 -1D290E90 7D295214 -81290004 81420020 -1D290010 7D2950AE -1D292710 7C892214 -48000004 7C832378 -60000000 00000000 -C226AF2C 00000020 -3BA40000 3CE068DB -60E78BAD 7D3D3896 -7D296670 2C090000 -408200E0 2C1D1388 -418000D8 81030518 -2C080000 418200CC -8108002C 3CE068DB -60E78BAD 7CFD3896 -7CE95E70 7FA7FE70 -7CE74850 1CE71388 -7FA7E850 81280004 -2C090004 41820008 -48000068 81282238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -8928000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7FA9EA14 48000004 -60000000 00000000 -C226AFC0 00000020 -3BA40000 3CE068DB -60E78BAD 7D3D3896 -7D296670 2C090000 -408200E0 2C1D1388 -418000D8 81030518 -2C080000 418200CC -8108002C 3CE068DB -60E78BAD 7CFD3896 -7CE95E70 7FA7FE70 -7CE74850 1CE71388 -7FA7E850 81280004 -2C090004 41820008 -48000068 81282238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -8928000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7FA9EA14 48000004 -60000000 00000000 -C2088548 0000001E -3BA30000 3CA068DB -60A58BAD 7D242896 -7D296670 2C090000 -408200D0 2C041388 -418000C8 3CA068DB -60A58BAD 7CA42896 -7CA95E70 7C85FE70 -7CA54850 1CA51388 -7C852050 813D0004 -2C090004 41820008 -48000068 813D2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893D000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7C892214 48000004 -7FA3EB78 00000000 0435E6E4 901F0070 0435E6E0 3800FFFF 0435ECFC 901E0070 @@ -12252,251 +8041,6 @@ C2088548 0000001E 04360A38 80160070 04360A3C 2C00FFFF 0435E918 901F0070 -C21BF200 00000005 -80620150 3D808038 -618C0580 7D8903A6 -4E800421 80820000 -1C63001C 7C632214 -8BA300DD 00000000 -C2075124 00000005 -7FC3F378 38800002 -7FE5FB78 3D80803D -618C7098 7D8903A6 -4E800421 809E0004 -60000000 00000000 -C2075188 00000005 -7FC3F378 38800003 -7FE5FB78 3D80803D -618C7098 7D8903A6 -4E800421 809E0004 -60000000 00000000 -C20751F0 00000005 -7FC3F378 7FA4EB78 -7FE5FB78 3D80803D -618C7098 7D8903A6 -4E800421 809E0004 -60000000 00000000 -C207B4C0 00000082 -7C0802A6 90010004 -9421FF00 BE810008 -83FD0000 807D0004 -8082005C 1C630008 -7C63202E 881D0619 -1C000018 7C630214 -83C30014 7FC3F378 -48000271 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 41820394 -3B830008 801C0000 -2C000000 41820384 -801C0000 901D23F4 -1C600004 3D808037 -618CF1E4 7D8903A6 -4E800421 907D23F8 -3A800000 4800020C -807C0004 1C140004 -7EA3002E 38600030 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C761B78 807D23F8 -1C140004 7EC3012E -3C608045 60639080 -3D808037 618CABC8 -7D8903A6 4E800421 -9076000C 80750000 -3D808037 618C0E44 -7D8903A6 4E800421 -90760000 80150004 -90160004 3D808007 -618C4148 7D8903A6 -4E800421 3D808007 -618C4170 7D8903A6 -4E800421 7FE3FB78 -80960000 38B60008 -3D808007 618C5650 -7D8903A6 4E800421 -38D60008 7CC73378 -38A00000 38960010 -38750010 3D808007 -618C487C 7D8903A6 -4E800421 3AE00000 -48000094 8075000C -1C170004 7F23002E -3B1D02F0 807D03E0 -1C030018 7F180214 -807D03E0 38630001 -907D03E0 2C03000A -40800128 80760000 -38810080 80B90000 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38980004 80B90008 -3D808000 618CFD48 -7D8903A6 4E800421 -38000000 90180000 -38790004 38980004 -3D808001 618C1710 -7D8903A6 4E800421 -3AF70001 80150008 -7C170000 4180FF68 -3D808021 618CB2D8 -7D8903A6 4E800421 -3AE00000 48000074 -8075001C 1C170004 -7F23002E 3B1D1670 -887D166C 1C030028 -7F180214 887D166C -38630001 987D166C -2C03000B 408000D0 -80790000 90780024 -80790000 809D05E8 -1C630010 7C63202E -90780010 C0390004 -D0380000 C0390008 -D0380004 C039000C -D0380008 C0390010 -D038000C 3AF70001 -80150018 7C170000 -4180FF88 3A940001 -801C0000 7C140000 -4180FDF0 48000150 -4E800021 6D657843 -6F737475 6D650000 -480000C5 7C6802A6 -8082000C 801D0004 -1C000004 7C84002E -881D0619 1C000010 -7C840214 80840000 -3D808034 618C56A8 -7D8903A6 4E800421 -48000081 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4800009D -7C6802A6 8082000C -801D0004 1C000004 -7C84002E 881D0619 -1C000010 7C840214 -80840000 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2063 -6F737475 6D652025 -73207573 6573206D -6F726520 7468616E -20313020 64796E61 -6D696373 0A000000 -4E800021 6572726F -723A2063 6F737475 -6D652025 73207573 -6573206D 6F726520 -7468616E 20313120 -64796E61 6D696373 -20686974 730A0000 -38000000 901D23F4 -901D23F8 BA810008 -80010104 38210100 -7C0803A6 8001002C -60000000 00000000 -C206DBD0 00000016 -7C0802A6 90010004 -9421FF00 BE810008 -807E23F4 2C030000 -41820080 3A800000 -48000058 807E23F8 -1C140004 7EC3002E -3C608045 60639080 -8096000C 3D808037 -618CAD20 7D8903A6 -4E800421 80760000 -3D808037 618C1590 -7D8903A6 4E800421 -7EC3002E 3D808037 -618CF1B0 7D8903A6 -4E800421 3A940001 -801E23F4 7C140000 -4180FFA4 807E23F8 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -387F0000 00000000 -C2080DC8 0000001D -7C0802A6 90010004 -9421FF00 BE810008 -3A800000 480000B0 -807F23F8 1C140004 -7EA3002E 82F50000 -2C170000 41820094 -807F05E8 80150004 -1C000010 7EC3002E -7EC3B378 3D808037 -618C32E8 7D8903A6 -4E800421 38760044 -38970044 3D808034 -618C21D0 7D8903A6 -4E800421 80770014 -64630380 90770014 -7EE3BB78 3D808037 -618C32E8 7D8903A6 -4E800421 7F83E378 -3D808039 618C0EB8 -7D8903A6 4E800421 -7C651B78 7EE3BB78 -38800000 38C00000 -3D808037 618C09DC -7D8903A6 4E800421 -3A940001 801F23F4 -7C140000 4180FF4C -BA810008 80010104 -38210100 7C0803A6 -7FE3FB78 00000000 -C2080BCC 0000001D -7C0802A6 90010004 -9421FF00 BE810008 -3A800000 480000B0 -807F23F8 1C140004 -7EA3002E 82F50000 -2C170000 41820094 -807F05E8 80150004 -1C000010 7EC3002E -7EC3B378 3D808037 -618C32E8 7D8903A6 -4E800421 38760044 -38970044 3D808034 -618C21D0 7D8903A6 -4E800421 80770014 -64630380 90770014 -7EE3BB78 3D808037 -618C32E8 7D8903A6 -4E800421 7F83E378 -3D808039 618C0EB8 -7D8903A6 4E800421 -7C651B78 7EE3BB78 -38800000 38C00000 -3D808037 618C09DC -7D8903A6 4E800421 -3A940001 801F23F4 -7C140000 4180FF4C -BA810008 80010104 -38210100 7C0803A6 -7FE3FB78 00000000 -C209CB68 00000006 -7C040000 41800014 -3D808009 618CCF6C -7D8903A6 4E800420 -3D808009 618CCB70 -7D8903A6 4E800420 -60000000 00000000 C21A4C98 00000011 818200F8 816DC018 39400000 38E00000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index d5860068..9c0a6ebf 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5811,2989 +5811,15 @@ C20186A8 0000000C 02000000 804D37E4 00000000 00000000 043BA3AC 0064B400 -041A6440 38600008 -C21A6454 00000005 -80820178 80840008 -80840068 1C630004 -7C63202E 3D80801A -618C6468 7D8903A6 -4E800420 00000000 -C21604F0 00000005 -9421FFF8 2C03001A -41800018 38600000 -3D808016 618C054C -7D8903A6 4E800420 -2C040015 00000000 -C2160578 00000005 -9421FFF8 2C03001A -41800018 38600000 -3D808016 618C05D4 -7D8903A6 4E800420 -2C040015 00000000 -C21A9C38 00000003 -80620178 80630008 -80630060 1C9F0004 -7C63202E 00000000 -C21A9C48 00000003 -80620178 80630008 -80630064 1C9F0004 -7C63202E 00000000 -C21A9C28 00000003 -80620178 80630008 -8063005C 1C9F0004 -7C63202E 00000000 -C21A693C 00000044 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 3A800000 -83A200B0 80620178 -80630008 8063000C -1C9F0003 7FC32214 -3A800000 48000134 -887E0000 7C630774 -2C03FFFF 4182011C -1C830008 7C84E82E -2C040000 4082010C -3C608043 60632058 -889E0000 1C840004 -80A20078 7C84282E -80840008 3D808032 -618C5A50 7D8903A6 -4E800421 3C608043 -60632058 3D808032 -618C5B04 7D8903A6 -4E800421 3C808043 -60842058 7C632214 -48000159 7C8802A6 -3D808032 618C5A50 -7D8903A6 4E800421 -3C608043 60632058 -3D808033 618C796C -7D8903A6 4E800421 -2C03FFFF 4182004C -3C608043 60632058 -3D808001 618C6BE0 -7D8903A6 4E800421 -889E0000 1C840004 -80A20078 7C84282E -80840008 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -41820054 48000030 -887E0000 1C630004 -80820078 7C63202E -80830008 806DB0A4 -3D808038 618C0358 -7D8903A6 4E800421 -48000004 889E0000 -1C840008 7C64E92E -3A940001 3BDE0001 -2C140002 4180FECC -4800009C 48000061 -7C6802A6 889E0000 -1C840004 80A20078 -7C84282E 80840008 -7C852378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2025 -732E6461 7420646F -6573206E 6F742068 -61766520 73796D62 -6F6C2025 730A0000 -4E800021 2E646174 -00000000 BA810008 -80010104 38210100 -7C0803A6 00000000 -C2184294 0000000E -81620178 816B0008 -816B000C 7D9FF214 -898C00F4 1D8C0003 -7D6B6214 896B0000 -1D6B0004 81820178 -818C0008 818C0070 -7D6B602E 2C0B0000 -41820014 C3EB0018 -C3CB001C C3AB0020 -48000008 C0240074 -39600001 2C0B0000 -3C008018 6000429C -7C0903A6 4E800420 -60000000 00000000 -C2185DB4 00000050 -7C0802A6 90010004 -9421FF00 BE810008 -83A200B0 80620178 -80630008 8063000C -889F000D 1C840003 -7FC32214 3B400000 -48000178 887E0000 -7C630774 2C03FFFF -41820160 1C830008 -7C84E82E 2C040000 -40820150 3C608043 -60632058 889E0000 -1C840004 80A20078 -7C84282E 80840004 -3D808032 618C5A50 -7D8903A6 4E800421 -3C608043 60632058 -3D808032 618C5B04 -7D8903A6 4E800421 -3C808043 60842058 -7C632214 4800019D -7C8802A6 3D808032 -618C5A50 7D8903A6 -4E800421 3C608043 -60632058 3D808033 -618C796C 7D8903A6 -4E800421 2C03FFFF -41820070 3C608043 -60632058 3D808001 -618C6BE0 7D8903A6 -4E800421 7C741B78 -889E0000 1C840004 -80A20078 7C84282E -80840004 3D808038 -618C0358 7D8903A6 -4E800421 7C7C1B79 -41820094 7E83A378 -48000125 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B78 48000038 -887E0000 1C630004 -80820078 7C63202E -80830004 806DAF54 -3D808038 618C0358 -7D8903A6 4E800421 -7C7C1B78 3B600000 -48000004 889E0000 -1C840008 7F84E92E -889E0000 1C840004 -80620178 80630008 -80630070 7F64192E -3B5A0001 3BDE0001 -2C1A0002 4180FE88 -480000B4 48000061 -7C6802A6 889E0000 -1C840004 80A20078 -7C84282E 80840004 -7C852378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2025 -732E6461 7420646F -6573206E 6F742068 -61766520 73796D62 -6F6C2025 730A0000 -4E800021 2E646174 -00000000 4E800021 -676D496E 74726F45 -61737954 61626C65 -00000000 BA810008 -80010104 38210100 -7C0803A6 7F63DB78 -60000000 00000000 -C2185DFC 00000050 -7C0802A6 90010004 -9421FF00 BE810008 -838200B0 80620178 -80630008 8063000C -889D0010 1C840003 -7FE32214 3B200000 -48000178 887F0000 -7C630774 2C03FFFF -41820160 1C830008 -7C84E02E 2C040000 -40820150 3C608043 -60632058 889F0000 -1C840004 80A20078 -7C84282E 80840004 -3D808032 618C5A50 -7D8903A6 4E800421 -3C608043 60632058 -3D808032 618C5B04 -7D8903A6 4E800421 -3C808043 60842058 -7C632214 4800019D -7C8802A6 3D808032 -618C5A50 7D8903A6 -4E800421 3C608043 -60632058 3D808033 -618C796C 7D8903A6 -4E800421 2C03FFFF -41820070 3C608043 -60632058 3D808001 -618C6BE0 7D8903A6 -4E800421 7C741B78 -889F0000 1C840004 -80A20078 7C84282E -80840004 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820094 7E83A378 -48000125 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7A1B78 48000038 -887F0000 1C630004 -80820078 7C63202E -80830004 806DAF54 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B78 3B400000 -48000004 889F0000 -1C840008 7F64E12E -889F0000 1C840004 -80620178 80630008 -80630070 7F44192E -3B390001 3BFF0001 -2C190002 4180FE88 -480000B4 48000061 -7C6802A6 889F0000 -1C840004 80A20078 -7C84282E 80840004 -7C852378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2025 -732E6461 7420646F -6573206E 6F742068 -61766520 73796D62 -6F6C2025 730A0000 -4E800021 2E646174 -00000000 4E800021 -676D496E 74726F45 -61737954 61626C65 -00000000 BA810008 -80010104 38210100 -7C0803A6 7F63DB78 -60000000 00000000 -C2183C80 00000009 -81620178 816B0008 -816B000C 899C00F1 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0000 48000008 -C024006C 00000000 -C2183D2C 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0004 48000008 -C0240070 39600001 -2C0B0000 00000000 -C2184364 00000009 -81620178 816B0008 -816B000C 899F00F4 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C00B0000 48000008 -C003006C 00000000 -C2184420 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0004 48000008 -C0240070 39600001 -2C0B0000 00000000 -C2183DD0 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0008 48000008 -C0240074 39600001 -2C0B0000 00000000 -C2183E6C 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B000C 48000008 -C0240078 39600001 -2C0B0000 00000000 -C2183F08 0000000A -81620178 816B0008 -816B000C 89990000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0010 48000008 -C024007C 39600001 -2C0B0000 00000000 -C2184670 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0008 48000008 -C0240074 39600001 -2C0B0000 00000000 -C218470C 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B000C 48000008 -C0240078 39600001 -2C0B0000 00000000 -C21847A8 0000000A -81620178 816B0008 -816B000C 899C0000 -1D8C0003 7D6B6214 -896B0000 1D6B0004 -81820178 818C0008 -818C0070 7D6B602E -2C0B0000 4182000C -C02B0010 48000008 -C024007C 39600001 -2C0B0000 00000000 -C2023F50 00000002 -8182015C 7C036000 -60000000 00000000 -C2023F70 00000002 -8182015C 7C036000 -60000000 00000000 -C2023F90 00000002 -80820094 7C84002E -60000000 00000000 -C215ED1C 00000019 -7C0802A6 90010004 -9421FF00 BE810008 -80620178 80630014 -83C30004 83630008 -3BA00000 3B800000 -2C1B0000 4082000C -38600034 48000074 -1C7D0004 7C83F214 -A0640002 7F9C1A14 -3BBD0001 7C1DD800 -4180FFE8 7F83E378 -3D808038 618C0580 -7D8903A6 4E800421 -7C7A1B78 3BA00000 -3B800000 1C7D0004 -7C83F214 A0640002 -2C030000 41820014 -7F9C1A14 387CFFFF -7C1A1800 40810010 -3BBD0001 7C1DD800 -4180FFD4 A0640000 -987F0001 48000004 -BA810008 80010104 -38210100 7C0803A6 -8001001C 00000000 -041C2A48 4800007C -C21C24F8 00000032 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 7FE3FB78 -3D808022 618C519C -7D8903A6 4E800421 -80820178 80840028 -80840014 1C630008 -7F832214 831C0000 -837C0004 2C180000 -41820118 3B400000 -3B200000 1C7A0004 -7C83DA14 A0640002 -7F391A14 3B5A0001 -7C1AC000 4180FFE8 -7F23CB78 3D808038 -618C0580 7D8903A6 -4E800421 7C771B78 -3B400000 3B200000 -1C7A0004 7C83DA14 -A0640002 2C030000 -41820014 7F391A14 -3879FFFF 7C171800 -40810010 3B5A0001 -7C1AC000 4180FFD4 -A0640000 7C630734 -2C03FFFF 41820020 -907D0000 38600000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 4800004D -7C6802A6 389A0001 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 6572726F -723A2073 6F6E6720 -25642068 61732061 -6E20696E 76616C69 -64206964 0A000000 -7FE3FB78 7FC4F378 -7FA5EB78 BA810008 -80010104 38210100 -7C0803A6 7C0802A6 -60000000 00000000 -C22FF064 00000012 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60636D5C -80630000 48000055 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7F1B79 -41820040 38600002 -7FC4F378 38A0000E -38C0000F 38E00000 -3900000F 39200000 -39400013 3D80803A -618C611C 7D8903A6 -4E800421 4800000C -4E800021 62676D00 -BA810008 80010104 -38210100 7C0803A6 -3860000E 00000000 -C216E980 00000084 -7C0802A6 90010004 -9421FF00 BE810008 -3D80801C 618C5A94 -7D8903A6 4E800421 -2C03FFFF 418203E0 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -480003BD 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7F1B79 418203A8 -3860000E 3880000E -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 7C7E1B78 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -38800020 3D808000 -618CC160 7D8903A6 -4E800421 7FA6EB78 -7FC3F378 38800004 -3CA08037 60A5F1B0 -3D808039 618C0B68 -7D8903A6 4E800421 -7FC3F378 480001B5 -7C8802A6 38A00000 -3D808038 618CFD54 -7D8903A6 4E800421 -480002E5 7F6802A6 -38600002 38800001 -3D80803A 618C6754 -7D8903A6 4E800421 -7C7C1B78 939D0000 -38000001 981C0048 -C03B0000 D03C000C -C03B0004 D03C0010 -38000001 981C0049 -3D80801C 618C5A94 -7D8903A6 4E800421 -80820178 80840014 -8084000C 1C630004 -7C83202E 7F83E378 -C022E0C8 C042E0C8 -3D80803A 618C6B98 -7D8903A6 4E800421 -807F0000 3D808037 -618C0E44 7D8903A6 -4E800421 7C7C1B78 -7FC3F378 38800003 -7F85E378 3D808039 -618C0A70 7D8903A6 -4E800421 7FC3F378 -3C808039 60841070 -38A0000F 38C00000 -3D808039 618C069C -7D8903A6 4E800421 -7F83E378 809F0004 -38A00000 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -7F83E378 C022E0C8 -3D808036 618CF8BC -7D8903A6 4E800421 -7F83E378 3D808037 -618C0928 7D8903A6 -4E800421 3D808016 -618CAE50 7D8903A6 -4E800421 88030001 -5400CFFF 40820014 -88030000 5400FFFF -40820008 4800000C -C03B001C D03C003C -3C608036 6063A4A8 -80630000 3C80C03F -60840034 7C032000 -41820014 C03B0020 -C05C0038 EC21102A -D03C0038 7FC3F378 -4800000D 48000180 -4E800021 7C0802A6 -90010004 9421FF00 -BE810008 7C7F1B78 -83DF002C 83BF0028 -839E0000 48000129 -7F6802A6 7FA3EB78 -3D808037 618C0928 -7D8903A6 4E800421 -7FA3EB78 3D808037 -618C32E8 7D8903A6 -4E800421 7FA3EB78 -38810080 38A00002 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 38A10084 -3D808000 618CB1CC -7D8903A6 4E800421 -C03D002C C05B0014 -EC211024 C0410084 -EC21102A D03C0000 -C03D0030 C05B0014 -EC211024 C0410088 -EC211028 D03C0004 -C03D002C C05B0010 -EC2100B2 C05B0018 -EC2100B2 D03C0024 -C03D0030 C05B0010 -EC2100B2 C05B0018 -EC2100B2 D03C0028 -7FA3EB78 3D808000 -618CB09C 7D8903A6 -4E800421 2C030000 -40820030 7F83E378 -3D80803A 618C5CC4 -7D8903A6 4E800421 -7FE3FB78 3D808039 -618C0228 7D8903A6 -4E800421 48000004 -BA810008 80010104 -38210100 7C0803A6 -4E800020 4E800021 -43D70000 42280000 -3D851EB8 BF800000 -3C23D70A 40800000 -40800000 41600000 -C1600000 4E800021 -62676D00 BA810008 -80010104 38210100 -7C0803A6 3C808017 -60000000 00000000 -C21BFA24 00000008 -3C60801A 60635014 -80630000 3C804082 -60840010 7C032000 -40820010 80620174 -80630028 48000008 -38600001 3D80801A -618C42F8 7D8903A6 -4E800421 00000000 -C225DB80 0000001F -7C0802A6 90010004 -9421FF00 BE810008 -880DB655 2C000001 -408200C4 806DB8DC -2C030000 418200B8 -38600007 6C638000 -C822CA08 90610084 -3C604330 90610080 -C8410080 EC220828 -D0210084 3BE00000 -806DB620 38810080 -38BF0035 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630008 80630008 -C0210084 3D808035 -618CE800 7D8903A6 -4E800421 80610080 -80630018 80630008 -80630008 80630064 -C022E0E0 3D808036 -618C530C 7D8903A6 -4E800421 80610080 -3D808037 618C0928 -7D8903A6 4E800421 -3BFF0001 2C1F0005 -4180FF78 BA810008 -80010104 38210100 -7C0803A6 1C1F000C -60000000 00000000 -C2260DB4 0000001F -7C0802A6 90010004 -9421FF00 BE810008 -880DB655 2C000001 -408200C4 806DB8DC -2C030000 418200B8 -38600007 6C638000 -C822CA08 90610084 -3C604330 90610080 -C8410080 EC220828 -D0210084 3BE00000 -806DB620 38810080 -38BF0035 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630008 80630008 -C0210084 3D808035 -618CE800 7D8903A6 -4E800421 80610080 -80630018 80630008 -80630008 80630064 -C022E0E0 3D808036 -618C530C 7D8903A6 -4E800421 80610080 -3D808037 618C0928 -7D8903A6 4E800421 -3BFF0001 2C1F0005 -4180FF78 BA810008 -80010104 38210100 -7C0803A6 1C13000C -60000000 00000000 -C225D5AC 00000078 -7C0802A6 90010004 -9421FF00 BE810008 -7C7D1B78 7C9F2378 -7CBE2B78 7CDC3378 -3F60803F 637B0A48 -880DB655 2C000001 -408201F0 2C1D0000 -41820080 806DB624 -38810080 38A00006 -38C0FFFF 4CC63182 -3D808001 618C1E24 -7D8903A6 4E800421 -806DB8D4 80630010 -7C1E19D6 7C9F0214 -80610080 7F85E378 -48000235 806DB624 -38810080 38A00004 -38C0FFFF 4CC63182 -3D808001 618C1E24 -7D8903A6 4E800421 -80620070 7C83F8AE -80610080 7F85E378 -480001FD 480002F0 -806DB620 38810080 -38A0002D 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 806DB8D4 -80630010 7C1E19D6 -7C9F0214 80610080 -7F85E378 480001B9 -806DB620 38810080 -38A0002B 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 80620070 -7C83F8AE 80610080 -7F85E378 48000181 -1C7D0024 7C63DA14 -886303C2 1C63001C -80820000 7C632214 -886300DD 80020008 -1C630003 7C6300AE -1C9D0024 7C84DA14 -888403C1 3D80803D -618C7060 7D8903A6 -4E800421 D0210084 -3B400000 806DB620 -38810080 38BA0035 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 80630008 -80630008 C0210084 -3D808035 618CE800 -7D8903A6 4E800421 -80610080 80630018 -80630008 80630008 -80630064 C022E0E0 -3D808036 618C530C -7D8903A6 4E800421 -80610080 3D808037 -618C0928 7D8903A6 -4E800421 3B5A0001 -2C1A0005 4180FF78 -7F83E378 3D808025 -618CC020 7D8903A6 -4E800421 48000188 -806DB620 38810080 -1CBD0024 7CA5DA14 -88A503B5 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 806DB8D4 -80630010 7C1E19D6 -7C9F0214 80610080 -7F85E378 48000049 -806DB620 38810080 -1CBD0024 7CA5DA14 -88A503B4 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 80620070 -7C83F8AE 80610080 -7F85E378 48000009 -480000FC 7C0802A6 -90010004 9421FF00 -BE810008 7C7F1B78 -7C9E2378 7CBD2B78 -6FC38000 C822CA08 -90610094 3C604330 -90610090 C8410090 -EC220828 7FE3FB78 -38800006 38A00400 -3CC08036 60C6410C -38E00001 4CC63242 -3D808036 618C4C08 -7D8903A6 4E800421 -7FE3FB78 3D808037 -618C0928 7D8903A6 -4E800421 7FE3FB78 -38800006 38A00400 -3CC08036 60C6414C -38E00006 39000000 -39200000 4CC63182 -3D808036 618C4C08 -7D8903A6 4E800421 -7FE3FB78 38800010 -2C1D0000 41820018 -3D808037 618C1D9C -7D8903A6 4E800421 -48000018 3D808037 -618C1F00 7D8903A6 -4E800421 48000004 -BA810008 80010104 -38210100 7C0803A6 -4E800020 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C225EE60 00000007 -88A30073 7FE3FB78 -7E84A378 38C00000 -3D808025 618CD5AC -7D8903A6 4E800421 -3D808025 618CEE74 -7D8903A6 4E800420 -60000000 00000000 -C2260DB0 00000005 -38730000 38800000 -38A00000 38C00001 -3D808025 618CD5AC -7D8903A6 4E800421 -60000000 00000000 -C225DB78 00000003 -7FE3FB78 38800000 -38A00000 38C00001 -60000000 00000000 -C2264548 00000038 -3D808036 618CFB5C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -7C7A1B78 48000145 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820008 837B0004 -7F43D378 4800012D -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7D1B79 -838DB8D4 2C1C0000 -41820008 839C000C -2C1B0000 41820054 -3BE00000 806DB620 -38810080 38BF0035 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 7F65DB78 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 3BFF0001 -2C1F0005 4180FFB8 -2C1D0000 41820048 -806DB620 38810080 -38A0002B 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630004 809D0008 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 2C1C0000 -41820044 806DB620 -38810080 38A0002D -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 7F84E378 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 4800002C -4E800021 5374635F -69636E73 00000000 -4E800021 45626C6D -5F6D6174 616E696D -5F6A6F69 6E740000 -BA810008 80010104 -38210100 7C0803A6 -60000000 00000000 -C2264A74 00000026 -3D808036 618CFB5C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -480000C5 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7D1B79 838DB8D4 -2C1C0000 41820008 -839C000C 2C1D0000 -41820048 806DB624 -38810080 38A00004 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 80630004 -809D0008 38A00000 -3D808035 618CDEA0 -7D8903A6 4E800421 -2C1D0000 41820044 -806DB624 38810080 -38A00006 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -7F84E378 38A00000 -3D808035 618CDEA0 -7D8903A6 4E800421 -4800001C 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 BA810008 -80010104 38210100 -7C0803A6 806DB624 -60000000 00000000 -C2264574 00000027 -3D808036 618CFB5C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -480000D5 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7D1B79 838DB8D4 -2C1C0000 41820008 -839C000C 2C1D0000 -4182004C 3BE00000 -806DB620 38810080 -38BF002E 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 80630018 -80630004 809D0008 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 2C1C0000 -41820044 806DB620 -38810080 38BF0033 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 7F84E378 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 3BFF0001 -2C1F0004 4180FF6C -4800001C 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 BA810008 -80010104 38210100 -7C0803A6 00000000 -0425DB74 8A8400DD -C2264114 00000002 -3C60803F 60630A48 -7C630214 00000000 -0425FB6C 83C20000 -042640FC 83820000 -0425F128 82E20000 -C22601D4 00000002 -80620000 386300DD -7C6300AE 00000000 -C22600F0 00000002 -80620000 386300DD -7C6300AE 00000000 -C2260AF8 00000002 -80620000 7C630214 -60000000 00000000 -C2260D6C 00000002 -80620000 7E630214 -60000000 00000000 -C2260A60 00000002 -80620000 386300DC -60000000 00000000 -C2260AF8 00000002 -80620000 7C630214 -60000000 00000000 -C2260C7C 00000002 -83C20000 7C9E2214 -60000000 00000000 -C2260D44 00000002 -3FC0803F 63DE0A48 -7C7EBA14 00000000 -C226353C 00000002 -80620000 7C630214 -60000000 00000000 -C2263B40 00000002 -80620000 7C630214 -60000000 00000000 -C2262B20 00000002 -80620000 7C630214 -60000000 00000000 -C2262B80 00000002 -80620000 7C630214 -60000000 00000000 -C2262BE0 00000002 -80620000 7C630214 -60000000 00000000 -C2262C40 00000002 -80620000 7C630214 -60000000 00000000 -C2262BB4 00000002 -80620000 7C630214 -60000000 00000000 -C2262C40 00000002 -80620000 7C630214 -60000000 00000000 -C2262C14 00000002 -80620000 7C630214 -60000000 00000000 -C2262C74 00000002 -80620000 7C630214 -60000000 00000000 -C2262B54 00000002 -80620000 7C630214 -60000000 00000000 -C225FBE4 00000003 -3F80803F 639C0A48 -7C9C3214 7F9C3214 -60000000 00000000 -C225FCB8 00000002 -80820000 7C84EA14 -60000000 00000000 -C225FE68 00000002 -80620000 7C630214 -60000000 00000000 -C225FE8C 00000002 -80820000 388400DC -60000000 00000000 -C225FF10 00000002 -83E20000 7FFFEA14 -60000000 00000000 -C225FFEC 00000002 -80620000 7C63EA14 -60000000 00000000 -C226005C 00000002 -83620000 7F7B0214 -60000000 00000000 -C2264F84 00000002 -3F80803F 639C0A48 -3BDC0444 00000000 -C2264D58 00000002 -3FE0803F 63FF0A48 -3BFF03B4 00000000 -C2264F84 00000002 -3F80803F 639C0A48 -3BDC0444 00000000 -C225F308 00000002 -3EE0803F 62F70A48 -3BF703B4 00000000 -C225F78C 00000002 -3EE0803F 62F70A48 -38B70483 00000000 -C225DB70 00000002 -80820000 7C840214 -60000000 00000000 -C225DBE0 00000002 -80620000 7C630214 -60000000 00000000 -C225EDE0 00000002 -80620000 7C632214 -60000000 00000000 -C2264914 00000002 -81820150 7C116000 -60000000 00000000 -C2264EDC 00000002 -81820150 7C116000 -60000000 00000000 -C2264ED0 00000002 -81820150 7C116000 -60000000 00000000 -C22600C4 00000002 -81820150 7C006000 -60000000 00000000 -C22600D0 00000002 -81820150 7C006000 -60000000 00000000 -C226015C 00000002 -81820150 7C036000 -60000000 00000000 -C226022C 00000002 -81820150 7C036000 -60000000 00000000 -C21692C0 00000002 -81820150 398C0001 -7C006000 00000000 -C2169294 00000002 -81820150 398C0001 -7C006000 00000000 -C216923C 00000002 -8182014C 7C006000 -60000000 00000000 -C2169268 00000002 -81820150 398C0001 -7C006000 00000000 -C22605B8 00000002 -81820150 7C006000 -60000000 00000000 -C22620CC 00000002 -81820150 7C006000 -60000000 00000000 -C22621E0 00000002 -81820150 7C006000 -60000000 00000000 -04260994 80020150 -C2260AD0 00000002 -81820150 7C046000 -60000000 00000000 -C2260B58 00000002 -81820150 7C036000 -60000000 00000000 -04260BCC 80020150 -04260DE4 80020150 -C226183C 00000002 -81820150 7C056000 -60000000 00000000 -C22618CC 00000002 -81820150 7C066000 -60000000 00000000 -C2261F8C 00000002 -81820150 7C006000 -60000000 00000000 -C2262FFC 00000002 -81820150 7C006000 -60000000 00000000 -C2263050 00000002 -81820150 7C006000 -60000000 00000000 -C2263B3C 00000005 -81820150 7C006000 -40820018 38600000 -3D808026 618C3B48 -7D8903A6 4E800420 -1C00001C 00000000 -C22634EC 00000002 -81820150 7C006000 -60000000 00000000 -C2263B7C 00000002 -81820150 7C006000 -60000000 00000000 -C22626CC 00000002 -81820150 7C006000 -60000000 00000000 -C2262A1C 00000002 -81820150 7C006000 -60000000 00000000 -0425FB70 80620150 -C225FC54 00000002 -81820150 7C046000 -60000000 00000000 -04264ADC 80620150 -C2264EEC 00000002 -80820150 38840001 -60000000 00000000 -C225F2AC 00000002 -81820150 7C1B6000 -60000000 00000000 -C225DAFC 00000002 -81820150 7C006000 -60000000 00000000 -C225DB98 00000002 -81820150 7C156000 -60000000 00000000 -C225DC88 00000002 -81820150 7C036000 -60000000 00000000 -C225DF4C 00000002 -81820150 7C006000 -60000000 00000000 -C225ED78 00000002 -81820150 7C006000 -60000000 00000000 -C225EDA4 00000002 -81820150 7C046000 -60000000 00000000 -0425FE6C 38000004 -C226512C 00000005 -4800001D 7C8802A6 -C0240000 C00100F0 -EE600072 D2630004 -4800000C 4E800021 -BF800000 00000000 -04167978 8002014C -C2260BD4 00000020 -806DB8D4 2C030000 -418200EC 7C0802A6 -90010004 9421FF00 -BE810008 83C20000 -3BDE00DC 3BA00000 -83620150 806200FC -C0630000 480000B1 -7C6802A6 C0230004 -C0430008 C19F000C -C17F0010 ED8C082A -ED6B102A 1C7D001C -7F43F214 C13A000C -C11A0010 C0DA0014 -C0FA0018 FC0C4840 -41800048 FC0C4040 -40800040 FC0B3840 -41800038 FC0B3040 -40800030 7FA3EB78 -BA810008 80010104 -38210100 7C0803A6 -7C741B78 3D808026 -618C0C20 7D8903A6 -4E800420 48000010 -3BBD0001 7C1DD800 -4180FF94 BA810008 -80010104 38210100 -7C0803A6 3D808026 -618C0DA4 7D8903A6 -4E800420 4E800021 -40000000 402CCCCD -C0000000 3C60803F -60630B24 00000000 -C2264C48 00000012 -3BC30000 806DB8D4 -2C030000 4182007C -809E0010 806200FC -C0230000 C044002C -EC4100B2 D044002C -C0440030 EC4100B2 -D0440030 C0440034 -EC4100B2 D0440034 -48000041 7C6802A6 -C0630000 EC230828 -C042CB40 EC4100B2 -D0440038 C042CB44 -EC4100B2 D044003C -7FC3F378 3D808037 -618C32E8 7D8903A6 -4E800421 4800000C -4E800021 3F800000 -60000000 00000000 -C2264DA8 00000008 -3A430000 806DB8D4 -2C030000 41820030 -806200FC C0230000 -C052002C EC4100B2 -D052002C C0520030 -EC4100B2 D0520030 -C0520034 EC4100B2 -D0520034 00000000 -C2260C8C 00000009 -806DB8D4 2C030000 -41820038 806DB8D8 -38810098 38B40001 -38C0FFFF 4CC63182 -3D808001 618C1E24 -7D8903A6 4E800421 -3D808026 618C0CDC -7D8903A6 4E800420 -880DB655 00000000 -0425DBBC 48000020 -C22647FC 00000040 -806DB8D4 2C030000 -418201EC 806200FC -C0430000 480001CD -7C6802A6 C0230000 -EC2100B2 D022CB54 -C0230004 EC2100B2 -D022CB34 C0230008 -EC2100B2 D022CA34 -C023000C EC2100B2 -D022CAA0 7C0802A6 -90010004 9421FF00 -BE810008 3FE0803F -63FF0B24 83A20000 -3BBD00DC 3BC00000 -806DB620 38810080 -88BF0005 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80830014 38A00001 -50A426F6 90830014 -38600002 987D0002 -3BDE0001 3BFF001C -3BBD001C 2C1E0019 -4180FFB0 83CDB8D4 -38600004 38800005 -38A00080 3D808039 -618C01F0 7D8903A6 -4E800421 7C741B78 -807E0000 3D808037 -618C0E44 7D8903A6 -4E800421 7C7D1B78 -93ADB8D8 7E83A378 -888DC1A9 7FA5EB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00001 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -3C808022 6084EAE0 -38A00004 3D808038 -618CFD54 7D8903A6 -4E800421 7FA3EB78 -809E0004 80BE0008 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 7FA3EB78 -38800006 38A00020 -3CC08036 60C6410C -38E00001 3D808036 -618C4C08 7D8903A6 -4E800421 7FA3EB78 -3D808037 618C0928 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -3D808026 618C4924 -7D8903A6 4E800420 -4E800021 41000000 -41100000 3FC00000 -3951B717 3A9400DC -60000000 00000000 -C2266984 0000000A -806DB630 48000029 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -41820020 906DB8D4 -48000020 4E800021 -6D657853 656C6563 -74436872 00000000 -38600000 906DB8D4 -806DB630 00000000 -C22645F4 00000005 -806DB8D4 2C030000 -41820014 3D808026 -618C47FC 7D8903A6 -4E800420 38600007 -60000000 00000000 -044DC49C 41E80000 -C2260DF0 00000003 -3D808026 618C0AD8 -7D8903A6 4E800420 -60000000 00000000 -042609F8 480001C8 -04266FD8 38800FD0 -C226717C 00000002 -901F0518 901F0FCC -60000000 00000000 -040679BC 3880241C -C206FE20 00000002 -800323EC 2C000000 -60000000 00000000 -C2069CE0 00000005 -2C170000 41820010 -38600001 907A23EC -4800000C 38600000 -907A23EC 28170000 -60000000 00000000 -C2168C10 00000011 -7C7D1B78 3862017C -7C63E8AE 7C630774 -2C03FFFF 4182006C -7C0802A6 90010004 -9421FF00 BE810008 -808DB8DC 8084000C -1C630008 7C632214 -88630000 6C638000 -C822CA08 90610084 -3C604330 90610080 -C8410080 EC220828 -BA810008 80010104 -38210100 7C0803A6 -3D808016 618C8C40 -7D8903A6 4E800420 -4E800021 08070600 -7FA3EB78 00000000 -C216E7BC 0000002C -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -48000111 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B79 41820104 -3B800000 480000E0 -1C1C0024 387F0060 -7FA30214 3882017C -3860FFFF 7C64E1AE -881D0001 2C000000 -408200B8 7F83E378 -3D808003 618C345C -7D8903A6 4E800421 -3C80804C 608420BC -1C630044 7C632214 -83430000 3A800000 -82BB0008 82DB000C -887D000A 3D808023 -618C754C 7D8903A6 -4E800421 7C771B78 -48000060 1C740008 -7F03B214 80780004 -2C030000 41820028 -2C170000 41820040 -7EE4BB78 3D808032 -618C58E8 7D8903A6 -4E800421 2C030000 -40820024 80780000 -5463023E 7C60D038 -7C030000 40820010 -3862017C 7E83E1AE -48000010 3A940001 -7C14A800 4180FFA0 -3B9C0001 2C1C0006 -4180FF20 48000014 -4E800021 5374635F -69636E73 00000000 -BA810008 80010104 -38210100 7C0803A6 -7FE3FB78 00000000 -C20A0070 0000001F -2C1F1388 418000E8 -2C1F2328 408000E0 -7C0802A6 90010004 -9421FF00 BE810008 -C0228DF0 807E00E0 -2C030000 40820020 -C01E0844 C05E0848 -FC200050 3D808002 -618C2C30 7D8903A6 -4E800421 D0210080 -39010080 C03E002C -D0210084 38E10084 -38C10184 80BE05E8 -57602036 7CA5002E -7F44D378 7FE3FB78 -3D80803D 618C70A0 -7D8903A6 4E800421 -7C741B78 806DC198 -2C030000 41820020 -8803000C 2C000009 -40800014 801E060C -90140000 929E060C -4800001C 7F43D378 -7E84A378 3D808006 -618C744C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 3D80800A -618C0084 7D8903A6 -4E800420 3C60803C -60000000 00000000 -C206747C 00000065 -7C0802A6 90010004 -9421FF00 BE810008 -839D002C A07D0000 -2C030006 40820018 -807D002C 80630FCC -2C030000 41820008 -8383002C 807C0004 -2C030004 41820030 -2C1F1388 418002CC -2C1F1770 4180003C -2C1F1B58 41800054 -2C1F1F40 4180006C -2C1F2328 41800084 -480002A8 2C1F1388 -418002A0 2C1F1770 -41800050 2C1F1B58 -41800068 4800028C -399FEC78 80620018 -809C0004 7D2320AE -7D234B78 48000245 -7C6A1B78 48000064 -399FE890 80620018 -809C0004 7D2320AE -7D234B78 48000225 -7C6A1B78 48000110 -399FEC78 80620018 -809C2238 7D2320AE -7D234B78 48000205 -7C6A1B78 48000024 -399FE890 80620018 -809C2238 7D2320AE -7D234B78 480001E5 -7C6A1B78 480000D0 -806A0004 7D6360AE -48000021 48000049 -48000049 48000089 -48000089 48000089 -48000089 480000A5 -7C8802A6 1CAB0004 -7C842A14 80A40000 -2C050000 418201CC -54A501BA 7C842A14 -7C8903A6 4E800420 -48000198 4800004C -807E000C 389E0010 -38A10080 3D808000 -618CB1CC 7D8903A6 -4E800421 7FE3FB78 -7FA4EB78 38A10080 -38DE001C 38FE0020 -3D808005 618CFDDC -7D8903A6 4E800421 -48000150 4BFFFFBC -4BFFFFB8 4BFFFFB4 -7FE3FB78 7FA4EB78 -80BE000C 3D808005 -618CFDDC 7D8903A6 -4E800421 48000124 -4BFFFFE0 806A000C -7D6360AE 48000025 -48000049 48000089 -48000089 48000089 -48000089 48000089 -480000A5 480000C5 -7C8802A6 1CAB0004 -7C842A14 80A40000 -2C050000 418200FC -54A501BA 7C842A14 -7C8903A6 4E800420 -807E000C 389E0010 -38A10080 3D808000 -618CB1CC 7D8903A6 -4E800421 7FE3FB78 -7FA4EB78 38A10080 -38DE001C 38FE0020 -3D808005 618CFDDC -7D8903A6 4E800421 -48000088 48000084 -48000080 4800007C -48000078 7FE3FB78 -7FA4EB78 80BE000C -3D808005 618CFDDC -7D8903A6 4E800421 -48000058 7FE3FB78 -7FA4EB78 80BE000C -38DE001C 3D808005 -618CFDDC 7D8903A6 -4E800421 48000034 -7FE3FB78 7FA4EB78 -80BE000C 3D808005 -618CFDDC 7D8903A6 -4E800421 48000014 -80820084 1C630004 -7C63202E 4E800020 -BA810008 80010104 -38210100 7C0803A6 -3D808006 618C75F8 -7D8903A6 4E800420 -BA810008 80010104 -38210100 7C0803A6 -60000000 00000000 -043985C4 1CD903E8 -0405B628 38A00011 -0405B660 38A00011 -C205FF38 000000F5 -7C0802A6 90010004 -9421FF00 BE810008 -381CFB45 2C000057 -40810778 829E002C -A07E0000 2C030006 -40820010 807E002C -80630FCC 8283002C -80740004 2C030004 -41820030 2C1C1388 -41800748 2C1C1770 -4180003C 2C1C1B58 -41800058 2C1C1F40 -41800074 2C1C2328 -41800090 48000724 -2C1C1388 4180071C -2C1C1770 41800058 -2C1C1B58 41800074 -48000708 3B200000 -3ADCEC78 80620018 -80940004 7F0320AE -7F03C378 480005B5 -7C771B78 48000070 -3B200001 3ADCE890 -80620018 80940004 -7F0320AE 7F03C378 -48000591 7C771B78 -480003FC 3B200000 -3ADCEC78 80620018 -80942238 7F0320AE -7F03C378 4800056D -7C771B78 48000028 -3B200001 3ADCE890 -80620018 80942238 -7F0320AE 7F03C378 -48000549 7C771B78 -480003B4 1C7803E8 -7F83B214 80770000 -7C161800 40800544 -80770004 7EA3B0AE -48000021 480000A5 -4800010D 48000145 -480001AD 48000221 -480002C5 480002FD -7C8802A6 1CB50004 -7C842A14 80A40000 -2C050000 41820624 -54A0463E 2C000048 -40820014 54A501BA -7C842A14 7C8903A6 -4E800420 7CA903A6 -4E800420 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80C30000 -38600000 7F85E378 -3C801062 60844DD3 -7C842896 7C843670 -3D808039 618CEFAC -7D8903A6 4E800421 -7C7D1B78 480002B0 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80A30000 7F83E378 -7FC4F378 3D808005 -618CC814 7D8903A6 -4E800421 7C7D1B79 -41820274 807D0004 -83830028 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80630000 -C0030000 D01C0024 -48000244 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80A30000 -7F83E378 7FC4F378 -3D808005 618CC814 -7D8903A6 4E800421 -7C7D1B78 48000208 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80A30000 7F83E378 -7FC4F378 3D808005 -618CC814 7D8903A6 -4E800421 7C7D1B79 -418201CC 807D0004 -83830028 386102FC -38800002 3D808032 -618C2620 7D8903A6 -4E800421 80630000 -C0230000 D03C0024 -4800019C 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 83630000 -7F63DB78 38800000 -38A10080 3D808000 -618CB1CC 7D8903A6 -4E800421 7F83E378 -7FC4F378 38A10080 -3D808005 618CC814 -7D8903A6 4E800421 -7C7D1B79 41820140 -807D0004 83830028 -C0028808 D01C0020 -C01B0024 D01C0024 -48000124 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 83630000 -7F83E378 7FC4F378 -7F65DB78 3D808005 -618CC814 7D8903A6 -4E800421 7C7D1B79 -418200E4 807D0004 -83830028 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80630000 -C0230000 C0028830 -FC010040 4080000C -C8028848 48000008 -C8028850 FC200018 -D03C0020 807E0028 -C023002C D03C002C -C0230030 D03C0030 -C0230034 D03C0034 -4800007C 386102FC -38800001 3D808032 -618C2620 7D8903A6 -4E800421 80A30000 -7F83E378 7FC4F378 -3D808005 618CC3DC -7D8903A6 4E800421 -7C7D1B78 48000040 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80A30000 7F83E378 -7FC4F378 3D808005 -618CC5C4 7D8903A6 -4E800421 7C7D1B78 -48000004 3C608005 -6063BA40 907421D4 -3C608005 6063BAC4 -907421D8 7FA3EB78 -BA810008 80010104 -38210100 7C0803A6 -7C7F1B78 3D808006 -618C1D08 7D8903A6 -4E800420 1C7803E8 -7F83B214 80770008 -7C161800 40800194 -8077000C 7EA3B0AE -48000025 4800005D -48000145 48000141 -4800013D 48000139 -480000B1 480000F5 -4800010D 7C8802A6 -1CB50004 7C842A14 -80A40000 2C050000 -41820270 54A0463E -2C000048 40820014 -54A501BA 7C842A14 -7C8903A6 4E800420 -7CA903A6 4E800420 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -83A30000 38600000 -7F85E378 3C801062 -60844DD3 7C842896 -7C843670 3D808039 -618CF05C 7D8903A6 -4E800421 2C030000 -4182001C C03D0000 -D0230024 C03D0004 -D0230028 C03D0008 -D023002C 48000088 -386102FC 38800001 -3D808032 618C2620 -7D8903A6 4E800421 -80C30000 38600000 -7F85E378 3C801062 -60844DD3 7C842896 -7C843670 3D808039 -618CEFAC 7D8903A6 -4E800421 48000040 -7F83E378 388102FC -3D808005 618CCF40 -7D8903A6 4E800421 -48000024 7F83E378 -388102FC 7FC5F378 -3D808005 618CCD2C -7D8903A6 4E800421 -48000004 BA810008 -80010104 38210100 -7C0803A6 7C7F1B78 -3D808006 618C1D08 -7D8903A6 4E800420 -80820084 1C630004 -7C63202E 2C030000 -418200B0 4E800020 -48000061 7C6802A6 -80940004 48000089 -7CA802A6 1CD90008 -7CA53214 7EC6B378 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 4572726F -723A2066 69676874 -65722025 6420646F -6573206E 6F742068 -61766520 25732065 -66666563 74202564 -0A000000 4E800021 -6D6F6465 6C000000 -7074636C 67656E00 -48000041 7C6802A6 -80940004 3D808034 -618C56A8 7D8903A6 -4E800421 4BFFFF91 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 4572726F -723A2066 69676874 -65722025 6420646F -6573206E 6F742068 -61766520 65666642 -65686176 696F7254 -61626C65 0A000000 -BA810008 80010104 -38210100 7C0803A6 -381CFB45 00000000 -C2278CA0 00000023 -40800008 4800010C -7C0802A6 90010004 -9421FF00 BE810008 -2C1F1388 418000D4 -2C1F2328 408000CC -807D0FCC 7C741B79 -418200C0 C0228DF0 -807D00C0 2C030000 -40820020 C01D04CC -C05D04D0 FC200050 -3D808002 618C2C30 -7D8903A6 4E800421 -D0210080 7FC3F378 -7F24CB78 3D808027 -618C2CC0 7D8903A6 -4E800421 7C651B78 -39010080 C03D002C -D0210084 38E10084 -38C10174 7E84A378 -7FE3FB78 3D80803D -618C70A0 7D8903A6 -4E800421 7C751B78 -806DC198 2C030000 -41820020 8803000C -2C000009 40800014 -801D0BC0 90150000 -92BD0BC0 4800001C -7FC3F378 7EA4AB78 -3D808006 618C744C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -3D808027 618C8F18 -7D8903A6 4E800420 -60000000 00000000 -C21B5204 0000000E -3D80803D 618CE650 -8062014C 3943FFF9 -886C0000 2C0300FF -41820050 38E00000 -7C8C3A14 8924000A -2C09001A 41800028 -2C090021 40800014 -3869FFE6 7D2A1A14 -9924000A 48000010 -8062014C 9864000A -48000004 38E70001 -2C070003 4180FFC4 -398C0010 4BFFFFAC -8001000C 00000000 -C21B34F0 00000020 -7C0802A6 90010004 -9421FF00 BE810008 -3FE0803D 63FFDC58 -3FC08049 63DE0880 -3FA0803D 63BDDEC8 -387F0520 48000061 -387F04DC 48000059 -387F0428 48000051 -387F033C 48000049 -387F032A 48000041 -8062014C 986D8C7A -986D8C7B 986D8C7C -986D8C82 986D8C83 -986D8C84 986D8C8A -986D8C8B 986D8C8C -BA810008 80010104 -38210100 7C0803A6 -4800006C 7C6B1B78 -8062014C 3923FFF9 -A06B0000 2C030148 -41820050 38E00000 -7C8B3A14 89040002 -2C08001A 41800028 -2C080021 40800014 -3868FFE6 7D091A14 -99040002 48000010 -8062014C 98640002 -48000004 38E70001 -2C070004 4180FFC4 -396B0006 4BFFFFAC -4E800020 8001000C -60000000 00000000 -C21BADC4 0000000E -39000000 818DB260 -8062014C 3943FFF9 -816C0000 38E00000 -7C8C3A14 808B0014 -2C040000 41820024 -89240000 2C09001A -41800018 2C090020 -41810010 3869FFE6 -7D2A1A14 99240000 -38E70001 396B0004 -2C070006 4180FFC4 -398C0004 39080001 -2C080033 4180FFAC -828DB260 00000000 -C22F62FC 00000007 -8182014C 386CFFF9 -7C1C1800 41820014 -386CFFFD 7C1C1800 -41820008 48000008 -3B80001B 3D80802F -618C6314 7D8903A6 -4E800420 00000000 -C217D5A0 00000002 -8182014C 398CFFFD -7C006000 00000000 -C217D5F0 00000002 -8182014C 398CFFFD -7C006000 00000000 -C217C134 00000002 -8182014C 380CFFFD -60000000 00000000 -C217D578 00000002 -8182014C 398CFFFC -7C006000 00000000 -C2320698 00000002 -8062014C 3863FFFC -60000000 00000000 -C23206A8 00000002 -8082014C 3884FFFC -60000000 00000000 -C217D598 00000002 -8182014C 398CFFF9 -7C006000 00000000 -C217D638 00000002 -8182014C 398CFFF9 -7C006000 00000000 -C2186E4C 00000002 -8182014C 398CFFF9 -7C006000 00000000 -C2186E58 00000002 -8182014C 398CFFF9 -7C006000 00000000 -0417DB58 8002014C -041B51DC 8002014C -041B62E8 8002014C -041B5674 8002014C -041B5AD8 8002014C -C21B2BF8 00000002 -8182014C 7C166000 -60000000 00000000 -C21B2BF8 00000002 -8182014C 7C166000 -60000000 00000000 -0417DD10 8082014C -C21B37C8 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3690 00000002 -8182014C 7C006000 -60000000 00000000 -C217D27C 00000002 -8182014C 7C006000 -60000000 00000000 -C217D28C 00000002 -8182014C 7C006000 -60000000 00000000 -C217D268 00000002 -8182014C 7C006000 -60000000 00000000 -C217CFC0 00000002 -8182014C 7C006000 -60000000 00000000 -C217CFB0 00000002 -8182014C 7C006000 -60000000 00000000 -C217CF9C 00000002 -8182014C 7C006000 -60000000 00000000 -C217D43C 00000002 -8182014C 7C006000 -60000000 00000000 -C217DDA8 00000002 -8182014C 7C006000 -60000000 00000000 -C217BEFC 00000002 -8182014C 7C056000 -60000000 00000000 -C21B3804 00000002 -8182014C 7C006000 -60000000 00000000 -C217BF2C 00000002 -8182014C 7C056000 -60000000 00000000 -C217BF58 00000002 -8182014C 7C056000 -60000000 00000000 -C217BFA0 00000002 -8182014C 7C006000 -60000000 00000000 -C217BFE0 00000002 -8182014C 7C006000 -60000000 00000000 -C217C014 00000002 -8182014C 7C006000 -60000000 00000000 -C217C04C 00000002 -8182014C 7C006000 -60000000 00000000 -0417DB40 8062014C -C217DE78 00000002 -8182014C 7C006000 -60000000 00000000 -C217DE9C 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3840 00000002 -8182014C 7C006000 -60000000 00000000 -0417DBCC 8002014C -C217DE8C 00000002 -8182014C 7C006000 -60000000 00000000 -C21B387C 00000002 -8182014C 7C006000 -60000000 00000000 -C21B38A0 00000002 -8182014C 7C006000 -60000000 00000000 -C21B38C4 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3950 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3988 00000002 -8182014C 7C006000 -60000000 00000000 -C21B3758 00000002 -8182014C 7C006000 -60000000 00000000 -C2185EA4 00000002 -8182014C 7C006000 -60000000 00000000 -C2185FCC 00000002 -8182014C 7C006000 -60000000 00000000 -C21B6560 00000002 -8062014C 3883FFFF -60000000 00000000 -C21B9958 00000002 -8062014C 3803FFFE -60000000 00000000 -C21B99FC 00000002 -8062014C 3803FFFE -60000000 00000000 -C21B6B40 00000002 -8062014C 3863FFFB -60000000 00000000 -C2182288 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B6B34 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B70AC 00000002 -8062014C 3863FFFB -60000000 00000000 -C21822EC 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B70A0 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B7BDC 00000002 -8062014C 3863FFFB -60000000 00000000 -C21823B4 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B7BD0 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B7658 00000002 -8062014C 3863FFFB -60000000 00000000 -C2182350 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B764C 00000002 -8182014C 380CFFFA -60000000 00000000 -C218247C 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B8698 00000002 -8182014C 380CFFFA -60000000 00000000 -C21B86A4 00000002 -8062014C 3863FFFB -60000000 00000000 -C21B8178 00000002 -8062014C 3863FFFB -60000000 00000000 -C2182418 00000006 -8182014C 88030005 -2C00001B 41820010 -2C00001C 41820010 -48000014 380CFFFA -4800000C 380CFFFB -48000004 00000000 -C21B816C 00000002 -8182014C 380CFFFA -60000000 00000000 -C202305C 00000006 -2C030000 4180001C -1C630004 1C840002 -80A200CC 7C632A14 -7C63222E 48000008 -3860005D 4E800020 -60000000 00000000 -C20D1448 00000002 -81820178 818C000C -800C0064 00000000 -04085830 8002005C -04068F5C 8062005C -0413C3D0 8002005C -040858F4 8002005C -04068AEC 8082005C -040855EC 83A2005C -04068704 8062005C -04070330 8062005C -C20852D0 00000002 -3D40803C 614A25F4 -60000000 00000000 -040852B8 8102005C -C2070580 00000002 -80620178 8063000C -80630074 00000000 -C20706BC 00000002 -80620178 8063000C -80030074 00000000 -C20BE8B4 00000002 -80820178 8084000C -808400A0 00000000 -04068B60 80C2002C -041609A8 80020004 -C2160A24 00000002 -80820004 7C64002E -60000000 00000000 -C2160B08 00000002 -80620004 7C63002E -60000000 00000000 -C206D654 00000002 -81820178 818C000C -800C0030 00000000 -C207FB9C 00000002 -80620178 8063000C -8003004C 00000000 -04068660 80020034 -C206DAE8 00000002 -80620178 8063000C -80030008 00000000 -C20CBA30 00000009 -801E0004 806200A0 -1C000004 7D83002E -2C0C0000 41820020 -7FA3EB78 7D8903A6 -4E800421 3D80800C -618CBA9C 7D8903A6 -4E800420 3D80800C -618CBAA4 7D8903A6 -4E800420 00000000 -C211BA54 00000018 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 83DF002C -806DAEB4 C0030088 -FC000050 C03E0624 -FC010040 41810078 -801E065C 5400052B -4182006C 801E0004 -2C000009 40820014 -801E222C 2C000000 -41820054 48000030 -8082009C 80BE0004 -1CA50004 7D84282E -2C0C0000 41820038 -7FE3FB78 38800001 -7D8903A6 4E800421 -48000028 7FE3FB78 -38800001 3D808011 -618CBB6C 7D8903A6 -4E800421 38600001 -48000008 38600000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C211BAD8 0000001A -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 83DF002C -C03E0084 C0029DE0 -FC010040 4C401382 -4082008C 806DAEB4 -C0030070 C03E0624 -FC010040 40800010 -801E065C 5400052B -4182006C 801E0004 -2C000009 40820014 -801E222C 2C000000 -41820054 48000030 -8082009C 80BE0004 -1CA50004 7D84282E -2C0C0000 41820038 -7FE3FB78 38800001 -7D8903A6 4E800421 -48000028 7FE3FB78 -38800001 3D808011 -618CBB6C 7D8903A6 -4E800421 38600001 -48000008 38600000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C206AA28 00000002 -80620178 8063000C -8003005C 00000000 -04094860 800200C0 -04094924 800200C0 -0407E740 800200C8 -C207F830 00000002 -81820178 818C000C -800C0054 00000000 -C207F878 00000002 -81820178 818C000C -800C0058 00000000 -C2069924 00000008 -806200A8 809A0004 -1C840004 7D84182E -2C0C0000 41820020 -7FC3F378 7D8903A6 -4E800421 3D808006 -618C9938 7D8903A6 -4E800420 801A0004 -60000000 00000000 -040BEA28 80020030 -040690F0 80020030 -C207F918 00000002 -80820178 8084000C -80040050 00000000 -C2080D9C 00000002 -80620178 8063000C -80030068 00000000 -C2080BA0 00000002 -80620178 8063000C -80030068 00000000 -C207512C 00000002 -80620178 8063000C -8003006C 00000000 -C2075190 00000002 -80620178 8063000C -8003006C 00000000 -C20751F8 00000002 -80620178 8063000C -8003006C 00000000 -C208CC14 00000008 -800200BC 809F0004 -1C840004 7D84002E -2C0C0000 41820020 -7FC3F378 7D8903A6 -4E800421 3D808008 -618CCC38 7D8903A6 -4E800420 801F0004 -60000000 00000000 -C208C360 00000007 -800200B4 809F0004 -1C840004 7D84002E -2C0C0000 4182001C -7D8903A6 4E800421 -3D808008 618CC3CC -7D8903A6 4E800420 -809F0004 00000000 -C208C900 00000008 -800200B8 809F0004 -1C840004 7D84002E -2C0C0000 41820020 -7FC3F378 7D8903A6 -4E800421 3D808008 -618CC924 7D8903A6 -4E800420 801F0004 -60000000 00000000 -C20C0158 00000002 -80620178 8063000C -80030060 00000000 -C20816C4 00000005 -806200AC 809F0004 -7C6418AE 2C030000 -40820014 3D808008 -618C1918 7D8903A6 -4E800420 00000000 -C20C3B54 0000000B -800200A4 809F0004 -1C840004 7D84002E -2C0C0000 4182003C -801F065C 54000001 -41820030 801F0668 -540005EF 41820024 -7C631B78 7D8903A6 -4E800421 3D80800C -618C3BB8 7D8903A6 -4E800420 48000008 -38600000 00000000 -C20F5A78 00000002 -80620098 80630020 -60000000 00000000 -C20F5AA0 00000002 -80620098 80630020 -60000000 00000000 -C20F5AC8 00000002 -80620098 80630020 -60000000 00000000 -C20F5AE0 00000002 -80620098 80630020 -60000000 00000000 -C2085C04 00000003 -806200B0 801C0004 -1C000008 7C630214 -80030004 00000000 -C2085BD0 00000003 -806200B0 801C0004 -1C000008 7FC3002E -60000000 00000000 -C2085CC0 00000003 -808200B0 801C0004 -1C000008 38600000 -7C64012E 00000000 -C20BEB88 00000003 -83E200B0 1C030008 -7FFF0214 801F0000 -60000000 00000000 -C2085A24 00000002 -7C661B78 1CA30008 -60000000 00000000 -04085A3C 80620098 -04068B2C 1C840008 -04068B1C 80020098 -040852C0 80A20098 -C20852D4 00000012 -39800000 81220028 -814200B0 38600000 -90670000 90670004 -90690000 906A0000 -39600000 48000020 -80680000 1C8B0018 -7C832214 38600000 -90640000 90640008 -396B0001 88680004 -7C0B1800 4180FFDC -39290008 39080008 -38E70008 394A0008 -398C0001 80620148 -7C0C1800 4180FFA0 -38600000 3CA08045 -60A598B8 3D808008 -618C53DC 7D8903A6 -4E800420 00000000 -04085738 1CA30008 -0408573C 80020098 -04085774 38650004 -040C2798 418107E4 -C20C278C 00000009 -80820178 8084000C -808400B4 807C0004 -1C630004 7C63202E -2C030000 41820024 -7C6903A6 807C0000 -4E800421 7C7E1B78 -3D80800C 618C27C8 -7D8903A6 4E800420 -807C0004 00000000 -040C30A4 418100C8 -C20C3098 00000009 -80820178 8084000C -808400B4 807F0004 -1C630004 7C63202E -2C030000 41820024 -7C6903A6 807F0000 -4E800421 7C651B78 -3D80800C 618C30D4 -7D8903A6 4E800420 -807F0004 00000000 -0431C9A4 800200D0 -C214A42C 00000004 -80820178 80840034 -80840000 881F0619 -1C000008 7C840214 -60000000 00000000 -C214A7F8 00000005 -88030619 1C000008 -80620178 80630034 -80630000 7C630214 -80630000 90640000 -4E800020 00000000 -C214A364 00000006 -881F0619 1C000008 -80820178 80840034 -80840000 7C840214 -80840004 909F2434 -909F0614 8001001C -60000000 00000000 -C214A818 00000005 -88030619 1C000008 -80620178 80630034 -80630000 7C630214 -80630004 90640000 -4E800020 00000000 -C22F9888 00000005 -387C0000 38800000 -3D808003 618C25C8 -7D8903A6 4E800421 -7C641B78 38BD0000 -387C0000 00000000 -C22F9764 0000000F -7C0802A6 90010004 -9421FF00 BE810008 -806DB8DC 2C030000 -41820048 82830004 -7FC3F378 38810080 -38A00001 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 38800000 -7E85A378 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -387E0000 00000000 -C22F6770 00000011 -3C60804D 60636D5C -80630000 48000049 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 906DB8DC -3C60804D 60636D5C -80630000 48000031 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 906DB8E0 -4800002C 4E800021 -5374635F 69636E73 -00000000 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 80010024 -60000000 00000000 -C2266994 0000000D -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -48000035 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 4182000C -906DB8DC 48000020 -38600000 906DB8DC -48000014 4E800021 -5374635F 69636E73 -00000000 806DB614 -60000000 00000000 -C22F6320 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -80820070 7C6320AE -6C638000 C822CA08 -90610084 3C604330 -90610080 C8410080 -EC220828 BA810008 -80010104 38210100 -7C0803A6 00000000 -C2168B34 0000000A -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 7FC3F378 -7FA4EB78 3D80803D -618C7060 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C22FA0B4 00000006 -7C7FE214 8863047F -38800000 3D808003 -618C25C8 7D8903A6 -4E800421 7C641B78 -7CBFE214 8865047F -88A503FD 00000000 -C22F9FD4 0000000F -7C0802A6 90010004 -9421FF00 BE810008 -806DB8DC 2C030000 -41820048 82830004 -7FA3EB78 38810080 -38A00001 38C0FFFF -3D808001 618C1E24 -7D8903A6 4E800421 -80610080 38800000 -7E85A378 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -387D0000 00000000 -C22F62F8 00000010 -3D808000 618CC07C -7D8903A6 4E800421 -7C0802A6 90010004 -9421FF00 BE810008 -83ADB8E0 2C1D0000 -41820044 7FC3F378 -38810080 38A00001 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 7FA5EB78 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 00000000 -C22F99C0 00000012 -7C0802A6 90010004 -9421FF00 BE810008 -806DB8DC 2C030000 -4182005C 83C30004 -3BE00000 7FA3EB78 -38810080 38BF0001 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38800000 7FC5F378 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 3BFF0001 -2C1F0007 4180FFB8 -48000004 BA810008 -80010104 38210100 -7C0803A6 7FA3EB78 -60000000 00000000 -C2175E4C 0000002C -7C0802A6 90010004 -9421FF00 BE810008 -3C60804D 60635780 -3D808001 618C819C -7D8903A6 4E800421 -7C7D1B78 480000F1 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -418200FC 83C30004 -3BE00000 7F63DB78 -38810080 38BF0019 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 80630004 -809E0008 38A00000 -3D808035 618CDEA0 -7D8903A6 4E800421 -3BFF0001 2C1F0004 -4180FFB4 7FA3EB78 -48000085 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7E1B79 41820080 -3BE00000 7F63DB78 -38810080 38BF0042 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -80630018 809E0008 -38A00000 3D808035 -618CDEA0 7D8903A6 -4E800421 3BFF0001 -2C1F0004 4180FFB8 -4800002C 4E800021 -5374635F 69636E73 -00000000 4E800021 -45626C6D 5F6D6174 -616E696D 5F6A6F69 -6E740000 BA810008 -80010104 38210100 -7C0803A6 7F63DB78 -60000000 00000000 -C21777C8 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -80820070 7C6320AE -6C638000 C822CA08 -90610084 3C604330 -90610080 C8410080 -EC220828 BA810008 -80010104 38210100 -7C0803A6 00000000 -C20692FC 00000002 -81820148 398CFFFB -7C006000 00000000 -C20692E8 00000002 -81820148 398CFFFA -7C006000 00000000 -C20CC76C 00000002 -81820148 398CFFFB -7C036000 00000000 -C20CC750 00000002 -81820148 398CFFFA -7C036000 00000000 -C20BDA14 0000000C -81820148 380CFFFC -7C030000 41820038 -81820148 380CFFFD -7C030000 41820028 -81820148 380CFFFF -7C030000 41820018 -2C03000B 41820008 -48000010 3860000A -48000008 80652238 -3D80800B 618CDA3C -7D8903A6 4E800420 -60000000 00000000 -C208A2F0 00000002 -81820148 398CFFFB -7C036000 00000000 -C208A2D4 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C2AC 00000002 -80620148 3863FFFB -60000000 00000000 -C215C320 00000002 -80620148 3863FFFB -60000000 00000000 -C215C3A4 00000002 -80620148 3863FFFB -60000000 00000000 -C215039C 00000002 -80620148 3863FFFB -60000000 00000000 -C215C4E8 00000002 -81820148 398CFFFB -7C036000 00000000 -C215C4E8 00000002 -81820148 398CFFFB -7C036000 00000000 -C21551B4 00000002 -80620148 3863FFFB -60000000 00000000 -C215531C 00000002 -80620148 3863FFFB -60000000 00000000 -C21554A4 00000002 -80620148 3863FFFB -60000000 00000000 -C215B500 00000002 -80620148 3863FFFB -60000000 00000000 -C206D480 00000002 -81820148 398CFFFB -7C006000 00000000 -C217C780 00000002 -81820148 386CFFFB -60000000 00000000 -C20C8E98 00000002 -81820148 398CFFFB -7C006000 00000000 -C215CB18 00000002 -81820148 398CFFFB -7C036000 00000000 -C20C744C 00000002 -81820148 398CFFFE -7C006000 00000000 -C215C274 00000002 -80620148 3863FFFA -60000000 00000000 -C215C2E4 00000002 -80620148 3863FFFA -60000000 00000000 -C215C35C 00000002 -80620148 3863FFFA -60000000 00000000 -C215143C 00000002 -80620148 3863FFFA -60000000 00000000 -C215A2CC 00000002 -80620148 3863FFFA -60000000 00000000 -C215A414 00000002 -80620148 3863FFFA -60000000 00000000 -C215A580 00000002 -80620148 3863FFFA -60000000 00000000 -C206D48C 00000002 -81820148 398CFFFA -7C006000 00000000 -C20C8E90 00000002 -81820148 398CFFFA -7C006000 00000000 -C20C8EA4 00000002 -81820148 398CFFFA -7C006000 00000000 -C215C55C 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C6E0 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C770 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C8B0 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C9F0 00000002 -81820148 398CFFFA -7C036000 00000000 -C215CABC 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C810 00000002 -81820148 398CFFFA -7C036000 00000000 -C215C950 00000002 -81820148 398CFFFA -7C036000 00000000 -C207CDBC 00000002 -81820148 398CFFFF -7C006000 00000000 -C207CE10 00000002 -81820148 398CFFFF -7C006000 00000000 -C217C938 00000002 -81820148 380CFFFD -60000000 00000000 -C217C930 00000002 -81820148 380CFFFC -60000000 00000000 -C2267990 00000028 -7C0802A6 90010004 -9421FF00 BE810008 -80820088 2C03002B -41800020 2C0300A1 -41800024 2C0300D0 -4180002C 2C0300ED -41800034 48000044 -80840000 80ADB684 -4800004C 3863FFD5 -80840004 80ADB698 -4800003C 3863FF5F -80840008 80ADB690 -4800002C 3863FF30 -8084000C 3CA0804A -60A50F60 48000018 -3863FF13 80840010 -80A20088 80A50014 -48000004 1C03003C -7FC40214 1C030004 -7FA5002E 2C1D0000 -41820010 93DF00B8 -93BF00C4 48000070 -48000049 7C6802A6 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 6572726F -723A2069 74656D20 -6E6F7420 696E6974 -69616C69 7A65640A -00000000 BA810008 -80010104 38210100 -7C0803A6 3D808026 -618C7A88 7D8903A6 -4E800420 00000000 -C22674AC 00000004 -80030008 2C0000ED -41800010 38000008 -9003000C 4E800020 -60000000 00000000 -C2268684 0000001A -7C0802A6 90010004 -9421FF00 BE810008 -807E0008 80820088 -2C03002B 41800020 -2C0300A1 41800024 -2C0300D0 4180002C -2C0300ED 41800034 -48000040 3C80803F -60841418 48000040 -3863FFD5 3C80803F -60842F28 48000030 -3863FF5F 3C80803F -60842310 48000020 -3863FF30 3C80803F -60844CA8 48000010 -3C808026 6084EECC -4800000C 1C030004 -7C84002E 38A00006 -38C00000 7FE3FB78 -3D808039 618C069C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -3D808026 618C8748 -7D8903A6 4E800420 -60000000 00000000 -C20F16EC 0000000C -80C20148 7C043040 -41810044 1C040004 -80620140 7D83002E -2C0C0000 41820018 -7C832378 7C85002E -7D8903A6 4E800421 -4800001C 2C04001B -40800014 3D80800F -618C16F0 7D8903A6 -4E800420 3D80800F -618C18F8 7D8903A6 -4E800420 00000000 -C20EEEC4 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -80020130 1C840004 -7D84002E 2C0C0000 -4182000C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C20F1B94 00000008 -81820178 818C0024 -818C001C 1C000004 -7D8C002E 2C0C0000 -41820010 7D8903A6 -7C631B78 4E800421 -3D80800F 618C1B9C -7D8903A6 4E800420 -60000000 00000000 -C20F1AA8 0000000B -80820148 7C002040 -41810038 1C800004 -8062013C 7D83202E -2C0C0000 41820024 -7FE3FB78 7D8903A6 -4E800421 48000014 -3D80800F 618C1AB0 -7D8903A6 4E800420 -3D80800F 618C1B58 -7D8903A6 4E800420 -60000000 00000000 -C20F1BF8 00000007 -8002012C 1C840004 -7D84002E 2C0C0000 -41820010 7D8903A6 -7FA3EB78 4E800421 -3D80800F 618C1C1C -7D8903A6 4E800420 -60000000 00000000 -040F163C 80020134 -040F168C 80020138 -C216E148 0000000D -7C0802A6 90010004 -9421FF00 BE810008 -83C20148 3BE00000 -80620178 83A30020 -83BD0014 83830024 -839C001C 38000000 -1C9F0004 7C1D212E -7C1C212E 3BFF0001 -7C1FF000 4180FFEC -BA810008 80010104 -38210100 7C0803A6 -3800FFFF 90010010 -60000000 00000000 -C20EED58 00000002 -9421FFDC 38000000 -90010020 00000000 -040EEE90 38210024 -040EEDC0 38610020 -C20EEE80 00000033 -83A10020 7C0802A6 -90010004 9421FF00 -BE810008 2C1D0000 -41820168 7FA3EB78 -480000A9 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7B1B79 41820030 -7F63DB78 3D80803D -618C7074 7D8903A6 -4E800421 7F63DB78 -80820178 80840024 -7FC5F378 48000081 -3B400001 7FA3EB78 -7FC4F378 38A00000 -3D80803D 618C7070 -7D8903A6 4E800421 -2C030000 41820008 -3B400001 7FA3EB78 -48000041 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -7C7C1B79 41820010 -80620128 1C9E0004 -7F83212E 4800009C -4E800021 6B624675 -6E637469 6F6E0000 -4E800021 6674636D -64000000 7C6C1B78 -7C892378 7CA62B78 -80EC000C 814C0000 -39000000 48000054 -1C680008 7D633A14 -806B0000 54600001 -40820020 1C630004 -7C83482E 806B0004 -7C635214 1CA60004 -7C64292E 48000020 -808B0004 7C845214 -7C832050 548401BA -64844800 90830000 -48000004 39080001 -806C0010 7C081800 -4180FFA8 4E800020 -2C1A0000 4182001C -807D0040 809D0000 -3D808032 618C8F50 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -80010028 00000000 +C21BFA24 00000008 +3C60801A 60635014 +80630000 3C804082 +60840010 7C032000 +40820010 80620174 +80630028 48000008 +38600001 3D80801A +618C42F8 7D8903A6 +4E800421 00000000 C222C010 0000000C 810DB8E0 2C080000 41820050 7C671B78 @@ -9126,478 +6152,12 @@ C222B750 0000000F 3D808001 618C1E24 7D8903A6 4E800421 80610080 38800000 -7FE5FB78 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -38700000 00000000 -C2085A44 00000002 -83820028 7F9C0214 -801C0000 00000000 -04085B5C 80620028 -C2085A58 00000002 -80820014 1CA60004 -7C84282E 00000000 -C208602C 00000002 -80620098 80630050 -60000000 00000000 -040856E4 800200D0 -C20856E4 00000002 -80820014 7C84D02E -60000000 00000000 -C2017924 00000011 -2C03FFFF 40820078 -48000051 7C6802A6 -3C808043 60842058 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6C626669 6C650000 -4E800021 6572726F -723A2066 696C6520 -25732064 6F657320 -6E6F7420 65786973 -740A0000 93E10008 -60000000 00000000 -C2085614 00000002 -80820010 7C84D82E -60000000 00000000 -04085760 80020010 -C21692DC 00000002 -80620058 7C630214 -60000000 00000000 -C21692B0 00000002 -80620058 7C630214 -60000000 00000000 -C2169258 00000002 -80620058 7C632214 -60000000 00000000 -C2169284 00000002 -80620058 7C630214 -60000000 00000000 -C20703A8 0000001C -7C0802A6 90010004 -9421FF00 BE810008 -801F0004 8062000C -1C000004 7C63002E -881F0619 1C000010 -7C630214 8283000C -2C140000 40820078 -807F0004 8082005C -1C630008 7C63202E -881F0619 1C000018 -7C630214 80630014 -4800005D 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 41820038 -80630004 2C030000 -4182002C 80630000 -BA810008 80010104 -38210100 7C0803A6 -7C601B78 3D808007 -618C03B8 7D8903A6 -4E800420 7E83A378 -48000014 4E800021 -6D657843 6F737475 -6D650000 BA810008 -80010104 38210100 -7C0803A6 7C601B78 -60000000 00000000 -C20749E8 00000021 -7C0802A6 90010004 -9421FF00 BE810008 -801F0004 8062000C -1C000004 7C63002E -881F0619 1C000010 -7C630214 8283000C -2C140000 40820090 -807F0004 8082005C -1C630008 7C63202E -881F0619 1C000018 -7C630214 80630014 -48000099 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 41820050 -80630000 2C030000 -41820044 389F05AC -38A00000 38DF05EC -38FF203C 3D808007 -618C487C 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 3D808007 -618C4A04 7D8903A6 -4E800420 807F010C -389F05AC 7E85A378 -BA810008 80010104 -38210100 7C0803A6 -3D808007 618C49F4 -7D8903A6 4E800420 -4E800021 6D657843 -6F737475 6D650000 -60000000 00000000 -04085674 1F800010 -040856BC 3B9C0010 -C2085680 00000002 -8362000C 7F7BD214 -60000000 00000000 -0408586C 1C040010 -04085864 8002000C -040857A8 80A2005C -040857C0 80A2005C -C213C384 00000040 -7C7C1B78 83DC002C -887E000C 3D808003 -618C2330 7D8903A6 -4E800421 3D808016 -618C9238 7D8903A6 -4E800421 889E0619 -7C041800 40800008 -48000014 3D808013 -618CC46C 7D8903A6 -4E800420 7C0802A6 -90010004 9421FF00 -BE810008 881E0004 -8062000C 1C000004 -7C63002E 881E0619 -1C000010 7C630214 -8363000C 807E0004 -8082005C 1C630008 -7C63202E 881E0619 -1C000018 7C630214 -83230014 7F23CB78 -48000121 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 40820114 -3C60803D 606305B4 -1C1B0004 7F43002E -2C1A0000 418200FC -7F23CB78 7F44D378 -3D808038 618C0358 -7D8903A6 4E800421 -7C7A1B79 807E010C -80630048 80630004 -3B030004 3C608045 -60639080 3D808037 -618CABC8 7D8903A6 -4E800421 907E2244 -7F43D378 3D808037 -618C0E44 7D8903A6 -4E800421 907E223C -3D808007 618C4148 -7D8903A6 4E800421 -38600001 881E2225 -50602EB4 981E2225 -3D808007 618C4170 -7D8903A6 4E800421 -7F83E378 809E223C -38BE2240 3D808007 -618C5650 7D8903A6 -4E800421 38DE2240 -38E60000 7F65DB78 -389E2248 7F03C378 -3D808007 618C487C -7D8903A6 4E800421 -7FC3F378 3D808009 -618CDC54 7D8903A6 -4E800421 4800001C -4E800021 6D657843 -6F737475 6D650000 -38600000 907E223C -BA810008 80010104 -38210100 7C0803A6 -3D808013 618CC474 -7D8903A6 4E800420 -60000000 00000000 -C205FE90 00000002 -8062001C 80030014 -60000000 00000000 -C205B4F0 0000000B -38A00000 38630008 -80C20160 1CE5000C -7C87192E 38A50001 -7C053000 4180FFF0 -38A00000 38800000 -80620084 1CE50004 -7C87192E 38A50001 -7C053000 4180FFF0 -3D808005 618CB5D4 -7D8903A6 4E800420 -60000000 00000000 -040672B0 8002001C -0406739C 8002001C -0405BED8 80C2001C -0405B4EC 8062001C -04067334 8062001C -04067384 9421FFE4 -C2067430 00000018 -901F0008 80610018 -48000029 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -80820084 1CBE0004 -7C64292E 48000090 -4E800021 65666642 -65686176 696F7254 -61626C65 00000000 -4800004D 7C6802A6 -7FC4F378 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -4572726F 723A2065 -66666563 74206669 -6C652025 64206E6F -74206C6F 61646564 -0A000000 00000000 -04067440 3821001C -040673DC 38610018 -04067434 80010020 -040BE8B8 80020018 -04068F38 80020018 -C20856D0 00000002 -80620018 7C63F8AE -7C630774 00000000 -04087530 80020018 -040325F8 80620008 -C2032634 00000002 -83E20008 3BFFFFE0 -60000000 00000000 -040325D8 80020008 -04031CCC 80020008 -04031CF4 80020008 -04031D48 80020008 -04031D70 80020008 -04031D48 80020008 -C2036E34 00000002 -80620008 3803FFE0 -60000000 00000000 -C2036F5C 00000002 -83C20008 3BDEFFE0 -60000000 00000000 -C2031AE8 00000002 -83E20008 3BFFFFE0 -60000000 00000000 -C20672B4 00000002 -81820160 398C0001 -7C036000 00000000 -C20673A0 00000002 -81820160 398C0001 -7C1E6000 00000000 -04266AA0 8002014C -04266B10 8002014C -04266B50 8002014C -042609D8 8002014C -C2160450 00000002 -8182014C 7C006000 -60000000 00000000 -C2160464 00000002 -8182014C 7C006000 -60000000 00000000 -C2160428 00000002 -8182014C 7C006000 -60000000 00000000 -C225FE4C 00000002 -81820150 398C0001 -7C046000 00000000 -C2026E8C 00000002 -8182014C 7C036000 -60000000 00000000 -C2023064 00000002 -8182014C 7C036000 -60000000 00000000 -0406FD08 83A2014C -040EF070 80620120 -040EE538 80820124 -040EE53C 80A20120 -040EEE70 8002011C -040EEDA4 80020124 -040EEDD4 80020118 -040EEE10 1C1F0010 -040EECCC 1FA00010 -040EEDEC 80020120 -040EED88 80020114 -C20EE528 00000013 -7C0802A6 90010004 -9421FF00 BE810008 -83E2014C 38600004 -3D808016 618C9238 -7D8903A6 4E800421 -7C7E1B78 83A20124 -83820120 3B600000 -38000000 901D0000 -3A800000 1C7B0004 -7EA3E02E 2C150000 -4182001C 90150000 -90150004 3A940001 -3AB50008 7C14F000 -4180FFEC 3B7B0001 -3BBD0004 7C1BF800 -4180FFC0 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -040EECA0 80020118 -040EED24 8002011C -040EEC50 80020114 -040F16E0 80A20124 -040F10B0 80820124 -040F13FC 80820124 -040F15E4 80820124 -040F11B8 80820124 -040F12D4 80820124 -041093D4 80620124 -040EFD94 80820124 -0409D4E0 80820124 -C20EF118 00000002 -56A4103A 80620120 -7C63202E 00000000 -040EF388 80620120 -040F0FF4 80620124 -040F0BA0 80820124 -040EFC88 80820124 -040EFB7C 80820124 -040F14E8 80620124 -040F0DC8 80820124 -040F1100 80620124 -0409D828 80820124 -040EFEB0 80820124 -0409D080 80820124 -040F0740 80820124 -040EFA70 80820124 -040F084C 80820124 -0409D92C 80820124 -040F121C 80620124 -0409DB5C 80820124 -040F00E8 80820124 -040F01F4 80820124 -040F0CAC 80820124 -0409D3C8 80820124 -040F040C 80820124 -0409D2B0 80820124 -040F0300 80820124 -040F0ED4 80820124 -0409DA44 80820124 -040F0528 80820124 -040EFFCC 80820124 -0409D710 80820124 -040F0634 80820124 -040F0A84 80820124 -0409D198 80820124 -040F0968 80820124 -0409D5F8 80820124 -040F1340 80620124 -040EEB20 80620124 -0410B554 80620124 -0410B398 80620124 -04109528 80620124 -0410A110 80C20124 -04109F40 80C20124 -040EEB04 80620124 -0410B398 80620124 -04108EAC 80620124 -04108DC4 80620124 -0410B398 80620124 -04109448 80620124 -041093A4 80620124 -041093A4 80620124 -C212CD18 00000002 -80620098 80630070 -60000000 00000000 -C212CD30 00000002 -80620098 80630070 -60000000 00000000 -C212CD48 00000002 -80620098 80630070 -60000000 00000000 -C212CD60 00000002 -80620098 80630070 -60000000 00000000 -C212CD78 00000002 -80620098 80630070 -60000000 00000000 -C212CD90 00000002 -80820098 80840070 -60000000 00000000 -C212CDBC 00000002 -80620098 80630070 -60000000 00000000 -C21092E4 00000002 -80620098 80630020 -60000000 00000000 -C21092FC 00000002 -80620098 80630020 -60000000 00000000 -C2109314 00000002 -80620098 80630020 -60000000 00000000 -C210932C 00000002 -80620098 80630020 -60000000 00000000 -C2109344 00000002 -80620098 80630020 -60000000 00000000 -C210935C 00000002 -80820098 80840020 -60000000 00000000 -C2109388 00000002 -80620098 80630020 -60000000 00000000 -C210932C 00000002 -80620098 80630020 -60000000 00000000 -C20F587C 00000002 -80820098 80840020 -60000000 00000000 -C20F1058 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C20F13A4 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C20F154C 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C2070258 00000005 -81620118 819C2238 -1D8C0004 7D6C582E -899C0619 1D8C0010 -7D6B6214 800B000C -60000000 00000000 -C20F1164 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 -C20F1280 00000005 -81620118 819E2238 -1D8C0004 7D6C582E -899E0619 1D8C0010 -7D6B6214 80AB000C -60000000 00000000 +7FE5FB78 38C00000 +3D808036 618CFB5C +7D8903A6 4E800421 +BA810008 80010104 +38210100 7C0803A6 +38700000 00000000 04015D9C 80020184 04015C00 80020184 04015BC0 80620184 @@ -9665,18 +6225,6 @@ C20159B4 00000018 04015984 2C190007 04015B94 2C1C0007 04015914 83E20184 -C20179B4 00000002 -8182014C 7C036000 -60000000 00000000 -C20179F0 00000002 -8182014C 7C1D6000 -60000000 00000000 -C2017A08 00000002 -8182014C 7C006000 -60000000 00000000 -C2017A38 00000002 -8182014C 7C1A6000 -60000000 00000000 C237C050 0000000C 7FECFB78 48000040 806C0004 5463013E @@ -9690,49 +6238,6 @@ D03D0034 48000010 4082FFC0 3D808037 618CC0A8 7D8903A6 4E800420 00000000 -C2219230 00000004 -80820178 80840008 -8084006C 1C630004 -7C63202E 4E800020 -60000000 00000000 -C20BEC18 00000002 -81820178 818C000C -800C0098 00000000 -040BEBD0 80020078 -C2160438 00000003 -8082006C 1C630004 -7C63202E 4E800020 -60000000 00000000 -C2176C40 00000004 -80820070 7C1C20AE -3D808017 618C6C8C -7D8903A6 4E800420 -60000000 00000000 -0417A890 80020074 -C2160400 00000009 -7C0802A6 90010004 -9421FF00 BE810008 -8182014C 7C036000 -41810014 80820080 -1C630004 7C63202E -48000008 3860FFFF -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C20BE938 00000002 -81820178 818C000C -800C009C 00000000 -040C0AB4 4800003C -040C09D0 48000040 -C2168C6C 00000008 -8182014C 398CFFFC -7C036000 41810020 -8082007C 1C630004 -7C63202E 3D808002 -618C43F4 7D8903A6 -4E800421 8001000C -38210008 7C0803A6 -4E800020 00000000 C2026680 0000000E 38600000 80E20090 7CA82B78 7C892378 @@ -10413,452 +6918,6 @@ C202766C 00000002 C20269DC 00000002 83020060 8338000C 83180010 00000000 -C21647FC 00000004 -80820178 80840008 -80840050 1C630002 -7C63222E 4E800020 -60000000 00000000 -C226B40C 00000023 -2C041388 41800108 -7C0802A6 90010004 -9421FF00 BE810008 -7C7E1B78 3BA4EC78 -3C608049 6063E6C8 -83830088 80620178 -80630028 8063000C -1C9C0008 7F632214 -807B0000 7C1D1800 -40800028 807B0004 -1C9D0002 7C63222E -80820088 80840014 -3863FF13 1C630004 -7FC3212E 4800008C -48000051 7C6802A6 -7FA4EB78 7F85E378 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 4572726F -723A204D 78447420 -646F6573 206E6F74 -20636F6E 7461696E -20697465 6D202564 -20666F72 20737461 -67652025 640A0000 -BA810008 80010104 -38210100 7C0803A6 -4E800020 3CA0804A -60000000 00000000 -C21C60C8 0000002B -80610014 7C0802A6 -90010004 9421FF00 -BE810008 7C7D1B78 -3C608049 6063E6C8 -83830088 3B400000 -7FA3EB78 48000075 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820034 7F63DB78 -3D80803D 618C7074 -7D8903A6 4E800421 -7F63DB78 80820178 -8084002C 1CBC0004 -7C84282E 4800003D -3B400001 7FA3EB78 -7F84E378 38A00001 -3D80803D 618C7070 -7D8903A6 4E800421 -7F5A1B78 48000084 -4E800021 67724675 -6E637469 6F6E0000 -7C6C1B78 7C892378 -80EC000C 814C0000 -39000000 4800004C -1C680008 7D633A14 -806B0000 54600001 -40820018 1C830004 -806B0004 7C635214 -7C64492E 48000020 -808B0004 7C845214 -7C832050 548401BA -64844800 90830000 -48000004 39080001 -806C0010 7C081800 -4180FFB0 4E800020 -2C1A0000 4182001C -807D0040 809D0000 -3D808032 618C8F50 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -80610014 00000000 -C22599EC 00000021 -7C0802A6 90010004 -9421FF00 BE810008 -83820100 83620154 -7F63DB78 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -3BA00000 3A800000 -1C740020 7C83E214 -80640004 2C030000 -41800028 8864000A -3D808016 618C4330 -7D8903A6 4E800421 -2C030000 4182000C -7E9DF1AE 3BBD0001 -3A940001 7C14D800 -4180FFC0 2C1D0000 -4082002C 7F65DB78 -48000014 1C850020 -7C84E214 38600000 -90640004 38A5FFFF -2C050000 4080FFE8 -4BFFFF8C 7FA3EB78 -3D808038 618C0580 -7D8903A6 4E800421 -7FE3F0AE 1C9F0020 -7C84E214 3860FFFF -90640004 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 -7FE3FB78 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C225B39C 00000003 -80C20178 80C60004 -80C60000 38C60004 -60000000 00000000 -C225BC08 00000003 -80820100 1C630020 -7C632214 8063001C -4E800020 00000000 -042251A4 80020104 -04225204 80020104 -042251C8 80020104 -040569FC 80820110 -04056A2C 80A20110 -04056A64 80A20110 -04056A9C 80A20110 -04056AD4 80A20110 -04056B0C 80A20110 -04056B44 80A20110 -04259FE0 88030009 -0425B270 92FF00A0 -0425B274 881F00A8 -0425B294 981F00A8 -0425B2A8 889F00A9 -0425B1E8 3BFF0220 -0425B1D0 92DF03A0 -0425B044 92FC01A0 -0425B048 881C01A8 -0425B068 981C01A8 -0425B07C 889C01A9 -0425AFB0 3B9F0160 -0425AEDC 901B0020 -0425AEE0 881B0028 -0425AEFC 807B0020 -0425AF20 881B0029 -0425AF28 807B0020 -0425BB40 8004001C -C225A0F4 0000000A -81820154 7C036000 -4182002C 398CFFFF -7C036000 41820020 -1C030020 7C7F0214 -88630009 7C630774 -2C03FFFF 41820008 -48000014 3D808025 -618CA1D8 7D8903A6 -4E800420 807E0000 -60000000 00000000 -C225A62C 00000002 -81820154 7C056040 -60000000 00000000 -C2259FB4 00000002 -81820154 7C1E6000 -60000000 00000000 -C2259C4C 0000000A -81820154 7C036000 -41820020 398CFFFF -7C036000 41820024 -3D808025 618C9C84 -7D8903A6 4E800420 -3D808025 618C9C64 -7D8903A6 4E800420 -3D808025 618C9C74 -7D8903A6 4E800420 -60000000 00000000 -C2259C90 00000002 -81820154 7C036000 -60000000 00000000 -C2259E44 00000002 -81820154 7C036040 -60000000 00000000 -0425A0D4 80620154 -0425AA10 80E20154 -0425B580 80020154 -0425A578 83E20100 -0425A4C4 83E20100 -04259FCC 80020100 -04259CA0 80620100 -0425BB30 80820100 -0425A0A4 83E20100 -04259E54 80620100 -C225A9FC 00000002 -7C7C1B78 83E20100 -60000000 00000000 -C225A53C 00000002 -80620154 7C1E1800 -60000000 00000000 -0425A5A0 1C050020 -0425A634 1C050020 -0425A738 1C000020 -0425A7B8 1C000020 -0425A540 3BFF0020 -04259FC4 1C9E0020 -04259C98 1C030020 -0425AD6C 1C170020 -0425AD9C 3AD60020 -0425B0E8 3B9C0020 -0425B314 3BFF0020 -0425AF88 3B7B0040 -0425BB38 1C000020 -0425A0B8 1C050020 -0425A0F8 1C030020 -0425A27C 1C840020 -04259E4C 1C030020 -C2027A14 00000002 -80620108 7C630214 -88A30000 00000000 -04026EF0 80020108 -C20279E0 00000002 -80620108 7C630214 -88030001 00000000 -C21C17A8 00000002 -8082010C 7C840214 -80840000 00000000 -041C0784 8062010C -041C06D4 8002010C -041C1EC8 8002010C -C21C46A8 00000002 -8062010C 7C630214 -80630000 00000000 -041C0FD8 8002010C -041C0F8C 8002010C -041C0828 8082010C -041C2F60 8002010C -041C3154 8002010C -041C302C 8002010C -C21C28F0 00000002 -8382010C 3B9CFFCC -60000000 00000000 -C2223930 00000003 -3D80803D 618C7068 -7D8903A6 4E800421 -7C7F1B78 00000000 -C225ACA0 000000B3 -806DB5F4 480004DD -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 2C030000 -41820568 906D4A08 -7C0802A6 90010004 -9421FF00 BE810008 -7C7E1B78 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 807E000C -3D808037 618C0E44 -7D8903A6 4E800421 -7C7D1B78 7E83A378 -888DC1A9 7FA5EB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00004 -38C00082 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -3C808022 6084EAE0 -38A00004 3D808038 -618CFD54 7D8903A6 -4E800421 7FA3EB78 -809E0010 38A00000 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 82DD0010 -7EC3B378 C022C9C0 -3D808036 618CF8BC -7D8903A6 4E800421 -7EC3B378 3D808037 -618C0928 7D8903A6 -4E800421 82D60008 -2C160000 4082FFCC -82820100 3AA00000 -8074001C 3D808016 -618C4430 7D8903A6 -4E800421 2C030000 -4182000C 38000002 -48000008 38000001 -98140008 3A940020 -3AB50001 80620154 -7C151800 4180FFC4 -3AC00000 82E20100 -831D0010 80620154 -3863FFFF 7C161800 -418201A0 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 807E0000 -3D808037 618C0E44 -7D8903A6 4E800421 -7C751B78 7E83A378 -888DC1A9 7EA5AB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00004 -38C00083 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -3C808022 6084EAE0 -38A00003 3D808038 -618CFD54 7D8903A6 -4E800421 7EA3AB78 -809E0004 80BE0008 -38C00000 3D808036 -618CFB5C 7D8903A6 -4E800421 7EA3AB78 -7F04C378 4800029D -92B70000 88170008 -2C000001 418200A8 -418000AC 7EA3AB78 -88970009 C022C9C0 -3D808036 618CF8BC -7D8903A6 4E800421 -38760002 6C638000 -90610084 3C604330 -90610080 C822C9B8 -C8010080 EC200828 -7EA3AB78 38800010 -3D808036 618CF7B0 -7D8903A6 4E800421 -7EA3AB78 3D808037 -618C0928 7D8903A6 -4E800421 7EA3AB78 -38800006 38A00400 -3CC08036 60C6414C -38E00006 39000000 -39200000 4CC63182 -3D808036 618C4C08 -7D8903A6 4E800421 -48000028 38000000 -98170008 7EA3AB78 -38800010 3D808037 -618C1D9C 7D8903A6 -4E800421 48000004 -3AD60001 3AF70020 -83180008 2C180000 -4082FE44 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 806DB5F8 -80630010 3D808037 -618C0E44 7D8903A6 -4E800421 7C751B78 -7E83A378 888DC1A9 -7EA5AB78 3D808039 -618C0A70 7D8903A6 -4E800421 7E83A378 -3C808039 60841070 -38A00004 38C00083 -3D808039 618C069C -7D8903A6 4E800421 -7E83A378 3C808022 -6084EAE0 38A00004 -3D808038 618CFD54 -7D8903A6 4E800421 -7EA3AB78 38800000 -38A00000 38C00000 -3D808036 618CFB5C -7D8903A6 4E800421 -7FA3EB78 38810080 -80A20154 38C0FFFF -4CC63182 3D808001 -618C1E24 7D8903A6 -4E800421 7EA3AB78 -80810080 480000C5 -7EA3AB78 C022C9C0 -3D808036 618CF8BC -7D8903A6 4E800421 -7EA3AB78 38800010 -C022C9F8 3D808036 -618CF7B0 7D8903A6 -4E800421 7EA3AB78 -3D808037 618C0928 -7D8903A6 4E800421 -7EA3AB78 38800006 -38A00400 3CC08036 -60C6414C 38E00000 -39000000 39200000 -4CC63182 3D808036 -618C4C08 7D8903A6 -4E800421 80620100 -80820154 3884FFFF -1C840020 7EA4192E -BA810008 80010104 -38210100 7C0803A6 -3D808025 618CB31C -7D8903A6 4E800420 -4E800021 6D65784D -61704461 74610000 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -3D808000 618CC2F8 -7D8903A6 4E800421 -3D808037 618CC444 -7D8903A6 4E800421 -7C7D1B78 3C809000 -60840008 3D808037 -618CAE90 7D8903A6 -4E800421 387D0000 -389E0000 3D808037 -618CCC90 7D8903A6 -4E800421 387F0000 -389D0000 3D808037 -618C1C68 7D8903A6 -4E800421 BA810008 -80010104 38210100 -7C0803A6 4E800020 -38600000 906D4A08 -38600004 00000000 -C225A014 00000004 -808D4A08 2C040000 -4182000C A3BC0000 -48000008 83A10024 -60000000 00000000 -C2259F64 00000004 -80ED4A08 2C070000 -4182000C 80A70014 -48000008 80A60038 -60000000 00000000 -C2173860 00000004 -2C03001A 41800014 -3D808017 618C38EC -7D8903A6 4E800420 -5463063E 00000000 C21A50AC 00000002 806200D4 4E800020 60000000 00000000 @@ -11103,19 +7162,6 @@ C200561C 00000012 BA810008 80010104 38210100 7C0803A6 4E800020 00000000 -040D6968 80020050 -040D69D0 80020054 -040D6A20 80020054 -040966A8 80020054 -040D68CC 80020038 -04096704 8002003C -040D6830 80020048 -04096800 8002004C -04096878 8002004C -0409655C 80020040 -0409660C 80020040 -040967C4 80020044 -0409677C 80020044 C20056A8 00000005 2C030037 41820018 81820060 818C0004 @@ -11988,263 +8034,6 @@ C23D706C 0000000C 80010104 38210100 7C0803A6 4E800020 60000000 00000000 -C202313C 00000002 -80820158 38840001 -1C042710 00000000 -C2088170 0000001F -3B830000 3CA068DB -60A58BAD 7D3D2896 -7D296670 2C090000 -408200D0 2C1D1388 -418000C8 3CA068DB -60A58BAD 7CBD2896 -7CA95E70 7FA5FE70 -7CA54850 1CA51388 -7FA5E850 813C0004 -2C090004 41820008 -48000068 813C2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893C000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7FA9EA14 48000004 -7F83E378 7FA4EB78 -60000000 00000000 -C2088204 0000001E -3CA068DB 60A58BAD -7D3E2896 7D296670 -2C090000 408200D0 -2C1E1388 418000C8 -3CA068DB 60A58BAD -7CBE2896 7CA95E70 -7FC5FE70 7CA54850 -1CA51388 7FC5F050 -813F0004 2C090004 -41820008 48000068 -813F2238 81420008 -39600000 48000048 -898A0000 7D8C0774 -2C0CFFFF 4182000C -7C0C4800 41820020 -898A0001 7D8C0774 -2C0CFFFF 41820018 -7C0C4800 41820008 -4800000C 7D695B78 -48000034 394A0003 -396B0001 8182014C -7C0B6000 4180FFB4 -48000000 893F000C -3D408045 614A3080 -1D290E90 7D295214 -81290004 81420020 -1D290010 7D2950AE -1D292710 7FC9F214 -48000004 881F2225 -60000000 00000000 -C20884B0 0000001E -3BA30000 3CA068DB -60A58BAD 7D242896 -7D296670 2C090000 -408200D0 2C041388 -418000C8 3CA068DB -60A58BAD 7CA42896 -7CA95E70 7C85FE70 -7CA54850 1CA51388 -7C852050 813D0004 -2C090004 41820008 -48000068 813D2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893D000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7C892214 48000004 -7FA3EB78 00000000 -C20CBCB4 0000001D -80840014 3D0068DB -61088BAD 7D244096 -7D296670 2C090000 -408200CC 2C041388 -418000C4 3D0068DB -61088BAD 7D044096 -7D095E70 7C88FE70 -7D084850 1D081388 -7C882050 813F0004 -2C090004 41820008 -48000068 813F2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893F000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7C892214 00000000 -C226AEBC 00000020 -3CE068DB 60E78BAD -7D243896 7D296670 -2C090000 408200E0 -2C041388 418000D8 -811D0518 2C080000 -418200CC 8108002C -3CE068DB 60E78BAD -7CE43896 7CE95E70 -7C87FE70 7CE74850 -1CE71388 7C872050 -81280004 2C090004 -41820008 48000068 -81282238 81420008 -39600000 48000048 -898A0000 7D8C0774 -2C0CFFFF 4182000C -7C0C4800 41820020 -898A0001 7D8C0774 -2C0CFFFF 41820018 -7C0C4800 41820008 -4800000C 7D695B78 -48000034 394A0003 -396B0001 8182014C -7C0B6000 4180FFB4 -48000000 8928000C -3D408045 614A3080 -1D290E90 7D295214 -81290004 81420020 -1D290010 7D2950AE -1D292710 7C892214 -48000004 7C832378 -60000000 00000000 -C226AF2C 00000020 -3BA40000 3CE068DB -60E78BAD 7D3D3896 -7D296670 2C090000 -408200E0 2C1D1388 -418000D8 81030518 -2C080000 418200CC -8108002C 3CE068DB -60E78BAD 7CFD3896 -7CE95E70 7FA7FE70 -7CE74850 1CE71388 -7FA7E850 81280004 -2C090004 41820008 -48000068 81282238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -8928000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7FA9EA14 48000004 -60000000 00000000 -C226AFC0 00000020 -3BA40000 3CE068DB -60E78BAD 7D3D3896 -7D296670 2C090000 -408200E0 2C1D1388 -418000D8 81030518 -2C080000 418200CC -8108002C 3CE068DB -60E78BAD 7CFD3896 -7CE95E70 7FA7FE70 -7CE74850 1CE71388 -7FA7E850 81280004 -2C090004 41820008 -48000068 81282238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -8928000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7FA9EA14 48000004 -60000000 00000000 -C2088548 0000001E -3BA30000 3CA068DB -60A58BAD 7D242896 -7D296670 2C090000 -408200D0 2C041388 -418000C8 3CA068DB -60A58BAD 7CA42896 -7CA95E70 7C85FE70 -7CA54850 1CA51388 -7C852050 813D0004 -2C090004 41820008 -48000068 813D2238 -81420008 39600000 -48000048 898A0000 -7D8C0774 2C0CFFFF -4182000C 7C0C4800 -41820020 898A0001 -7D8C0774 2C0CFFFF -41820018 7C0C4800 -41820008 4800000C -7D695B78 48000034 -394A0003 396B0001 -8182014C 7C0B6000 -4180FFB4 48000000 -893D000C 3D408045 -614A3080 1D290E90 -7D295214 81290004 -81420020 1D290010 -7D2950AE 1D292710 -7C892214 48000004 -7FA3EB78 00000000 0435E6E4 901F0070 0435E6E0 3800FFFF 0435ECFC 901E0070 @@ -12252,251 +8041,6 @@ C2088548 0000001E 04360A38 80160070 04360A3C 2C00FFFF 0435E918 901F0070 -C21BF200 00000005 -80620150 3D808038 -618C0580 7D8903A6 -4E800421 80820000 -1C63001C 7C632214 -8BA300DD 00000000 -C2075124 00000005 -7FC3F378 38800002 -7FE5FB78 3D80803D -618C7098 7D8903A6 -4E800421 809E0004 -60000000 00000000 -C2075188 00000005 -7FC3F378 38800003 -7FE5FB78 3D80803D -618C7098 7D8903A6 -4E800421 809E0004 -60000000 00000000 -C20751F0 00000005 -7FC3F378 7FA4EB78 -7FE5FB78 3D80803D -618C7098 7D8903A6 -4E800421 809E0004 -60000000 00000000 -C207B4C0 00000082 -7C0802A6 90010004 -9421FF00 BE810008 -83FD0000 807D0004 -8082005C 1C630008 -7C63202E 881D0619 -1C000018 7C630214 -83C30014 7FC3F378 -48000271 7C8802A6 -3D808038 618C0358 -7D8903A6 4E800421 -2C030000 41820394 -3B830008 801C0000 -2C000000 41820384 -801C0000 901D23F4 -1C600004 3D808037 -618CF1E4 7D8903A6 -4E800421 907D23F8 -3A800000 4800020C -807C0004 1C140004 -7EA3002E 38600030 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C761B78 807D23F8 -1C140004 7EC3012E -3C608045 60639080 -3D808037 618CABC8 -7D8903A6 4E800421 -9076000C 80750000 -3D808037 618C0E44 -7D8903A6 4E800421 -90760000 80150004 -90160004 3D808007 -618C4148 7D8903A6 -4E800421 3D808007 -618C4170 7D8903A6 -4E800421 7FE3FB78 -80960000 38B60008 -3D808007 618C5650 -7D8903A6 4E800421 -38D60008 7CC73378 -38A00000 38960010 -38750010 3D808007 -618C487C 7D8903A6 -4E800421 3AE00000 -48000094 8075000C -1C170004 7F23002E -3B1D02F0 807D03E0 -1C030018 7F180214 -807D03E0 38630001 -907D03E0 2C03000A -40800128 80760000 -38810080 80B90000 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -38980004 80B90008 -3D808000 618CFD48 -7D8903A6 4E800421 -38000000 90180000 -38790004 38980004 -3D808001 618C1710 -7D8903A6 4E800421 -3AF70001 80150008 -7C170000 4180FF68 -3D808021 618CB2D8 -7D8903A6 4E800421 -3AE00000 48000074 -8075001C 1C170004 -7F23002E 3B1D1670 -887D166C 1C030028 -7F180214 887D166C -38630001 987D166C -2C03000B 408000D0 -80790000 90780024 -80790000 809D05E8 -1C630010 7C63202E -90780010 C0390004 -D0380000 C0390008 -D0380004 C039000C -D0380008 C0390010 -D038000C 3AF70001 -80150018 7C170000 -4180FF88 3A940001 -801C0000 7C140000 -4180FDF0 48000150 -4E800021 6D657843 -6F737475 6D650000 -480000C5 7C6802A6 -8082000C 801D0004 -1C000004 7C84002E -881D0619 1C000010 -7C840214 80840000 -3D808034 618C56A8 -7D8903A6 4E800421 -48000081 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4800009D -7C6802A6 8082000C -801D0004 1C000004 -7C84002E 881D0619 -1C000010 7C840214 -80840000 3D808034 -618C56A8 7D8903A6 -4E800421 48000025 -7C6802A6 38800000 -3CA0804D 60A53940 -3D808038 618C8220 -7D8903A6 4E800421 -4E800021 6D2D6578 -00000000 4E800021 -6572726F 723A2063 -6F737475 6D652025 -73207573 6573206D -6F726520 7468616E -20313020 64796E61 -6D696373 0A000000 -4E800021 6572726F -723A2063 6F737475 -6D652025 73207573 -6573206D 6F726520 -7468616E 20313120 -64796E61 6D696373 -20686974 730A0000 -38000000 901D23F4 -901D23F8 BA810008 -80010104 38210100 -7C0803A6 8001002C -60000000 00000000 -C206DBD0 00000016 -7C0802A6 90010004 -9421FF00 BE810008 -807E23F4 2C030000 -41820080 3A800000 -48000058 807E23F8 -1C140004 7EC3002E -3C608045 60639080 -8096000C 3D808037 -618CAD20 7D8903A6 -4E800421 80760000 -3D808037 618C1590 -7D8903A6 4E800421 -7EC3002E 3D808037 -618CF1B0 7D8903A6 -4E800421 3A940001 -801E23F4 7C140000 -4180FFA4 807E23F8 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -387F0000 00000000 -C2080DC8 0000001D -7C0802A6 90010004 -9421FF00 BE810008 -3A800000 480000B0 -807F23F8 1C140004 -7EA3002E 82F50000 -2C170000 41820094 -807F05E8 80150004 -1C000010 7EC3002E -7EC3B378 3D808037 -618C32E8 7D8903A6 -4E800421 38760044 -38970044 3D808034 -618C21D0 7D8903A6 -4E800421 80770014 -64630380 90770014 -7EE3BB78 3D808037 -618C32E8 7D8903A6 -4E800421 7F83E378 -3D808039 618C0EB8 -7D8903A6 4E800421 -7C651B78 7EE3BB78 -38800000 38C00000 -3D808037 618C09DC -7D8903A6 4E800421 -3A940001 801F23F4 -7C140000 4180FF4C -BA810008 80010104 -38210100 7C0803A6 -7FE3FB78 00000000 -C2080BCC 0000001D -7C0802A6 90010004 -9421FF00 BE810008 -3A800000 480000B0 -807F23F8 1C140004 -7EA3002E 82F50000 -2C170000 41820094 -807F05E8 80150004 -1C000010 7EC3002E -7EC3B378 3D808037 -618C32E8 7D8903A6 -4E800421 38760044 -38970044 3D808034 -618C21D0 7D8903A6 -4E800421 80770014 -64630380 90770014 -7EE3BB78 3D808037 -618C32E8 7D8903A6 -4E800421 7F83E378 -3D808039 618C0EB8 -7D8903A6 4E800421 -7C651B78 7EE3BB78 -38800000 38C00000 -3D808037 618C09DC -7D8903A6 4E800421 -3A940001 801F23F4 -7C140000 4180FF4C -BA810008 80010104 -38210100 7C0803A6 -7FE3FB78 00000000 -C209CB68 00000006 -7C040000 41800014 -3D808009 618CCF6C -7D8903A6 4E800420 -3D808009 618CCB70 -7D8903A6 4E800420 -60000000 00000000 C21A4C98 00000011 818200F8 816DC018 39400000 38E00000 From abb260877551709aab54477613e52d71e9d0429d Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 9 Jan 2022 22:41:20 -0600 Subject: [PATCH 031/217] enable recording for break the targets --- Output/Netplay/GALE01r2.ini | 7 ++++--- Output/Netplay/GALJ01r2.ini | 7 ++++--- Recording/ShouldRecord.asm | 6 ++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 8a4bba8d..295db4bd 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -953,11 +953,12 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000008 #Recording/ShouldRecord.asm +C2005604 00000009 #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182001C 2C030302 -41820014 2C030208 +41820024 2C030302 +4182001C 2C030208 +41820014 2C03010F 4182000C 38600000 4800000C 38600001 48000004 4E800020 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index cd5deb99..03720a5c 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -953,11 +953,12 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000008 #Recording/ShouldRecord.asm +C2005604 00000009 #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182001C 2C030302 -41820014 2C030208 +41820024 2C030302 +4182001C 2C030208 +41820014 2C03010F 4182000C 38600000 4800000C 38600001 48000004 4E800020 diff --git a/Recording/ShouldRecord.asm b/Recording/ShouldRecord.asm index 21f739c2..4c9e26b7 100644 --- a/Recording/ShouldRecord.asm +++ b/Recording/ShouldRecord.asm @@ -5,11 +5,13 @@ .include "Recording/Recording.s" getMinorMajor r3 - cmpwi r3, 0x0202 + cmpwi r3, 0x0202 # Versus beq ReturnTrue cmpwi r3, 0x0302 # Sudden Death beq ReturnTrue - cmpwi r3, 0x0208 + cmpwi r3, 0x0208 # Versus Online + beq ReturnTrue + cmpwi r3, 0x010f # Break the Targets beq ReturnTrue ReturnFalse: From 57840ed7781acb26f72370cd9f42738024f9fece Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 9 Jan 2022 22:43:17 -0600 Subject: [PATCH 032/217] disable neutral spawn code on break the targets --- External/NeutralSpawn/NeutralSpawn.asm | 4 + Output/Netplay/GALE01r2.ini | 272 +++++++++++++------------ Output/Netplay/GALJ01r2.ini | 272 +++++++++++++------------ 3 files changed, 278 insertions(+), 270 deletions(-) diff --git a/External/NeutralSpawn/NeutralSpawn.asm b/External/NeutralSpawn/NeutralSpawn.asm index 68a9b9bf..6f67c483 100644 --- a/External/NeutralSpawn/NeutralSpawn.asm +++ b/External/NeutralSpawn/NeutralSpawn.asm @@ -16,6 +16,10 @@ backup #Don't run for players 5 and 6 cmpwi REG_PlayerSlot,5 bge Exit +#Don't run in Target Test + getMinorMajor r3 + cmpwi r3, 0x010f + beq Exit #Check if teams lbz r3, 0x24D0 (MatchInfo) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 295db4bd..a87b6ba6 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -57,154 +57,156 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 0416B480 60000000 #C-Stick in Single Player [Zauron] 0422D638 38000006 #Debug Menu [Magus, donny2112] 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] -C216E510 00000093 #External/NeutralSpawn/NeutralSpawn.asm +C216E510 00000095 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 9421FF50 BE810008 3D808016 618CB41C 7D8903A6 4E800421 -2C030000 40820458 -2C1C0005 40800450 -887F24D0 2C030001 -41820054 3B200000 -3B400000 7F43D378 +2C030000 4082046C +2C1C0005 40800464 +3C608048 80639D30 +5463443E 2C03010F +41820450 887F24D0 +2C030001 41820054 +3B200000 3B400000 +7F43D378 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820010 7C1CD000 +41820014 3B390001 +3B5A0001 2C1A0004 +4081FFD0 7F83E378 +7F24CB78 88BF24D0 +48000115 480003F4 +3B400000 3B000000 +3B200000 7F23CB78 3D808003 618C241C 7D8903A6 4E800421 -2C030003 41820010 -7C1CD000 41820014 -3B390001 3B5A0001 -2C1A0004 4081FFD0 -7F83E378 7F24CB78 -88BF24D0 48000115 -480003F4 3B400000 -3B000000 3B200000 +2C030003 41820024 7F23CB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820024 7F23CB78 -3D808003 618C3370 -7D8903A6 4E800421 -7C03D000 40820008 -3B180001 3B390001 -2C190004 4180FFBC -2C180001 41820398 -2C180002 41810390 -3B5A0001 2C1A0003 -4180FF98 3B200000 -3B410080 3B000000 -3AC00000 3AE00000 +618C3370 7D8903A6 +4E800421 7C03D000 +40820008 3B180001 +3B390001 2C190004 +4180FFBC 2C180001 +41820398 2C180002 +41810390 3B5A0001 +2C1A0003 4180FF98 +3B200000 3B410080 +3B000000 3AC00000 +3AE00000 7EE3BB78 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820028 7EE3BB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820028 7EE3BB78 -3D808003 618C3370 +618C3370 7D8903A6 +4E800421 7C03C800 +4082000C 7EF8D1AE +3B180001 3AF70001 +2C170004 4180FFB8 +3B390001 2C190003 +4180FFA4 3B200000 +7C79D0AE 7C03E000 +41820010 3B390001 +2C190004 4180FFEC +7F83E378 7F24CB78 +88BF24D0 48000009 +480002E8 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +48000121 7F8802A6 +80CD9348 38A00000 +807C0000 2C03FFFF +4182005C 7C033000 +4182000C 3B9C0044 +4BFFFFE8 3B9C0004 +1C7D0020 7F9C1A14 +1C7E0008 7F9C1A14 +38810080 C03C0000 +D0240000 C03C0004 +D0240004 38600000 +90640008 7FE3FB78 +3D808003 618C2768 +7D8903A6 4E800421 +48000054 2C1D0001 +4182000C 7FC3F378 +48000014 4800023D +7C6802A6 7C63F0AE +48000004 38810080 +3D808022 618C4E64 7D8903A6 4E800421 -7C03C800 4082000C -7EF8D1AE 3B180001 -3AF70001 2C170004 -4180FFB8 3B390001 -2C190003 4180FFA4 -3B200000 7C79D0AE -7C03E000 41820010 -3B390001 2C190004 -4180FFEC 7F83E378 -7F24CB78 88BF24D0 -48000009 480002E8 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 48000121 -7F8802A6 80CD9348 -38A00000 807C0000 -2C03FFFF 4182005C -7C033000 4182000C -3B9C0044 4BFFFFE8 -3B9C0004 1C7D0020 -7F9C1A14 1C7E0008 -7F9C1A14 38810080 -C03C0000 D0240000 -C03C0004 D0240004 -38600000 90640008 -7FE3FB78 3D808003 -618C2768 7D8903A6 -4E800421 48000054 -2C1D0001 4182000C -7FC3F378 48000014 -4800023D 7C6802A6 -7C63F0AE 48000004 -38810080 3D808022 -618C4E64 7D8903A6 -4E800421 7FE3FB78 -38810080 3D808003 -618C2768 7D8903A6 -4E800421 48000004 7FE3FB78 38810080 -3D808003 618C26CC -7D8903A6 4E800421 -C0210080 C002A8E8 -FC010040 4081000C -C022A8F8 48000008 -C022A8CC 7FE3FB78 -3D808003 618C3094 +3D808003 618C2768 7D8903A6 4E800421 +48000004 7FE3FB78 +38810080 3D808003 +618C26CC 7D8903A6 +4E800421 C0210080 +C002A8E8 FC010040 +4081000C C022A8F8 +48000008 C022A8CC +7FE3FB78 3D808003 +618C3094 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 00000020 +C2700000 41200000 +42700000 41200000 +C1A00000 41200000 +41A00000 41200000 +C2700000 41200000 +C1A00000 41200000 +42700000 41200000 +41A00000 41200000 +0000001F C21B3333 +420CCCCD 421B3333 +420CCCCD 00000000 +41000000 00000000 +4279999A C21B3333 +420CCCCD C21B3333 +40A00000 421B3333 +420CCCCD 421B3333 +40A00000 00000008 +C2280000 41D4CCCD +42280000 41E00000 +00000000 423B999A +00000000 409CCCCD +C2280000 41D4CCCD +C2280000 40A00000 +42280000 41E00000 +42280000 40A00000 +0000001C C23A6666 +4214CCCD 423D999A +42153333 00000000 +40E00000 00000000 +426A0000 C23A6666 +4214CCCD C23A6666 +40A00000 423D999A +42153333 423D999A +40A00000 00000002 +C2250000 41A80000 +42250000 41D80000 +00000000 40A80000 +00000000 42400000 +C2250000 41A80000 +C2250000 40A00000 +42250000 41D80000 +42250000 40A00000 +00000003 C2200000 +42000000 42200000 +42000000 428C0000 +40E00000 C28C0000 +40E00000 C2200000 +42000000 C2200000 +40A00000 42200000 +42000000 42200000 +40A00000 FFFFFFFF +4E800021 00030102 BA810008 800100B4 382100B0 7C0803A6 -4E800020 4E800021 -00000020 C2700000 -41200000 42700000 -41200000 C1A00000 -41200000 41A00000 -41200000 C2700000 -41200000 C1A00000 -41200000 42700000 -41200000 41A00000 -41200000 0000001F -C21B3333 420CCCCD -421B3333 420CCCCD -00000000 41000000 -00000000 4279999A -C21B3333 420CCCCD -C21B3333 40A00000 -421B3333 420CCCCD -421B3333 40A00000 -00000008 C2280000 -41D4CCCD 42280000 -41E00000 00000000 -423B999A 00000000 -409CCCCD C2280000 -41D4CCCD C2280000 -40A00000 42280000 -41E00000 42280000 -40A00000 0000001C -C23A6666 4214CCCD -423D999A 42153333 -00000000 40E00000 -00000000 426A0000 -C23A6666 4214CCCD -C23A6666 40A00000 -423D999A 42153333 -423D999A 40A00000 -00000002 C2250000 -41A80000 42250000 -41D80000 00000000 -40A80000 00000000 -42400000 C2250000 -41A80000 C2250000 -40A00000 42250000 -41D80000 42250000 -40A00000 00000003 -C2200000 42000000 -42200000 42000000 -428C0000 40E00000 -C28C0000 40E00000 -C2200000 42000000 -C2200000 40A00000 -42200000 42000000 -42200000 40A00000 -FFFFFFFF 4E800021 -00030102 BA810008 -800100B4 382100B0 -7C0803A6 881F24D0 -60000000 00000000 +881F24D0 00000000 042641B0 38000001 #Faster CSS Load [UnclePunch] 0421AAE4 60000000 #Disable FD Background Transitions [Achilles, Dan Salvato] 0425B8BC 38600002 #L+R+A Returns to CSS during Stage Load [Jorgasms] diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 03720a5c..f6cc3402 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -57,154 +57,156 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 0416B480 60000000 #C-Stick in Single Player [Zauron] 0422D638 38000006 #Debug Menu [Magus, donny2112] 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] -C216E510 00000093 #External/NeutralSpawn/NeutralSpawn.asm +C216E510 00000095 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 9421FF50 BE810008 3D808016 618CB41C 7D8903A6 4E800421 -2C030000 40820458 -2C1C0005 40800450 -887F24D0 2C030001 -41820054 3B200000 -3B400000 7F43D378 +2C030000 4082046C +2C1C0005 40800464 +3C608048 80639D30 +5463443E 2C03010F +41820450 887F24D0 +2C030001 41820054 +3B200000 3B400000 +7F43D378 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820010 7C1CD000 +41820014 3B390001 +3B5A0001 2C1A0004 +4081FFD0 7F83E378 +7F24CB78 88BF24D0 +48000115 480003F4 +3B400000 3B000000 +3B200000 7F23CB78 3D808003 618C241C 7D8903A6 4E800421 -2C030003 41820010 -7C1CD000 41820014 -3B390001 3B5A0001 -2C1A0004 4081FFD0 -7F83E378 7F24CB78 -88BF24D0 48000115 -480003F4 3B400000 -3B000000 3B200000 +2C030003 41820024 7F23CB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820024 7F23CB78 -3D808003 618C3370 -7D8903A6 4E800421 -7C03D000 40820008 -3B180001 3B390001 -2C190004 4180FFBC -2C180001 41820398 -2C180002 41810390 -3B5A0001 2C1A0003 -4180FF98 3B200000 -3B410080 3B000000 -3AC00000 3AE00000 +618C3370 7D8903A6 +4E800421 7C03D000 +40820008 3B180001 +3B390001 2C190004 +4180FFBC 2C180001 +41820398 2C180002 +41810390 3B5A0001 +2C1A0003 4180FF98 +3B200000 3B410080 +3B000000 3AC00000 +3AE00000 7EE3BB78 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820028 7EE3BB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820028 7EE3BB78 -3D808003 618C3370 +618C3370 7D8903A6 +4E800421 7C03C800 +4082000C 7EF8D1AE +3B180001 3AF70001 +2C170004 4180FFB8 +3B390001 2C190003 +4180FFA4 3B200000 +7C79D0AE 7C03E000 +41820010 3B390001 +2C190004 4180FFEC +7F83E378 7F24CB78 +88BF24D0 48000009 +480002E8 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +48000121 7F8802A6 +80CD9348 38A00000 +807C0000 2C03FFFF +4182005C 7C033000 +4182000C 3B9C0044 +4BFFFFE8 3B9C0004 +1C7D0020 7F9C1A14 +1C7E0008 7F9C1A14 +38810080 C03C0000 +D0240000 C03C0004 +D0240004 38600000 +90640008 7FE3FB78 +3D808003 618C2768 +7D8903A6 4E800421 +48000054 2C1D0001 +4182000C 7FC3F378 +48000014 4800023D +7C6802A6 7C63F0AE +48000004 38810080 +3D808022 618C4E64 7D8903A6 4E800421 -7C03C800 4082000C -7EF8D1AE 3B180001 -3AF70001 2C170004 -4180FFB8 3B390001 -2C190003 4180FFA4 -3B200000 7C79D0AE -7C03E000 41820010 -3B390001 2C190004 -4180FFEC 7F83E378 -7F24CB78 88BF24D0 -48000009 480002E8 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 48000121 -7F8802A6 80CD9348 -38A00000 807C0000 -2C03FFFF 4182005C -7C033000 4182000C -3B9C0044 4BFFFFE8 -3B9C0004 1C7D0020 -7F9C1A14 1C7E0008 -7F9C1A14 38810080 -C03C0000 D0240000 -C03C0004 D0240004 -38600000 90640008 -7FE3FB78 3D808003 -618C2768 7D8903A6 -4E800421 48000054 -2C1D0001 4182000C -7FC3F378 48000014 -4800023D 7C6802A6 -7C63F0AE 48000004 -38810080 3D808022 -618C4E64 7D8903A6 -4E800421 7FE3FB78 -38810080 3D808003 -618C2768 7D8903A6 -4E800421 48000004 7FE3FB78 38810080 -3D808003 618C26CC -7D8903A6 4E800421 -C0210080 C002A8E8 -FC010040 4081000C -C022A8F8 48000008 -C022A8CC 7FE3FB78 -3D808003 618C3094 +3D808003 618C2768 7D8903A6 4E800421 +48000004 7FE3FB78 +38810080 3D808003 +618C26CC 7D8903A6 +4E800421 C0210080 +C002A8E8 FC010040 +4081000C C022A8F8 +48000008 C022A8CC +7FE3FB78 3D808003 +618C3094 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 00000020 +C2700000 41200000 +42700000 41200000 +C1A00000 41200000 +41A00000 41200000 +C2700000 41200000 +C1A00000 41200000 +42700000 41200000 +41A00000 41200000 +0000001F C21B3333 +420CCCCD 421B3333 +420CCCCD 00000000 +41000000 00000000 +4279999A C21B3333 +420CCCCD C21B3333 +40A00000 421B3333 +420CCCCD 421B3333 +40A00000 00000008 +C2280000 41D4CCCD +42280000 41E00000 +00000000 423B999A +00000000 409CCCCD +C2280000 41D4CCCD +C2280000 40A00000 +42280000 41E00000 +42280000 40A00000 +0000001C C23A6666 +4214CCCD 423D999A +42153333 00000000 +40E00000 00000000 +426A0000 C23A6666 +4214CCCD C23A6666 +40A00000 423D999A +42153333 423D999A +40A00000 00000002 +C2250000 41A80000 +42250000 41D80000 +00000000 40A80000 +00000000 42400000 +C2250000 41A80000 +C2250000 40A00000 +42250000 41D80000 +42250000 40A00000 +00000003 C2200000 +42000000 42200000 +42000000 428C0000 +40E00000 C28C0000 +40E00000 C2200000 +42000000 C2200000 +40A00000 42200000 +42000000 42200000 +40A00000 FFFFFFFF +4E800021 00030102 BA810008 800100B4 382100B0 7C0803A6 -4E800020 4E800021 -00000020 C2700000 -41200000 42700000 -41200000 C1A00000 -41200000 41A00000 -41200000 C2700000 -41200000 C1A00000 -41200000 42700000 -41200000 41A00000 -41200000 0000001F -C21B3333 420CCCCD -421B3333 420CCCCD -00000000 41000000 -00000000 4279999A -C21B3333 420CCCCD -C21B3333 40A00000 -421B3333 420CCCCD -421B3333 40A00000 -00000008 C2280000 -41D4CCCD 42280000 -41E00000 00000000 -423B999A 00000000 -409CCCCD C2280000 -41D4CCCD C2280000 -40A00000 42280000 -41E00000 42280000 -40A00000 0000001C -C23A6666 4214CCCD -423D999A 42153333 -00000000 40E00000 -00000000 426A0000 -C23A6666 4214CCCD -C23A6666 40A00000 -423D999A 42153333 -423D999A 40A00000 -00000002 C2250000 -41A80000 42250000 -41D80000 00000000 -40A80000 00000000 -42400000 C2250000 -41A80000 C2250000 -40A00000 42250000 -41D80000 42250000 -40A00000 00000003 -C2200000 42000000 -42200000 42000000 -428C0000 40E00000 -C28C0000 40E00000 -C2200000 42000000 -C2200000 40A00000 -42200000 42000000 -42200000 40A00000 -FFFFFFFF 4E800021 -00030102 BA810008 -800100B4 382100B0 -7C0803A6 881F24D0 -60000000 00000000 +881F24D0 00000000 042641B0 38000001 #Faster CSS Load [UnclePunch] 0421AAE4 60000000 #Disable FD Background Transitions [Achilles, Dan Salvato] 0425B8BC 38600002 #L+R+A Returns to CSS during Stage Load [Jorgasms] From 6b65921c54afbcd31cd780c5e4c6d8eab024692f Mon Sep 17 00:00:00 2001 From: Calvin Date: Mon, 10 Jan 2022 14:19:24 -0600 Subject: [PATCH 033/217] add scene static scene ids --- Common/Common.s | 15 +++++++++++++++ External/NeutralSpawn/NeutralSpawn.asm | 2 +- Playback/Core/Sounds/AssignSoundInstanceId.asm | 2 +- Playback/Core/Sounds/HandleFrameSoundLog.asm | 2 +- Playback/Core/Sounds/NoDestroyVoice.asm | 2 +- Playback/Core/Sounds/NoDestroyVoice2.asm | 2 +- Playback/Core/Sounds/PreventDuplicateSounds.asm | 2 +- Recording/ShouldRecord.asm | 9 +++++---- 8 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 8f2d2b31..7c737470 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -395,6 +395,21 @@ add \reg, r3, r4 .set CFOptionsAddress, RtocAddress - ControllerFixOptions .set GeckoHeapPtr, 0x80005600 +# Internal scenes +.set SCENE_VERSUS_CSS, 0x0200 +.set SCENE_VERSUS_SSS, 0x0201 +.set SCENE_VERSUS_IN_GAME, 0x0202 +.set SCENE_VERSUS_SUDDEN_DEATH, 0x0302 + +.set SCENE_TARGETS_VSS, 0x000F +.set SCENE_TARGETS_IN_GAME, 0x010F + +.set SCENE_HOMERUN_CSS, 0x0020 +.set SCENE_HOMERUN_IN_GAME, 0x0120 + +# Playback scene +.set SCENE_PLAYBACK_IN_GAME, 0x010E + ################################################################################ # Offsets from r13 ################################################################################ diff --git a/External/NeutralSpawn/NeutralSpawn.asm b/External/NeutralSpawn/NeutralSpawn.asm index 6f67c483..dd53e398 100644 --- a/External/NeutralSpawn/NeutralSpawn.asm +++ b/External/NeutralSpawn/NeutralSpawn.asm @@ -18,7 +18,7 @@ backup bge Exit #Don't run in Target Test getMinorMajor r3 - cmpwi r3, 0x010f + cmpwi r3, SCENE_TARGETS_IN_GAME beq Exit #Check if teams diff --git a/Playback/Core/Sounds/AssignSoundInstanceId.asm b/Playback/Core/Sounds/AssignSoundInstanceId.asm index 07a9e4b3..58286fae 100644 --- a/Playback/Core/Sounds/AssignSoundInstanceId.asm +++ b/Playback/Core/Sounds/AssignSoundInstanceId.asm @@ -10,7 +10,7 @@ stw r0, -0x3F18 (r13) # Make sure we are in game getMinorMajor r3 -cmpwi r3, 0x010E +cmpwi r3, SCENE_PLAYBACK_IN_GAME bne EXIT .set REG_PDB_ADDRESS, 31 diff --git a/Playback/Core/Sounds/HandleFrameSoundLog.asm b/Playback/Core/Sounds/HandleFrameSoundLog.asm index d1873108..3ce2e2c4 100644 --- a/Playback/Core/Sounds/HandleFrameSoundLog.asm +++ b/Playback/Core/Sounds/HandleFrameSoundLog.asm @@ -25,7 +25,7 @@ branch r12, 0x801a5024 # go to where branch would have taken us START: # Make sure we are in game getMinorMajor r3 -cmpwi r3, 0x010E +cmpwi r3, SCENE_PLAYBACK_IN_GAME bne EXIT backup diff --git a/Playback/Core/Sounds/NoDestroyVoice.asm b/Playback/Core/Sounds/NoDestroyVoice.asm index bd345d16..2c947926 100644 --- a/Playback/Core/Sounds/NoDestroyVoice.asm +++ b/Playback/Core/Sounds/NoDestroyVoice.asm @@ -12,7 +12,7 @@ # Make sure we are in game getMinorMajor r3 -cmpwi r3, 0x010E +cmpwi r3, SCENE_PLAYBACK_IN_GAME bne EXIT backup diff --git a/Playback/Core/Sounds/NoDestroyVoice2.asm b/Playback/Core/Sounds/NoDestroyVoice2.asm index b2f10907..f3b71fed 100644 --- a/Playback/Core/Sounds/NoDestroyVoice2.asm +++ b/Playback/Core/Sounds/NoDestroyVoice2.asm @@ -18,7 +18,7 @@ # Make sure we are in game getMinorMajor r3 -cmpwi r3, 0x010E +cmpwi r3, SCENE_PLAYBACK_IN_GAME bne EXIT backup diff --git a/Playback/Core/Sounds/PreventDuplicateSounds.asm b/Playback/Core/Sounds/PreventDuplicateSounds.asm index e4f33079..c75fe816 100644 --- a/Playback/Core/Sounds/PreventDuplicateSounds.asm +++ b/Playback/Core/Sounds/PreventDuplicateSounds.asm @@ -17,7 +17,7 @@ # Make sure we are in game getMinorMajor r3 -cmpwi r3, 0x010E +cmpwi r3, SCENE_PLAYBACK_IN_GAME bne EXIT backup diff --git a/Recording/ShouldRecord.asm b/Recording/ShouldRecord.asm index 4c9e26b7..7d425f13 100644 --- a/Recording/ShouldRecord.asm +++ b/Recording/ShouldRecord.asm @@ -3,15 +3,16 @@ ################################################################################ .include "Common/Common.s" .include "Recording/Recording.s" +.include "Online/Online.s" getMinorMajor r3 - cmpwi r3, 0x0202 # Versus + cmpwi r3, SCENE_VERSUS_IN_GAME beq ReturnTrue - cmpwi r3, 0x0302 # Sudden Death + cmpwi r3, SCENE_VERSUS_SUDDEN_DEATH beq ReturnTrue - cmpwi r3, 0x0208 # Versus Online + cmpwi r3, SCENE_ONLINE_IN_GAME beq ReturnTrue - cmpwi r3, 0x010f # Break the Targets + cmpwi r3, SCENE_TARGETS_IN_GAME beq ReturnTrue ReturnFalse: From c6908d0148e868c80b10779c5eb4eb872ce8d7a4 Mon Sep 17 00:00:00 2001 From: Calvin Date: Mon, 10 Jan 2022 15:57:09 -0600 Subject: [PATCH 034/217] fix sandbag taking offscreen damage --- Online/Core/BrawlOffscreenDamage.asm | 7 ++-- Output/Netplay/GALE01r2.ini | 50 +++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 50 +++++++++++++++------------- 3 files changed, 59 insertions(+), 48 deletions(-) diff --git a/Online/Core/BrawlOffscreenDamage.asm b/Online/Core/BrawlOffscreenDamage.asm index deca28fa..79a562ef 100644 --- a/Online/Core/BrawlOffscreenDamage.asm +++ b/Online/Core/BrawlOffscreenDamage.asm @@ -14,6 +14,11 @@ backup +# The Sandbag in vanilla melee doesn't take damage when offscreen +getMinorMajor r3 +cmpwi r3, SCENE_HOMERUN_IN_GAME +beq RETURN_FALSE + # First check if the player is dead lbz r3, 0x221F(REG_FIGHTERDATA) rlwinm. r3,r3,0,0x40 @@ -56,5 +61,3 @@ li r3, 1 RESTORE_AND_EXIT: restore - -EXIT: diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index a87b6ba6..a562916c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -955,12 +955,13 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000009 #Recording/ShouldRecord.asm +C2005604 0000000A #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -41820024 2C030302 -4182001C 2C030208 -41820014 2C03010F +4182002C 2C030302 +41820024 2C030208 +4182001C 2C03010F +41820014 2C030120 4182000C 38600000 4800000C 38600001 48000004 4E800020 @@ -1062,31 +1063,34 @@ C216EBAC 0000000C #Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm $Required: Slippi Online [Fizzi, UnclePunch] *Adds online mode, Slippi device must be in Slot B. *Change settings in Config > GameCube -C206A880 00000018 #Online/Core/BrawlOffscreenDamage.asm +C206A880 0000001B #Online/Core/BrawlOffscreenDamage.asm 7C0802A6 90010004 9421FF50 BE810008 -887F221F 54630673 -40820088 807F0010 -2C030004 4182007C -2C030006 41820074 -3D808022 618C4A54 +3C608048 80639D30 +5463443E 2C030120 +41820094 887F221F +54630673 40820088 +807F0010 2C030004 +4182007C 2C030006 +41820074 3D808022 +618C4A54 7D8903A6 +4E800421 C05F00B0 +FC020840 41800060 +3D808022 618C4A68 7D8903A6 4E800421 C05F00B0 FC020840 -41800060 3D808022 -618C4A68 7D8903A6 -4E800421 C05F00B0 -FC020840 41810044 -3D808022 618C4A80 +41810044 3D808022 +618C4A80 7D8903A6 +4E800421 C05F00B4 +FC020840 41810028 +3D808022 618C4A98 7D8903A6 4E800421 C05F00B4 FC020840 -41810028 3D808022 -618C4A98 7D8903A6 -4E800421 C05F00B4 -FC020840 4180000C -38600000 48000008 -38600001 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +4180000C 38600000 +48000008 38600001 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 54E7443E 2C070208 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f6cc3402..39072a0a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -955,12 +955,13 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000009 #Recording/ShouldRecord.asm +C2005604 0000000A #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -41820024 2C030302 -4182001C 2C030208 -41820014 2C03010F +4182002C 2C030302 +41820024 2C030208 +4182001C 2C03010F +41820014 2C030120 4182000C 38600000 4800000C 38600001 48000004 4E800020 @@ -1062,31 +1063,34 @@ C216EBAC 0000000C #Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm $Required: Slippi Online [Fizzi, UnclePunch] *Adds online mode, Slippi device must be in Slot B. *Change settings in Config > GameCube -C206A880 00000018 #Online/Core/BrawlOffscreenDamage.asm +C206A880 0000001B #Online/Core/BrawlOffscreenDamage.asm 7C0802A6 90010004 9421FF50 BE810008 -887F221F 54630673 -40820088 807F0010 -2C030004 4182007C -2C030006 41820074 -3D808022 618C4A54 +3C608048 80639D30 +5463443E 2C030120 +41820094 887F221F +54630673 40820088 +807F0010 2C030004 +4182007C 2C030006 +41820074 3D808022 +618C4A54 7D8903A6 +4E800421 C05F00B0 +FC020840 41800060 +3D808022 618C4A68 7D8903A6 4E800421 C05F00B0 FC020840 -41800060 3D808022 -618C4A68 7D8903A6 -4E800421 C05F00B0 -FC020840 41810044 -3D808022 618C4A80 +41810044 3D808022 +618C4A80 7D8903A6 +4E800421 C05F00B4 +FC020840 41810028 +3D808022 618C4A98 7D8903A6 4E800421 C05F00B4 FC020840 -41810028 3D808022 -618C4A98 7D8903A6 -4E800421 C05F00B4 -FC020840 4180000C -38600000 48000008 -38600001 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +4180000C 38600000 +48000008 38600001 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 54E7443E 2C070208 From 6178ad4a91aee5890284a14a6d961bfac9b12e15 Mon Sep 17 00:00:00 2001 From: Calvin Date: Mon, 10 Jan 2022 21:38:42 -0600 Subject: [PATCH 035/217] enable recording on home run contest --- Output/Console/GALE01r2.ini | 10 +++++---- Output/Netplay/GALE01r2.ini | 2 +- Output/Netplay/GALJ01r2.ini | 2 +- Output/Playback/GALE01r2.ini | 8 ++++++- Output/Playback/GALJ01r2.ini | 8 ++++++- .../Enable Home Run Contest Distance.asm | 22 +++++++++++++++++++ Recording/ShouldRecord.asm | 2 ++ console_core.json | 3 ++- netplay.json | 3 ++- playback.json | 3 ++- 10 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 Playback/Core/Stadium/Enable Home Run Contest Distance.asm diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 08b53ca7..d650a9d5 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -50,7 +50,7 @@ C225B8BC 00000002 #External/LRAStart From SSS Goes to CSS/LRAStart From SSS Goes 88630000 00000000 043D4A70 00000000 #External/Rumble Off/Rumble Off.asm -$Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] +$Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Used in conjunction with Slippi plugged into PortB to extract game data 040679BC 38802600 #Recording/ExtendPlayerBlock.asm C23219EC 0000001D #Recording/FlushFrameBuffer.asm @@ -444,11 +444,13 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000008 #Recording/ShouldRecord.asm +C2005604 0000000A #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182001C 2C030302 -41820014 2C030208 +4182002C 2C030302 +41820024 2C030208 +4182001C 2C03010F +41820014 2C030120 4182000C 38600000 4800000C 38600001 48000004 4E800020 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index a562916c..507cb370 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -560,7 +560,7 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0803A6 8001001C 60000000 00000000 -$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] +$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 39072a0a..09eca399 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -560,7 +560,7 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0803A6 8001001C 60000000 00000000 -$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] +$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 15def90f..1a7ef272 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -119,7 +119,7 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0803A6 8001001C 60000000 00000000 -$Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan] +$Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos] *Used to play back a .slp file *Will play replay configured in playback.txt C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm @@ -836,6 +836,12 @@ BA810008 800100B4 BA810008 800100B4 382100B0 7C0803A6 2C1A0000 00000000 +C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm +3D808046 618CDB77 +898C0000 2C0C0054 +4182000C 819F0044 +4800000C 3D808018 +618C1998 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index dfb108de..efa44322 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -119,7 +119,7 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0803A6 8001001C 60000000 00000000 -$Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan] +$Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos] *Used to play back a .slp file *Will play replay configured in playback.txt C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm @@ -836,6 +836,12 @@ BA810008 800100B4 BA810008 800100B4 382100B0 7C0803A6 2C1A0000 00000000 +C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm +3D808046 618CDB77 +898C0000 2C0C0054 +4182000C 819F0044 +4800000C 3D808018 +618C1998 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Playback/Core/Stadium/Enable Home Run Contest Distance.asm b/Playback/Core/Stadium/Enable Home Run Contest Distance.asm new file mode 100644 index 00000000..931ee0f5 --- /dev/null +++ b/Playback/Core/Stadium/Enable Home Run Contest Distance.asm @@ -0,0 +1,22 @@ +################################################################################ +# Address: 0x8016e8c8 +################################################################################ + .include "Common/Common.s" + + # Load the current stage id from the static match block + load r12, 0x8046db77 + lbz r12, 0 (r12) + + # Compare with the id for the Home Run Contest + cmpwi r12, 0x54 + beq LOAD_HRC_DISTANCE + + # Original instruction + lwz r12, 0x0044 (r31) + b EXIT + +LOAD_HRC_DISTANCE: + # Load the HRC Distance Display + load r12, 0x80181998 + +EXIT: diff --git a/Recording/ShouldRecord.asm b/Recording/ShouldRecord.asm index 7d425f13..1d043ca6 100644 --- a/Recording/ShouldRecord.asm +++ b/Recording/ShouldRecord.asm @@ -14,6 +14,8 @@ beq ReturnTrue cmpwi r3, SCENE_TARGETS_IN_GAME beq ReturnTrue + cmpwi r3, SCENE_HOMERUN_IN_GAME + beq ReturnTrue ReturnFalse: li r3,0 diff --git a/console_core.json b/console_core.json index 91113520..98b0e2f9 100644 --- a/console_core.json +++ b/console_core.json @@ -125,7 +125,8 @@ "Achilles", "UnclePunch", "Nikki", - "jmlee337" + "jmlee337", + "Krohnos" ], "description": [ "Used in conjunction with Slippi plugged into PortB to extract game data" diff --git a/netplay.json b/netplay.json index dd97743b..bf63b492 100644 --- a/netplay.json +++ b/netplay.json @@ -244,7 +244,8 @@ "Achilles", "UnclePunch", "Nikki", - "jmlee337" + "jmlee337", + "Krohnos" ], "description": [ "Saves replays, Slippi device must be in Slot B.", diff --git a/playback.json b/playback.json index 4adf6ba2..e4d90ffe 100644 --- a/playback.json +++ b/playback.json @@ -88,7 +88,8 @@ "Fizzi", "UnclePunch", "Achilles", - "tauKhan" + "tauKhan", + "Krohnos" ], "description": [ "Used to play back a .slp file", From 89a99806a2386d3341428283c34047a7da45a13d Mon Sep 17 00:00:00 2001 From: Calvin Date: Mon, 10 Jan 2022 22:57:41 -0600 Subject: [PATCH 036/217] build for console --- Output/Console/g_core.bin | Bin 5008 -> 5024 bytes Output/Console/g_core_porta.bin | Bin 5008 -> 5024 bytes Output/Console/g_mods_friendlies.bin | Bin 2608 -> 2624 bytes Output/Console/g_mods_stealth.bin | Bin 1320 -> 1336 bytes Output/Console/g_mods_tournament.bin | Bin 2048 -> 2064 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index f36f91aa7ca915202ffc03bda0a2678818de6bdc..01221e8866729e50f39fa46b658ebdf15bed509b 100644 GIT binary patch delta 61 zcmbQBzCe9LKCdB{O+tf5L-JgMkYpD-9cCsb$0i0H9cE?_tpen80BIQ=W=4J>Edrz! J7Ej=10|4RG4Kx4% delta 45 xcmZ3WK0$p$KCdE&O+tf5L-JgMkYpD-9cCsb$0i0D9cE?_Edu0oEMCCN1^^?53e5lj diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index bb95fce530cd75a3a0cb664214f2dfe34356a67d..cee5a919f2cd2df3c3eb421ca3a0e10b9c879aca 100644 GIT binary patch delta 61 zcmbQBzCe9LKCdB{O+tf5L-JgMkYpD-9cCsb$0i0H9cE?_tpen80BIQ=W=4J>Edrz! J7Ej=10|4RG4Kx4% delta 45 xcmZ3WK0$p$KCdE&O+tf5L-JgMkYpD-9cCsb$0i0D9cE?_Edu0oEMCCN1^^?53e5lj diff --git a/Output/Console/g_mods_friendlies.bin b/Output/Console/g_mods_friendlies.bin index e78999dea3fdb5932e20b0dde5d733ea393403ef..8e612e4198d6da37f0514adbb6e2541305e2fe81 100644 GIT binary patch delta 53 zcmdlWazKRRkl0fJ1_p+y6FJnSb97`FSREQzQfv|$JQ|Yc8iXXf*y%7c@;f$dG)rRH JJcnfpD*%|Z4@Uq1 delta 38 tcmX>gvO$F7kl0fJ1_p-76FJn`BXndKSREQRdL^;2Bmf0BuVI|G$NbIQq0|Ud~xqJ`5l`!nkBJp Jp2L#D3;=^V4y^zH delta 38 tcmbOr&>+BZNbIQq0|Ue4i5%+e5jrvqtPTwuy^>g15`co6*RZ580|33a2~+?8 From 48a8d0f31c190ab08a6412281f3bb99a02e0c15a Mon Sep 17 00:00:00 2001 From: Calvin Date: Tue, 11 Jan 2022 15:04:43 -0600 Subject: [PATCH 037/217] fix static scene ids --- Common/Common.s | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 7c737470..0811f335 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -396,12 +396,12 @@ add \reg, r3, r4 .set GeckoHeapPtr, 0x80005600 # Internal scenes -.set SCENE_VERSUS_CSS, 0x0200 -.set SCENE_VERSUS_SSS, 0x0201 +.set SCENE_VERSUS_CSS, 0x0002 +.set SCENE_VERSUS_SSS, 0x0102 .set SCENE_VERSUS_IN_GAME, 0x0202 .set SCENE_VERSUS_SUDDEN_DEATH, 0x0302 -.set SCENE_TARGETS_VSS, 0x000F +.set SCENE_TARGETS_CSS, 0x000F .set SCENE_TARGETS_IN_GAME, 0x010F .set SCENE_HOMERUN_CSS, 0x0020 From b40b0b7ff7e8295b387b2d1599c4d20891839298 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 24 Jan 2022 12:56:16 -0500 Subject: [PATCH 038/217] add os logger macro --- Common/Common.s | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Common/Common.s b/Common/Common.s index 8f2d2b31..33c1827b 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -118,6 +118,31 @@ branchl r12, FN_EXITransferBuffer restoreall .endm +.macro oslogf str, arg1="nop", arg2="nop", arg3="nop", arg4="nop", arg5="nop" +b 1f +0: +blrl +.string "\str" +.align 2 + +1: +backupall + +# Set up args to log +\arg1 +\arg2 +\arg3 +\arg4 +\arg5 + +# Call OSReport +bl 0b +mflr r3 +branchl r12, 0x803456a8 # OSReport + +restoreall +.endm + .macro getMinorMajor reg lis \reg, 0x8048 # load address to offset from for scene controller lwz \reg, -0x62D0(\reg) # Load from 0x80479D30 (scene controller) From 12186b528412982a3648f117ba648448fce40f87 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 24 Jan 2022 16:24:18 -0500 Subject: [PATCH 039/217] build codeset --- Output/Netplay/GALE01r2.ini | 854 +++++++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 854 +++++++++++++++++++++--------------- 2 files changed, 978 insertions(+), 730 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 5c6185a7..34351381 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -562,25 +562,26 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm -C23219EC 0000001C #Recording/FlushFrameBuffer.asm +C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 418200A8 806DB64C 83C30000 83ADB650 7F9EEA14 -2C1D0000 41820088 +2C1D0000 41820090 3860003C 987C0000 806DB654 907C0001 3C608048 80639D30 5463443E 2C030208 -806DB654 40820034 +806DB654 4082003C 80ADB61C 8885000D -2C040000 40820024 +2C040000 4082002C 8885000C 2C040000 -40820018 808507B4 -3884FF85 7C041800 +40820020 808507B4 +3884FF85 80E507BD +7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 7FC3F378 7FA4EB78 @@ -662,7 +663,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600309 60630000 +3C600309 60630100 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -970,9 +971,6 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 -C200569C 00000002 #Common/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -989,14 +987,6 @@ C20055F8 0000000F #Common/GetIsFollower.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056A0 00000007 #Common/GetSSMIndex.asm -2C030001 41820018 -3C60803B 6063B3C0 -1C840010 7C6320AE -48000018 3C60803B -6063B6B0 1C840003 -7C6320AE 48000004 -4E800020 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm 987F0008 3C608048 80639D58 2C030000 @@ -1004,154 +994,6 @@ C216D294 00000006 #Common/IncrementFrameIndex.asm 906DB654 48000010 806DB654 38630001 906DB654 00000000 -C20055F4 00000007 #Common/IntToFloat.asm -9421FF00 D0410008 -3C004330 C84298A8 -6C638000 900100F0 -906100F4 C82100F0 -EC211028 C0410008 -38210100 4E800020 -60000000 00000000 -C20056A4 00000022 #Common/LoadPremadeText.asm -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -3B800004 7F83E378 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C7D1B78 7F84E378 -3D808000 618CC160 -7D8903A6 4E800421 -386000E1 48000055 -839D0000 7FA3EB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -7F83E378 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -386000E2 4800001D -7FA3EB78 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -987D0000 9BFD0001 -9BDD0002 7FA3EB78 -38800003 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7FA3EB78 7F84E378 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20055EC 00000008 #Common/MultiplyRWithF.asm -7C0802A6 90010004 -9421FF50 BE810008 -3D808000 618C55F4 -7D8903A6 4E800421 -EC2100B2 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20056A8 00000005 #Common/RequestSSMLoad.asm -2C030037 41820018 -3D808043 618C37C4 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 -C20056B4 00000059 #Common/SubtextFunctions.asm -2C050002 418201F8 -7C0802A6 90010004 -9421FF50 BE810008 -7C751B78 7C962378 -7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C -FEA00890 FEC01090 -FEE01890 FF202890 -FF403090 2C180001 -418000FC 39E00004 -FC20B090 FC40B890 -2C0F0001 41820020 -2C0F0002 41820020 -2C0F0003 41820020 -2C0F0004 41820020 -48000024 EC21D028 -4800001C EC21D02A -48000014 EC42D028 -4800000C EC42D02A -48000004 7EA3AB78 -80810038 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7F25CB78 2C0F0000 -40820008 7EC5B378 -7EA3AB78 7EE4BB78 -3D80803A 618C74F0 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C -3D80803A 618C70A0 -7D8903A6 4E800421 -2C0F0000 4182000C -39EFFFFF 4BFFFF14 -48000094 7EA3AB78 -80810038 FC20B090 -FC40B890 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -7EC5B378 3D80803A -618C74F0 7D8903A6 -4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A -618C70A0 7D8903A6 -4E800421 7EE3BB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -7C9C2378 7CDB3378 -FEC00890 FEE01090 -FF001890 FEA02090 -4800008D 7F4802A6 -38600000 7F64DB78 -C01A0000 FC20B090 -FC40B890 FC60C090 -C09A0004 C0BA0008 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C751B78 2C1C0000 -41820010 38600001 -986DAFEC 7F86E378 -7EA3AB78 7FA4EB78 -FC00A890 D0030024 -D0030028 3D80803A -618C6368 7D8903A6 -4E800421 7EA3AB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -41100000 44160000 -41A00000 00000000 041D460C 809F00EC #Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm C21D14C8 00000002 #Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm 38600000 987F00F0 @@ -1242,6 +1084,21 @@ FC020840 4180000C 38600001 BA810008 800100B4 382100B0 7C0803A6 00000000 +C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm +3CE08048 80E79D30 +54E7443E 2C070208 +40820054 88EDAFA0 +2C070001 40820048 +88E30008 2C070007 +4082003C 89430001 +816DB61C 886B0000 +7C035000 41820018 +38600005 3D808002 +618C4030 7D8903A6 +4E800421 3D80802F +618C7120 7D8903A6 +4E800420 8903000B +60000000 00000000 C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 @@ -1258,7 +1115,7 @@ C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 -808500D6 80840002 +808500D6 8084010A 908507B4 48000028 888507B8 2C040000 4182001C 38800000 @@ -1304,10 +1161,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007BD +40820338 386007C1 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007BD +7C7B1B78 388007C1 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1316,10 +1173,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600012 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 -3860010A 3D808037 +3860010E 3D808037 618CF1E4 7D8903A6 4E800421 907B00D6 -7C7A1B78 3880010A +7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1333,9 +1190,9 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007BD +93790005 386007C1 90790009 9359000D -3860010A 90790011 +3860010E 90790011 807B024F 90790015 3860009E 90790019 38600000 9079001D @@ -1410,17 +1267,17 @@ BE810008 838DB61C BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C216E904 0000004E #Online/Core/InitPause.asm +C216E904 0000004B #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 -40820258 3D808046 +4082023C 3D808046 618CDB68 886C0002 54630739 41820028 48000029 7C6802A6 906C0040 38600000 986DAFC8 886C0002 38800000 50831F38 -986C0002 4800021C +986C0002 48000200 4E800021 7C0802A6 90010004 9421FF50 BE810008 83ADB61C @@ -1444,51 +1301,48 @@ BE810008 83ADB61C 8BDD0000 3C80804C 60841FAC 1C7E0044 7FE32214 886DAFC8 -2C030000 418200C8 +2C030000 418200AC 887D000D 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 41820070 +2C030000 41820054 807F0008 546004E7 -40820064 4800010C -38600002 3D808002 -618C4030 7D8903A6 -4E800421 3D808037 -618C8330 7D8903A6 -4E800421 3C608046 -6063B6A0 9BC30001 -7FC3F378 38800007 -3D808016 618CCF4C -7D8903A6 4E800421 -38600003 3C808046 -6084B6A0 98640000 -480000B0 38600000 +40820048 480000F0 +3C608046 6063B6A0 +9BC30001 38800007 +98830008 3880001E +988324D5 3D80802F +618C3394 7D8903A6 +4E800421 3D80801A +618C10FC 7D8903A6 +4E800421 480000B0 +38600000 986DAFC8 +3D80802F 618C33CC +7D8903A6 4E800421 +7FC3F378 3D80801A +618C10FC 7D8903A6 +4E800421 48000080 +887D000D 2C030000 +40820020 7FC3F378 +3D808003 618C3BD8 +7D8903A6 4E800421 +2C030000 41820058 +807F0008 546004E7 +4182004C 38600001 986DAFC8 3D80802F -618C33CC 7D8903A6 +618C3394 7D8903A6 4E800421 7FC3F378 -3D80801A 618C10FC -7D8903A6 4E800421 -48000080 887D000D -2C030000 40820020 -7FC3F378 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -41820058 807F0008 -546004E7 4182004C -38600001 986DAFC8 -3D80802F 618C3394 -7D8903A6 4E800421 -7FC3F378 38800005 -3D80801A 618C0FEC +38800005 3D80801A +618C0FEC 7D8903A6 +4E800421 38600005 +3D808002 618C4030 7D8903A6 4E800421 -38600005 3D808002 -618C4030 7D8903A6 -4E800421 48000004 -3860FFFF BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -881F0001 00000000 +48000004 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 881F0001 +60000000 00000000 C21A5014 00000053 #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 @@ -1573,6 +1427,10 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 +C216D26C 00000003 #Online/Core/PauseCounter.asm +808DB61C 806407BD +38630001 906407BD +387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 5463443E 2C030208 @@ -1734,7 +1592,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 38800012 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -38780000 3880010A +38780000 3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 @@ -1993,6 +1851,42 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7FC3F378 60000000 00000000 +C20D4C1C 00000005 #Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm +901F2344 C01E0030 +D01F2348 C01E003C +D01F234C 38600000 +907F0080 907F0084 +907F0088 00000000 +C20D4D68 0000000B #Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm +C03E0034 C05E0038 +C07F2348 FC630828 +FC401050 FC031040 +41810008 FC601090 +D07F2348 C03F2360 +C05F2348 EC21102A +D03F2360 C03F234C +C05F2364 EC21102A +D03F2364 3D80800D +618C4D84 7D8903A6 +4E800420 00000000 +C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808003 618C10B8 +7D8903A6 4E800421 +3D808036 618C9808 +7D8903A6 4E800421 +389E2350 38A10080 +3D808034 618C2AA8 +7D8903A6 4E800421 +80610080 907F0038 +80610084 907F003C +80610088 907F0040 +BA810008 800100B4 +382100B0 7C0803A6 +3D808008 618C0EE4 +7D8903A6 4E800420 +60000000 00000000 04019260 48000034 #Online/Core/Hacks/ForceNoDiskCrash.asm C2376304 0000000B #Online/Core/Hacks/ForceNoVideoAssert.asm 48000031 7C6802A6 @@ -4537,10 +4431,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000077 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 0000007D #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -4082039C 48000060 +408203D0 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4575,88 +4469,94 @@ D03E0024 D03E0028 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C -4800010D 387F0014 +48000141 387F0014 389F0055 38BD0053 38C00000 C03F0020 -480000F5 48000038 -807D000D 480001E9 +48000129 48000038 +807D000D 4800021D 387F0010 389F0044 -C03F001C 480000D9 -807D0011 480001D1 +C03F001C 4800010D +807D0011 48000205 387F0014 389F004B -C03F0020 480000C1 +C03F0020 480000F5 48000004 38600000 -38800000 C03F0024 -C05F002C C07F0030 -C09F0034 C0BF0038 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C7E1B78 C03F0004 -D03E0024 D03E0028 -38800001 989E004A -989E0049 C03F0000 -D03E0008 3CA0803B -60A57808 A0DD0216 -38600000 1C830002 -7C85222E 7C043000 -41820014 38630001 -2C03001D 4180FFE8 -38600000 3C80803E -6084D488 7C841A14 -8884005C 7FC3F378 -3D80803A 618C6368 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4800017C 7C0802A6 -90010004 9421FF50 -BE810008 FFE00890 -7C761B78 7C942378 -7CB92B78 7CDA3378 -7CF83B78 7D174378 -93210008 9301000C -92E10010 C3DF0028 -C07F0040 7F43D378 -3D808000 618C55F4 -7D8903A6 4E800421 -EC630072 EFDE1828 -7FC3F378 389F0018 -7EC4B378 38A00000 -7E87A378 C03F0008 -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39C00008 39E00000 -7C6E0A14 80E30000 -2C0F0000 4182000C -C07F003C EFFF182A -C09F0040 EFDE202A -7FC3F378 389F0018 -38A00000 C03F000C -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39CE0004 39EF0001 -7C0FD000 4180FFAC -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38A00008 -38C000FF 7C7A3039 -7C632C30 38E00008 -39200000 7C643039 -1C84001F 38840034 -7C84EA14 7D070A14 -90880000 7C632C30 -38E70004 39290001 -2C090003 4180FFD8 -7F46D378 80A10010 -80E1000C 81010008 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 3800FFFF -60000000 00000000 +38800000 3D80803A +618C6754 7D8903A6 +4E800421 7C7E1B78 +C03F0024 D03E0000 +C03F002C D03E0004 +C03F0030 D03E0008 +C03F0034 D03E000C +C03F0038 D03E0010 +C03F0004 D03E0024 +D03E0028 38800001 +989E004A 989E0049 +C03F0000 D03E0008 +7FC3F378 A09D0216 +3D808000 618C5690 +7D8903A6 4E800421 +2C030001 41820058 +3CA0803B 60A57808 +A0DD0216 38600000 +1C830002 7C85222E +7C043000 41820014 +38630001 2C03001D +4180FFE8 38600000 +3C80803E 6084D488 +7C841A14 8884005C +7FC3F378 3D80803A +618C6368 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4800017C +7C0802A6 90010004 +9421FF50 BE810008 +FFE00890 7C761B78 +7C942378 7CB92B78 +7CDA3378 7CF83B78 +7D174378 93210008 +9301000C 92E10010 +C3DF0028 C07F0040 +7F43D378 3D808000 +618C55F4 7D8903A6 +4E800421 EC630072 +EFDE1828 7FC3F378 +389F0018 7EC4B378 +38A00000 7E87A378 +C03F0008 FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39C00008 +39E00000 7C6E0A14 +80E30000 2C0F0000 +4182000C C07F003C +EFFF182A C09F0040 +EFDE202A 7FC3F378 +389F0018 38A00000 +C03F000C FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39CE0004 +39EF0001 7C0FD000 +4180FFAC BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38A00008 38C000FF +7C7A3039 7C632C30 +38E00008 39200000 +7C643039 1C84001F +38840034 7C84EA14 +7D070A14 90880000 +7C632C30 38E70004 +39290001 2C090003 +4180FFD8 7F46D378 +80A10010 80E1000C +81010008 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +3800FFFF 00000000 C2184DE4 00000010 #Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm 3D808048 818C9D30 558C443E 2C0C0408 @@ -4737,7 +4637,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000178 #Online/Slippi Online Scene/main.asm +C21A45B8 0000017A #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4748,7 +4648,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 4800019D 7C8802A6 4800002D -48000B50 80830000 +48000B64 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4892,7 +4792,7 @@ BE810008 3D80801B 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 -887F0003 480005D1 +887F0003 480005E5 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -4900,14 +4800,14 @@ BE810008 3D80801B 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -48000595 2C030000 +480005A9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -4800055D 2C030000 +48000571 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5061,59 +4961,62 @@ BE810008 38600000 389F0208 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F0268 98830000 -889F026B 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F028C -98640002 38602121 -B0640003 3C808049 -60840880 887F028F -98640016 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +7FC3F378 3D808000 +618C5694 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F0268 +98830000 889F026B +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F028C 98640002 +38602121 B0640003 +3C808049 60840880 +887F028F 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 +04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5133,14 +5036,14 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056AC 0000002E #Online/Static/ChatMessages.asm +C20056AC 0000002F #Online/Static/ChatMessages.asm 7CA802A6 2C030008 4182001C 2C030004 41820020 2C030002 41820024 2C030001 41820028 48000075 7C6802A6 48000024 -480000F9 7C6802A6 +480000FD 7C6802A6 48000018 480000C9 7C6802A6 4800000C 4800007D 7C6802A6 @@ -5167,19 +5070,23 @@ C20056AC 0000002E #Online/Static/ChatMessages.asm 00746861 6E6B7300 746F6F20 676F6F64 00000000 4E800021 -0A040504 52656163 -74696F6E 73006F6F -66006D79 2062006C -6F6C0077 6F770000 -4E800021 05050917 -4D697363 006F6B61 -79007468 696E6B69 -6E67006C 65742773 -20706C61 79206167 -61696E20 6C617465 -72006261 6420636F -6E6E6563 74696F6E -00000000 00000000 +0A060504 52656163 +74696F6E 7300736F +72727900 6D792062 +006C6F6C 00776F77 +00000000 4E800021 +05090817 4D697363 +00676F74 74612067 +6F006F6E 65207365 +63006C65 74277320 +706C6179 20616761 +696E206C 61746572 +00626164 20636F6E +6E656374 696F6E00 +60000000 00000000 +C2005690 00000002 #Online/Static/CheckAltStageName.asm +38600000 4E800020 +60000000 00000000 C20056B8 00000002 #Online/Static/GetCSSIconData.asm 3C60803F 60630A48 4E800020 00000000 @@ -5204,6 +5111,14 @@ C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 +C20055F4 00000007 #Online/Static/IntToFloat.asm +9421FF00 D0410008 +3C004330 C84298A8 +6C638000 900100F0 +906100F4 C82100F0 +EC211028 C0410008 +38210100 4E800020 +60000000 00000000 C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5223,6 +5138,41 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 +C20056A4 00000022 #Online/Static/LoadPremadeText.asm +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +3B800004 7F83E378 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7D1B78 7F84E378 +3D808000 618CC160 +7D8903A6 4E800421 +386000E1 48000055 +839D0000 7FA3EB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +7F83E378 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +386000E2 4800001D +7FA3EB78 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +987D0000 9BFD0001 +9BDD0002 7FA3EB78 +38800003 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FA3EB78 7F84E378 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C200560C 00000016 #Online/Static/LoadState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5246,6 +5196,15 @@ C200560C 00000016 #Online/Static/LoadState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20055EC 00000008 #Online/Static/MultiplyRWithF.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808000 618C55F4 +7D8903A6 4E800421 +EC2100B2 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C2005608 00000016 #Online/Static/SaveState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5269,6 +5228,96 @@ C2005608 00000016 #Online/Static/SaveState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20056B4 00000059 #Online/Static/SubtextFunctions.asm +2C050002 418201F8 +7C0802A6 90010004 +9421FF50 BE810008 +7C751B78 7C962378 +7CB82B78 7CD93378 +90E10038 9101003C +91210040 91410044 +91610048 9181004C +FEA00890 FEC01090 +FEE01890 FF202890 +FF403090 2C180001 +418000FC 39E00004 +FC20B090 FC40B890 +2C0F0001 41820020 +2C0F0002 41820020 +2C0F0003 41820020 +2C0F0004 41820020 +48000024 EC21D028 +4800001C EC21D02A +48000014 EC42D028 +4800000C EC42D02A +48000004 7EA3AB78 +80810038 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7F25CB78 2C0F0000 +40820008 7EC5B378 +7EA3AB78 7EE4BB78 +3D80803A 618C74F0 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +80A10038 80C1003C +80E10040 81010044 +81210048 8141004C +3D80803A 618C70A0 +7D8903A6 4E800421 +2C0F0000 4182000C +39EFFFFF 4BFFFF14 +48000094 7EA3AB78 +80810038 FC20B090 +FC40B890 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +7EC5B378 3D80803A +618C74F0 7D8903A6 +4E800421 7EA3AB78 +7EE4BB78 80A10038 +80C1003C 80E10040 +81010044 81210048 +8141004C 3D80803A +618C70A0 7D8903A6 +4E800421 7EE3BB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +7C9C2378 7CDB3378 +FEC00890 FEE01090 +FF001890 FEA02090 +4800008D 7F4802A6 +38600000 7F64DB78 +C01A0000 FC20B090 +FC40B890 FC60C090 +C09A0004 C0BA0008 +3D80803A 618C5ACC +7D8903A6 4E800421 +7C751B78 2C1C0000 +41820010 38600001 +986DAFEC 7F86E378 +7EA3AB78 7FA4EB78 +FC00A890 D0030024 +D0030028 3D80803A +618C6368 7D8903A6 +4E800421 7EA3AB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +41100000 44160000 +41A00000 00000000 C2005618 00000095 #Online/Static/UserDisplayFunctions.asm 4E800021 4800004C 480001E0 480002F4 @@ -5452,6 +5501,51 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 +C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm +2C030001 41820018 +3C60803B 6063B3C0 +1C840010 7C6320AE +48000018 3C60803B +6063B6B0 1C840003 +7C6320AE 48000004 +4E800020 00000000 +C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm +2C030037 41820018 +3D808043 618C37C4 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 +C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm +7C7D1B78 3BC00000 +60000000 00000000 +C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm +48000018 4E800021 +C2F00000 42F00000 +42A00000 C1A00000 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 4BFFFFD9 +7FA802A6 807E002C +A86300EE 3D808003 +618C4110 7D8903A6 +4E800421 83E3002C +7FC3F378 3D80801D +618C32D0 7D8903A6 +4E800421 C05F00B0 +C03D0000 FC020840 +41800034 C03D0004 +FC020840 41810028 +C05F00B4 C03D0008 +FC020840 41810018 +C03D000C FC020840 +4180000C 38600001 +48000008 38600000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag @@ -5688,8 +5782,8 @@ C208D690 00000009 #External/FlashRedFailedLCancel/TriggerColor.asm 4180000C 39E000D4 99E30564 00000000 -$Optional: Force Nametag for Local Player [Fizzi] -*When playing online, nametag YOU will show above your character --------------------- +$Optional: Show Friendly Player Indicators [Fizzi, UnclePunch] +*When playing online, nametag YOU will show above your character. A heart will always be shown over your teammate. Helpful for colorblind players to keep track of the players. *Will not cause desyncs when playing online C20355B4 00000008 #Online/Optional/IndicateLocalPlayer/ForceLocalPlayerTag.asm 3C608048 80639D30 @@ -5715,3 +5809,33 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 3D808023 618C754C 7D8903A6 4E800421 60000000 00000000 +C22FC9E4 0000001D #Online/Optional/ShowAllyIndicator/ShowAllyIndicator.asm +3B840000 7C0802A6 +90010004 9421FF50 +BE810008 7C7E1B78 +3C608048 80639D30 +5463443E 2C030208 +408200A4 3D808016 +618CB168 7D8903A6 +4E800421 2C030000 +4182008C 806DB61C +88630000 7C03F000 +4182007C 3D808003 +618C3370 7D8903A6 +4E800421 7C7D1B78 +7FC3F378 3D808003 +618C3370 7D8903A6 +4E800421 7C03E800 +4082004C 1C7E000E +3C808046 6084B6A0 +7CA32214 8865003C +60630010 9865003C +1C7D0004 7C63FA14 +C0230064 BA810008 +800100B4 382100B0 +7C0803A6 3D80802F +618CCA84 7D8903A6 +4E800420 7FC3F378 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7c4676a1..9b2cd357 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -562,25 +562,26 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm -C23219EC 0000001C #Recording/FlushFrameBuffer.asm +C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 418200A8 806DB64C 83C30000 83ADB650 7F9EEA14 -2C1D0000 41820088 +2C1D0000 41820090 3860003C 987C0000 806DB654 907C0001 3C608048 80639D30 5463443E 2C030208 -806DB654 40820034 +806DB654 4082003C 80ADB61C 8885000D -2C040000 40820024 +2C040000 4082002C 8885000C 2C040000 -40820018 808507B4 -3884FF85 7C041800 +40820020 808507B4 +3884FF85 80E507BD +7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 7FC3F378 7FA4EB78 @@ -662,7 +663,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600309 60630000 +3C600309 60630100 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -970,9 +971,6 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 -C200569C 00000002 #Common/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -989,14 +987,6 @@ C20055F8 0000000F #Common/GetIsFollower.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056A0 00000007 #Common/GetSSMIndex.asm -2C030001 41820018 -3C60803B 6063B3C0 -1C840010 7C6320AE -48000018 3C60803B -6063B6B0 1C840003 -7C6320AE 48000004 -4E800020 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm 987F0008 3C608048 80639D58 2C030000 @@ -1004,154 +994,6 @@ C216D294 00000006 #Common/IncrementFrameIndex.asm 906DB654 48000010 806DB654 38630001 906DB654 00000000 -C20055F4 00000007 #Common/IntToFloat.asm -9421FF00 D0410008 -3C004330 C84298A8 -6C638000 900100F0 -906100F4 C82100F0 -EC211028 C0410008 -38210100 4E800020 -60000000 00000000 -C20056A4 00000022 #Common/LoadPremadeText.asm -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -3B800004 7F83E378 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C7D1B78 7F84E378 -3D808000 618CC160 -7D8903A6 4E800421 -386000E1 48000055 -839D0000 7FA3EB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -7F83E378 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -386000E2 4800001D -7FA3EB78 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -987D0000 9BFD0001 -9BDD0002 7FA3EB78 -38800003 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7FA3EB78 7F84E378 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20055EC 00000008 #Common/MultiplyRWithF.asm -7C0802A6 90010004 -9421FF50 BE810008 -3D808000 618C55F4 -7D8903A6 4E800421 -EC2100B2 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20056A8 00000005 #Common/RequestSSMLoad.asm -2C030037 41820018 -3D808043 618C37C4 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 -C20056B4 00000059 #Common/SubtextFunctions.asm -2C050002 418201F8 -7C0802A6 90010004 -9421FF50 BE810008 -7C751B78 7C962378 -7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C -FEA00890 FEC01090 -FEE01890 FF202890 -FF403090 2C180001 -418000FC 39E00004 -FC20B090 FC40B890 -2C0F0001 41820020 -2C0F0002 41820020 -2C0F0003 41820020 -2C0F0004 41820020 -48000024 EC21D028 -4800001C EC21D02A -48000014 EC42D028 -4800000C EC42D02A -48000004 7EA3AB78 -80810038 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7F25CB78 2C0F0000 -40820008 7EC5B378 -7EA3AB78 7EE4BB78 -3D80803A 618C74F0 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C -3D80803A 618C70A0 -7D8903A6 4E800421 -2C0F0000 4182000C -39EFFFFF 4BFFFF14 -48000094 7EA3AB78 -80810038 FC20B090 -FC40B890 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -7EC5B378 3D80803A -618C74F0 7D8903A6 -4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A -618C70A0 7D8903A6 -4E800421 7EE3BB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -7C9C2378 7CDB3378 -FEC00890 FEE01090 -FF001890 FEA02090 -4800008D 7F4802A6 -38600000 7F64DB78 -C01A0000 FC20B090 -FC40B890 FC60C090 -C09A0004 C0BA0008 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C751B78 2C1C0000 -41820010 38600001 -986DAFEC 7F86E378 -7EA3AB78 7FA4EB78 -FC00A890 D0030024 -D0030028 3D80803A -618C6368 7D8903A6 -4E800421 7EA3AB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -41100000 44160000 -41A00000 00000000 041D460C 809F00EC #Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm C21D14C8 00000002 #Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm 38600000 987F00F0 @@ -1242,6 +1084,21 @@ FC020840 4180000C 38600001 BA810008 800100B4 382100B0 7C0803A6 00000000 +C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm +3CE08048 80E79D30 +54E7443E 2C070208 +40820054 88EDAFA0 +2C070001 40820048 +88E30008 2C070007 +4082003C 89430001 +816DB61C 886B0000 +7C035000 41820018 +38600005 3D808002 +618C4030 7D8903A6 +4E800421 3D80802F +618C7120 7D8903A6 +4E800420 8903000B +60000000 00000000 C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 @@ -1258,7 +1115,7 @@ C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 -808500D6 80840002 +808500D6 8084010A 908507B4 48000028 888507B8 2C040000 4182001C 38800000 @@ -1304,10 +1161,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007BD +40820338 386007C1 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007BD +7C7B1B78 388007C1 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1316,10 +1173,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600012 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 -3860010A 3D808037 +3860010E 3D808037 618CF1E4 7D8903A6 4E800421 907B00D6 -7C7A1B78 3880010A +7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1333,9 +1190,9 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007BD +93790005 386007C1 90790009 9359000D -3860010A 90790011 +3860010E 90790011 807B024F 90790015 3860009E 90790019 38600000 9079001D @@ -1410,17 +1267,17 @@ BE810008 838DB61C BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C216E904 0000004E #Online/Core/InitPause.asm +C216E904 0000004B #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 -40820258 3D808046 +4082023C 3D808046 618CDB68 886C0002 54630739 41820028 48000029 7C6802A6 906C0040 38600000 986DAFC8 886C0002 38800000 50831F38 -986C0002 4800021C +986C0002 48000200 4E800021 7C0802A6 90010004 9421FF50 BE810008 83ADB61C @@ -1444,51 +1301,48 @@ BE810008 83ADB61C 8BDD0000 3C80804C 60841FAC 1C7E0044 7FE32214 886DAFC8 -2C030000 418200C8 +2C030000 418200AC 887D000D 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 41820070 +2C030000 41820054 807F0008 546004E7 -40820064 4800010C -38600002 3D808002 -618C4030 7D8903A6 -4E800421 3D808037 -618C8330 7D8903A6 -4E800421 3C608046 -6063B6A0 9BC30001 -7FC3F378 38800007 -3D808016 618CCF4C -7D8903A6 4E800421 -38600003 3C808046 -6084B6A0 98640000 -480000B0 38600000 +40820048 480000F0 +3C608046 6063B6A0 +9BC30001 38800007 +98830008 3880001E +988324D5 3D80802F +618C3394 7D8903A6 +4E800421 3D80801A +618C10FC 7D8903A6 +4E800421 480000B0 +38600000 986DAFC8 +3D80802F 618C33CC +7D8903A6 4E800421 +7FC3F378 3D80801A +618C10FC 7D8903A6 +4E800421 48000080 +887D000D 2C030000 +40820020 7FC3F378 +3D808003 618C3BD8 +7D8903A6 4E800421 +2C030000 41820058 +807F0008 546004E7 +4182004C 38600001 986DAFC8 3D80802F -618C33CC 7D8903A6 +618C3394 7D8903A6 4E800421 7FC3F378 -3D80801A 618C10FC -7D8903A6 4E800421 -48000080 887D000D -2C030000 40820020 -7FC3F378 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -41820058 807F0008 -546004E7 4182004C -38600001 986DAFC8 -3D80802F 618C3394 -7D8903A6 4E800421 -7FC3F378 38800005 -3D80801A 618C0FEC +38800005 3D80801A +618C0FEC 7D8903A6 +4E800421 38600005 +3D808002 618C4030 7D8903A6 4E800421 -38600005 3D808002 -618C4030 7D8903A6 -4E800421 48000004 -3860FFFF BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -881F0001 00000000 +48000004 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 881F0001 +60000000 00000000 C21A5014 00000053 #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 @@ -1573,6 +1427,10 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 +C216D26C 00000003 #Online/Core/PauseCounter.asm +808DB61C 806407BD +38630001 906407BD +387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 5463443E 2C030208 @@ -1734,7 +1592,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 38800012 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -38780000 3880010A +38780000 3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 @@ -1993,6 +1851,42 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7FC3F378 60000000 00000000 +C20D4C1C 00000005 #Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm +901F2344 C01E0030 +D01F2348 C01E003C +D01F234C 38600000 +907F0080 907F0084 +907F0088 00000000 +C20D4D68 0000000B #Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm +C03E0034 C05E0038 +C07F2348 FC630828 +FC401050 FC031040 +41810008 FC601090 +D07F2348 C03F2360 +C05F2348 EC21102A +D03F2360 C03F234C +C05F2364 EC21102A +D03F2364 3D80800D +618C4D84 7D8903A6 +4E800420 00000000 +C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808003 618C10B8 +7D8903A6 4E800421 +3D808036 618C9808 +7D8903A6 4E800421 +389E2350 38A10080 +3D808034 618C2AA8 +7D8903A6 4E800421 +80610080 907F0038 +80610084 907F003C +80610088 907F0040 +BA810008 800100B4 +382100B0 7C0803A6 +3D808008 618C0EE4 +7D8903A6 4E800420 +60000000 00000000 04019260 48000034 #Online/Core/Hacks/ForceNoDiskCrash.asm C2376304 0000000B #Online/Core/Hacks/ForceNoVideoAssert.asm 48000031 7C6802A6 @@ -4537,10 +4431,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000077 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 0000007D #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -4082039C 48000060 +408203D0 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4575,88 +4469,94 @@ D03E0024 D03E0028 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C -4800010D 387F0014 +48000141 387F0014 389F0055 38BD0053 38C00000 C03F0020 -480000F5 48000038 -807D000D 480001E9 +48000129 48000038 +807D000D 4800021D 387F0010 389F0044 -C03F001C 480000D9 -807D0011 480001D1 +C03F001C 4800010D +807D0011 48000205 387F0014 389F004B -C03F0020 480000C1 +C03F0020 480000F5 48000004 38600000 -38800000 C03F0024 -C05F002C C07F0030 -C09F0034 C0BF0038 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C7E1B78 C03F0004 -D03E0024 D03E0028 -38800001 989E004A -989E0049 C03F0000 -D03E0008 3CA0803B -60A57808 A0DD0216 -38600000 1C830002 -7C85222E 7C043000 -41820014 38630001 -2C03001D 4180FFE8 -38600000 3C80803E -6084D488 7C841A14 -8884005C 7FC3F378 -3D80803A 618C6368 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4800017C 7C0802A6 -90010004 9421FF50 -BE810008 FFE00890 -7C761B78 7C942378 -7CB92B78 7CDA3378 -7CF83B78 7D174378 -93210008 9301000C -92E10010 C3DF0028 -C07F0040 7F43D378 -3D808000 618C55F4 -7D8903A6 4E800421 -EC630072 EFDE1828 -7FC3F378 389F0018 -7EC4B378 38A00000 -7E87A378 C03F0008 -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39C00008 39E00000 -7C6E0A14 80E30000 -2C0F0000 4182000C -C07F003C EFFF182A -C09F0040 EFDE202A -7FC3F378 389F0018 -38A00000 C03F000C -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39CE0004 39EF0001 -7C0FD000 4180FFAC -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38A00008 -38C000FF 7C7A3039 -7C632C30 38E00008 -39200000 7C643039 -1C84001F 38840034 -7C84EA14 7D070A14 -90880000 7C632C30 -38E70004 39290001 -2C090003 4180FFD8 -7F46D378 80A10010 -80E1000C 81010008 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 3800FFFF -60000000 00000000 +38800000 3D80803A +618C6754 7D8903A6 +4E800421 7C7E1B78 +C03F0024 D03E0000 +C03F002C D03E0004 +C03F0030 D03E0008 +C03F0034 D03E000C +C03F0038 D03E0010 +C03F0004 D03E0024 +D03E0028 38800001 +989E004A 989E0049 +C03F0000 D03E0008 +7FC3F378 A09D0216 +3D808000 618C5690 +7D8903A6 4E800421 +2C030001 41820058 +3CA0803B 60A57808 +A0DD0216 38600000 +1C830002 7C85222E +7C043000 41820014 +38630001 2C03001D +4180FFE8 38600000 +3C80803E 6084D488 +7C841A14 8884005C +7FC3F378 3D80803A +618C6368 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4800017C +7C0802A6 90010004 +9421FF50 BE810008 +FFE00890 7C761B78 +7C942378 7CB92B78 +7CDA3378 7CF83B78 +7D174378 93210008 +9301000C 92E10010 +C3DF0028 C07F0040 +7F43D378 3D808000 +618C55F4 7D8903A6 +4E800421 EC630072 +EFDE1828 7FC3F378 +389F0018 7EC4B378 +38A00000 7E87A378 +C03F0008 FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39C00008 +39E00000 7C6E0A14 +80E30000 2C0F0000 +4182000C C07F003C +EFFF182A C09F0040 +EFDE202A 7FC3F378 +389F0018 38A00000 +C03F000C FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39CE0004 +39EF0001 7C0FD000 +4180FFAC BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38A00008 38C000FF +7C7A3039 7C632C30 +38E00008 39200000 +7C643039 1C84001F +38840034 7C84EA14 +7D070A14 90880000 +7C632C30 38E70004 +39290001 2C090003 +4180FFD8 7F46D378 +80A10010 80E1000C +81010008 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +3800FFFF 00000000 C2184DE4 00000010 #Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm 3D808048 818C9D30 558C443E 2C0C0408 @@ -4737,7 +4637,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000178 #Online/Slippi Online Scene/main.asm +C21A45B8 0000017A #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4748,7 +4648,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 4800019D 7C8802A6 4800002D -48000B50 80830000 +48000B64 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4892,7 +4792,7 @@ BE810008 3D80801B 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 -887F0003 480005D1 +887F0003 480005E5 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -4900,14 +4800,14 @@ BE810008 3D80801B 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -48000595 2C030000 +480005A9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -4800055D 2C030000 +48000571 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5061,59 +4961,62 @@ BE810008 38600000 389F0208 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F0268 98830000 -889F026B 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F028C -98640002 38602121 -B0640003 3C808049 -60840880 887F028F -98640016 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +7FC3F378 3D808000 +618C5694 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F0268 +98830000 889F026B +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F028C 98640002 +38602121 B0640003 +3C808049 60840880 +887F028F 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 +04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5133,14 +5036,14 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056AC 0000002E #Online/Static/ChatMessages.asm +C20056AC 0000002F #Online/Static/ChatMessages.asm 7CA802A6 2C030008 4182001C 2C030004 41820020 2C030002 41820024 2C030001 41820028 48000075 7C6802A6 48000024 -480000F9 7C6802A6 +480000FD 7C6802A6 48000018 480000C9 7C6802A6 4800000C 4800007D 7C6802A6 @@ -5167,19 +5070,23 @@ C20056AC 0000002E #Online/Static/ChatMessages.asm 00746861 6E6B7300 746F6F20 676F6F64 00000000 4E800021 -0A040504 52656163 -74696F6E 73006F6F -66006D79 2062006C -6F6C0077 6F770000 -4E800021 05050917 -4D697363 006F6B61 -79007468 696E6B69 -6E67006C 65742773 -20706C61 79206167 -61696E20 6C617465 -72006261 6420636F -6E6E6563 74696F6E -00000000 00000000 +0A060504 52656163 +74696F6E 7300736F +72727900 6D792062 +006C6F6C 00776F77 +00000000 4E800021 +05090817 4D697363 +00676F74 74612067 +6F006F6E 65207365 +63006C65 74277320 +706C6179 20616761 +696E206C 61746572 +00626164 20636F6E +6E656374 696F6E00 +60000000 00000000 +C2005690 00000002 #Online/Static/CheckAltStageName.asm +38600000 4E800020 +60000000 00000000 C20056B8 00000002 #Online/Static/GetCSSIconData.asm 3C60803F 60630A48 4E800020 00000000 @@ -5204,6 +5111,14 @@ C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 +C20055F4 00000007 #Online/Static/IntToFloat.asm +9421FF00 D0410008 +3C004330 C84298A8 +6C638000 900100F0 +906100F4 C82100F0 +EC211028 C0410008 +38210100 4E800020 +60000000 00000000 C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5223,6 +5138,41 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 +C20056A4 00000022 #Online/Static/LoadPremadeText.asm +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +3B800004 7F83E378 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7D1B78 7F84E378 +3D808000 618CC160 +7D8903A6 4E800421 +386000E1 48000055 +839D0000 7FA3EB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +7F83E378 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +386000E2 4800001D +7FA3EB78 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +987D0000 9BFD0001 +9BDD0002 7FA3EB78 +38800003 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FA3EB78 7F84E378 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C200560C 00000016 #Online/Static/LoadState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5246,6 +5196,15 @@ C200560C 00000016 #Online/Static/LoadState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20055EC 00000008 #Online/Static/MultiplyRWithF.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808000 618C55F4 +7D8903A6 4E800421 +EC2100B2 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C2005608 00000016 #Online/Static/SaveState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5269,6 +5228,96 @@ C2005608 00000016 #Online/Static/SaveState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20056B4 00000059 #Online/Static/SubtextFunctions.asm +2C050002 418201F8 +7C0802A6 90010004 +9421FF50 BE810008 +7C751B78 7C962378 +7CB82B78 7CD93378 +90E10038 9101003C +91210040 91410044 +91610048 9181004C +FEA00890 FEC01090 +FEE01890 FF202890 +FF403090 2C180001 +418000FC 39E00004 +FC20B090 FC40B890 +2C0F0001 41820020 +2C0F0002 41820020 +2C0F0003 41820020 +2C0F0004 41820020 +48000024 EC21D028 +4800001C EC21D02A +48000014 EC42D028 +4800000C EC42D02A +48000004 7EA3AB78 +80810038 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7F25CB78 2C0F0000 +40820008 7EC5B378 +7EA3AB78 7EE4BB78 +3D80803A 618C74F0 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +80A10038 80C1003C +80E10040 81010044 +81210048 8141004C +3D80803A 618C70A0 +7D8903A6 4E800421 +2C0F0000 4182000C +39EFFFFF 4BFFFF14 +48000094 7EA3AB78 +80810038 FC20B090 +FC40B890 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +7EC5B378 3D80803A +618C74F0 7D8903A6 +4E800421 7EA3AB78 +7EE4BB78 80A10038 +80C1003C 80E10040 +81010044 81210048 +8141004C 3D80803A +618C70A0 7D8903A6 +4E800421 7EE3BB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +7C9C2378 7CDB3378 +FEC00890 FEE01090 +FF001890 FEA02090 +4800008D 7F4802A6 +38600000 7F64DB78 +C01A0000 FC20B090 +FC40B890 FC60C090 +C09A0004 C0BA0008 +3D80803A 618C5ACC +7D8903A6 4E800421 +7C751B78 2C1C0000 +41820010 38600001 +986DAFEC 7F86E378 +7EA3AB78 7FA4EB78 +FC00A890 D0030024 +D0030028 3D80803A +618C6368 7D8903A6 +4E800421 7EA3AB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +41100000 44160000 +41A00000 00000000 C2005618 00000095 #Online/Static/UserDisplayFunctions.asm 4E800021 4800004C 480001E0 480002F4 @@ -5452,6 +5501,51 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 +C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm +2C030001 41820018 +3C60803B 6063B3C0 +1C840010 7C6320AE +48000018 3C60803B +6063B6B0 1C840003 +7C6320AE 48000004 +4E800020 00000000 +C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm +2C030037 41820018 +3D808043 618C37C4 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 +C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm +7C7D1B78 3BC00000 +60000000 00000000 +C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm +48000018 4E800021 +C2F00000 42F00000 +42A00000 C1A00000 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 4BFFFFD9 +7FA802A6 807E002C +A86300EE 3D808003 +618C4110 7D8903A6 +4E800421 83E3002C +7FC3F378 3D80801D +618C32D0 7D8903A6 +4E800421 C05F00B0 +C03D0000 FC020840 +41800034 C03D0004 +FC020840 41810028 +C05F00B4 C03D0008 +FC020840 41810018 +C03D000C FC020840 +4180000C 38600001 +48000008 38600000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag @@ -5688,8 +5782,8 @@ C208D690 00000009 #External/FlashRedFailedLCancel/TriggerColor.asm 4180000C 39E000D4 99E30564 00000000 -$Optional: Force Nametag for Local Player [Fizzi] -*When playing online, nametag YOU will show above your character --------------------- +$Optional: Show Friendly Player Indicators [Fizzi, UnclePunch] +*When playing online, nametag YOU will show above your character. A heart will always be shown over your teammate. Helpful for colorblind players to keep track of the players. *Will not cause desyncs when playing online C20355B4 00000008 #Online/Optional/IndicateLocalPlayer/ForceLocalPlayerTag.asm 3C608048 80639D30 @@ -5715,3 +5809,33 @@ C22FD1EC 0000000E #Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm 3D808023 618C754C 7D8903A6 4E800421 60000000 00000000 +C22FC9E4 0000001D #Online/Optional/ShowAllyIndicator/ShowAllyIndicator.asm +3B840000 7C0802A6 +90010004 9421FF50 +BE810008 7C7E1B78 +3C608048 80639D30 +5463443E 2C030208 +408200A4 3D808016 +618CB168 7D8903A6 +4E800421 2C030000 +4182008C 806DB61C +88630000 7C03F000 +4182007C 3D808003 +618C3370 7D8903A6 +4E800421 7C7D1B78 +7FC3F378 3D808003 +618C3370 7D8903A6 +4E800421 7C03E800 +4082004C 1C7E000E +3C808046 6084B6A0 +7CA32214 8865003C +60630010 9865003C +1C7D0004 7C63FA14 +C0230064 BA810008 +800100B4 382100B0 +7C0803A6 3D80802F +618CCA84 7D8903A6 +4E800420 7FC3F378 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 From 070aa0967bdfc40c8f4747ed8fa948a6c71fb837 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 25 Jan 2022 13:10:27 -0500 Subject: [PATCH 040/217] add stable is frame advance --- Online/Core/ForceEngineOnRollback.asm | 2 ++ Online/Core/LoopEngineForRollback.asm | 2 +- Online/Online.s | 3 ++- Output/Netplay/GALE01r2.ini | 35 ++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 35 ++++++++++++++------------- 5 files changed, 41 insertions(+), 36 deletions(-) diff --git a/Online/Core/ForceEngineOnRollback.asm b/Online/Core/ForceEngineOnRollback.asm index 69aaa74d..e55a9910 100644 --- a/Online/Core/ForceEngineOnRollback.asm +++ b/Online/Core/ForceEngineOnRollback.asm @@ -52,6 +52,8 @@ stw r4, ODB_STABLE_SAVESTATE_FRAME(r5) lwz r4, ODB_RXB_ADDR(r5) lwz r4, RXB_FINALIZED_FRAME(r4) stw r4, ODB_STABLE_FINALIZED_FRAME(r5) +lbz r4, ODB_IS_FRAME_ADVANCE(r5) +stb r4, ODB_STABLE_IS_FRAME_ADVANCE(r5) b RESTORE_AND_EXIT HANDLE_NO_ROLLBACK_NO_INPUTS: diff --git a/Online/Core/LoopEngineForRollback.asm b/Online/Core/LoopEngineForRollback.asm index b6ba144c..bbe1c074 100644 --- a/Online/Core/LoopEngineForRollback.asm +++ b/Online/Core/LoopEngineForRollback.asm @@ -170,7 +170,7 @@ cmpwi REG_IS_ROLLBACK_ACTIVE, 1 beq HANDLE_ROLLBACK # If no rollback active, continue as normal # Here there is no rollback, check instead for a requested frame advance -lbz r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) +lbz r3, ODB_STABLE_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) cmpwi r3, 1 bne RESTORE_AND_EXIT diff --git a/Online/Online.s b/Online/Online.s index 3ef9bf2e..36b5ad7e 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -220,7 +220,8 @@ .set ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE, ODB_STABLE_ROLLBACK_END_FRAME + 4 # bool .set ODB_STABLE_SAVESTATE_FRAME, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE + 1 # s32 .set ODB_STABLE_FINALIZED_FRAME, ODB_STABLE_SAVESTATE_FRAME + 4 # s32 -.set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_FINALIZED_FRAME + 4 # bool +.set ODB_STABLE_IS_FRAME_ADVANCE, ODB_STABLE_FINALIZED_FRAME + 4 # bool +.set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_IS_FRAME_ADVANCE + 1 # bool .set ODB_HUD_CANVAS, ODB_SHOULD_FORCE_PAD_RENEW + 1 # u32 .set ODB_PAUSE_COUNTER, ODB_HUD_CANVAS + 4 # u32 .set ODB_SIZE, ODB_PAUSE_COUNTER + 4 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 34351381..a23ced19 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -580,7 +580,7 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 2C040000 4082002C 8885000C 2C040000 40820020 808507B4 -3884FF85 80E507BD +3884FF85 80E507BE 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1099,27 +1099,28 @@ C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 618C7120 7D8903A6 4E800420 8903000B 60000000 00000000 -C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm +C21A4DB4 0000001D #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B0 3C608047 +408200B8 3C608047 60639D64 80630000 -2C030000 4082009C +2C030000 408200A4 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 888500DA 2C040000 -41820038 3B600001 +41820040 3B600001 888500DA 988507AA 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 808500D6 8084010A -908507B4 48000028 -888507B8 2C040000 +908507B4 8885000F +988507B8 48000028 +888507B9 2C040000 4182001C 38800000 -988507B8 3D808001 +988507B9 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 618C738C @@ -1161,10 +1162,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C1 +40820338 386007C2 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C1 +7C7B1B78 388007C2 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1190,7 +1191,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C1 +93790005 386007C2 90790009 9359000D 3860010E 90790011 807B024F 90790015 @@ -1395,7 +1396,7 @@ A0840001 7C032000 3D808034 618C738C 7D8903A6 4E800421 8B7F07AA 2C1B0001 -41820024 887F000F +41820024 887F07B8 2C030001 408200E0 3D808001 618C95FC 7D8903A6 4E800421 @@ -1428,8 +1429,8 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BD -38630001 906407BD +808DB61C 806407BE +38630001 906407BE 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1485,7 +1486,7 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B9 3D80803A +809A07BA 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1925,7 +1926,7 @@ C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 4082002C 80ADB61C 886500DA 2C030000 4182001C 38600001 -986507B8 3D808001 +986507B9 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -3834,7 +3835,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B9 +83CDB61C 93FE07BA 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9b2cd357..0ff6cce9 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -580,7 +580,7 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 2C040000 4082002C 8885000C 2C040000 40820020 808507B4 -3884FF85 80E507BD +3884FF85 80E507BE 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1099,27 +1099,28 @@ C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 618C7120 7D8903A6 4E800420 8903000B 60000000 00000000 -C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm +C21A4DB4 0000001D #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B0 3C608047 +408200B8 3C608047 60639D64 80630000 -2C030000 4082009C +2C030000 408200A4 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 888500DA 2C040000 -41820038 3B600001 +41820040 3B600001 888500DA 988507AA 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 808500D6 8084010A -908507B4 48000028 -888507B8 2C040000 +908507B4 8885000F +988507B8 48000028 +888507B9 2C040000 4182001C 38800000 -988507B8 3D808001 +988507B9 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 618C738C @@ -1161,10 +1162,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C1 +40820338 386007C2 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C1 +7C7B1B78 388007C2 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1190,7 +1191,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C1 +93790005 386007C2 90790009 9359000D 3860010E 90790011 807B024F 90790015 @@ -1395,7 +1396,7 @@ A0840001 7C032000 3D808034 618C738C 7D8903A6 4E800421 8B7F07AA 2C1B0001 -41820024 887F000F +41820024 887F07B8 2C030001 408200E0 3D808001 618C95FC 7D8903A6 4E800421 @@ -1428,8 +1429,8 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BD -38630001 906407BD +808DB61C 806407BE +38630001 906407BE 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1485,7 +1486,7 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B9 3D80803A +809A07BA 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1925,7 +1926,7 @@ C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 4082002C 80ADB61C 886500DA 2C030000 4182001C 38600001 -986507B8 3D808001 +986507B9 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -3834,7 +3835,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B9 +83CDB61C 93FE07BA 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 From d4857ab115a1ac4407f7b6298c031dc6e9ccdc4a Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 25 Jan 2022 14:20:51 -0500 Subject: [PATCH 041/217] modify location where advance input is fetched --- Online/Core/ForceEngineOnRollback.asm | 3 +- Online/Core/ForceInputRefetchOnAdvance.asm | 33 +++++++++ .../Hacks/PreventPadAlarmDuringRollback.asm | 8 ++- Online/Core/LoopEngineForRollback.asm | 12 +--- Online/Core/StartEngineLoop.asm | 4 ++ Online/Online.s | 3 +- Output/Netplay/GALE01r2.ini | 69 +++++++++++-------- Output/Netplay/GALJ01r2.ini | 69 +++++++++++-------- 8 files changed, 125 insertions(+), 76 deletions(-) create mode 100644 Online/Core/ForceInputRefetchOnAdvance.asm diff --git a/Online/Core/ForceEngineOnRollback.asm b/Online/Core/ForceEngineOnRollback.asm index e55a9910..252092be 100644 --- a/Online/Core/ForceEngineOnRollback.asm +++ b/Online/Core/ForceEngineOnRollback.asm @@ -52,8 +52,6 @@ stw r4, ODB_STABLE_SAVESTATE_FRAME(r5) lwz r4, ODB_RXB_ADDR(r5) lwz r4, RXB_FINALIZED_FRAME(r4) stw r4, ODB_STABLE_FINALIZED_FRAME(r5) -lbz r4, ODB_IS_FRAME_ADVANCE(r5) -stb r4, ODB_STABLE_IS_FRAME_ADVANCE(r5) b RESTORE_AND_EXIT HANDLE_NO_ROLLBACK_NO_INPUTS: @@ -78,3 +76,4 @@ bne EXEC_ENGINE branch r12, 0x801a4da8 # If no pad inputs, loop to keep waiting EXEC_ENGINE: +# logf LOG_LEVEL_NOTICE, "Starting engine loop..." diff --git a/Online/Core/ForceInputRefetchOnAdvance.asm b/Online/Core/ForceInputRefetchOnAdvance.asm new file mode 100644 index 00000000..d4526769 --- /dev/null +++ b/Online/Core/ForceInputRefetchOnAdvance.asm @@ -0,0 +1,33 @@ +################################################################################ +# Address: 0x80019614 +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" + +branchl r12, 0x8001d2bc # Replaced code line + +# Ensure that this is an online match +getMinorMajor r3 +cmpwi r3, SCENE_ONLINE_IN_GAME +bne EXIT + +load r3, 0x80479d64 +lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state +cmpwi r3, 0 # Loading state should be zero when game starts +bne EXIT + +# Check if we got the signal to advance a frame +lwz r5, OFST_R13_ODB_ADDR(r13) # data buffer address +lbz r3, ODB_IS_FRAME_ADVANCE(r5) +cmpwi r3, 0 +beq EXIT + +# lwz r3, ODB_FRAME(r5) +# logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "mr 5, 3" + +# Here we got the signal to advance a frame, let's call RenewInputs_Prefunction again. +# This should force the engine to loop twice the next time it runs. +branchl r12, RenewInputs_Prefunction + +EXIT: \ No newline at end of file diff --git a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm index 966bef3a..25a7de4e 100644 --- a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +++ b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm @@ -18,6 +18,13 @@ lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state cmpwi r3, 0 # Loading state should be zero when game starts bne EXIT +lwz r5, OFST_R13_ODB_ADDR(r13) # data buffer address + +# Reset the frame advance state here just to make sure it never gets stuck on. Might not be +# necessary to be here. +li r3, 0 +stb r3, ODB_IS_FRAME_ADVANCE(r5) + # Check to see if this call came from VI callback, if not, just execute # Kinda jank but it should do the job. Alternative would be creating a wrapper # function for the RenewInputs_Prefunction call and setting that as the @@ -29,7 +36,6 @@ bne EXIT # Check if a rollback is active, if a rollback is active, do not renew inputs # now as it may mess up the rollback logic. Instead let's store that inputs # should be renewed at the earliest possible time. -lwz r5, OFST_R13_ODB_ADDR(r13) # data buffer address lbz r3, ODB_ROLLBACK_IS_ACTIVE(r5) cmpwi r3, 0 beq EXIT diff --git a/Online/Core/LoopEngineForRollback.asm b/Online/Core/LoopEngineForRollback.asm index bbe1c074..18836d81 100644 --- a/Online/Core/LoopEngineForRollback.asm +++ b/Online/Core/LoopEngineForRollback.asm @@ -167,17 +167,7 @@ branchl r12, OSRestoreInterrupts lbz REG_IS_ROLLBACK_ACTIVE, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) cmpwi REG_IS_ROLLBACK_ACTIVE, 1 -beq HANDLE_ROLLBACK # If no rollback active, continue as normal - -# Here there is no rollback, check instead for a requested frame advance -lbz r3, ODB_STABLE_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) -cmpwi r3, 1 -bne RESTORE_AND_EXIT - -# Fetch new inputs immediately to skip a frame -# logf LOG_LEVEL_ERROR, "Forcing an input" -branchl r12, RenewInputs_Prefunction -b RESTORE_AND_EXIT +bne RESTORE_AND_EXIT # If no rollback active, continue as normal HANDLE_ROLLBACK: # Here we have a rollback, we are going to loop back to the start of the diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 840f1195..af253b2f 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -62,6 +62,10 @@ loadGlobalFrame REG_FRAME_INDEX branchl r12, OSDisableInterrupts mr REG_INTERRUPT_IDX, r3 +# # Log the frame we are starting +# mr r3, REG_FRAME_INDEX +# logf LOG_LEVEL_INFO, "Starting frame: %d", "mr 5, 3" + ################################################################################ # Check if we should display disconnect message ################################################################################ diff --git a/Online/Online.s b/Online/Online.s index 36b5ad7e..3ef9bf2e 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -220,8 +220,7 @@ .set ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE, ODB_STABLE_ROLLBACK_END_FRAME + 4 # bool .set ODB_STABLE_SAVESTATE_FRAME, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE + 1 # s32 .set ODB_STABLE_FINALIZED_FRAME, ODB_STABLE_SAVESTATE_FRAME + 4 # s32 -.set ODB_STABLE_IS_FRAME_ADVANCE, ODB_STABLE_FINALIZED_FRAME + 4 # bool -.set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_IS_FRAME_ADVANCE + 1 # bool +.set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_FINALIZED_FRAME + 4 # bool .set ODB_HUD_CANVAS, ODB_SHOULD_FORCE_PAD_RENEW + 1 # u32 .set ODB_PAUSE_COUNTER, ODB_HUD_CANVAS + 4 # u32 .set ODB_SIZE, ODB_PAUSE_COUNTER + 4 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index a23ced19..6db3b220 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -580,7 +580,7 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 2C040000 4082002C 8885000C 2C040000 40820020 808507B4 -3884FF85 80E507BE +3884FF85 80E507BD 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1099,28 +1099,27 @@ C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 618C7120 7D8903A6 4E800420 8903000B 60000000 00000000 -C21A4DB4 0000001D #Online/Core/ForceEngineOnRollback.asm +C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B8 3C608047 +408200B0 3C608047 60639D64 80630000 -2C030000 408200A4 +2C030000 4082009C 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 888500DA 2C040000 -41820040 3B600001 +41820038 3B600001 888500DA 988507AA 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 808500D6 8084010A -908507B4 8885000F -988507B8 48000028 -888507B9 2C040000 +908507B4 48000028 +888507B8 2C040000 4182001C 38800000 -988507B9 3D808001 +988507B8 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 618C738C @@ -1129,6 +1128,19 @@ C21A4DB4 0000001D #Online/Core/ForceEngineOnRollback.asm 3D80801A 618C4DA8 7D8903A6 4E800420 60000000 00000000 +C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm +3D808001 618CD2BC +7D8903A6 4E800421 +3C608048 80639D30 +5463443E 2C030208 +40820038 3C608047 +60639D64 80630000 +2C030000 40820024 +80ADB61C 8865000F +2C030000 41820014 +3D808001 618C95FC +7D8903A6 4E800421 +60000000 00000000 C216D310 00000009 #Online/Core/HandleLRAS.asm 3C608048 80639D30 5463443E 2C030208 @@ -1162,10 +1174,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C2 +40820338 386007C1 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C2 +7C7B1B78 388007C1 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1191,7 +1203,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C2 +93790005 386007C1 90790009 9359000D 3860010E 90790011 807B024F 90790015 @@ -1344,15 +1356,15 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 881F0001 60000000 00000000 -C21A5014 00000053 #Online/Core/LoopEngineForRollback.asm +C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820270 +2C030208 40820250 3C608047 60639D64 80630000 2C030000 -4082025C 7C0802A6 +4082023C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -1396,11 +1408,7 @@ A0840001 7C032000 3D808034 618C738C 7D8903A6 4E800421 8B7F07AA 2C1B0001 -41820024 887F07B8 -2C030001 408200E0 -3D808001 618C95FC -7D8903A6 4E800421 -480000CC 48000025 +408200CC 48000025 BA810008 800100B4 382100B0 7C0803A6 3D80801A 618C4DE4 @@ -1429,8 +1437,8 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BE -38630001 906407BE +808DB61C 806407BD +38630001 906407BD 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1486,7 +1494,7 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07BA 3D80803A +809A07B9 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1915,18 +1923,19 @@ C23A63A8 0000000C #Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm 7C0803A6 38600000 986DAFEC 00000000 04321D70 38600000 #Online/Core/Hacks/PreventCharacterCrowdChants.asm -C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 9421FFF8 3C608048 80639D30 5463443E -2C030208 40820050 +2C030208 40820058 3C608047 60639D64 80630000 2C030000 -4082003C 3C608037 -60635E00 2C000003 -4082002C 80ADB61C +40820044 80ADB61C +38600000 9865000F +3C608037 60635E00 +2C000003 40820028 886500DA 2C030000 4182001C 38600001 -986507B9 3D808001 +986507B8 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -3835,7 +3844,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07BA +83CDB61C 93FE07B9 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 0ff6cce9..a3d1eb58 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -580,7 +580,7 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 2C040000 4082002C 8885000C 2C040000 40820020 808507B4 -3884FF85 80E507BE +3884FF85 80E507BD 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1099,28 +1099,27 @@ C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 618C7120 7D8903A6 4E800420 8903000B 60000000 00000000 -C21A4DB4 0000001D #Online/Core/ForceEngineOnRollback.asm +C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B8 3C608047 +408200B0 3C608047 60639D64 80630000 -2C030000 408200A4 +2C030000 4082009C 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 888500DA 2C040000 -41820040 3B600001 +41820038 3B600001 888500DA 988507AA 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 808500D6 8084010A -908507B4 8885000F -988507B8 48000028 -888507B9 2C040000 +908507B4 48000028 +888507B8 2C040000 4182001C 38800000 -988507B9 3D808001 +988507B8 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 618C738C @@ -1129,6 +1128,19 @@ C21A4DB4 0000001D #Online/Core/ForceEngineOnRollback.asm 3D80801A 618C4DA8 7D8903A6 4E800420 60000000 00000000 +C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm +3D808001 618CD2BC +7D8903A6 4E800421 +3C608048 80639D30 +5463443E 2C030208 +40820038 3C608047 +60639D64 80630000 +2C030000 40820024 +80ADB61C 8865000F +2C030000 41820014 +3D808001 618C95FC +7D8903A6 4E800421 +60000000 00000000 C216D310 00000009 #Online/Core/HandleLRAS.asm 3C608048 80639D30 5463443E 2C030208 @@ -1162,10 +1174,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C2 +40820338 386007C1 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C2 +7C7B1B78 388007C1 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1191,7 +1203,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C2 +93790005 386007C1 90790009 9359000D 3860010E 90790011 807B024F 90790015 @@ -1344,15 +1356,15 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 881F0001 60000000 00000000 -C21A5014 00000053 #Online/Core/LoopEngineForRollback.asm +C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820270 +2C030208 40820250 3C608047 60639D64 80630000 2C030000 -4082025C 7C0802A6 +4082023C 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -1396,11 +1408,7 @@ A0840001 7C032000 3D808034 618C738C 7D8903A6 4E800421 8B7F07AA 2C1B0001 -41820024 887F07B8 -2C030001 408200E0 -3D808001 618C95FC -7D8903A6 4E800421 -480000CC 48000025 +408200CC 48000025 BA810008 800100B4 382100B0 7C0803A6 3D80801A 618C4DE4 @@ -1429,8 +1437,8 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BE -38630001 906407BE +808DB61C 806407BD +38630001 906407BD 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1486,7 +1494,7 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07BA 3D80803A +809A07B9 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1915,18 +1923,19 @@ C23A63A8 0000000C #Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm 7C0803A6 38600000 986DAFEC 00000000 04321D70 38600000 #Online/Core/Hacks/PreventCharacterCrowdChants.asm -C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 9421FFF8 3C608048 80639D30 5463443E -2C030208 40820050 +2C030208 40820058 3C608047 60639D64 80630000 2C030000 -4082003C 3C608037 -60635E00 2C000003 -4082002C 80ADB61C +40820044 80ADB61C +38600000 9865000F +3C608037 60635E00 +2C000003 40820028 886500DA 2C030000 4182001C 38600001 -986507B9 3D808001 +986507B8 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -3835,7 +3844,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07BA +83CDB61C 93FE07B9 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 From 8545b0ac2e9fbb5b238d6701fe22a07882bb687b Mon Sep 17 00:00:00 2001 From: Calvin Date: Thu, 13 Jan 2022 22:04:21 -0600 Subject: [PATCH 042/217] ignore neutral spawn in training mode --- Common/Common.s | 5 + External/NeutralSpawn/NeutralSpawn.asm | 4 + Output/Console/g_mods_friendlies.bin | Bin 2608 -> 2624 bytes Output/Console/g_mods_stealth.bin | Bin 1320 -> 1336 bytes Output/Console/g_mods_tournament.bin | Bin 2048 -> 2064 bytes Output/Netplay/GALE01r2.ini | 272 +++++++++++++------------ Output/Netplay/GALJ01r2.ini | 272 +++++++++++++------------ 7 files changed, 283 insertions(+), 270 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 8f2d2b31..fae35f79 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -395,6 +395,11 @@ add \reg, r3, r4 .set CFOptionsAddress, RtocAddress - ControllerFixOptions .set GeckoHeapPtr, 0x80005600 +# Internal scenes +.set SCENE_TRAINING_CSS, 0x001C +.set SCENE_TRAINING_SSS, 0x011C +.set SCENE_TRAINING_IN_GAME, 0x021C + ################################################################################ # Offsets from r13 ################################################################################ diff --git a/External/NeutralSpawn/NeutralSpawn.asm b/External/NeutralSpawn/NeutralSpawn.asm index 68a9b9bf..d5f47b52 100644 --- a/External/NeutralSpawn/NeutralSpawn.asm +++ b/External/NeutralSpawn/NeutralSpawn.asm @@ -16,6 +16,10 @@ backup #Don't run for players 5 and 6 cmpwi REG_PlayerSlot,5 bge Exit +#Don't run in Training + getMinorMajor r3 + cmpwi r3, SCENE_TRAINING_IN_GAME + beq Exit #Check if teams lbz r3, 0x24D0 (MatchInfo) diff --git a/Output/Console/g_mods_friendlies.bin b/Output/Console/g_mods_friendlies.bin index e78999dea3fdb5932e20b0dde5d733ea393403ef..2cf81fee52e89a5bd91e48e4daf33d2dcc72020e 100644 GIT binary patch delta 53 zcmdlWazKRRkl0fJ1_p+y6FJnSb97`FSREQzQfv|$JQ|Yc8iXXf*y%7c$v8G`G)rRH JJcnfpD*%~Y4^;pF delta 38 tcmX>gvO$F7kl0fJ1_p-76FJn`BXndKSREQRdL^;2Bmf0BuVI|G$NbIQq0|Ud~xr!WE`6|nkBJp Jp2L#D3;=`U4!ZyV delta 38 tcmbOr&>+BZNbIQq0|Ue4i5%+e5jrvqtPTwuy^>g15`co6*RZ580|33a2~+?8 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 8a4bba8d..4103eaab 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -57,154 +57,156 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 0416B480 60000000 #C-Stick in Single Player [Zauron] 0422D638 38000006 #Debug Menu [Magus, donny2112] 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] -C216E510 00000093 #External/NeutralSpawn/NeutralSpawn.asm +C216E510 00000095 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 9421FF50 BE810008 3D808016 618CB41C 7D8903A6 4E800421 -2C030000 40820458 -2C1C0005 40800450 -887F24D0 2C030001 -41820054 3B200000 -3B400000 7F43D378 +2C030000 4082046C +2C1C0005 40800464 +3C608048 80639D30 +5463443E 2C03021C +41820450 887F24D0 +2C030001 41820054 +3B200000 3B400000 +7F43D378 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820010 7C1CD000 +41820014 3B390001 +3B5A0001 2C1A0004 +4081FFD0 7F83E378 +7F24CB78 88BF24D0 +48000115 480003F4 +3B400000 3B000000 +3B200000 7F23CB78 3D808003 618C241C 7D8903A6 4E800421 -2C030003 41820010 -7C1CD000 41820014 -3B390001 3B5A0001 -2C1A0004 4081FFD0 -7F83E378 7F24CB78 -88BF24D0 48000115 -480003F4 3B400000 -3B000000 3B200000 +2C030003 41820024 7F23CB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820024 7F23CB78 -3D808003 618C3370 -7D8903A6 4E800421 -7C03D000 40820008 -3B180001 3B390001 -2C190004 4180FFBC -2C180001 41820398 -2C180002 41810390 -3B5A0001 2C1A0003 -4180FF98 3B200000 -3B410080 3B000000 -3AC00000 3AE00000 +618C3370 7D8903A6 +4E800421 7C03D000 +40820008 3B180001 +3B390001 2C190004 +4180FFBC 2C180001 +41820398 2C180002 +41810390 3B5A0001 +2C1A0003 4180FF98 +3B200000 3B410080 +3B000000 3AC00000 +3AE00000 7EE3BB78 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820028 7EE3BB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820028 7EE3BB78 -3D808003 618C3370 +618C3370 7D8903A6 +4E800421 7C03C800 +4082000C 7EF8D1AE +3B180001 3AF70001 +2C170004 4180FFB8 +3B390001 2C190003 +4180FFA4 3B200000 +7C79D0AE 7C03E000 +41820010 3B390001 +2C190004 4180FFEC +7F83E378 7F24CB78 +88BF24D0 48000009 +480002E8 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +48000121 7F8802A6 +80CD9348 38A00000 +807C0000 2C03FFFF +4182005C 7C033000 +4182000C 3B9C0044 +4BFFFFE8 3B9C0004 +1C7D0020 7F9C1A14 +1C7E0008 7F9C1A14 +38810080 C03C0000 +D0240000 C03C0004 +D0240004 38600000 +90640008 7FE3FB78 +3D808003 618C2768 +7D8903A6 4E800421 +48000054 2C1D0001 +4182000C 7FC3F378 +48000014 4800023D +7C6802A6 7C63F0AE +48000004 38810080 +3D808022 618C4E64 7D8903A6 4E800421 -7C03C800 4082000C -7EF8D1AE 3B180001 -3AF70001 2C170004 -4180FFB8 3B390001 -2C190003 4180FFA4 -3B200000 7C79D0AE -7C03E000 41820010 -3B390001 2C190004 -4180FFEC 7F83E378 -7F24CB78 88BF24D0 -48000009 480002E8 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 48000121 -7F8802A6 80CD9348 -38A00000 807C0000 -2C03FFFF 4182005C -7C033000 4182000C -3B9C0044 4BFFFFE8 -3B9C0004 1C7D0020 -7F9C1A14 1C7E0008 -7F9C1A14 38810080 -C03C0000 D0240000 -C03C0004 D0240004 -38600000 90640008 -7FE3FB78 3D808003 -618C2768 7D8903A6 -4E800421 48000054 -2C1D0001 4182000C -7FC3F378 48000014 -4800023D 7C6802A6 -7C63F0AE 48000004 -38810080 3D808022 -618C4E64 7D8903A6 -4E800421 7FE3FB78 -38810080 3D808003 -618C2768 7D8903A6 -4E800421 48000004 7FE3FB78 38810080 -3D808003 618C26CC -7D8903A6 4E800421 -C0210080 C002A8E8 -FC010040 4081000C -C022A8F8 48000008 -C022A8CC 7FE3FB78 -3D808003 618C3094 +3D808003 618C2768 7D8903A6 4E800421 +48000004 7FE3FB78 +38810080 3D808003 +618C26CC 7D8903A6 +4E800421 C0210080 +C002A8E8 FC010040 +4081000C C022A8F8 +48000008 C022A8CC +7FE3FB78 3D808003 +618C3094 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 00000020 +C2700000 41200000 +42700000 41200000 +C1A00000 41200000 +41A00000 41200000 +C2700000 41200000 +C1A00000 41200000 +42700000 41200000 +41A00000 41200000 +0000001F C21B3333 +420CCCCD 421B3333 +420CCCCD 00000000 +41000000 00000000 +4279999A C21B3333 +420CCCCD C21B3333 +40A00000 421B3333 +420CCCCD 421B3333 +40A00000 00000008 +C2280000 41D4CCCD +42280000 41E00000 +00000000 423B999A +00000000 409CCCCD +C2280000 41D4CCCD +C2280000 40A00000 +42280000 41E00000 +42280000 40A00000 +0000001C C23A6666 +4214CCCD 423D999A +42153333 00000000 +40E00000 00000000 +426A0000 C23A6666 +4214CCCD C23A6666 +40A00000 423D999A +42153333 423D999A +40A00000 00000002 +C2250000 41A80000 +42250000 41D80000 +00000000 40A80000 +00000000 42400000 +C2250000 41A80000 +C2250000 40A00000 +42250000 41D80000 +42250000 40A00000 +00000003 C2200000 +42000000 42200000 +42000000 428C0000 +40E00000 C28C0000 +40E00000 C2200000 +42000000 C2200000 +40A00000 42200000 +42000000 42200000 +40A00000 FFFFFFFF +4E800021 00030102 BA810008 800100B4 382100B0 7C0803A6 -4E800020 4E800021 -00000020 C2700000 -41200000 42700000 -41200000 C1A00000 -41200000 41A00000 -41200000 C2700000 -41200000 C1A00000 -41200000 42700000 -41200000 41A00000 -41200000 0000001F -C21B3333 420CCCCD -421B3333 420CCCCD -00000000 41000000 -00000000 4279999A -C21B3333 420CCCCD -C21B3333 40A00000 -421B3333 420CCCCD -421B3333 40A00000 -00000008 C2280000 -41D4CCCD 42280000 -41E00000 00000000 -423B999A 00000000 -409CCCCD C2280000 -41D4CCCD C2280000 -40A00000 42280000 -41E00000 42280000 -40A00000 0000001C -C23A6666 4214CCCD -423D999A 42153333 -00000000 40E00000 -00000000 426A0000 -C23A6666 4214CCCD -C23A6666 40A00000 -423D999A 42153333 -423D999A 40A00000 -00000002 C2250000 -41A80000 42250000 -41D80000 00000000 -40A80000 00000000 -42400000 C2250000 -41A80000 C2250000 -40A00000 42250000 -41D80000 42250000 -40A00000 00000003 -C2200000 42000000 -42200000 42000000 -428C0000 40E00000 -C28C0000 40E00000 -C2200000 42000000 -C2200000 40A00000 -42200000 42000000 -42200000 40A00000 -FFFFFFFF 4E800021 -00030102 BA810008 -800100B4 382100B0 -7C0803A6 881F24D0 -60000000 00000000 +881F24D0 00000000 042641B0 38000001 #Faster CSS Load [UnclePunch] 0421AAE4 60000000 #Disable FD Background Transitions [Achilles, Dan Salvato] 0425B8BC 38600002 #L+R+A Returns to CSS during Stage Load [Jorgasms] diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index cd5deb99..ca953253 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -57,154 +57,156 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 0416B480 60000000 #C-Stick in Single Player [Zauron] 0422D638 38000006 #Debug Menu [Magus, donny2112] 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] -C216E510 00000093 #External/NeutralSpawn/NeutralSpawn.asm +C216E510 00000095 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 9421FF50 BE810008 3D808016 618CB41C 7D8903A6 4E800421 -2C030000 40820458 -2C1C0005 40800450 -887F24D0 2C030001 -41820054 3B200000 -3B400000 7F43D378 +2C030000 4082046C +2C1C0005 40800464 +3C608048 80639D30 +5463443E 2C03021C +41820450 887F24D0 +2C030001 41820054 +3B200000 3B400000 +7F43D378 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820010 7C1CD000 +41820014 3B390001 +3B5A0001 2C1A0004 +4081FFD0 7F83E378 +7F24CB78 88BF24D0 +48000115 480003F4 +3B400000 3B000000 +3B200000 7F23CB78 3D808003 618C241C 7D8903A6 4E800421 -2C030003 41820010 -7C1CD000 41820014 -3B390001 3B5A0001 -2C1A0004 4081FFD0 -7F83E378 7F24CB78 -88BF24D0 48000115 -480003F4 3B400000 -3B000000 3B200000 +2C030003 41820024 7F23CB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820024 7F23CB78 -3D808003 618C3370 -7D8903A6 4E800421 -7C03D000 40820008 -3B180001 3B390001 -2C190004 4180FFBC -2C180001 41820398 -2C180002 41810390 -3B5A0001 2C1A0003 -4180FF98 3B200000 -3B410080 3B000000 -3AC00000 3AE00000 +618C3370 7D8903A6 +4E800421 7C03D000 +40820008 3B180001 +3B390001 2C190004 +4180FFBC 2C180001 +41820398 2C180002 +41810390 3B5A0001 +2C1A0003 4180FF98 +3B200000 3B410080 +3B000000 3AC00000 +3AE00000 7EE3BB78 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820028 7EE3BB78 3D808003 -618C241C 7D8903A6 -4E800421 2C030003 -41820028 7EE3BB78 -3D808003 618C3370 +618C3370 7D8903A6 +4E800421 7C03C800 +4082000C 7EF8D1AE +3B180001 3AF70001 +2C170004 4180FFB8 +3B390001 2C190003 +4180FFA4 3B200000 +7C79D0AE 7C03E000 +41820010 3B390001 +2C190004 4180FFEC +7F83E378 7F24CB78 +88BF24D0 48000009 +480002E8 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +7C9E2378 7CBD2B78 +48000121 7F8802A6 +80CD9348 38A00000 +807C0000 2C03FFFF +4182005C 7C033000 +4182000C 3B9C0044 +4BFFFFE8 3B9C0004 +1C7D0020 7F9C1A14 +1C7E0008 7F9C1A14 +38810080 C03C0000 +D0240000 C03C0004 +D0240004 38600000 +90640008 7FE3FB78 +3D808003 618C2768 +7D8903A6 4E800421 +48000054 2C1D0001 +4182000C 7FC3F378 +48000014 4800023D +7C6802A6 7C63F0AE +48000004 38810080 +3D808022 618C4E64 7D8903A6 4E800421 -7C03C800 4082000C -7EF8D1AE 3B180001 -3AF70001 2C170004 -4180FFB8 3B390001 -2C190003 4180FFA4 -3B200000 7C79D0AE -7C03E000 41820010 -3B390001 2C190004 -4180FFEC 7F83E378 -7F24CB78 88BF24D0 -48000009 480002E8 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -7CBD2B78 48000121 -7F8802A6 80CD9348 -38A00000 807C0000 -2C03FFFF 4182005C -7C033000 4182000C -3B9C0044 4BFFFFE8 -3B9C0004 1C7D0020 -7F9C1A14 1C7E0008 -7F9C1A14 38810080 -C03C0000 D0240000 -C03C0004 D0240004 -38600000 90640008 -7FE3FB78 3D808003 -618C2768 7D8903A6 -4E800421 48000054 -2C1D0001 4182000C -7FC3F378 48000014 -4800023D 7C6802A6 -7C63F0AE 48000004 -38810080 3D808022 -618C4E64 7D8903A6 -4E800421 7FE3FB78 -38810080 3D808003 -618C2768 7D8903A6 -4E800421 48000004 7FE3FB78 38810080 -3D808003 618C26CC -7D8903A6 4E800421 -C0210080 C002A8E8 -FC010040 4081000C -C022A8F8 48000008 -C022A8CC 7FE3FB78 -3D808003 618C3094 +3D808003 618C2768 7D8903A6 4E800421 +48000004 7FE3FB78 +38810080 3D808003 +618C26CC 7D8903A6 +4E800421 C0210080 +C002A8E8 FC010040 +4081000C C022A8F8 +48000008 C022A8CC +7FE3FB78 3D808003 +618C3094 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 00000020 +C2700000 41200000 +42700000 41200000 +C1A00000 41200000 +41A00000 41200000 +C2700000 41200000 +C1A00000 41200000 +42700000 41200000 +41A00000 41200000 +0000001F C21B3333 +420CCCCD 421B3333 +420CCCCD 00000000 +41000000 00000000 +4279999A C21B3333 +420CCCCD C21B3333 +40A00000 421B3333 +420CCCCD 421B3333 +40A00000 00000008 +C2280000 41D4CCCD +42280000 41E00000 +00000000 423B999A +00000000 409CCCCD +C2280000 41D4CCCD +C2280000 40A00000 +42280000 41E00000 +42280000 40A00000 +0000001C C23A6666 +4214CCCD 423D999A +42153333 00000000 +40E00000 00000000 +426A0000 C23A6666 +4214CCCD C23A6666 +40A00000 423D999A +42153333 423D999A +40A00000 00000002 +C2250000 41A80000 +42250000 41D80000 +00000000 40A80000 +00000000 42400000 +C2250000 41A80000 +C2250000 40A00000 +42250000 41D80000 +42250000 40A00000 +00000003 C2200000 +42000000 42200000 +42000000 428C0000 +40E00000 C28C0000 +40E00000 C2200000 +42000000 C2200000 +40A00000 42200000 +42000000 42200000 +40A00000 FFFFFFFF +4E800021 00030102 BA810008 800100B4 382100B0 7C0803A6 -4E800020 4E800021 -00000020 C2700000 -41200000 42700000 -41200000 C1A00000 -41200000 41A00000 -41200000 C2700000 -41200000 C1A00000 -41200000 42700000 -41200000 41A00000 -41200000 0000001F -C21B3333 420CCCCD -421B3333 420CCCCD -00000000 41000000 -00000000 4279999A -C21B3333 420CCCCD -C21B3333 40A00000 -421B3333 420CCCCD -421B3333 40A00000 -00000008 C2280000 -41D4CCCD 42280000 -41E00000 00000000 -423B999A 00000000 -409CCCCD C2280000 -41D4CCCD C2280000 -40A00000 42280000 -41E00000 42280000 -40A00000 0000001C -C23A6666 4214CCCD -423D999A 42153333 -00000000 40E00000 -00000000 426A0000 -C23A6666 4214CCCD -C23A6666 40A00000 -423D999A 42153333 -423D999A 40A00000 -00000002 C2250000 -41A80000 42250000 -41D80000 00000000 -40A80000 00000000 -42400000 C2250000 -41A80000 C2250000 -40A00000 42250000 -41D80000 42250000 -40A00000 00000003 -C2200000 42000000 -42200000 42000000 -428C0000 40E00000 -C28C0000 40E00000 -C2200000 42000000 -C2200000 40A00000 -42200000 42000000 -42200000 40A00000 -FFFFFFFF 4E800021 -00030102 BA810008 -800100B4 382100B0 -7C0803A6 881F24D0 -60000000 00000000 +881F24D0 00000000 042641B0 38000001 #Faster CSS Load [UnclePunch] 0421AAE4 60000000 #Disable FD Background Transitions [Achilles, Dan Salvato] 0425B8BC 38600002 #L+R+A Returns to CSS during Stage Load [Jorgasms] From 3ccb6a9012da548fb6e4e7aa6091a306e89e0757 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 12:34:57 -0500 Subject: [PATCH 043/217] add scene counter to frame start output --- Recording/Recording.s | 4 ++-- .../{SendInitialRNG.s => SendFrameStart.s} | 22 +++++++++++-------- Recording/SendGameInfo.asm | 8 +++---- 3 files changed, 19 insertions(+), 15 deletions(-) rename Recording/{SendInitialRNG.s => SendFrameStart.s} (83%) diff --git a/Recording/Recording.s b/Recording/Recording.s index d34eef56..f8c3c7cb 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -16,7 +16,7 @@ # Payload lengths, if any additional data is added, these must be incremented .set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count .set GAME_INFO_PAYLOAD_LENGTH, 584 # byte count -.set GAME_INITIAL_RNG_PAYLOAD_LENGTH, 8 #byte count +.set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count .set GAME_PRE_FRAME_PAYLOAD_LENGTH, 63 # byte count .set GAME_POST_FRAME_PAYLOAD_LENGTH, 76 # byte count .set GAME_ITEM_INFO_PAYLOAD_LENGTH, 42 # byte count @@ -43,7 +43,7 @@ # length should be less than the frame buf length .set SUPPORTED_PORTS, 4 .set MAX_CHARACTERS, SUPPORTED_PORTS * 2 # ICs -.set TOTAL_INITIAL_RNG_LEN, GAME_INITIAL_RNG_PAYLOAD_LENGTH + 1 +.set TOTAL_INITIAL_RNG_LEN, GAME_FRAME_START_PAYLOAD_LENGTH + 1 .set TOTAL_CHAR_FRAME_LEN, MAX_CHARACTERS * (GAME_PRE_FRAME_PAYLOAD_LENGTH + 1) + MAX_CHARACTERS * (GAME_POST_FRAME_PAYLOAD_LENGTH + 1) .set TOTAL_ITEM_LEN, MAX_ITEMS * (GAME_ITEM_INFO_PAYLOAD_LENGTH + 1) .set TOTAL_FRAME_BOOKEND_LEN, GAME_FRAME_BOOKEND_PAYLOAD_LENGTH + 1 diff --git a/Recording/SendInitialRNG.s b/Recording/SendFrameStart.s similarity index 83% rename from Recording/SendInitialRNG.s rename to Recording/SendFrameStart.s index 842e4bce..e0eeedb8 100644 --- a/Recording/SendInitialRNG.s +++ b/Recording/SendFrameStart.s @@ -1,9 +1,9 @@ # Required Includes (A file that includes this header must also include these) # Recording/Recording.s -.macro Macro_SendInitialRNG +.macro Macro_SendFrameStart -CreateInitialRNGProc: +CreateFrameStartProc: #Create GObj li r3,4 #GObj Type (4 is the player type, this should ensure it runs before any player animations) li r4,7 #On-Pause Function (dont run on pause) @@ -11,21 +11,21 @@ CreateInitialRNGProc: branchl r12,GObj_Create #Create Proc - bl SendInitialRNG + bl SendFrameStart mflr r4 #Function li r5,0 #Priority branchl r12,GObj_AddProc -b CreateInitialRNGProc_Exit +b CreateFrameStartProc_Exit ################################################################################ -# Routine: SendInitialRNG +# Routine: SendFrameStart # ------------------------------------------------------------------------------ # Description: Sends the RNG seed that is needed for the very rare case of throws # causing the DamageFlyTop state ################################################################################ -SendInitialRNG: +SendFrameStart: blrl .set REG_PlayerData,31 @@ -58,15 +58,19 @@ backup lwz r3, 0x5F90(r3) #load random seed stw r3,0x5(REG_Buffer) +# store scene frame counter + loadGlobalFrame r3 + stw r3, 0x9(REG_Buffer) + #------------- Increment Buffer Offset ------------ lwz REG_BufferOffset,bufferOffset(r13) - addi REG_BufferOffset,REG_BufferOffset,(GAME_INITIAL_RNG_PAYLOAD_LENGTH+1) + addi REG_BufferOffset,REG_BufferOffset,(GAME_FRAME_START_PAYLOAD_LENGTH+1) stw REG_BufferOffset,bufferOffset(r13) -SendInitialRNG_Exit: +SendFrameStart_Exit: restore blr -CreateInitialRNGProc_Exit: +CreateFrameStartProc_Exit: .endm diff --git a/Recording/SendGameInfo.asm b/Recording/SendGameInfo.asm index 2c94ebfa..fcdf5687 100644 --- a/Recording/SendGameInfo.asm +++ b/Recording/SendGameInfo.asm @@ -4,7 +4,7 @@ .include "Common/Common.s" .include "Online/Online.s" .include "Recording/Recording.s" -.include "Recording/SendInitialRNG.s" +.include "Recording/SendFrameStart.s" .include "Recording/SendItemInfo.s" ################################################################################ @@ -96,7 +96,7 @@ backup # initial rng command li r3,CMD_INITIAL_RNG stb r3,CommandSizesStart+0xE(REG_Buffer) - li r3, GAME_INITIAL_RNG_PAYLOAD_LENGTH + li r3, GAME_FRAME_START_PAYLOAD_LENGTH sth r3,CommandSizesStart+0xF(REG_Buffer) # item data command @@ -554,8 +554,8 @@ CODE_LIST_CLEANUP: mr r3, REG_GeckoCopyBuffer branchl r12, HSD_Free -# run macro to create the SendInitialRNG process - Macro_SendInitialRNG +# run macro to create the SendFrameStart process + Macro_SendFrameStart # run macro to create SendProjectileInfo process Macro_SendItemInfo From 19e98014217262c58028b64f4dd8b1f35db11b40 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 12:36:41 -0500 Subject: [PATCH 044/217] update recording version number version includes HRC, BTT, scene counter --- Recording/Recording.s | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Recording/Recording.s b/Recording/Recording.s index f8c3c7cb..5668dc08 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -52,8 +52,8 @@ # build version number. Each byte is one digit # any change in command data should result in a minor version change -# current version: 3.9.1 -.set CURRENT_VERSION,0x03090100 +# current version: 3.10.0 +.set CURRENT_VERSION,0x030A0000 ################################################################################ # Static Function Locations From f57e164d6d4c604766a91606b067e3156b48c8f1 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 12:38:08 -0500 Subject: [PATCH 045/217] build codeset --- Output/Console/GALE01r2.ini | 108 ++++++++++++++------------- Output/Console/g_core.bin | Bin 5024 -> 5040 bytes Output/Console/g_core_porta.bin | Bin 5024 -> 5040 bytes Output/Console/g_mods_friendlies.bin | Bin 2624 -> 2648 bytes Output/Console/g_mods_stealth.bin | Bin 1336 -> 1360 bytes Output/Console/g_mods_tournament.bin | Bin 2064 -> 2088 bytes Output/Netplay/GALE01r2.ini | 108 ++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 108 ++++++++++++++------------- 8 files changed, 165 insertions(+), 159 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 6e4fb619..b0e3c67b 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -112,19 +112,19 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000E9 #Recording/SendGameInfo.asm +C216E74C 000000EB #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182070C +2C030000 41820718 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600702 3D808037 +38600706 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -144,7 +144,7 @@ B07E0006 38600038 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A -987E000E 38600008 +987E000E 3860000C B07E000F 3860003B 987E0011 3860002A B07E0012 3860003C @@ -154,7 +154,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600309 60630100 +3C60030A 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -287,7 +287,7 @@ A0B50201 3D808000 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000064 4E800021 +48000070 4E800021 7C0802A6 90010004 9421FF50 BE810008 806DB64C 83A30000 @@ -295,57 +295,59 @@ A0B50201 3D808000 3860003A 987D0000 806DB654 907D0001 3C60804D 80635F90 -907D0005 838DB650 -3B9C0009 938DB650 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600004 -38800007 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -48000021 7C8802A6 -38A0000F 3D808038 -618CFD54 7D8903A6 -4E800421 48000124 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83E30000 83CDB650 -7FFFF214 3B600000 -806DC18C 83A30024 -2C1D0000 418200D8 -3B7B0001 2C1B000F -418100CC 839D002C -3860003B 987F0000 -806DB654 907F0001 -807C0010 B07F0005 -807C0024 987F0007 -807C002C 907F0008 -807C0040 907F000C -807C0044 907F0010 -807C004C 907F0014 -807C0050 907F0018 -807C0C9C B07F001C -807C0D44 907F001E -807C001C 907F0022 -887C0DD7 987F0026 -887C0DDB 987F0027 -887C0DEB 987F0028 -887C0DEF 987F0029 -807C0518 2C030000 -41820018 8063002C -2C030000 4182000C -8863000C 48000008 -3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B -83BD0008 2C1D0000 -4082FF30 BA810008 +907D0005 3C608048 +80639D60 907D0009 +838DB650 3B9C000D +938DB650 BA810008 800100B4 382100B0 7C0803A6 4E800020 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A0000F +3D808038 618CFD54 +7D8903A6 4E800421 +48000124 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83E30000 +83CDB650 7FFFF214 +3B600000 806DC18C +83A30024 2C1D0000 +418200D8 3B7B0001 +2C1B000F 418100CC +839D002C 3860003B +987F0000 806DB654 +907F0001 807C0010 +B07F0005 807C0024 +987F0007 807C002C +907F0008 807C0040 +907F000C 807C0044 +907F0010 807C004C +907F0014 807C0050 +907F0018 807C0C9C +B07F001C 807C0D44 +907F001E 807C001C +907F0022 887C0DD7 +987F0026 887C0DDB +987F0027 887C0DEB +987F0028 887C0DEF +987F0029 807C0518 +2C030000 41820018 +8063002C 2C030000 +4182000C 8863000C +48000008 3860FFFF +987F002A 83CDB650 +3BDE002B 93CDB650 +3BFF002B 83BD0008 +2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -3C608017 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 3C608017 +60000000 00000000 C206DA34 00000035 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 7cc7dc110f361136701de259bbc005e8f80d3a15..70cc3bb351076539579f792aa8736da3deafd048 100644 GIT binary patch delta 87 zcmV-d0I2_zCe8gKQrUY$pXykj69Pqn2i~kCg(6OX5^SGz~arqnUKu5Ii5v@g)wEa4yWYg ixg6>|&ArzCe8gKQrUY$pXykj69Pqn2i~kCg(6OX5^SGz~arqnUKu5Ii5v@g)wEa4yWYg ixg6>|&ArgazljUkl0fJ1_p*16FJnS8+2qCSREQzDr^!OJQ|Yc8iXXf*y%7c$v8G`G%I6a NNdPL`yoO~8D**6R5HJ7$ delta 33 pcmca1azKRRkl0fJ1_p+y6FJn`b97`FSREQRdX=$kKEg7E6#%O$3G@H} diff --git a/Output/Console/g_mods_stealth.bin b/Output/Console/g_mods_stealth.bin index 26cbc013512a576376a85a53d4657cf6cfe76c07..707952a1f84ad57cb62d4b456ee7b71a3d6232b6 100644 GIT binary patch delta 57 zcmdnNb%BfHkl0fJ1_p*16FJnS8+2qCSREQzDr^!OJQ|Yc8iXXf*y%7c$v8G`G%I6a MNdPLGyoRL*0N2nD-v9sr delta 32 ocmcb>wS$Y}kl0fJ1_p+y6FJn`b97`FSREQRdX=$EKEl!i0GwtCqW}N^ diff --git a/Output/Console/g_mods_tournament.bin b/Output/Console/g_mods_tournament.bin index 488ce18a3f143c9f762fddbf1815d62936f86420..19b4ced6b015c3bf7d4d8e70868cc729ea44ce93 100644 GIT binary patch delta 58 zcmbOrutI?2kl0fJ1_p*16FJnS8+2qCSREQzDr^!OJQ|Yc8iXXf*y%7c$v8G`G%I6a NNdPL`yoM!(835SQ50(G` delta 33 pcmZ1>FhPLhkl0fJ1_p+y6FJn`b97`FSREQRdX=$kKEjg13;> Date: Wed, 26 Jan 2022 12:40:00 -0500 Subject: [PATCH 046/217] change name of one more label --- Recording/Recording.s | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Recording/Recording.s b/Recording/Recording.s index 5668dc08..b2ec5e2f 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -43,12 +43,12 @@ # length should be less than the frame buf length .set SUPPORTED_PORTS, 4 .set MAX_CHARACTERS, SUPPORTED_PORTS * 2 # ICs -.set TOTAL_INITIAL_RNG_LEN, GAME_FRAME_START_PAYLOAD_LENGTH + 1 +.set TOTAL_FRAME_START_LEN, GAME_FRAME_START_PAYLOAD_LENGTH + 1 .set TOTAL_CHAR_FRAME_LEN, MAX_CHARACTERS * (GAME_PRE_FRAME_PAYLOAD_LENGTH + 1) + MAX_CHARACTERS * (GAME_POST_FRAME_PAYLOAD_LENGTH + 1) .set TOTAL_ITEM_LEN, MAX_ITEMS * (GAME_ITEM_INFO_PAYLOAD_LENGTH + 1) .set TOTAL_FRAME_BOOKEND_LEN, GAME_FRAME_BOOKEND_PAYLOAD_LENGTH + 1 .set TOTAL_GAME_END_LEN, GAME_END_PAYLOAD_LENGTH + 1 -.set FULL_FRAME_DATA_BUF_LENGTH, TOTAL_INITIAL_RNG_LEN + TOTAL_CHAR_FRAME_LEN + TOTAL_ITEM_LEN + TOTAL_FRAME_BOOKEND_LEN + TOTAL_GAME_END_LEN +.set FULL_FRAME_DATA_BUF_LENGTH, TOTAL_FRAME_START_LEN + TOTAL_CHAR_FRAME_LEN + TOTAL_ITEM_LEN + TOTAL_FRAME_BOOKEND_LEN + TOTAL_GAME_END_LEN # build version number. Each byte is one digit # any change in command data should result in a minor version change From 9c9c7b4818c964070860cdab440df5af852495d3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 18:20:16 -0500 Subject: [PATCH 047/217] allow advance to process at the same time as a rollback --- Online/Core/StartEngineLoop.asm | 4 +- Online/Core/TriggerSendInput.asm | 50 +++-- Online/Online.s | 4 +- Output/Netplay/GALE01r2.ini | 323 ++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 323 ++++++++++++++++--------------- 5 files changed, 367 insertions(+), 337 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index af253b2f..d59a1211 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -181,7 +181,7 @@ stw r3, ODB_FRAME(REG_ODB_ADDRESS) # Clear savestate and should load flags flag li r3, 0 -stb r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) +stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x0(REG_ODB_ADDRESS) stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x1(REG_ODB_ADDRESS) stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x2(REG_ODB_ADDRESS) @@ -213,7 +213,7 @@ stb r3, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) ################################################################################ CAPTURE_CHECK: # First check if a savestate is active -lbz r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) +lbz r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) cmpwi r3, 0 beq CAPTURE_END diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 67d1670d..317e411d 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -52,8 +52,16 @@ lwz REG_FRAME_INDEX, ODB_FRAME(REG_ODB_ADDRESS) # Check if we have an active rollback, if so, we don't want to fetch # new data from Slippi, we just want to operate on the existing data lbz r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) -cmpwi r3, 1 +cmpwi r3, 0 +beq PROCESS_NOT_ROLLBACK + +# Check to see if we should load state, if so then we actually have yet to process our +# savestate load, in this case we are not ready to call the rollback handler so let's queue +# up another input instead. +lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) +cmpwi r3, 0 beq ROLLBACK_HANDLER +PROCESS_NOT_ROLLBACK: ################################################################################ # Section 1: Clear all inputs during freeze time, this is done such that @@ -167,8 +175,7 @@ branchl r12, FN_EXITransferBuffer # Get response from Slippi and figure out whether this input should be skipped # Skipping an input causes the game to stall one frame and allows the opponent's # client to catch up -# TODO: Is it possible to do something better than skipping an input? Obviously -# TODO: this could throw off the timing of someone that is ahead + # request data from EXI that was prepared when we sent our frame addi r3, REG_RXB_ADDRESS, RXB_RESULT li r4, RXB_SIZE @@ -305,13 +312,13 @@ stb r3, ODB_DELAY_BUFFER_INDEX(REG_ODB_ADDRESS) # Section 8: Check if we have prepared for rollback and inputs have been received ################################################################################ -# If ODB_SAVESTATE_IS_ACTIVE is 0, we either don't have a savestate created +# If ODB_SAVESTATE_IS_PREDICTING is 0, we either don't have a savestate created # or we're in a rollback, so set the per-player savestate flags to 0 and skip # to section 9. If we're missing inputs for the current frame, they'll get reset # correctly there. -lbz r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) +lbz r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) cmpwi r3, 0 -bne COMPARE_PREDICTED_INPUTS +bne HANDLE_PREDICTING_STATE li r3, 0 stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) @@ -320,6 +327,15 @@ stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x2(REG_ODB_ADDRESS) b LOAD_OPPONENT_INPUTS +HANDLE_PREDICTING_STATE: +# Check if state should be loaded, if so this means we've gotten a second input before the +# state was loaded. If that's the case, just continue the request for a rollback and update +# the end frame so that this new frame of inputs gets used. TRIGGER_ROLLBACK already handles +# all of that for us, so just call that +lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne TRIGGER_ROLLBACK + # If we were missing past inputs for one or more players, check and see # if we've received any new inputs that would allow us to compare those to # past predictions to potentially trigger a rollback. @@ -459,10 +475,10 @@ bne CHECK_WHETHER_TO_ROLL_BACK_LOOP # Not caught up, try loop again with next fr b CONTINUE_ROLLBACK_CHECK_LOOP TRIGGER_ROLLBACK: -mulli r6, REG_COUNT, 4 -addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME -lwzx r3, r6, REG_ODB_ADDRESS # get our player-specific savestate frame -#logf LOG_LEVEL_WARN, "Triggering rollback from player %d input on past frame %d", "mr r5, 20", "mr r6, 3" +# mulli r6, REG_COUNT, 4 +# addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME +# lwzx r3, r6, REG_ODB_ADDRESS # get our player-specific savestate frame +# logf LOG_LEVEL_WARN, "Triggering rollback from player %d input on past frame %d", "mr r5, 20", "mr r6, 3" # Set the is rollback active flag to indicate to the engine to continue # processing inputs until we have completed the rollback process @@ -473,6 +489,14 @@ stb r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) # Store the end frame index to remember when to terminate rollback logic stw REG_FRAME_INDEX, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) +# We have successfully sent inputs to our opponent and preped them to use for rollback +# We still want to increment the frame just in case another input is sent before we have +# a chance to load the savestate. This should be fine because it will get overwritten when +# the state actually gets loaded. Getting a frame advance at the same time as a rollback +# requires this such that we can still ffw to the advanced frame. +addi REG_FRAME_INDEX, REG_FRAME_INDEX, 1 +stw REG_FRAME_INDEX, ODB_FRAME(REG_ODB_ADDRESS) + # We are going to exit the parent function here. We have initiated a rollback # which will cause the engine to loop without rendering frames, our rollback # logic will kick in properly the next time this function is called @@ -589,7 +613,7 @@ blt CHECK_GLOBAL_SAVESTATE_LOOP # If we made it here, we have caught up to the prediction, clear the savestate flags for everyone li r3, 0 -stb r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) +stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) #logf LOG_LEVEL_WARN, "Reset savestate flags to 0" @@ -696,7 +720,7 @@ stbx REG_PREDICTED_WRITE_IDX, r6, REG_ODB_ADDRESS # In the case where we don't have this player's inputs but already have a # savestate because of another player's missing inputs, don't touch the global savestate frame counter -lbz r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) +lbz r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) cmpwi r3, 1 beq LOAD_STALE_INPUTS @@ -706,7 +730,7 @@ stw REG_FRAME_INDEX, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) # Indicate that we have prepared for a rollback li r3, 1 -stb r3, ODB_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) +stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) #logf LOG_LEVEL_WARN, "Setting global savestate flag to 1" LOAD_STALE_INPUTS: diff --git a/Online/Online.s b/Online/Online.s index 3ef9bf2e..e68c5105 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -206,8 +206,8 @@ .set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT -.set ODB_SAVESTATE_IS_ACTIVE, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 # bool -.set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_ACTIVE + 1 # s32 +.set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 # bool +.set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_PREDICTING + 1 # s32 .set ODB_PLAYER_SAVESTATE_FRAME, ODB_SAVESTATE_FRAME + 4 # u32 .set ODB_PLAYER_SAVESTATE_IS_ACTIVE, ODB_PLAYER_SAVESTATE_FRAME + 4*3 # u32[3] .set ODB_SAVESTATE_SSRB_ADDR, ODB_PLAYER_SAVESTATE_IS_ACTIVE + 3 # u32 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ba5c191e..967dab94 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1572,97 +1572,100 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E0 #Online/Core/TriggerSendInput.asm +C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206C8 3C608047 +408206DC 3C608047 60639D64 80630000 -2C030000 408206B4 +2C030000 408206C8 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA -2C030001 41820610 -887B001C 38800054 -7C632050 2C1A0003 -4080001C 386100DC -38800030 3D808000 -618CC160 7D8903A6 -4E800421 889B0002 -1C84000C 386400E6 -7C6118AE 7C630774 -2C03FFFD 40820024 -386400DC 7C611A14 -389B0010 38A0000C -3D808000 618C31F4 +2C030000 41820010 +887B00DB 2C030000 +41820618 887B001C +38800054 7C632050 +2C1A0003 4080001C +386100DC 38800030 +3D808000 618CC160 7D8903A6 4E800421 889B0002 1C84000C -388400DC 387B0010 -7C812214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -386000B0 98790000 -93590001 887B001C -98790005 889B0002 -1C84000C 388400DC -38790006 7C812214 +386400E6 7C6118AE +7C630774 2C03FFFD +40820024 386400DC +7C611A14 389B0010 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 7F23CB78 -38800012 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -38780000 3880010E -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 38600000 -987B000F 88780000 -2C030002 41820024 -2C030003 41820010 -2C030004 41820034 -48000038 38600001 -987B000D 4800002C -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -38600001 987B000F -889B001D 1C84000C -3884001E 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 +4E800421 889B0002 +1C84000C 388400DC +387B0010 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00E0 -1C63000C 386300E1 -889B0000 1C84000C -388400DC 7C7B1A14 +4E800421 386000B0 +98790000 93590001 +887B001C 98790005 +889B0002 1C84000C +388400DC 38790006 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00E0 38630001 -2C030007 41800008 -38600000 987B00E0 -887B001D 1C63000C -3863001E 7C7B1A14 -38990006 38A0000C +7F23CB78 38800012 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38780000 +3880010E 38A00000 +3D808000 618C55F0 +7D8903A6 4E800421 +38600000 987B000F +88780000 2C030002 +41820024 2C030003 +41820010 2C030004 +41820034 48000038 +38600001 987B000D +4800002C BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 38600001 +987B000F 889B001D +1C84000C 3884001E +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -889B001C 887B001D -38630001 7C032000 +887B00E0 1C63000C +386300E1 889B0000 +1C84000C 388400DC +7C7B1A14 7C812214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 887B00E0 +38630001 2C030007 41800008 38600000 -987B001D 887B0237 -2C030000 40820018 -38600000 987B0248 -987B0249 987B024A -48000284 3A800000 +987B00E0 887B001D +1C63000C 3863001E +7C7B1A14 38990006 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 889B001C +887B001D 38630001 +7C032000 41800008 +38600000 987B001D +887B0237 2C030000 +40820018 38600000 +987B0248 987B0249 +987B024A 4800028C +887B00DB 2C030000 +40820150 3A800000 38D40248 7C66D8AE -2C030001 40820178 +2C030001 40820174 1CD40004 38C60002 7C66C02E 1CD40004 38C6023C 7C86D82E -7C641851 41800158 +7C641851 41800154 7C761B78 38D40135 7C66D8AE 38D40138 7C86D8AE 7EC3B378 @@ -1697,106 +1700,106 @@ BA810008 800100B4 7C86D8AE 38D40135 7C66D8AE 38D40138 7C86D8AE 7C041800 -4082FEC0 48000040 -1CD40004 38C6023C -7C66D82E 38600001 -987B00DA 987B00DB -935B00DC BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE74 -3AA00000 3A800000 -807B0238 7C761B78 -7EC3B378 38D40248 -7C86D8AE 7C761B78 -7EC3B378 38D40248 -7C86D8AE 2C040001 -40820030 1CD40004 -38C6023C 7C86D82E -2C150000 4182000C -7C041800 40800014 -7C832378 7C761B78 -7EC3B378 3AA00001 -3A940001 2C140003 -4180FFAC 907B0238 -3A800000 38D40248 -7C86D8AE 2C040001 -40820038 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 7C041800 -40820010 38600000 -38D40248 7C66D9AE +4082FEC0 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 3A940001 2C140003 -4180FFB4 3A800000 +4180FE78 3AA00000 +3A800000 807B0238 +7C761B78 7EC3B378 38D40248 7C86D8AE -2C040001 41820018 -3A940001 2C140003 -4180FFE8 38600000 -987B0237 3A800000 -3AA00000 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D4 887B001C -38800054 7C632050 -7C1A1800 418000BC -887B000C 2C030001 -418200B0 38D40138 -7EC6D8AE 1C76000C -3863013B 1CB40054 -7C632A14 1CD40054 -38C6000E 7C7B1A14 -7C983214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -38760001 2C030007 -41800008 3863FFF9 -38D40138 7C66D9AE +7C761B78 7EC3B378 +38D40248 7C86D8AE +2C040001 40820030 +1CD40004 38C6023C +7C86D82E 2C150000 +4182000C 7C041800 +40800014 7C832378 +7C761B78 7EC3B378 +3AA00001 3A940001 +2C140003 4180FFAC +907B0238 3A800000 +38D40248 7C86D8AE +2C040001 40820038 38D40135 7C66D8AE 38D40138 7C86D8AE -38D40248 7C66D8AE -2C030001 4182003C -1CD40004 38C6023C -7F46D92E 38600001 -38D40248 7C66D9AE -38D40135 7EC6D9AE -887B0237 2C030001 -41820010 935B0238 -38600001 987B0237 -38600000 1C63000C -38A3000E 1CD40054 -7CA53214 1C75000C +38D40135 7C66D8AE +38D40138 7C86D8AE +7C041800 40820010 +38600000 38D40248 +7C66D9AE 3A940001 +2C140003 4180FFB4 +3A800000 38D40248 +7C86D8AE 2C040001 +41820018 3A940001 +2C140003 4180FFE8 +38600000 987B0237 +3A800000 3AA00000 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D4 +887B001C 38800054 +7C632050 7C1A1800 +418000BC 887B000C +2C030001 418200B0 +38D40138 7EC6D8AE +1C76000C 3863013B +1CB40054 7C632A14 +1CD40054 38C6000E +7C7B1A14 7C983214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 38760001 +2C030007 41800008 +3863FFF9 38D40138 +7C66D9AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40248 +7C66D8AE 2C030001 +4182003C 1CD40004 +38C6023C 7F46D92E +38600001 38D40248 +7C66D9AE 38D40135 +7EC6D9AE 887B0237 +2C030001 41820010 +935B0238 38600001 +987B0237 38600000 +1C63000C 38A3000E +1CD40054 7CA53214 +1C75000C 386300DC +7C611A14 7C982A14 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 3A940001 +3AB50001 2C140003 +4180FEC8 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 38630007 +1C63000C 388300E1 +887B0000 1C63000C 386300DC 7C611A14 -7C982A14 38A0000C +7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -3A940001 3AB50001 -2C140003 4180FEC8 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -38630007 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE40 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +4BFFFE40 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index d5a925dd..77d50bde 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1572,97 +1572,100 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E0 #Online/Core/TriggerSendInput.asm +C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206C8 3C608047 +408206DC 3C608047 60639D64 80630000 -2C030000 408206B4 +2C030000 408206C8 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA -2C030001 41820610 -887B001C 38800054 -7C632050 2C1A0003 -4080001C 386100DC -38800030 3D808000 -618CC160 7D8903A6 -4E800421 889B0002 -1C84000C 386400E6 -7C6118AE 7C630774 -2C03FFFD 40820024 -386400DC 7C611A14 -389B0010 38A0000C -3D808000 618C31F4 +2C030000 41820010 +887B00DB 2C030000 +41820618 887B001C +38800054 7C632050 +2C1A0003 4080001C +386100DC 38800030 +3D808000 618CC160 7D8903A6 4E800421 889B0002 1C84000C -388400DC 387B0010 -7C812214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -386000B0 98790000 -93590001 887B001C -98790005 889B0002 -1C84000C 388400DC -38790006 7C812214 +386400E6 7C6118AE +7C630774 2C03FFFD +40820024 386400DC +7C611A14 389B0010 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 7F23CB78 -38800012 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -38780000 3880010E -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 38600000 -987B000F 88780000 -2C030002 41820024 -2C030003 41820010 -2C030004 41820034 -48000038 38600001 -987B000D 4800002C -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -38600001 987B000F -889B001D 1C84000C -3884001E 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 +4E800421 889B0002 +1C84000C 388400DC +387B0010 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00E0 -1C63000C 386300E1 -889B0000 1C84000C -388400DC 7C7B1A14 +4E800421 386000B0 +98790000 93590001 +887B001C 98790005 +889B0002 1C84000C +388400DC 38790006 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00E0 38630001 -2C030007 41800008 -38600000 987B00E0 -887B001D 1C63000C -3863001E 7C7B1A14 -38990006 38A0000C +7F23CB78 38800012 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38780000 +3880010E 38A00000 +3D808000 618C55F0 +7D8903A6 4E800421 +38600000 987B000F +88780000 2C030002 +41820024 2C030003 +41820010 2C030004 +41820034 48000038 +38600001 987B000D +4800002C BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 38600001 +987B000F 889B001D +1C84000C 3884001E +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -889B001C 887B001D -38630001 7C032000 +887B00E0 1C63000C +386300E1 889B0000 +1C84000C 388400DC +7C7B1A14 7C812214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 887B00E0 +38630001 2C030007 41800008 38600000 -987B001D 887B0237 -2C030000 40820018 -38600000 987B0248 -987B0249 987B024A -48000284 3A800000 +987B00E0 887B001D +1C63000C 3863001E +7C7B1A14 38990006 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 889B001C +887B001D 38630001 +7C032000 41800008 +38600000 987B001D +887B0237 2C030000 +40820018 38600000 +987B0248 987B0249 +987B024A 4800028C +887B00DB 2C030000 +40820150 3A800000 38D40248 7C66D8AE -2C030001 40820178 +2C030001 40820174 1CD40004 38C60002 7C66C02E 1CD40004 38C6023C 7C86D82E -7C641851 41800158 +7C641851 41800154 7C761B78 38D40135 7C66D8AE 38D40138 7C86D8AE 7EC3B378 @@ -1697,106 +1700,106 @@ BA810008 800100B4 7C86D8AE 38D40135 7C66D8AE 38D40138 7C86D8AE 7C041800 -4082FEC0 48000040 -1CD40004 38C6023C -7C66D82E 38600001 -987B00DA 987B00DB -935B00DC BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE74 -3AA00000 3A800000 -807B0238 7C761B78 -7EC3B378 38D40248 -7C86D8AE 7C761B78 -7EC3B378 38D40248 -7C86D8AE 2C040001 -40820030 1CD40004 -38C6023C 7C86D82E -2C150000 4182000C -7C041800 40800014 -7C832378 7C761B78 -7EC3B378 3AA00001 -3A940001 2C140003 -4180FFAC 907B0238 -3A800000 38D40248 -7C86D8AE 2C040001 -40820038 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 7C041800 -40820010 38600000 -38D40248 7C66D9AE +4082FEC0 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 3A940001 2C140003 -4180FFB4 3A800000 +4180FE78 3AA00000 +3A800000 807B0238 +7C761B78 7EC3B378 38D40248 7C86D8AE -2C040001 41820018 -3A940001 2C140003 -4180FFE8 38600000 -987B0237 3A800000 -3AA00000 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D4 887B001C -38800054 7C632050 -7C1A1800 418000BC -887B000C 2C030001 -418200B0 38D40138 -7EC6D8AE 1C76000C -3863013B 1CB40054 -7C632A14 1CD40054 -38C6000E 7C7B1A14 -7C983214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -38760001 2C030007 -41800008 3863FFF9 -38D40138 7C66D9AE +7C761B78 7EC3B378 +38D40248 7C86D8AE +2C040001 40820030 +1CD40004 38C6023C +7C86D82E 2C150000 +4182000C 7C041800 +40800014 7C832378 +7C761B78 7EC3B378 +3AA00001 3A940001 +2C140003 4180FFAC +907B0238 3A800000 +38D40248 7C86D8AE +2C040001 40820038 38D40135 7C66D8AE 38D40138 7C86D8AE -38D40248 7C66D8AE -2C030001 4182003C -1CD40004 38C6023C -7F46D92E 38600001 -38D40248 7C66D9AE -38D40135 7EC6D9AE -887B0237 2C030001 -41820010 935B0238 -38600001 987B0237 -38600000 1C63000C -38A3000E 1CD40054 -7CA53214 1C75000C +38D40135 7C66D8AE +38D40138 7C86D8AE +7C041800 40820010 +38600000 38D40248 +7C66D9AE 3A940001 +2C140003 4180FFB4 +3A800000 38D40248 +7C86D8AE 2C040001 +41820018 3A940001 +2C140003 4180FFE8 +38600000 987B0237 +3A800000 3AA00000 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D4 +887B001C 38800054 +7C632050 7C1A1800 +418000BC 887B000C +2C030001 418200B0 +38D40138 7EC6D8AE +1C76000C 3863013B +1CB40054 7C632A14 +1CD40054 38C6000E +7C7B1A14 7C983214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 38760001 +2C030007 41800008 +3863FFF9 38D40138 +7C66D9AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40248 +7C66D8AE 2C030001 +4182003C 1CD40004 +38C6023C 7F46D92E +38600001 38D40248 +7C66D9AE 38D40135 +7EC6D9AE 887B0237 +2C030001 41820010 +935B0238 38600001 +987B0237 38600000 +1C63000C 38A3000E +1CD40054 7CA53214 +1C75000C 386300DC +7C611A14 7C982A14 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 3A940001 +3AB50001 2C140003 +4180FEC8 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 38630007 +1C63000C 388300E1 +887B0000 1C63000C 386300DC 7C611A14 -7C982A14 38A0000C +7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -3A940001 3AB50001 -2C140003 4180FEC8 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -38630007 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE40 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +4BFFFE40 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 From 121041f11530aefe9c4aa79b221819c334933e83 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 18:43:02 -0500 Subject: [PATCH 048/217] probably check for an active rollback --- Online/Core/TriggerSendInput.asm | 25 +-- Output/Netplay/GALE01r2.ini | 271 ++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 271 ++++++++++++++++--------------- 3 files changed, 287 insertions(+), 280 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 317e411d..1b9d85c4 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -308,6 +308,20 @@ li r3, 0 # index wraps around to the start SKIP_DELAY_BUFFER_INDEX_WRAP: stb r3, ODB_DELAY_BUFFER_INDEX(REG_ODB_ADDRESS) +################################################################################ +# Section 7.5: Determine if we need to check for opponent inputs +################################################################################ +# If we already have an active rollback that we are waiting to be processed, just update +# the end frame so that this new frame of inputs gets used. TRIGGER_ROLLBACK already handles +# all of that for us, so just call that +lbz r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne ROLLBACK_NOT_ACTIVE +lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne TRIGGER_ROLLBACK # If state should be loaded, TRIGGER_ROLLBACK +ROLLBACK_NOT_ACTIVE: + ################################################################################ # Section 8: Check if we have prepared for rollback and inputs have been received ################################################################################ @@ -318,7 +332,7 @@ stb r3, ODB_DELAY_BUFFER_INDEX(REG_ODB_ADDRESS) # correctly there. lbz r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) cmpwi r3, 0 -bne HANDLE_PREDICTING_STATE +bne COMPARE_PREDICTED_INPUTS li r3, 0 stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) @@ -327,15 +341,6 @@ stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x2(REG_ODB_ADDRESS) b LOAD_OPPONENT_INPUTS -HANDLE_PREDICTING_STATE: -# Check if state should be loaded, if so this means we've gotten a second input before the -# state was loaded. If that's the case, just continue the request for a rollback and update -# the end frame so that this new frame of inputs gets used. TRIGGER_ROLLBACK already handles -# all of that for us, so just call that -lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) -cmpwi r3, 0 -bne TRIGGER_ROLLBACK - # If we were missing past inputs for one or more players, check and see # if we've received any new inputs that would allow us to compare those to # past predictions to potentially trigger a rollback. diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 967dab94..aa6bc686 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1572,20 +1572,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E3 #Online/Core/TriggerSendInput.asm +C2376A28 000000E4 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206DC 3C608047 +408206E8 3C608047 60639D64 80630000 -2C030000 408206C8 +2C030000 408206D4 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820618 887B001C +41820624 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1654,152 +1654,153 @@ C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 887B001D 38630001 7C032000 41800008 38600000 987B001D +887B00DA 2C030000 +40820010 887B00DB +2C030000 40820170 887B0237 2C030000 40820018 38600000 987B0248 987B0249 -987B024A 4800028C -887B00DB 2C030000 -40820150 3A800000 -38D40248 7C66D8AE -2C030001 40820174 -1CD40004 38C60002 -7C66C02E 1CD40004 -38C6023C 7C86D82E -7C641851 41800154 -7C761B78 38D40135 -7C66D8AE 38D40138 -7C86D8AE 7EC3B378 -1C63000C 3863000E -1CD40054 7C633214 -38D40135 7C86D8AE -1C84000C 3884013B -1CB40054 7C842A14 -7CD81A14 7CFB2214 -88660000 88870000 -546306FE 548406FE -7C032000 408200BC -88660001 88870001 -5463067E 5484067E -7C032000 408200A4 -80660002 80870002 -7C032000 40820094 -38A00005 38A50001 -2C050008 40800028 -7C6530AE 7C8538AE -2C03002A 4181000C -2C04002A 4081FFE0 -7C032000 40820064 -4BFFFFD4 1CD40004 -38C6023C 7C66D82E -38630001 7C66D92E +987B024A 48000280 +3A800000 38D40248 +7C66D8AE 2C030001 +40820174 1CD40004 +38C60002 7C66C02E +1CD40004 38C6023C +7C86D82E 7C641851 +41800154 7C761B78 38D40135 7C66D8AE -38630001 2C030007 -41800008 3863FFF9 -7C66D9AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 7C041800 -4082FEC0 4800003C -38600001 987B00DA -987B00DB 935B00DC -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -3A940001 2C140003 -4180FE78 3AA00000 -3A800000 807B0238 -7C761B78 7EC3B378 -38D40248 7C86D8AE -7C761B78 7EC3B378 -38D40248 7C86D8AE -2C040001 40820030 +38D40138 7C86D8AE +7EC3B378 1C63000C +3863000E 1CD40054 +7C633214 38D40135 +7C86D8AE 1C84000C +3884013B 1CB40054 +7C842A14 7CD81A14 +7CFB2214 88660000 +88870000 546306FE +548406FE 7C032000 +408200BC 88660001 +88870001 5463067E +5484067E 7C032000 +408200A4 80660002 +80870002 7C032000 +40820094 38A00005 +38A50001 2C050008 +40800028 7C6530AE +7C8538AE 2C03002A +4181000C 2C04002A +4081FFE0 7C032000 +40820064 4BFFFFD4 1CD40004 38C6023C -7C86D82E 2C150000 -4182000C 7C041800 -40800014 7C832378 -7C761B78 7EC3B378 -3AA00001 3A940001 -2C140003 4180FFAC -907B0238 3A800000 -38D40248 7C86D8AE -2C040001 40820038 +7C66D82E 38630001 +7C66D92E 38D40135 +7C66D8AE 38630001 +2C030007 41800008 +3863FFF9 7C66D9AE 38D40135 7C66D8AE 38D40138 7C86D8AE 38D40135 7C66D8AE 38D40138 7C86D8AE -7C041800 40820010 -38600000 38D40248 -7C66D9AE 3A940001 -2C140003 4180FFB4 -3A800000 38D40248 -7C86D8AE 2C040001 -41820018 3A940001 -2C140003 4180FFE8 -38600000 987B0237 -3A800000 3AA00000 -887B0000 7C151800 -40820008 3AB50001 -1CD40004 38C60002 -7C66C02E 7C7A1850 -2C030000 408000D4 -887B001C 38800054 -7C632050 7C1A1800 -418000BC 887B000C -2C030001 418200B0 -38D40138 7EC6D8AE -1C76000C 3863013B -1CB40054 7C632A14 -1CD40054 38C6000E -7C7B1A14 7C983214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 38760001 -2C030007 41800008 -3863FFF9 38D40138 -7C66D9AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40248 -7C66D8AE 2C030001 -4182003C 1CD40004 -38C6023C 7F46D92E -38600001 38D40248 -7C66D9AE 38D40135 -7EC6D9AE 887B0237 -2C030001 41820010 -935B0238 38600001 -987B0237 38600000 -1C63000C 38A3000E -1CD40054 7CA53214 -1C75000C 386300DC -7C611A14 7C982A14 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 3A940001 -3AB50001 2C140003 -4180FEC8 48000080 -807B00DC 7C1A1800 -40810024 BA810008 +7C041800 4082FEC0 +4800003C 38600001 +987B00DA 987B00DB +935B00DC 3B5A0001 +935B0003 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 -4E800420 807B00DC -7C7A1850 38630001 -889B00E0 7C632051 -40800008 38630007 -1C63000C 388300E1 -887B0000 1C63000C +4E800420 3A940001 +2C140003 4180FE78 +3AA00000 3A800000 +807B0238 7C761B78 +7EC3B378 38D40248 +7C86D8AE 7C761B78 +7EC3B378 38D40248 +7C86D8AE 2C040001 +40820030 1CD40004 +38C6023C 7C86D82E +2C150000 4182000C +7C041800 40800014 +7C832378 7C761B78 +7EC3B378 3AA00001 +3A940001 2C140003 +4180FFAC 907B0238 +3A800000 38D40248 +7C86D8AE 2C040001 +40820038 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 7C041800 +40820010 38600000 +38D40248 7C66D9AE +3A940001 2C140003 +4180FFB4 3A800000 +38D40248 7C86D8AE +2C040001 41820018 +3A940001 2C140003 +4180FFE8 38600000 +987B0237 3A800000 +3AA00000 887B0000 +7C151800 40820008 +3AB50001 1CD40004 +38C60002 7C66C02E +7C7A1850 2C030000 +408000D4 887B001C +38800054 7C632050 +7C1A1800 418000BC +887B000C 2C030001 +418200B0 38D40138 +7EC6D8AE 1C76000C +3863013B 1CB40054 +7C632A14 1CD40054 +38C6000E 7C7B1A14 +7C983214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +38760001 2C030007 +41800008 3863FFF9 +38D40138 7C66D9AE +38D40135 7C66D8AE +38D40138 7C86D8AE +38D40248 7C66D8AE +2C030001 4182003C +1CD40004 38C6023C +7F46D92E 38600001 +38D40248 7C66D9AE +38D40135 7EC6D9AE +887B0237 2C030001 +41820010 935B0238 +38600001 987B0237 +38600000 1C63000C +38A3000E 1CD40054 +7CA53214 1C75000C 386300DC 7C611A14 -7C9B2214 38A0000C +7C982A14 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -4BFFFE40 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +3A940001 3AB50001 +2C140003 4180FEC8 +48000080 807B00DC +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00DC 7C7A1850 +38630001 889B00E0 +7C632051 40800008 +38630007 1C63000C +388300E1 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFE40 +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 77d50bde..57f05fba 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1572,20 +1572,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E3 #Online/Core/TriggerSendInput.asm +C2376A28 000000E4 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206DC 3C608047 +408206E8 3C608047 60639D64 80630000 -2C030000 408206C8 +2C030000 408206D4 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820618 887B001C +41820624 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1654,152 +1654,153 @@ C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 887B001D 38630001 7C032000 41800008 38600000 987B001D +887B00DA 2C030000 +40820010 887B00DB +2C030000 40820170 887B0237 2C030000 40820018 38600000 987B0248 987B0249 -987B024A 4800028C -887B00DB 2C030000 -40820150 3A800000 -38D40248 7C66D8AE -2C030001 40820174 -1CD40004 38C60002 -7C66C02E 1CD40004 -38C6023C 7C86D82E -7C641851 41800154 -7C761B78 38D40135 -7C66D8AE 38D40138 -7C86D8AE 7EC3B378 -1C63000C 3863000E -1CD40054 7C633214 -38D40135 7C86D8AE -1C84000C 3884013B -1CB40054 7C842A14 -7CD81A14 7CFB2214 -88660000 88870000 -546306FE 548406FE -7C032000 408200BC -88660001 88870001 -5463067E 5484067E -7C032000 408200A4 -80660002 80870002 -7C032000 40820094 -38A00005 38A50001 -2C050008 40800028 -7C6530AE 7C8538AE -2C03002A 4181000C -2C04002A 4081FFE0 -7C032000 40820064 -4BFFFFD4 1CD40004 -38C6023C 7C66D82E -38630001 7C66D92E +987B024A 48000280 +3A800000 38D40248 +7C66D8AE 2C030001 +40820174 1CD40004 +38C60002 7C66C02E +1CD40004 38C6023C +7C86D82E 7C641851 +41800154 7C761B78 38D40135 7C66D8AE -38630001 2C030007 -41800008 3863FFF9 -7C66D9AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 7C041800 -4082FEC0 4800003C -38600001 987B00DA -987B00DB 935B00DC -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -3A940001 2C140003 -4180FE78 3AA00000 -3A800000 807B0238 -7C761B78 7EC3B378 -38D40248 7C86D8AE -7C761B78 7EC3B378 -38D40248 7C86D8AE -2C040001 40820030 +38D40138 7C86D8AE +7EC3B378 1C63000C +3863000E 1CD40054 +7C633214 38D40135 +7C86D8AE 1C84000C +3884013B 1CB40054 +7C842A14 7CD81A14 +7CFB2214 88660000 +88870000 546306FE +548406FE 7C032000 +408200BC 88660001 +88870001 5463067E +5484067E 7C032000 +408200A4 80660002 +80870002 7C032000 +40820094 38A00005 +38A50001 2C050008 +40800028 7C6530AE +7C8538AE 2C03002A +4181000C 2C04002A +4081FFE0 7C032000 +40820064 4BFFFFD4 1CD40004 38C6023C -7C86D82E 2C150000 -4182000C 7C041800 -40800014 7C832378 -7C761B78 7EC3B378 -3AA00001 3A940001 -2C140003 4180FFAC -907B0238 3A800000 -38D40248 7C86D8AE -2C040001 40820038 +7C66D82E 38630001 +7C66D92E 38D40135 +7C66D8AE 38630001 +2C030007 41800008 +3863FFF9 7C66D9AE 38D40135 7C66D8AE 38D40138 7C86D8AE 38D40135 7C66D8AE 38D40138 7C86D8AE -7C041800 40820010 -38600000 38D40248 -7C66D9AE 3A940001 -2C140003 4180FFB4 -3A800000 38D40248 -7C86D8AE 2C040001 -41820018 3A940001 -2C140003 4180FFE8 -38600000 987B0237 -3A800000 3AA00000 -887B0000 7C151800 -40820008 3AB50001 -1CD40004 38C60002 -7C66C02E 7C7A1850 -2C030000 408000D4 -887B001C 38800054 -7C632050 7C1A1800 -418000BC 887B000C -2C030001 418200B0 -38D40138 7EC6D8AE -1C76000C 3863013B -1CB40054 7C632A14 -1CD40054 38C6000E -7C7B1A14 7C983214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 38760001 -2C030007 41800008 -3863FFF9 38D40138 -7C66D9AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40248 -7C66D8AE 2C030001 -4182003C 1CD40004 -38C6023C 7F46D92E -38600001 38D40248 -7C66D9AE 38D40135 -7EC6D9AE 887B0237 -2C030001 41820010 -935B0238 38600001 -987B0237 38600000 -1C63000C 38A3000E -1CD40054 7CA53214 -1C75000C 386300DC -7C611A14 7C982A14 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 3A940001 -3AB50001 2C140003 -4180FEC8 48000080 -807B00DC 7C1A1800 -40810024 BA810008 +7C041800 4082FEC0 +4800003C 38600001 +987B00DA 987B00DB +935B00DC 3B5A0001 +935B0003 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 -4E800420 807B00DC -7C7A1850 38630001 -889B00E0 7C632051 -40800008 38630007 -1C63000C 388300E1 -887B0000 1C63000C +4E800420 3A940001 +2C140003 4180FE78 +3AA00000 3A800000 +807B0238 7C761B78 +7EC3B378 38D40248 +7C86D8AE 7C761B78 +7EC3B378 38D40248 +7C86D8AE 2C040001 +40820030 1CD40004 +38C6023C 7C86D82E +2C150000 4182000C +7C041800 40800014 +7C832378 7C761B78 +7EC3B378 3AA00001 +3A940001 2C140003 +4180FFAC 907B0238 +3A800000 38D40248 +7C86D8AE 2C040001 +40820038 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 7C041800 +40820010 38600000 +38D40248 7C66D9AE +3A940001 2C140003 +4180FFB4 3A800000 +38D40248 7C86D8AE +2C040001 41820018 +3A940001 2C140003 +4180FFE8 38600000 +987B0237 3A800000 +3AA00000 887B0000 +7C151800 40820008 +3AB50001 1CD40004 +38C60002 7C66C02E +7C7A1850 2C030000 +408000D4 887B001C +38800054 7C632050 +7C1A1800 418000BC +887B000C 2C030001 +418200B0 38D40138 +7EC6D8AE 1C76000C +3863013B 1CB40054 +7C632A14 1CD40054 +38C6000E 7C7B1A14 +7C983214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +38760001 2C030007 +41800008 3863FFF9 +38D40138 7C66D9AE +38D40135 7C66D8AE +38D40138 7C86D8AE +38D40248 7C66D8AE +2C030001 4182003C +1CD40004 38C6023C +7F46D92E 38600001 +38D40248 7C66D9AE +38D40135 7EC6D9AE +887B0237 2C030001 +41820010 935B0238 +38600001 987B0237 +38600000 1C63000C +38A3000E 1CD40054 +7CA53214 1C75000C 386300DC 7C611A14 -7C9B2214 38A0000C +7C982A14 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -4BFFFE40 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +3A940001 3AB50001 +2C140003 4180FEC8 +48000080 807B00DC +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00DC 7C7A1850 +38630001 889B00E0 +7C632051 40800008 +38630007 1C63000C +388300E1 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFE40 +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 From b6ccbe31430a4fbc4948a4eb41c4c2e8d71a7a3b Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 18:47:53 -0500 Subject: [PATCH 049/217] add comment --- Online/Core/TriggerSendInput.asm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 1b9d85c4..4a942df1 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -317,6 +317,8 @@ stb r3, ODB_DELAY_BUFFER_INDEX(REG_ODB_ADDRESS) lbz r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) cmpwi r3, 0 bne ROLLBACK_NOT_ACTIVE +# The check below might not be required because I think we might not be able to get here +# is should load state is false because of the check at the start of the file lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) cmpwi r3, 0 bne TRIGGER_ROLLBACK # If state should be loaded, TRIGGER_ROLLBACK From e2558fdfe31174f203d8099944a33c8c0c18634f Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 26 Jan 2022 18:49:47 -0500 Subject: [PATCH 050/217] fix typo --- Online/Core/TriggerSendInput.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 4a942df1..68284ff9 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -318,7 +318,7 @@ lbz r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) cmpwi r3, 0 bne ROLLBACK_NOT_ACTIVE # The check below might not be required because I think we might not be able to get here -# is should load state is false because of the check at the start of the file +# if should load state is false because of the check at the start of the file lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) cmpwi r3, 0 bne TRIGGER_ROLLBACK # If state should be loaded, TRIGGER_ROLLBACK From b799b0b0088e27e1e72fdd40b5146ee8528f9d10 Mon Sep 17 00:00:00 2001 From: Gurvan Date: Thu, 27 Jan 2022 11:54:34 +0100 Subject: [PATCH 051/217] added current animation number in Post Frame recording --- Output/Netplay/GALE01r2.ini | 21 +++++++++++---------- Output/Netplay/GALJ01r2.ini | 21 +++++++++++---------- Recording/Recording.s | 6 +++--- Recording/SendGamePostFrame.asm | 4 ++++ 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ba5c191e..d243906c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -638,7 +638,7 @@ C216E74C 000000EB #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600706 3D808037 +38600726 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -654,7 +654,7 @@ C216E74C 000000EB #Recording/SendGameInfo.asm B07E0003 38600037 987E0005 3860003F B07E0006 38600038 -987E0008 3860004C +987E0008 38600050 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A @@ -668,7 +668,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030A 60630000 +3C60030B 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -862,14 +862,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 3C608017 60000000 00000000 -C206DA34 00000035 #Recording/SendGamePostFrame.asm +C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820168 +2C030000 41820170 887F221F 546306F7 -4082015C 8B7F000C +40820164 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -911,7 +911,8 @@ B07D0030 887F1968 807F0090 907D0041 807F00EC 907D0045 807F195C 907D0049 -838DB650 3B9C004D +807F0014 907D004D +838DB650 3B9C0051 938DB650 BA810008 800100B4 382100B0 7C0803A6 8001001C @@ -2693,15 +2694,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C761B78 38600004 +7C791B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38760000 +7C781B78 38790000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38760000 48000261 +38790000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index d5a925dd..562bb0c4 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -638,7 +638,7 @@ C216E74C 000000EB #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600706 3D808037 +38600726 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -654,7 +654,7 @@ C216E74C 000000EB #Recording/SendGameInfo.asm B07E0003 38600037 987E0005 3860003F B07E0006 38600038 -987E0008 3860004C +987E0008 38600050 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A @@ -668,7 +668,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030A 60630000 +3C60030B 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -862,14 +862,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 3C608017 60000000 00000000 -C206DA34 00000035 #Recording/SendGamePostFrame.asm +C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820168 +2C030000 41820170 887F221F 546306F7 -4082015C 8B7F000C +40820164 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -911,7 +911,8 @@ B07D0030 887F1968 807F0090 907D0041 807F00EC 907D0045 807F195C 907D0049 -838DB650 3B9C004D +807F0014 907D004D +838DB650 3B9C0051 938DB650 BA810008 800100B4 382100B0 7C0803A6 8001001C @@ -2693,15 +2694,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C761B78 38600004 +7C791B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38760000 +7C781B78 38790000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38760000 48000261 +38790000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 diff --git a/Recording/Recording.s b/Recording/Recording.s index b2ec5e2f..c2d716b1 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -18,7 +18,7 @@ .set GAME_INFO_PAYLOAD_LENGTH, 584 # byte count .set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count .set GAME_PRE_FRAME_PAYLOAD_LENGTH, 63 # byte count -.set GAME_POST_FRAME_PAYLOAD_LENGTH, 76 # byte count +.set GAME_POST_FRAME_PAYLOAD_LENGTH, 80 # byte count .set GAME_ITEM_INFO_PAYLOAD_LENGTH, 42 # byte count .set GAME_FRAME_BOOKEND_PAYLOAD_LENGTH, 8 # byte count .set GAME_END_PAYLOAD_LENGTH, 2 # byte count @@ -52,8 +52,8 @@ # build version number. Each byte is one digit # any change in command data should result in a minor version change -# current version: 3.10.0 -.set CURRENT_VERSION,0x030A0000 +# current version: 3.11.0 +.set CURRENT_VERSION,0x030B0000 ################################################################################ # Static Function Locations diff --git a/Recording/SendGamePostFrame.asm b/Recording/SendGamePostFrame.asm index f80a5da5..15cc5755 100644 --- a/Recording/SendGamePostFrame.asm +++ b/Recording/SendGamePostFrame.asm @@ -150,6 +150,10 @@ backup lwz r3,0x195c(REG_PlayerData) stw r3,0x49(REG_Buffer) + # send current animation. useful for knowing the current Wait animation + lwz r3,0x14(REG_PlayerData) + stw r3,0x4d(REG_Buffer) + #------------- Increment Buffer Offset ------------ lwz REG_BufferOffset,bufferOffset(r13) addi REG_BufferOffset,REG_BufferOffset,(GAME_POST_FRAME_PAYLOAD_LENGTH+1) From 3d80abd3c4410eafc1eaa56af7c3524eea90652d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 27 Jan 2022 13:58:39 -0500 Subject: [PATCH 052/217] clean up input logging logic --- Online/Core/TriggerSendInput.asm | 55 +------------------------------ Online/Logging/LogInputOnCopy.asm | 47 +++----------------------- 2 files changed, 5 insertions(+), 97 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 68284ff9..9ccdefd9 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -825,61 +825,8 @@ b LOAD_OPPONENT_INPUTS ################################################################################ .if DEBUG_INPUTS==1 FN_PrintInputs: -backupall - -mr r31, r11 # Frame -mr r30, r12 # Inputs -mr r28, r10 # Log Num -# r27 is ODB_ADDRESS and should not be used - -bl PrintInputs_STRING -mflr r29 # Data - -lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) -addi r3, r3, 1 -cmpw r31, r3 -bgt FN_PrintInputs_SKIP_ALLOC - -# This will actually alloc a few times... but that's fine -li r3, 64 -branchl r12, HSD_MemAlloc -stw r3, 0(r29) - -# Store command byte for logging -li r4, 0xD0 -stb r4, 0(r3) - -# Indicate we don't need to print time -li r4, 0 -stb r4, 1(r3) - -FN_PrintInputs_SKIP_ALLOC: - -# Format input string -lwz r3, 0(r29) -addi r3, r3, 2 # skip to string -addi r4, r29, 4 # Input string -mr r5, r31 -mr r6, r28 -lwz r7, 0(r30) -lwz r8, 4(r30) -lwz r9, 8(r30) -branchl r12, 0x80323cf4 # sprintf - -# Transfer string buffer -lwz r3, 0(r29) # Use the receive buffer to send the command -li r4, 64 -li r5, CONST_ExiWrite -branchl r12, FN_EXITransferBuffer - -restoreall +logf LOG_LEVEL_NOTICE, "[%d] (%d) %08X %08X %08X", "mr r5, 11", "mr r6, 10", "lwz r7, 0(12)", "lwz r8, 4(12)", "lwz r9, 8(12)" blr - -PrintInputs_STRING: -blrl -.long 0 # address of buffer -.string "[%d] (%d) %08X %08X %08X" # sprintf input string -.align 2 .endif ################################################################################ diff --git a/Online/Logging/LogInputOnCopy.asm b/Online/Logging/LogInputOnCopy.asm index 67ae3afb..9341c31d 100644 --- a/Online/Logging/LogInputOnCopy.asm +++ b/Online/Logging/LogInputOnCopy.asm @@ -6,61 +6,22 @@ .include "Online/Online.s" .if DEBUG_INPUTS==1 -b START_CODE - -BUFFER_AND_STRING: -blrl -.long 0 # address of buffer -.string "[%d] P%d %08X %08X %08X" # sprintf input string -.align 2 - -START_CODE: # Check if VS Mode getMinorMajor r3 cmpwi r3, SCENE_ONLINE_IN_GAME bne EXIT -backup - -# Prepare ref -bl BUFFER_AND_STRING -mflr r31 # Data address - -loadGlobalFrame r3 -cmpwi r3, 1 -bgt SKIP_ALLOC +# Only print players 1 and 2 +cmpwi r24, 2 +bge EXIT -# Allocate TX buf -li r3, 64 -branchl r12, HSD_MemAlloc -stw r3, 0(r31) # Store address of TX buf - -# Init TX buf -li r4, 0xD0 -stb r4, 0(r3) # Store command byte for logging -li r4, 0 -stb r4, 1(r3) # Indicate we don't need to print time - -SKIP_ALLOC: - -# Format input string -lwz r3, 0(r31) -addi r3, r3, 2 # skip to string -addi r4, r31, 4 # Input string loadGlobalFrame r5 mr r6, r24 lwz r7, 0(r25) lwz r8, 4(r25) lwz r9, 8(r25) -branchl r12, 0x80323cf4 # sprintf - -# Transfer string buffer -lwz r3, 0(r31) # Use the receive buffer to send the command -li r4, 64 -li r5, CONST_ExiWrite -branchl r12, FN_EXITransferBuffer -restore +logf LOG_LEVEL_NOTICE, "[%d] P%d %08X %08X %08X" .endif EXIT: From 09e3a234220f8e038ecb6f9f018939b00858e139 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 27 Jan 2022 15:33:15 -0500 Subject: [PATCH 053/217] fix issue where PADRead would get skipped on frame advance --- Online/Core/ForceInputRefetchOnAdvance.asm | 4 ++-- Online/Core/SkipNewInputFetchOnRollback.asm | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Online/Core/ForceInputRefetchOnAdvance.asm b/Online/Core/ForceInputRefetchOnAdvance.asm index d4526769..04ecf5e1 100644 --- a/Online/Core/ForceInputRefetchOnAdvance.asm +++ b/Online/Core/ForceInputRefetchOnAdvance.asm @@ -23,8 +23,8 @@ lbz r3, ODB_IS_FRAME_ADVANCE(r5) cmpwi r3, 0 beq EXIT -# lwz r3, ODB_FRAME(r5) -# logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "mr 5, 3" +lwz r3, ODB_FRAME(r5) +logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "mr 5, 3" # Here we got the signal to advance a frame, let's call RenewInputs_Prefunction again. # This should force the engine to loop twice the next time it runs. diff --git a/Online/Core/SkipNewInputFetchOnRollback.asm b/Online/Core/SkipNewInputFetchOnRollback.asm index 391836f6..f8696ac4 100644 --- a/Online/Core/SkipNewInputFetchOnRollback.asm +++ b/Online/Core/SkipNewInputFetchOnRollback.asm @@ -22,11 +22,17 @@ bne EXIT ################################################################################ # Check if rollback is active ################################################################################ - lwz r3, OFST_R13_ODB_ADDR(r13) # data buffer address lbz r3, ODB_ROLLBACK_IS_ACTIVE(r3) -cmpwi r3, 1 -bne EXIT # If rollback not active, continue as normal +cmpwi r3, 0 +beq EXIT # If rollback not active, continue as normal to execute pad read + +# We do this check because with frame advance especially, we can get in a state where +# we request a second input before savestate has been processed, we still want to fetch +# a controller input in this case +lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne EXIT # If state should be loaded, continue as normal to execute pad read ################################################################################ # Skip PADRead From 492b83b5295f6370e76a693e06e87b6c2ec6fcf5 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 27 Jan 2022 15:39:38 -0500 Subject: [PATCH 054/217] fix register copy pasta --- Online/Core/SkipNewInputFetchOnRollback.asm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Online/Core/SkipNewInputFetchOnRollback.asm b/Online/Core/SkipNewInputFetchOnRollback.asm index f8696ac4..01b10f9f 100644 --- a/Online/Core/SkipNewInputFetchOnRollback.asm +++ b/Online/Core/SkipNewInputFetchOnRollback.asm @@ -22,15 +22,15 @@ bne EXIT ################################################################################ # Check if rollback is active ################################################################################ -lwz r3, OFST_R13_ODB_ADDR(r13) # data buffer address -lbz r3, ODB_ROLLBACK_IS_ACTIVE(r3) +lwz r4, OFST_R13_ODB_ADDR(r13) # data buffer address +lbz r3, ODB_ROLLBACK_IS_ACTIVE(r4) cmpwi r3, 0 beq EXIT # If rollback not active, continue as normal to execute pad read # We do this check because with frame advance especially, we can get in a state where # we request a second input before savestate has been processed, we still want to fetch # a controller input in this case -lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) +lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(r4) cmpwi r3, 0 bne EXIT # If state should be loaded, continue as normal to execute pad read From bb643b928441bca714cb3d69eebf6e1dc4e77501 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 28 Jan 2022 14:26:54 -0500 Subject: [PATCH 055/217] change label name and remove unused code --- Online/Core/ForceInputRefetchOnAdvance.asm | 4 +- Online/Core/StartEngineLoop.asm | 10 +++-- Online/Core/TriggerSendInput.asm | 51 +++++++++++++--------- Online/Online.s | 6 +-- Output/Netplay/GALE01r2.ini | 42 +++++++++--------- Output/Netplay/GALJ01r2.ini | 42 +++++++++--------- 6 files changed, 82 insertions(+), 73 deletions(-) diff --git a/Online/Core/ForceInputRefetchOnAdvance.asm b/Online/Core/ForceInputRefetchOnAdvance.asm index 04ecf5e1..d4526769 100644 --- a/Online/Core/ForceInputRefetchOnAdvance.asm +++ b/Online/Core/ForceInputRefetchOnAdvance.asm @@ -23,8 +23,8 @@ lbz r3, ODB_IS_FRAME_ADVANCE(r5) cmpwi r3, 0 beq EXIT -lwz r3, ODB_FRAME(r5) -logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "mr 5, 3" +# lwz r3, ODB_FRAME(r5) +# logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "mr 5, 3" # Here we got the signal to advance a frame, let's call RenewInputs_Prefunction again. # This should force the engine to loop twice the next time it runs. diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index d59a1211..5c0e6e09 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -179,12 +179,16 @@ loadGlobalFrame REG_FRAME_INDEX # This might have changed since savestate load lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) stw r3, ODB_FRAME(REG_ODB_ADDRESS) +.if DEBUG_INPUTS==1 +logf LOG_LEVEL_WARN, "Finished reverting state to frame: %d", "mr r5, 3" +.endif + # Clear savestate and should load flags flag li r3, 0 stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) -stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x0(REG_ODB_ADDRESS) -stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x1(REG_ODB_ADDRESS) -stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x2(REG_ODB_ADDRESS) +stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING+0x0(REG_ODB_ADDRESS) +stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING+0x1(REG_ODB_ADDRESS) +stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING+0x2(REG_ODB_ADDRESS) stb r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) stb r3, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 9ccdefd9..2091947f 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -146,6 +146,13 @@ lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from mulli r4, r4, PAD_REPORT_SIZE addi r4, r4, P1_PAD_OFFSET # offset from sp where pad report we want is +# TODO: Transfer over the last frame we are predicting for to discard all previous old inputs. +# TODO: Might be possible to use SAVESTATE_FRAME for this if it updates correctly. Might not +# TODO: update in the case where we aren't getting rollbacks? Need to check. Could be safer +# TODO: to just use new variable. +# TODO: Something else to note is that when Dolphin sends us inputs, it should actually send us the +# TODO: 7 oldest inputs just to make sure an input doesn't get lost when processing a rollback. + # Move over pad data into transfer buffer addi r3, REG_TXB_ADDRESS, TXB_PAD # destination add r4, sp, r4 # source @@ -337,9 +344,9 @@ cmpwi r3, 0 bne COMPARE_PREDICTED_INPUTS li r3, 0 -stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE(REG_ODB_ADDRESS) -stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x1(REG_ODB_ADDRESS) -stb r3, ODB_PLAYER_SAVESTATE_IS_ACTIVE+0x2(REG_ODB_ADDRESS) +stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) +stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING+0x1(REG_ODB_ADDRESS) +stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING+0x2(REG_ODB_ADDRESS) b LOAD_OPPONENT_INPUTS @@ -351,7 +358,7 @@ COMPARE_PREDICTED_INPUTS: li REG_COUNT, 0 CHECK_WHETHER_TO_ROLL_BACK_LOOP: -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING lbzx r3, r6, REG_ODB_ADDRESS cmpwi r3, 1 bne CONTINUE_ROLLBACK_CHECK_LOOP @@ -524,20 +531,13 @@ li REG_SAVESTATE_FRAME_SET, 0 li REG_COUNT, 0 lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) # r3 will hold the min savestate frame we see -mr REG_VARIOUS_1, r3 #logf LOG_LEVEL_WARN, "Attempting to advance savestate frame past %d", "mr r5, 3" -mr r3, REG_VARIOUS_1 COMPUTE_SAVESTATE_FRAME_LOOP: -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE -lbzx r4, r6, REG_ODB_ADDRESS -mr REG_VARIOUS_1, r3 -#logf LOG_LEVEL_WARN, "Player %d savestate flag: %d", "mr r5, 20", "mr r6, 4" -mr r3, REG_VARIOUS_1 - # If this player doesn't have missing inputs, ignore their savestate frame -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING lbzx r4, r6, REG_ODB_ADDRESS +#logf LOG_LEVEL_WARN, "Player %d savestate flag: %d", "mr r5, 20", "mr r6, 4" cmpwi r4, 1 bne CONTINUE_SAVESTATE_FRAME_LOOP @@ -555,9 +555,7 @@ bge CONTINUE_SAVESTATE_FRAME_LOOP SKIP_SAVESTATE_FRAME_CHECK: mr r3, r4 -mr REG_VARIOUS_1, r3 #logf LOG_LEVEL_WARN, "Player %d set savestate frame %d", "mr r5, 20", "mr r6, 4" -mr r3, REG_VARIOUS_1 li REG_SAVESTATE_FRAME_SET, 1 CONTINUE_SAVESTATE_FRAME_LOOP: @@ -573,7 +571,7 @@ stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) li REG_COUNT, 0 CHECK_RESET_SAVESTATE_LOOP: # Don't bother checking read/write index match for players without an active savestate. -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING lbzx r4, r6, REG_ODB_ADDRESS cmpwi r4, 1 bne CONTINUE_CHECK_RESET_SAVESTATE_LOOP @@ -595,7 +593,7 @@ cmpw r4, r3 bne CONTINUE_CHECK_RESET_SAVESTATE_LOOP li r3, 0 -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING stbx r3, r6, REG_ODB_ADDRESS CONTINUE_CHECK_RESET_SAVESTATE_LOOP: @@ -608,7 +606,7 @@ blt CHECK_RESET_SAVESTATE_LOOP li REG_COUNT, 0 CHECK_GLOBAL_SAVESTATE_LOOP: # Don't bother checking read/write index match for players without an active savestate. -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING lbzx r4, r6, REG_ODB_ADDRESS cmpwi r4, 1 beq LOAD_OPPONENT_INPUTS @@ -652,6 +650,9 @@ sub r3, r3, REG_FRAME_INDEX cmpwi r3, 0 bge CALC_OPNT_PAD_OFFSET +.if DEBUG_INPUTS==1 +logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d Needs Prediction" +.endif # We are predicting inputs, back up the inputs for later comparison # Don't save any states at the start of the game, it's frozen anyway @@ -704,7 +705,7 @@ lbzx r4, r6, REG_ODB_ADDRESS # in the case where we don't have this opponent's inputs but already have a # savestate location for them, just keep the old savestate location -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE # compute offset of savestate flag for this player +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING # compute offset of savestate flag for this player lbzx r3, r6, REG_ODB_ADDRESS cmpwi r3, 1 beq LOAD_STALE_INPUTS @@ -717,7 +718,7 @@ stwx REG_FRAME_INDEX, r6, REG_ODB_ADDRESS # Indicate we have prepared for a rollback because of this player's missing input li r3, 1 -addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_ACTIVE +addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING stbx r3, r6, REG_ODB_ADDRESS #logf LOG_LEVEL_WARN, "Setting savestate flag to 1 for player %d", "mr r5, 20" @@ -733,7 +734,7 @@ beq LOAD_STALE_INPUTS # Store the rollback frame in the global savestate frame counter stw REG_FRAME_INDEX, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -#logf LOG_LEVEL_WARN, "Setting global savestate frame to %d", "mr r5, 26" +# logf LOG_LEVEL_WARN, "Setting global savestate frame to %d", "mr r5, 26" # Indicate that we have prepared for a rollback li r3, 1 @@ -759,6 +760,14 @@ addi r3, r3, P1_PAD_OFFSET # offset from sp where opponent pad report is add r3, sp, r3 # destination add r4, REG_RXB_ADDRESS, r5 # source li r5, PAD_REPORT_SIZE + +.if DEBUG_INPUTS==1 +cmpwi REG_COUNT, 1 +bge SKIP_OPP_LOG +logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d %08X %08X %08X", "mr r5, REG_FRAME_INDEX", "mr r6, REG_REMOTE_PLAYER_IDX", "lwz r7, 0(4)", "lwz r8, 4(4)", "lwz r9, 8(4)" +SKIP_OPP_LOG: +.endif + branchl r12, memcpy addi REG_COUNT, REG_COUNT, 1 diff --git a/Online/Online.s b/Online/Online.s index e68c5105..f4b1ce22 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -87,7 +87,7 @@ 0x7 = int8, righttrigger value 0x8 = int8, unk 0x9 = int8, unk -0xA = int8, isConnected (0 = connected, -1 = disconnected) +0xA = int8, isConnected (0 = connected, -1 = disconnected, -3 = stale?) 0xB = padding */ @@ -209,8 +209,8 @@ .set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 # bool .set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_PREDICTING + 1 # s32 .set ODB_PLAYER_SAVESTATE_FRAME, ODB_SAVESTATE_FRAME + 4 # u32 -.set ODB_PLAYER_SAVESTATE_IS_ACTIVE, ODB_PLAYER_SAVESTATE_FRAME + 4*3 # u32[3] -.set ODB_SAVESTATE_SSRB_ADDR, ODB_PLAYER_SAVESTATE_IS_ACTIVE + 3 # u32 +.set ODB_PLAYER_SAVESTATE_IS_PREDICTING, ODB_PLAYER_SAVESTATE_FRAME + 4*3 # u32[3] +.set ODB_SAVESTATE_SSRB_ADDR, ODB_PLAYER_SAVESTATE_IS_PREDICTING + 3 # u32 .set ODB_SAVESTATE_SSCB_ADDR, ODB_SAVESTATE_SSRB_ADDR + 4 # u32 .set ODB_SFXDB_START, ODB_SAVESTATE_SSCB_ADDR + 4 # SFXDB_SIZE .set ODB_LATEST_FRAME, ODB_SFXDB_START + SFXDB_SIZE # u32 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index aa6bc686..21ca3bcc 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1468,17 +1468,19 @@ C216EA30 00000004 #Online/Core/Remember Who LRA Started.asm 40820014 3C808046 6084B6A0 88840001 989E000C 00000000 -C2376A20 0000000A #Online/Core/SkipNewInputFetchOnRollback.asm +C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -40820038 3C608047 +40820044 3C608047 60639D64 80630000 -2C030000 40820024 -806DB61C 886300DA -2C030001 40820014 -3D808037 618C6A28 -7D8903A6 4E800420 -3861002C 00000000 +2C030000 40820030 +808DB61C 886400DA +2C030000 41820020 +886400DB 2C030000 +40820014 3D808037 +618C6A28 7D8903A6 +4E800420 3861002C +60000000 00000000 C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 @@ -1572,20 +1574,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E4 #Online/Core/TriggerSendInput.asm +C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206E8 3C608047 +408206C8 3C608047 60639D64 80630000 -2C030000 408206D4 +2C030000 408206B4 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820624 887B001C +41820604 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1660,7 +1662,7 @@ C2376A28 000000E4 #Online/Core/TriggerSendInput.asm 887B0237 2C030000 40820018 38600000 987B0248 987B0249 -987B024A 48000280 +987B024A 48000260 3A800000 38D40248 7C66D8AE 2C030001 40820174 1CD40004 @@ -1712,19 +1714,15 @@ C2376A28 000000E4 #Online/Core/TriggerSendInput.asm 4E800420 3A940001 2C140003 4180FE78 3AA00000 3A800000 -807B0238 7C761B78 -7EC3B378 38D40248 -7C86D8AE 7C761B78 -7EC3B378 38D40248 +807B0238 38D40248 7C86D8AE 2C040001 -40820030 1CD40004 +40820028 1CD40004 38C6023C 7C86D82E 2C150000 4182000C -7C041800 40800014 -7C832378 7C761B78 -7EC3B378 3AA00001 +7C041800 4080000C +7C832378 3AA00001 3A940001 2C140003 -4180FFAC 907B0238 +4180FFC4 907B0238 3A800000 38D40248 7C86D8AE 2C040001 40820038 38D40135 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 57f05fba..2223cb1d 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1468,17 +1468,19 @@ C216EA30 00000004 #Online/Core/Remember Who LRA Started.asm 40820014 3C808046 6084B6A0 88840001 989E000C 00000000 -C2376A20 0000000A #Online/Core/SkipNewInputFetchOnRollback.asm +C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -40820038 3C608047 +40820044 3C608047 60639D64 80630000 -2C030000 40820024 -806DB61C 886300DA -2C030001 40820014 -3D808037 618C6A28 -7D8903A6 4E800420 -3861002C 00000000 +2C030000 40820030 +808DB61C 886400DA +2C030000 41820020 +886400DB 2C030000 +40820014 3D808037 +618C6A28 7D8903A6 +4E800420 3861002C +60000000 00000000 C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 @@ -1572,20 +1574,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E4 #Online/Core/TriggerSendInput.asm +C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206E8 3C608047 +408206C8 3C608047 60639D64 80630000 -2C030000 408206D4 +2C030000 408206B4 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820624 887B001C +41820604 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1660,7 +1662,7 @@ C2376A28 000000E4 #Online/Core/TriggerSendInput.asm 887B0237 2C030000 40820018 38600000 987B0248 987B0249 -987B024A 48000280 +987B024A 48000260 3A800000 38D40248 7C66D8AE 2C030001 40820174 1CD40004 @@ -1712,19 +1714,15 @@ C2376A28 000000E4 #Online/Core/TriggerSendInput.asm 4E800420 3A940001 2C140003 4180FE78 3AA00000 3A800000 -807B0238 7C761B78 -7EC3B378 38D40248 -7C86D8AE 7C761B78 -7EC3B378 38D40248 +807B0238 38D40248 7C86D8AE 2C040001 -40820030 1CD40004 +40820028 1CD40004 38C6023C 7C86D82E 2C150000 4182000C -7C041800 40800014 -7C832378 7C761B78 -7EC3B378 3AA00001 +7C041800 4080000C +7C832378 3AA00001 3A940001 2C140003 -4180FFAC 907B0238 +4180FFC4 907B0238 3A800000 38D40248 7C86D8AE 2C040001 40820038 38D40135 From 1087552bfcb1902f0191e4368bd98265820db0b9 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 29 Jan 2022 03:58:16 -0500 Subject: [PATCH 056/217] manage finalized frame game-side fixing desync this allows us to pass the finalized frame to dolphin to tell it which inputs are safe to discards. If before we got an advance and a rollback on the same frame, it would request inputs once, clear old inputs, then discard those inputs even though a second request would come through overwriting the inputs in game, causing the rollback to then use 0's for inputs that are now gone --- Online/Core/ForceEngineOnRollback.asm | 8 +- Online/Core/StartEngineLoop.asm | 18 ++- Online/Core/TriggerSendInput.asm | 68 ++++++++--- Online/Online.s | 9 +- Output/Netplay/GALE01r2.ini | 158 +++++++++++++------------- Output/Netplay/GALJ01r2.ini | 158 +++++++++++++------------- 6 files changed, 234 insertions(+), 185 deletions(-) diff --git a/Online/Core/ForceEngineOnRollback.asm b/Online/Core/ForceEngineOnRollback.asm index 252092be..4a782535 100644 --- a/Online/Core/ForceEngineOnRollback.asm +++ b/Online/Core/ForceEngineOnRollback.asm @@ -40,7 +40,10 @@ li r27, 1 PREPARE_ENGINE_LOOPS: # Copy the values that get updated in pad alarm to non-volatile locations so -# that they don't change during the loop iteration +# that they don't change during the loop iteration. Keep in mind that on a rollback, +# TriggerSendInput.asm is expected to run and can update certain values. If you need +# values to update after those calls, either use them directly or update a STABLE version +# in StartEngineLoop lbz r4, ODB_ROLLBACK_IS_ACTIVE(r5) stb r4, ODB_STABLE_ROLLBACK_IS_ACTIVE(r5) lwz r4, ODB_ROLLBACK_END_FRAME(r5) @@ -49,9 +52,6 @@ lbz r4, ODB_ROLLBACK_SHOULD_LOAD_STATE(r5) stb r4, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(r5) lwz r4, ODB_SAVESTATE_FRAME(r5) stw r4, ODB_STABLE_SAVESTATE_FRAME(r5) -lwz r4, ODB_RXB_ADDR(r5) -lwz r4, RXB_FINALIZED_FRAME(r4) -stw r4, ODB_STABLE_FINALIZED_FRAME(r5) b RESTORE_AND_EXIT HANDLE_NO_ROLLBACK_NO_INPUTS: diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 5c0e6e09..62be8dc5 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -141,7 +141,7 @@ DISPLAY_DISCONNECT_END: # Check if a rollback is active lbz r3, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) cmpwi r3, 0 -beq CAPTURE_CHECK # If rollback not active, check if we need to save state +beq HANDLE_ROLLBACK_INPUTS_END # If rollback not active, check if we need to save state # Check if we have a savestate, if so, we need to load state lbz r3, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) @@ -180,7 +180,7 @@ lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) stw r3, ODB_FRAME(REG_ODB_ADDRESS) .if DEBUG_INPUTS==1 -logf LOG_LEVEL_WARN, "Finished reverting state to frame: %d", "mr r5, 3" +logf LOG_LEVEL_WARN, "[Rollback] Finished reverting state to frame: %d", "mr r5, 3" .endif # Clear savestate and should load flags flag @@ -192,6 +192,9 @@ stb r3, ODB_PLAYER_SAVESTATE_IS_PREDICTING+0x2(REG_ODB_ADDRESS) stb r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) stb r3, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) +################################################################################ +# Fetch the next inputs during a rollback +################################################################################ CONTINUE_ROLLBACK: # If there is an active rollback, trigger a controller status renewal. @@ -203,13 +206,22 @@ branchl r12, RenewInputs_Prefunction # Determine whether we should disable rollback if we have reached the target lwz r3, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) cmpw REG_FRAME_INDEX, r3 -blt CAPTURE_CHECK +blt HANDLE_ROLLBACK_INPUTS_END # If we have reached the frame, turn off rollback li r3, 0 stb r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) stb r3, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) +HANDLE_ROLLBACK_INPUTS_END: + +################################################################################ +# Store stable data that needs to update every time RenewInputs_Prefunction is +# called +################################################################################ +lwz r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +stw r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) + ################################################################################ # Check if we should capture state. We need to do this after the rollback # logic because triggering RenewInputs might cause a new savestate request diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 2091947f..5e0e38af 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -8,6 +8,7 @@ .set CONST_BACKUP_BYTES, 0xB0 # Maybe add this to Common.s .set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C +.set REG_VARIOUS_3, 28 .set REG_ODB_ADDRESS, 27 .set REG_FRAME_INDEX, 26 .set REG_TXB_ADDRESS, 25 @@ -63,6 +64,8 @@ cmpwi r3, 0 beq ROLLBACK_HANDLER PROCESS_NOT_ROLLBACK: +# logf LOG_LEVEL_NOTICE, "[%d] Input Requested, not rollback", "mr r5, REG_FRAME_INDEX" + ################################################################################ # Section 1: Clear all inputs during freeze time, this is done such that # both replays are identical when considering only finalized frames @@ -137,6 +140,10 @@ stb r3, TXB_CMD(REG_TXB_ADDRESS) # Load frame index into transfer buffer stw REG_FRAME_INDEX, TXB_FRAME(REG_TXB_ADDRESS) +# Transfer the finalized frame to know what inputs we can discard +lwz r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +stw r3, TXB_FINALIZED_FRAME(REG_TXB_ADDRESS) + # Transfer delay amount lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) stb r3, TXB_DELAY(REG_TXB_ADDRESS) @@ -146,13 +153,6 @@ lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from mulli r4, r4, PAD_REPORT_SIZE addi r4, r4, P1_PAD_OFFSET # offset from sp where pad report we want is -# TODO: Transfer over the last frame we are predicting for to discard all previous old inputs. -# TODO: Might be possible to use SAVESTATE_FRAME for this if it updates correctly. Might not -# TODO: update in the case where we aren't getting rollbacks? Need to check. Could be safer -# TODO: to just use new variable. -# TODO: Something else to note is that when Dolphin sends us inputs, it should actually send us the -# TODO: 7 oldest inputs just to make sure an input doesn't get lost when processing a rollback. - # Move over pad data into transfer buffer addi r3, REG_TXB_ADDRESS, TXB_PAD # destination add r4, sp, r4 # source @@ -385,13 +385,13 @@ HAVE_PLAYER_INPUTS: # required to handle the savestate, so let's check the inputs to see if we need # to roll back -mr REG_VARIOUS_1, r3 +mr REG_VARIOUS_1, r3 # backup depth offset to savestate frame addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS #logf LOG_LEVEL_WARN, "Player %d[%d] r/w indexes when reading next input: %d/%d", "mr r5, 20", "mr r6, 22", "mr r7, 3", "mr r8, 4" -mr r3, REG_VARIOUS_1 +mr r3, REG_VARIOUS_1 # restore depth offset to savestate frame # Compute offset of true inputs for this player on this frame mulli r3, r3, PAD_REPORT_SIZE @@ -407,8 +407,13 @@ addi r4, r4, ODB_ROLLBACK_PREDICTED_INPUTS # Offset of inputs mulli r5, REG_COUNT, PLAYER_MAX_INPUT_SIZE add r4, r4, r5 -add r6, REG_RXB_ADDRESS, r3 -add r7, REG_ODB_ADDRESS, r4 +add r6, REG_RXB_ADDRESS, r3 # contains actual input for frame +add r7, REG_ODB_ADDRESS, r4 # contains predicted input + +# mulli r3, REG_COUNT, 4 +# addi r3, r3, ODB_PLAYER_SAVESTATE_FRAME +# lwzx r3, r3, REG_ODB_ADDRESS +# logf LOG_LEVEL_NOTICE, "Comparing inputs to predicted for frame: %d", "mr r5, 3" # Check to see if inputs have changed. Start with buttons # ---SYXBA @@ -462,6 +467,9 @@ lwzx r3, r6, REG_ODB_ADDRESS # get our player-specific savestate frame addi r3, r3, 1 stwx r3, r6, REG_ODB_ADDRESS +# Here we have found one frame of inputs that match, we are going to advance one frame and check +# to see if the next frame's inputs match + # increment read index addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r3, r6, REG_ODB_ADDRESS # load this player's read idx @@ -472,17 +480,12 @@ subi r3, r3, ROLLBACK_MAX_FRAME_COUNT SKIP_PREDICTED_INPUTS_READ_IDX_ADJUST: stbx r3, r6, REG_ODB_ADDRESS -addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player -lbzx r3, r6, REG_ODB_ADDRESS -addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player -lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d r/w indexes after reading: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" - # Check if we have caught up to the prediction addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS +#logf LOG_LEVEL_WARN, "Player %d r/w indexes after reading: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" cmpw r4, r3 bne CHECK_WHETHER_TO_ROLL_BACK_LOOP # Not caught up, try loop again with next frame for this player @@ -567,6 +570,12 @@ blt COMPUTE_SAVESTATE_FRAME_LOOP stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) #logf LOG_LEVEL_WARN, "Set savestate frame to %d, game frame: %d", "mr r5, 3", "loadGlobalFrame r6" +# Update finalized frame when predictions were correct +subi r5, r3, 1 +stw r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) + +# logf LOG_LEVEL_NOTICE, "New frame finalized: %d (Prediction)" + # Check if all players inputs have caught up to the prediction so we can set savestate = 0 li REG_COUNT, 0 CHECK_RESET_SAVESTATE_LOOP: @@ -627,11 +636,16 @@ stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) ################################################################################ .set REG_REMOTE_PLAYER_IDX, REG_VARIOUS_2 +.set REG_HAS_INPUTS_FROM_ALL, REG_VARIOUS_3 LOAD_OPPONENT_INPUTS: + +# logf LOG_LEVEL_NOTICE, "[%d] Reading Inputs...", "mr r5, REG_FRAME_INDEX" + # loop over each remote player li REG_COUNT, 0 li REG_REMOTE_PLAYER_IDX, 0 # port index of the current remote player +li REG_HAS_INPUTS_FROM_ALL, 1 # will get reset if we are predicting for any players LOOP_LOAD_OPPONENT_INPUTS: # skip over the local player's port for inputs @@ -650,10 +664,11 @@ sub r3, r3, REG_FRAME_INDEX cmpwi r3, 0 bge CALC_OPNT_PAD_OFFSET +PREDICT_INPUTS_OPP: +# We are predicting inputs, back up the inputs for later comparison .if DEBUG_INPUTS==1 logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d Needs Prediction" .endif -# We are predicting inputs, back up the inputs for later comparison # Don't save any states at the start of the game, it's frozen anyway # and there might still be stuff loading @@ -668,6 +683,14 @@ lbz r3, ODB_IS_GAME_OVER(REG_ODB_ADDRESS) cmpwi r3, 1 beq LOAD_STALE_INPUTS +# Indicate we had to predict some inputs for this frame +li REG_HAS_INPUTS_FROM_ALL, 0 + +# mulli r6, REG_COUNT, 4 +# addi r6, r6, RXB_OPNT_FRAME_NUMS +# lwzx r3, r6, REG_RXB_ADDRESS +# logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d Predicting. Latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_REMOTE_PLAYER_IDX", "mr r7, 3" + .set REG_PREDICTED_WRITE_IDX, REG_VARIOUS_1 # get offset from sp of online player's pad data @@ -775,6 +798,13 @@ addi REG_REMOTE_PLAYER_IDX, REG_REMOTE_PLAYER_IDX, 1 cmpwi REG_COUNT, 3 blt LOOP_LOAD_OPPONENT_INPUTS +# Overwrite finalized frame if we were not predicting for all the players +cmpwi REG_HAS_INPUTS_FROM_ALL, 0 +beq SKIP_FINALIZED_FRAME_ADJUST +stw REG_FRAME_INDEX, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +# logf LOG_LEVEL_NOTICE, "New frame finalized: %d", "lwz r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" +SKIP_FINALIZED_FRAME_ADJUST: + b INCREMENT_AND_EXIT ################################################################################ @@ -782,6 +812,8 @@ b INCREMENT_AND_EXIT ################################################################################ ROLLBACK_HANDLER: +# logf LOG_LEVEL_NOTICE, "[%d] Input Requested (rollback)", "mr r5, REG_FRAME_INDEX" + # If the frame we want is past the rollback end, just do nothing. This might # happen in the case where we get an interrupt during a rollback lwz r3, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) diff --git a/Online/Online.s b/Online/Online.s index f4b1ce22..e601d760 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -223,11 +223,13 @@ .set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_FINALIZED_FRAME + 4 # bool .set ODB_HUD_CANVAS, ODB_SHOULD_FORCE_PAD_RENEW + 1 # u32 .set ODB_PAUSE_COUNTER, ODB_HUD_CANVAS + 4 # u32 -.set ODB_SIZE, ODB_PAUSE_COUNTER + 4 +.set ODB_FINALIZED_FRAME, ODB_PAUSE_COUNTER + 4 # u32 +.set ODB_SIZE, ODB_FINALIZED_FRAME + 4 .set TXB_CMD, 0 # u8 .set TXB_FRAME, TXB_CMD + 1 # s32 -.set TXB_DELAY, TXB_FRAME + 4 # u8 TODO: Delay should be part of some init message or something at start of game +.set TXB_FINALIZED_FRAME, TXB_FRAME + 4 # s32 +.set TXB_DELAY, TXB_FINALIZED_FRAME + 4 # u8 TODO: Delay should be part of some init message or something at start of game .set TXB_PAD, TXB_DELAY + 1 # PAD_REPORT_SIZE .set TXB_SIZE, TXB_PAD + PAD_REPORT_SIZE @@ -235,8 +237,7 @@ .set RXB_OPNT_COUNT, RXB_RESULT + 1 # u8 .set RXB_OPNT_FRAME_NUMS, RXB_OPNT_COUNT + 1 # s32[3] .set RXB_OPNT_INPUTS, RXB_OPNT_FRAME_NUMS + 4*3 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 -.set RXB_FINALIZED_FRAME, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 # s32 -.set RXB_SIZE, RXB_FINALIZED_FRAME + 4 +.set RXB_SIZE, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 ################################################################################ # Matchmaking States diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 21ca3bcc..38a9ba95 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1111,35 +1111,33 @@ C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 618C7120 7D8903A6 4E800420 8903000B 60000000 00000000 -C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm +C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B0 3C608047 +408200A4 3C608047 60639D64 80630000 -2C030000 4082009C +2C030000 40820090 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 888500DA 2C040000 -41820038 3B600001 +4182002C 3B600001 888500DA 988507AA 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 -808500D6 8084010A -908507B4 48000028 -888507B8 2C040000 -4182001C 38800000 -988507B8 3D808001 -618C95FC 7D8903A6 -4E800421 7F43D378 -3D808034 618C738C +48000028 888507B8 +2C040000 4182001C +38800000 988507B8 +3D808001 618C95FC 7D8903A6 4E800421 -2C1B0000 40820014 -3D80801A 618C4DA8 -7D8903A6 4E800420 -60000000 00000000 +7F43D378 3D808034 +618C738C 7D8903A6 +4E800421 2C1B0000 +40820014 3D80801A +618C4DA8 7D8903A6 +4E800420 00000000 C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm 3D808001 618CD2BC 7D8903A6 4E800421 @@ -1186,22 +1184,22 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C1 +40820338 386007C5 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C1 +7C7B1B78 388007C5 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D 7C6802A6 907B07A6 -38600012 3D808037 +38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 -3860010E 3D808037 +3860010A 3D808037 618CF1E4 7D8903A6 4E800421 907B00D6 -7C7A1B78 3880010E +7C7A1B78 3880010A 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1215,9 +1213,9 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C1 +93790005 386007C5 90790009 9359000D -3860010E 90790011 +3860010A 90790011 807B024F 90790015 3860009E 90790019 38600000 9079001D @@ -1481,7 +1479,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm +C21A4DE4 0000005D #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1494,9 +1492,9 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082026C 3C608047 +40820274 3C608047 60639D64 80630000 -2C030000 40820258 +2C030000 40820260 834DB61C 3F608048 837B9D60 3D808034 618C7364 7D8903A6 @@ -1552,6 +1550,7 @@ C0570010 3D80803A 807A07AB 7C1B1800 41800010 38600000 987A00DA 987A07AA +807A07C1 907A07B4 887A0237 2C030000 4182002C 807A0238 7C1B1800 41800020 @@ -1574,20 +1573,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E0 #Online/Core/TriggerSendInput.asm +C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206C8 3C608047 +408206DC 3C608047 60639D64 80630000 -2C030000 408206B4 +2C030000 408206C8 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820604 887B001C +41820618 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1607,17 +1606,18 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 618C31F4 7D8903A6 4E800421 386000B0 98790000 93590001 -887B001C 98790005 +807B07C1 90790005 +887B001C 98790009 889B0002 1C84000C -388400DC 38790006 +388400DC 3879000A 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -7F23CB78 38800012 +7F23CB78 38800016 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38780000 -3880010E 38A00000 +3880010A 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F @@ -1649,7 +1649,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 41800008 38600000 987B00E0 887B001D 1C63000C 3863001E -7C7B1A14 38990006 +7C7B1A14 3899000A 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 889B001C @@ -1658,18 +1658,18 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 38600000 987B001D 887B00DA 2C030000 40820010 887B00DB -2C030000 40820170 +2C030000 40820160 887B0237 2C030000 40820018 38600000 987B0248 987B0249 -987B024A 48000260 +987B024A 48000258 3A800000 38D40248 7C66D8AE 2C030001 -40820174 1CD40004 +40820164 1CD40004 38C60002 7C66C02E 1CD40004 38C6023C 7C86D82E 7C641851 -41800154 7C761B78 +41800144 7C761B78 38D40135 7C66D8AE 38D40138 7C86D8AE 7EC3B378 1C63000C @@ -1681,18 +1681,18 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7CFB2214 88660000 88870000 546306FE 548406FE 7C032000 -408200BC 88660001 +408200AC 88660001 88870001 5463067E 5484067E 7C032000 -408200A4 80660002 +40820094 80660002 80870002 7C032000 -40820094 38A00005 +40820084 38A00005 38A50001 2C050008 40800028 7C6530AE 7C8538AE 2C03002A 4181000C 2C04002A 4081FFE0 7C032000 -40820064 4BFFFFD4 +40820054 4BFFFFD4 1CD40004 38C6023C 7C66D82E 38630001 7C66D92E 38D40135 @@ -1701,9 +1701,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 3863FFF9 7C66D9AE 38D40135 7C66D8AE 38D40138 7C86D8AE -38D40135 7C66D8AE -38D40138 7C86D8AE -7C041800 4082FEC0 +7C041800 4082FED0 4800003C 38600001 987B00DA 987B00DB 935B00DC 3B5A0001 @@ -1712,7 +1710,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 -2C140003 4180FE78 +2C140003 4180FE88 3AA00000 3A800000 807B0238 38D40248 7C86D8AE 2C040001 @@ -1723,6 +1721,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C832378 3AA00001 3A940001 2C140003 4180FFC4 907B0238 +38A3FFFF 90BB07C1 3A800000 38D40248 7C86D8AE 2C040001 40820038 38D40135 @@ -1739,16 +1738,17 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 3A940001 2C140003 4180FFE8 38600000 987B0237 3A800000 -3AA00000 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D4 887B001C -38800054 7C632050 -7C1A1800 418000BC -887B000C 2C030001 -418200B0 38D40138 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D8 +887B001C 38800054 +7C632050 7C1A1800 +418000C0 887B000C +2C030001 418200B4 +3B800000 38D40138 7EC6D8AE 1C76000C 3863013B 1CB40054 7C632A14 1CD40054 @@ -1778,27 +1778,29 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 3D808000 618C31F4 7D8903A6 4E800421 3A940001 3AB50001 -2C140003 4180FEC8 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -38630007 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE40 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +2C140003 4180FEC4 +2C1C0000 41820008 +935B07C1 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 38630007 +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 2223cb1d..aa8c4315 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1111,35 +1111,33 @@ C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm 618C7120 7D8903A6 4E800420 8903000B 60000000 00000000 -C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm +C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B0 3C608047 +408200A4 3C608047 60639D64 80630000 -2C030000 4082009C +2C030000 40820090 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 888500DA 2C040000 -41820038 3B600001 +4182002C 3B600001 888500DA 988507AA 808500DC 908507AB 888500DB 988507AF 80850238 908507B0 -808500D6 8084010A -908507B4 48000028 -888507B8 2C040000 -4182001C 38800000 -988507B8 3D808001 -618C95FC 7D8903A6 -4E800421 7F43D378 -3D808034 618C738C +48000028 888507B8 +2C040000 4182001C +38800000 988507B8 +3D808001 618C95FC 7D8903A6 4E800421 -2C1B0000 40820014 -3D80801A 618C4DA8 -7D8903A6 4E800420 -60000000 00000000 +7F43D378 3D808034 +618C738C 7D8903A6 +4E800421 2C1B0000 +40820014 3D80801A +618C4DA8 7D8903A6 +4E800420 00000000 C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm 3D808001 618CD2BC 7D8903A6 4E800421 @@ -1186,22 +1184,22 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C1 +40820338 386007C5 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C1 +7C7B1B78 388007C5 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D 7C6802A6 907B07A6 -38600012 3D808037 +38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 -3860010E 3D808037 +3860010A 3D808037 618CF1E4 7D8903A6 4E800421 907B00D6 -7C7A1B78 3880010E +7C7A1B78 3880010A 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1215,9 +1213,9 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C1 +93790005 386007C5 90790009 9359000D -3860010E 90790011 +3860010A 90790011 807B024F 90790015 3860009E 90790019 38600000 9079001D @@ -1481,7 +1479,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm +C21A4DE4 0000005D #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1494,9 +1492,9 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082026C 3C608047 +40820274 3C608047 60639D64 80630000 -2C030000 40820258 +2C030000 40820260 834DB61C 3F608048 837B9D60 3D808034 618C7364 7D8903A6 @@ -1552,6 +1550,7 @@ C0570010 3D80803A 807A07AB 7C1B1800 41800010 38600000 987A00DA 987A07AA +807A07C1 907A07B4 887A0237 2C030000 4182002C 807A0238 7C1B1800 41800020 @@ -1574,20 +1573,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E0 #Online/Core/TriggerSendInput.asm +C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206C8 3C608047 +408206DC 3C608047 60639D64 80630000 -2C030000 408206B4 +2C030000 408206C8 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820604 887B001C +41820618 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1607,17 +1606,18 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 618C31F4 7D8903A6 4E800421 386000B0 98790000 93590001 -887B001C 98790005 +807B07C1 90790005 +887B001C 98790009 889B0002 1C84000C -388400DC 38790006 +388400DC 3879000A 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -7F23CB78 38800012 +7F23CB78 38800016 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38780000 -3880010E 38A00000 +3880010A 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F @@ -1649,7 +1649,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 41800008 38600000 987B00E0 887B001D 1C63000C 3863001E -7C7B1A14 38990006 +7C7B1A14 3899000A 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 889B001C @@ -1658,18 +1658,18 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 38600000 987B001D 887B00DA 2C030000 40820010 887B00DB -2C030000 40820170 +2C030000 40820160 887B0237 2C030000 40820018 38600000 987B0248 987B0249 -987B024A 48000260 +987B024A 48000258 3A800000 38D40248 7C66D8AE 2C030001 -40820174 1CD40004 +40820164 1CD40004 38C60002 7C66C02E 1CD40004 38C6023C 7C86D82E 7C641851 -41800154 7C761B78 +41800144 7C761B78 38D40135 7C66D8AE 38D40138 7C86D8AE 7EC3B378 1C63000C @@ -1681,18 +1681,18 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7CFB2214 88660000 88870000 546306FE 548406FE 7C032000 -408200BC 88660001 +408200AC 88660001 88870001 5463067E 5484067E 7C032000 -408200A4 80660002 +40820094 80660002 80870002 7C032000 -40820094 38A00005 +40820084 38A00005 38A50001 2C050008 40800028 7C6530AE 7C8538AE 2C03002A 4181000C 2C04002A 4081FFE0 7C032000 -40820064 4BFFFFD4 +40820054 4BFFFFD4 1CD40004 38C6023C 7C66D82E 38630001 7C66D92E 38D40135 @@ -1701,9 +1701,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 3863FFF9 7C66D9AE 38D40135 7C66D8AE 38D40138 7C86D8AE -38D40135 7C66D8AE -38D40138 7C86D8AE -7C041800 4082FEC0 +7C041800 4082FED0 4800003C 38600001 987B00DA 987B00DB 935B00DC 3B5A0001 @@ -1712,7 +1710,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 -2C140003 4180FE78 +2C140003 4180FE88 3AA00000 3A800000 807B0238 38D40248 7C86D8AE 2C040001 @@ -1723,6 +1721,7 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 7C832378 3AA00001 3A940001 2C140003 4180FFC4 907B0238 +38A3FFFF 90BB07C1 3A800000 38D40248 7C86D8AE 2C040001 40820038 38D40135 @@ -1739,16 +1738,17 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 3A940001 2C140003 4180FFE8 38600000 987B0237 3A800000 -3AA00000 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D4 887B001C -38800054 7C632050 -7C1A1800 418000BC -887B000C 2C030001 -418200B0 38D40138 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D8 +887B001C 38800054 +7C632050 7C1A1800 +418000C0 887B000C +2C030001 418200B4 +3B800000 38D40138 7EC6D8AE 1C76000C 3863013B 1CB40054 7C632A14 1CD40054 @@ -1778,27 +1778,29 @@ C2376A28 000000E0 #Online/Core/TriggerSendInput.asm 3D808000 618C31F4 7D8903A6 4E800421 3A940001 3AB50001 -2C140003 4180FEC8 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -38630007 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE40 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +2C140003 4180FEC4 +2C1C0000 41820008 +935B07C1 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 38630007 +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 From 43a6b79fb8dfff8ba12fc0ce02805970916dbf9c Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 29 Jan 2022 15:20:17 -0500 Subject: [PATCH 057/217] fix bug causing unnecessarily far rollbacks This might have been a regression with the doubles code but I'm not sure. In effect what would happen if multiple inputs were received that needed to be checked for rollback was that if any one of them (even the newest) had an incorrect prediction, the logic would roll back all the way to the oldest input no matter what. This was because the SAVESTATE_FRAME was not being updated until the very end (after all the individual PLAYER_SAVESTATE_FRAMEs had been calculated). This meant that when TRIGGER_ROLBACK was called, it would still use the oldest SAVESTATE_FRAME to decide where to rollback to, instead of the minimum amongst all PLAYER_SAVESTATE_FRAMEs. --- Online/Core/TriggerSendInput.asm | 36 +++- Output/Netplay/GALE01r2.ini | 280 ++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 280 ++++++++++++++++--------------- 3 files changed, 310 insertions(+), 286 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 5e0e38af..1984549b 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -335,6 +335,13 @@ ROLLBACK_NOT_ACTIVE: # Section 8: Check if we have prepared for rollback and inputs have been received ################################################################################ +.set REG_ROLLBACK_REQUIRED, REG_VARIOUS_3 + +# Keep track if rollback is required. We still need to iterate through all the players +# and frames and determine the earliest frame so we can update the SAVESTATE_FRAME before +# triggering a rollback, otherwise we'd always rollback to the oldest frame +li REG_ROLLBACK_REQUIRED, 0 + # If ODB_SAVESTATE_IS_PREDICTING is 0, we either don't have a savestate created # or we're in a rollback, so set the per-player savestate flags to 0 and skip # to section 9. If we're missing inputs for the current frame, they'll get reset @@ -422,7 +429,7 @@ lbz r4, 0(r7) rlwinm r3, r3, 0, 0x1F rlwinm r4, r4, 0, 0x1F cmpw r3, r4 -bne TRIGGER_ROLLBACK +bne INDICATE_ROLLBACK_REQUIRED # -LRZUDRL lbz r3, 0x1(r6) @@ -430,7 +437,7 @@ lbz r4, 0x1(r7) rlwinm r3, r3, 0, 0x7F rlwinm r4, r4, 0, 0x7F cmpw r3, r4 -bne TRIGGER_ROLLBACK +bne INDICATE_ROLLBACK_REQUIRED # TODO: Sounds like new UCF still uses raw values but if it ever switches # TODO: to processed, consider removing this @@ -439,7 +446,7 @@ bne TRIGGER_ROLLBACK lwz r3, 0x2(r6) lwz r4, 0x2(r7) cmpw r3, r4 -bne TRIGGER_ROLLBACK +bne INDICATE_ROLLBACK_REQUIRED # And finally, the triggers. Use deadzone at 42. 43+ are valid li r5, 5 # Valid indices are 6-7 @@ -455,7 +462,7 @@ cmpwi r4, 42 ble TRIGGER_LOOP_START # If both triggers are 42 or under, they are in deadzone CONTINUE_TRIGGER_CHECK: cmpw r3, r4 -bne TRIGGER_ROLLBACK +bne INDICATE_ROLLBACK_REQUIRED b TRIGGER_LOOP_START INPUTS_MATCH: @@ -491,6 +498,13 @@ bne CHECK_WHETHER_TO_ROLL_BACK_LOOP # Not caught up, try loop again with next fr b CONTINUE_ROLLBACK_CHECK_LOOP +INDICATE_ROLLBACK_REQUIRED: +# This gets called when we determine we will need to rollback for one of the players +# we still need to go through the other players though to determine the earliest frame +# we are allowed to rollback to +li REG_ROLLBACK_REQUIRED, 1 +b CONTINUE_ROLLBACK_CHECK_LOOP # Move on to next player + TRIGGER_ROLLBACK: # mulli r6, REG_COUNT, 4 # addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME @@ -525,9 +539,10 @@ addi REG_COUNT, REG_COUNT, 1 cmpwi REG_COUNT, 3 blt CHECK_WHETHER_TO_ROLL_BACK_LOOP -# We've checked past predictions against any new inputs and nothing triggered a rollback; +# We've checked past predictions against any new inputs and know whether a rollback is needed # now determine how far (if at all) to move the savestate frame forward. It should end up as -# the lowest value among players we're tracking a savestate frame for. +# the lowest value among players we're tracking a savestate frame for. This will allow us to +# then roll back (if we need to) to the earliest frame that requires it .set REG_SAVESTATE_FRAME_SET, REG_VARIOUS_2 li REG_SAVESTATE_FRAME_SET, 0 @@ -570,11 +585,16 @@ blt COMPUTE_SAVESTATE_FRAME_LOOP stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) #logf LOG_LEVEL_WARN, "Set savestate frame to %d, game frame: %d", "mr r5, 3", "loadGlobalFrame r6" -# Update finalized frame when predictions were correct +# Update finalized frame to the earliest frame where our predictions matched subi r5, r3, 1 stw r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_NOTICE, "New frame finalized: %d (Prediction)" +# logf LOG_LEVEL_NOTICE, "New frame finalized: %d (Prediction)", "lwz r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" + +# Check if we had determined that a rollback was needed. If so, trigger the rollback now +# that we've updated the frame we need to roll back to. +cmpwi REG_ROLLBACK_REQUIRED, 0 +bne TRIGGER_ROLLBACK # Check if all players inputs have caught up to the prediction so we can set savestate = 0 li REG_COUNT, 0 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 38a9ba95..beb5172a 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1573,20 +1573,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E3 #Online/Core/TriggerSendInput.asm +C2376A28 000000E5 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206DC 3C608047 +408206F0 3C608047 60639D64 80630000 -2C030000 408206C8 +2C030000 408206DC 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820618 887B001C +4182062C 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1658,149 +1658,151 @@ C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 38600000 987B001D 887B00DA 2C030000 40820010 887B00DB -2C030000 40820160 -887B0237 2C030000 -40820018 38600000 -987B0248 987B0249 -987B024A 48000258 -3A800000 38D40248 -7C66D8AE 2C030001 -40820164 1CD40004 -38C60002 7C66C02E -1CD40004 38C6023C -7C86D82E 7C641851 -41800144 7C761B78 -38D40135 7C66D8AE -38D40138 7C86D8AE -7EC3B378 1C63000C -3863000E 1CD40054 -7C633214 38D40135 -7C86D8AE 1C84000C -3884013B 1CB40054 -7C842A14 7CD81A14 -7CFB2214 88660000 -88870000 546306FE -548406FE 7C032000 -408200AC 88660001 -88870001 5463067E -5484067E 7C032000 -40820094 80660002 -80870002 7C032000 -40820084 38A00005 -38A50001 2C050008 -40800028 7C6530AE -7C8538AE 2C03002A -4181000C 2C04002A -4081FFE0 7C032000 -40820054 4BFFFFD4 -1CD40004 38C6023C -7C66D82E 38630001 -7C66D92E 38D40135 -7C66D8AE 38630001 -2C030007 41800008 -3863FFF9 7C66D9AE -38D40135 7C66D8AE -38D40138 7C86D8AE -7C041800 4082FED0 -4800003C 38600001 -987B00DA 987B00DB -935B00DC 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE88 -3AA00000 3A800000 -807B0238 38D40248 -7C86D8AE 2C040001 -40820028 1CD40004 +2C030000 4082016C +3B800000 887B0237 +2C030000 40820018 +38600000 987B0248 +987B0249 987B024A +48000268 3A800000 +38D40248 7C66D8AE +2C030001 4082016C +1CD40004 38C60002 +7C66C02E 1CD40004 38C6023C 7C86D82E -2C150000 4182000C -7C041800 4080000C -7C832378 3AA00001 -3A940001 2C140003 -4180FFC4 907B0238 -38A3FFFF 90BB07C1 -3A800000 38D40248 -7C86D8AE 2C040001 -40820038 38D40135 +7C641851 4180014C +7C761B78 38D40135 7C66D8AE 38D40138 -7C86D8AE 38D40135 +7C86D8AE 7EC3B378 +1C63000C 3863000E +1CD40054 7C633214 +38D40135 7C86D8AE +1C84000C 3884013B +1CB40054 7C842A14 +7CD81A14 7CFB2214 +88660000 88870000 +546306FE 548406FE +7C032000 408200AC +88660001 88870001 +5463067E 5484067E +7C032000 40820094 +80660002 80870002 +7C032000 40820084 +38A00005 38A50001 +2C050008 40800028 +7C6530AE 7C8538AE +2C03002A 4181000C +2C04002A 4081FFE0 +7C032000 40820054 +4BFFFFD4 1CD40004 +38C6023C 7C66D82E +38630001 7C66D92E +38D40135 7C66D8AE +38630001 2C030007 +41800008 3863FFF9 +7C66D9AE 38D40135 7C66D8AE 38D40138 7C86D8AE 7C041800 -40820010 38600000 -38D40248 7C66D9AE +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 3A940001 2C140003 -4180FFB4 3A800000 +4180FE80 3AA00000 +3A800000 807B0238 38D40248 7C86D8AE -2C040001 41820018 -3A940001 2C140003 -4180FFE8 38600000 -987B0237 3A800000 -3AA00000 3B800001 -887B0000 7C151800 -40820008 3AB50001 -1CD40004 38C60002 -7C66C02E 7C7A1850 -2C030000 408000D8 -887B001C 38800054 -7C632050 7C1A1800 -418000C0 887B000C -2C030001 418200B4 -3B800000 38D40138 -7EC6D8AE 1C76000C -3863013B 1CB40054 -7C632A14 1CD40054 -38C6000E 7C7B1A14 -7C983214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -38760001 2C030007 -41800008 3863FFF9 -38D40138 7C66D9AE +2C040001 40820028 +1CD40004 38C6023C +7C86D82E 2C150000 +4182000C 7C041800 +4080000C 7C832378 +3AA00001 3A940001 +2C140003 4180FFC4 +907B0238 38A3FFFF +90BB07C1 2C1C0000 +4082FF60 3A800000 +38D40248 7C86D8AE +2C040001 40820038 38D40135 7C66D8AE 38D40138 7C86D8AE -38D40248 7C66D8AE -2C030001 4182003C -1CD40004 38C6023C -7F46D92E 38600001 -38D40248 7C66D9AE -38D40135 7EC6D9AE -887B0237 2C030001 -41820010 935B0238 -38600001 987B0237 -38600000 1C63000C -38A3000E 1CD40054 -7CA53214 1C75000C -386300DC 7C611A14 -7C982A14 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -3A940001 3AB50001 -2C140003 4180FEC4 -2C1C0000 41820008 -935B07C1 48000080 -807B00DC 7C1A1800 -40810024 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 807B00DC -7C7A1850 38630001 -889B00E0 7C632051 -40800008 38630007 -1C63000C 388300E1 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -4BFFFE2C 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +38D40135 7C66D8AE +38D40138 7C86D8AE +7C041800 40820010 +38600000 38D40248 +7C66D9AE 3A940001 +2C140003 4180FFB4 +3A800000 38D40248 +7C86D8AE 2C040001 +41820018 3A940001 +2C140003 4180FFE8 +38600000 987B0237 +3A800000 3AA00000 +3B800001 887B0000 +7C151800 40820008 +3AB50001 1CD40004 +38C60002 7C66C02E +7C7A1850 2C030000 +408000D8 887B001C +38800054 7C632050 +7C1A1800 418000C0 +887B000C 2C030001 +418200B4 3B800000 +38D40138 7EC6D8AE +1C76000C 3863013B +1CB40054 7C632A14 +1CD40054 38C6000E +7C7B1A14 7C983214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 38760001 +2C030007 41800008 +3863FFF9 38D40138 +7C66D9AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40248 +7C66D8AE 2C030001 +4182003C 1CD40004 +38C6023C 7F46D92E +38600001 38D40248 +7C66D9AE 38D40135 +7EC6D9AE 887B0237 +2C030001 41820010 +935B0238 38600001 +987B0237 38600000 +1C63000C 38A3000E +1CD40054 7CA53214 +1C75000C 386300DC +7C611A14 7C982A14 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 3A940001 +3AB50001 2C140003 +4180FEC4 2C1C0000 +41820008 935B07C1 +48000080 807B00DC +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00DC 7C7A1850 +38630001 889B00E0 +7C632051 40800008 +38630007 1C63000C +388300E1 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFE2C +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index aa8c4315..dbad6427 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1573,20 +1573,20 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E3 #Online/Core/TriggerSendInput.asm +C2376A28 000000E5 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206DC 3C608047 +408206F0 3C608047 60639D64 80630000 -2C030000 408206C8 +2C030000 408206DC 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820618 887B001C +4182062C 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1658,149 +1658,151 @@ C2376A28 000000E3 #Online/Core/TriggerSendInput.asm 38600000 987B001D 887B00DA 2C030000 40820010 887B00DB -2C030000 40820160 -887B0237 2C030000 -40820018 38600000 -987B0248 987B0249 -987B024A 48000258 -3A800000 38D40248 -7C66D8AE 2C030001 -40820164 1CD40004 -38C60002 7C66C02E -1CD40004 38C6023C -7C86D82E 7C641851 -41800144 7C761B78 -38D40135 7C66D8AE -38D40138 7C86D8AE -7EC3B378 1C63000C -3863000E 1CD40054 -7C633214 38D40135 -7C86D8AE 1C84000C -3884013B 1CB40054 -7C842A14 7CD81A14 -7CFB2214 88660000 -88870000 546306FE -548406FE 7C032000 -408200AC 88660001 -88870001 5463067E -5484067E 7C032000 -40820094 80660002 -80870002 7C032000 -40820084 38A00005 -38A50001 2C050008 -40800028 7C6530AE -7C8538AE 2C03002A -4181000C 2C04002A -4081FFE0 7C032000 -40820054 4BFFFFD4 -1CD40004 38C6023C -7C66D82E 38630001 -7C66D92E 38D40135 -7C66D8AE 38630001 -2C030007 41800008 -3863FFF9 7C66D9AE -38D40135 7C66D8AE -38D40138 7C86D8AE -7C041800 4082FED0 -4800003C 38600001 -987B00DA 987B00DB -935B00DC 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE88 -3AA00000 3A800000 -807B0238 38D40248 -7C86D8AE 2C040001 -40820028 1CD40004 +2C030000 4082016C +3B800000 887B0237 +2C030000 40820018 +38600000 987B0248 +987B0249 987B024A +48000268 3A800000 +38D40248 7C66D8AE +2C030001 4082016C +1CD40004 38C60002 +7C66C02E 1CD40004 38C6023C 7C86D82E -2C150000 4182000C -7C041800 4080000C -7C832378 3AA00001 -3A940001 2C140003 -4180FFC4 907B0238 -38A3FFFF 90BB07C1 -3A800000 38D40248 -7C86D8AE 2C040001 -40820038 38D40135 +7C641851 4180014C +7C761B78 38D40135 7C66D8AE 38D40138 -7C86D8AE 38D40135 +7C86D8AE 7EC3B378 +1C63000C 3863000E +1CD40054 7C633214 +38D40135 7C86D8AE +1C84000C 3884013B +1CB40054 7C842A14 +7CD81A14 7CFB2214 +88660000 88870000 +546306FE 548406FE +7C032000 408200AC +88660001 88870001 +5463067E 5484067E +7C032000 40820094 +80660002 80870002 +7C032000 40820084 +38A00005 38A50001 +2C050008 40800028 +7C6530AE 7C8538AE +2C03002A 4181000C +2C04002A 4081FFE0 +7C032000 40820054 +4BFFFFD4 1CD40004 +38C6023C 7C66D82E +38630001 7C66D92E +38D40135 7C66D8AE +38630001 2C030007 +41800008 3863FFF9 +7C66D9AE 38D40135 7C66D8AE 38D40138 7C86D8AE 7C041800 -40820010 38600000 -38D40248 7C66D9AE +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 3A940001 2C140003 -4180FFB4 3A800000 +4180FE80 3AA00000 +3A800000 807B0238 38D40248 7C86D8AE -2C040001 41820018 -3A940001 2C140003 -4180FFE8 38600000 -987B0237 3A800000 -3AA00000 3B800001 -887B0000 7C151800 -40820008 3AB50001 -1CD40004 38C60002 -7C66C02E 7C7A1850 -2C030000 408000D8 -887B001C 38800054 -7C632050 7C1A1800 -418000C0 887B000C -2C030001 418200B4 -3B800000 38D40138 -7EC6D8AE 1C76000C -3863013B 1CB40054 -7C632A14 1CD40054 -38C6000E 7C7B1A14 -7C983214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -38760001 2C030007 -41800008 3863FFF9 -38D40138 7C66D9AE +2C040001 40820028 +1CD40004 38C6023C +7C86D82E 2C150000 +4182000C 7C041800 +4080000C 7C832378 +3AA00001 3A940001 +2C140003 4180FFC4 +907B0238 38A3FFFF +90BB07C1 2C1C0000 +4082FF60 3A800000 +38D40248 7C86D8AE +2C040001 40820038 38D40135 7C66D8AE 38D40138 7C86D8AE -38D40248 7C66D8AE -2C030001 4182003C -1CD40004 38C6023C -7F46D92E 38600001 -38D40248 7C66D9AE -38D40135 7EC6D9AE -887B0237 2C030001 -41820010 935B0238 -38600001 987B0237 -38600000 1C63000C -38A3000E 1CD40054 -7CA53214 1C75000C -386300DC 7C611A14 -7C982A14 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -3A940001 3AB50001 -2C140003 4180FEC4 -2C1C0000 41820008 -935B07C1 48000080 -807B00DC 7C1A1800 -40810024 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 807B00DC -7C7A1850 38630001 -889B00E0 7C632051 -40800008 38630007 -1C63000C 388300E1 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -4BFFFE2C 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +38D40135 7C66D8AE +38D40138 7C86D8AE +7C041800 40820010 +38600000 38D40248 +7C66D9AE 3A940001 +2C140003 4180FFB4 +3A800000 38D40248 +7C86D8AE 2C040001 +41820018 3A940001 +2C140003 4180FFE8 +38600000 987B0237 +3A800000 3AA00000 +3B800001 887B0000 +7C151800 40820008 +3AB50001 1CD40004 +38C60002 7C66C02E +7C7A1850 2C030000 +408000D8 887B001C +38800054 7C632050 +7C1A1800 418000C0 +887B000C 2C030001 +418200B4 3B800000 +38D40138 7EC6D8AE +1C76000C 3863013B +1CB40054 7C632A14 +1CD40054 38C6000E +7C7B1A14 7C983214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 38760001 +2C030007 41800008 +3863FFF9 38D40138 +7C66D9AE 38D40135 +7C66D8AE 38D40138 +7C86D8AE 38D40248 +7C66D8AE 2C030001 +4182003C 1CD40004 +38C6023C 7F46D92E +38600001 38D40248 +7C66D9AE 38D40135 +7EC6D9AE 887B0237 +2C030001 41820010 +935B0238 38600001 +987B0237 38600000 +1C63000C 38A3000E +1CD40054 7CA53214 +1C75000C 386300DC +7C611A14 7C982A14 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 3A940001 +3AB50001 2C140003 +4180FEC4 2C1C0000 +41820008 935B07C1 +48000080 807B00DC +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00DC 7C7A1850 +38630001 889B00E0 +7C632051 40800008 +38630007 1C63000C +388300E1 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFE2C +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 From 5aa07980a1cc27a3b4395e415a97eb8ddbea0b34 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 30 Jan 2022 13:08:49 -0500 Subject: [PATCH 058/217] add log to detect noise rest stick frames causing rollbacks With this logging is appears as if noisy sticks at rest would cause rollbacks on 10% of frames or so with my controller. `[6903] Noisy stick count: 708` --- Online/Core/TriggerSendInput.asm | 127 ++++++++++++++++++++++++------- Online/Online.s | 3 +- Output/Netplay/GALE01r2.ini | 93 ++++++++++++++++------ Output/Netplay/GALJ01r2.ini | 93 ++++++++++++++++------ 4 files changed, 237 insertions(+), 79 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 1984549b..7aac6015 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -8,6 +8,7 @@ .set CONST_BACKUP_BYTES, 0xB0 # Maybe add this to Common.s .set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C +.set REG_LOCAL_SOURCE_INPUT, 29 .set REG_VARIOUS_3, 28 .set REG_ODB_ADDRESS, 27 .set REG_FRAME_INDEX, 26 @@ -50,6 +51,12 @@ lwz REG_SSRB_ADDR, ODB_SAVESTATE_SSRB_ADDR(REG_ODB_ADDRESS) # Load frame index lwz REG_FRAME_INDEX, ODB_FRAME(REG_ODB_ADDRESS) +# Load address in sp of the source input for the local player +lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from +mulli r4, r4, PAD_REPORT_SIZE +addi r3, r4, P1_PAD_OFFSET # offset from sp where local player pad report is +add REG_LOCAL_SOURCE_INPUT, sp, r3 # get ptr to local input + # Check if we have an active rollback, if so, we don't want to fetch # new data from Slippi, we just want to operate on the existing data lbz r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) @@ -81,17 +88,92 @@ li r4, CONTROLLER_COUNT * PAD_REPORT_SIZE branchl r12, Zero_AreaLength SKIP_FROZEN_INPUT_CLEAR: + ################################################################################ -# Section 2: Deal with stale? controller inputs +# Section 2: Reduce analog stick resting noise +################################################################################ +b SKIP_STICK_AT_REST_FUNCTION + +# Function to calculate whether a stick is at rest +FUNC_STICK_IS_AT_REST: +# Check x-axis between -2 and 2 +lbz r4, 0x0(r3) +extsb r4, r4 +cmpwi r4, -2 +blt STICK_NOT_AT_REST +cmpwi r4, 2 +bgt STICK_NOT_AT_REST +# Check y-axis between -2 and 2 +lbz r4, 0x1(r3) +extsb r4, r4 +cmpwi r4, -2 +blt STICK_NOT_AT_REST +cmpwi r4, 2 +bgt STICK_NOT_AT_REST +# Stick is at rest +li r3, 1 +b FUNC_STICK_IS_AT_REST_EXIT +STICK_NOT_AT_REST: +li r3, 0 +FUNC_STICK_IS_AT_REST_EXIT: +blr +SKIP_STICK_AT_REST_FUNCTION: + +addi r3, REG_LOCAL_SOURCE_INPUT, 0x2 +bl FUNC_STICK_IS_AT_REST +cmpwi r3, 0 +beq CHECK_RIGHT_STICK + +addi r3, REG_ODB_ADDRESS, ODB_LAST_LOCAL_INPUTS + 0x2 +bl FUNC_STICK_IS_AT_REST +cmpwi r3, 0 +beq CHECK_RIGHT_STICK + +# Last frame left stick and this frame left stick at rest, compare +lhz r3, 0x2(REG_LOCAL_SOURCE_INPUT) +lhz r4, 0x2+ODB_LAST_LOCAL_INPUTS(REG_ODB_ADDRESS) +cmpw r3, r4 +beq CHECK_RIGHT_STICK + +# Not equal, increment +lwz r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) +addi r3, r3, 1 +stw r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) +b STICK_REST_CHECK_END + +CHECK_RIGHT_STICK: +addi r3, REG_LOCAL_SOURCE_INPUT, 0x4 +bl FUNC_STICK_IS_AT_REST +cmpwi r3, 0 +beq STICK_REST_CHECK_END + +addi r3, REG_ODB_ADDRESS, ODB_LAST_LOCAL_INPUTS + 0x4 +bl FUNC_STICK_IS_AT_REST +cmpwi r3, 0 +beq STICK_REST_CHECK_END + +# Last frame left stick and this frame left stick at rest, compare +lhz r3, 0x4(REG_LOCAL_SOURCE_INPUT) +lhz r4, 0x4+ODB_LAST_LOCAL_INPUTS(REG_ODB_ADDRESS) +cmpw r3, r4 +beq STICK_REST_CHECK_END + +# Not equal, increment +lwz r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) +addi r3, r3, 1 +stw r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) + +STICK_REST_CHECK_END: +logf LOG_LEVEL_INFO, "[%d] Noisy stick count: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS)" + +################################################################################ +# Section 3: Deal with stale? controller inputs ################################################################################ # These seem to happen when Dolphin slows down? Or during big rollbacks? # They are problematic because they usually show up as zero inputs and # are processed differently locally, branch at 803775b4 is hit though # the zero inputs are used remotely. -lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from -mulli r4, r4, PAD_REPORT_SIZE -addi r3, r4, P1_PAD_OFFSET + 0xA # offset from sp where pad report we want is -lbzx r3, sp, r3 # Load local controller connected state +lbz r3, 0xA(REG_LOCAL_SOURCE_INPUT) # Load status byte for pad extsb r3, r3 cmpwi r3, -3 # This code probably means no new data? Not fully sure but it causes issues bne SKIP_STALE_CONTROLLER_FIX @@ -110,27 +192,21 @@ bl FN_PrintInputs # Replace the zero inputs with inputs from last frame. I believe this is what # the game does internally on a -3 status code, we need to make sure our remote # client does the same -addi r3, r4, P1_PAD_OFFSET -add r3, sp, r3 # destination +mr r3, REG_LOCAL_SOURCE_INPUT # destination addi r4, REG_ODB_ADDRESS, ODB_LAST_LOCAL_INPUTS # source li r5, PAD_REPORT_SIZE branchl r12, memcpy SKIP_STALE_CONTROLLER_FIX: -# Back up inputs to use for next frame if we get stale inputs -lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from -mulli r4, r4, PAD_REPORT_SIZE -addi r4, r4, P1_PAD_OFFSET # offset from sp where pad report we want is - # Move over pad data into last inputs storage addi r3, REG_ODB_ADDRESS, ODB_LAST_LOCAL_INPUTS # destination -add r4, sp, r4 # source +mr r4, REG_LOCAL_SOURCE_INPUT # source li r5, PAD_REPORT_SIZE branchl r12, memcpy ################################################################################ -# Section 3: Send this frame's pad data over EXI +# Section 4: Send this frame's pad data over EXI ################################################################################ # Write command byte to transfer buffer @@ -148,14 +224,9 @@ stw r3, TXB_FINALIZED_FRAME(REG_TXB_ADDRESS) lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) stb r3, TXB_DELAY(REG_TXB_ADDRESS) -# prepare to send local player pad -lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from -mulli r4, r4, PAD_REPORT_SIZE -addi r4, r4, P1_PAD_OFFSET # offset from sp where pad report we want is - -# Move over pad data into transfer buffer +# Move local pad data into transfer buffer addi r3, REG_TXB_ADDRESS, TXB_PAD # destination -add r4, sp, r4 # source +mr r4, REG_LOCAL_SOURCE_INPUT # source li r5, PAD_REPORT_SIZE branchl r12, memcpy @@ -176,7 +247,7 @@ li r5, CONST_ExiWrite branchl r12, FN_EXITransferBuffer ################################################################################ -# Section 4: Receive response and determine whether this input will be used +# Section 5: Receive response and determine whether this input will be used ################################################################################ # Get response from Slippi and figure out whether this input should be skipped @@ -221,7 +292,7 @@ stb r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) RESP_RES_CONTINUE: ################################################################################ -# Section 5: Overwrite this frame's pad data with data from x frames ago +# Section 6: Overwrite this frame's pad data with data from x frames ago ################################################################################ # get delayed pad data offset from @@ -241,7 +312,7 @@ li r5, PAD_REPORT_SIZE branchl r12, memcpy ################################################################################ -# Section 6: Copy local inputs into buffer for use if a rollback happens +# Section 7: Copy local inputs into buffer for use if a rollback happens ################################################################################ # get write location for inputs @@ -280,7 +351,7 @@ SKIP_LOCAL_INPUT_BUFFER_INDEX_WRAP: stb r3, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS) ################################################################################ -# Section 7: Add this frame's pad data to delay buffer +# Section 8: Add this frame's pad data to delay buffer ################################################################################ # prepare offset of current buffer data location @@ -316,7 +387,7 @@ SKIP_DELAY_BUFFER_INDEX_WRAP: stb r3, ODB_DELAY_BUFFER_INDEX(REG_ODB_ADDRESS) ################################################################################ -# Section 7.5: Determine if we need to check for opponent inputs +# Section 9: Determine if we need to check for opponent inputs ################################################################################ # If we already have an active rollback that we are waiting to be processed, just update # the end frame so that this new frame of inputs gets used. TRIGGER_ROLLBACK already handles @@ -332,7 +403,7 @@ bne TRIGGER_ROLLBACK # If state should be loaded, TRIGGER_ROLLBACK ROLLBACK_NOT_ACTIVE: ################################################################################ -# Section 8: Check if we have prepared for rollback and inputs have been received +# Section 10: Check if we have prepared for rollback and inputs have been received ################################################################################ .set REG_ROLLBACK_REQUIRED, REG_VARIOUS_3 @@ -652,7 +723,7 @@ stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) #logf LOG_LEVEL_WARN, "Reset savestate flags to 0" ################################################################################ -# Section 9: Try to read opponent's input for this frame +# Section 11: Try to read opponent's input for this frame ################################################################################ .set REG_REMOTE_PLAYER_IDX, REG_VARIOUS_2 diff --git a/Online/Online.s b/Online/Online.s index e601d760..6f37be19 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -224,7 +224,8 @@ .set ODB_HUD_CANVAS, ODB_SHOULD_FORCE_PAD_RENEW + 1 # u32 .set ODB_PAUSE_COUNTER, ODB_HUD_CANVAS + 4 # u32 .set ODB_FINALIZED_FRAME, ODB_PAUSE_COUNTER + 4 # u32 -.set ODB_SIZE, ODB_FINALIZED_FRAME + 4 +.set ODB_REST_STICK_CHANGE_COUNTER, ODB_FINALIZED_FRAME + 4 # u32 +.set ODB_SIZE, ODB_REST_STICK_CHANGE_COUNTER + 4 .set TXB_CMD, 0 # u8 .set TXB_FRAME, TXB_CMD + 1 # s32 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index beb5172a..de14d090 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1184,10 +1184,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C5 +40820338 386007C9 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C5 +7C7B1B78 388007C9 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1213,7 +1213,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C5 +93790005 386007C9 90790009 9359000D 3860010A 90790011 807B024F 90790015 @@ -1573,44 +1573,87 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E5 #Online/Core/TriggerSendInput.asm +C2376A28 00000110 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206F0 3C608047 +40820848 3C608047 60639D64 80630000 -2C030000 408206DC +2C030000 40820834 836DB61C 833B00D2 831B00D6 82FB024B -835B0003 887B00DA +835B0003 889B0002 +1C84000C 386400DC +7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -4182062C 887B001C +41820774 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 3D808000 618CC160 7D8903A6 4E800421 -889B0002 1C84000C -386400E6 7C6118AE -7C630774 2C03FFFD -40820024 386400DC -7C611A14 389B0010 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 889B0002 -1C84000C 388400DC -387B0010 7C812214 +48000044 88830000 +7C840774 2C04FFFE +4180002C 2C040002 +41810024 88830001 +7C840774 2C04FFFE +41800014 2C040002 +4181000C 38600001 +48000008 38600000 +4E800020 387D0002 +4BFFFFBD 2C030000 +41820034 387B0012 +4BFFFFAD 2C030000 +41820024 A07D0002 +A09B0012 7C032000 +41820014 807B07C5 +38630001 907B07C5 +48000040 387D0004 +4BFFFF7D 2C030000 +41820030 387B0014 +4BFFFF6D 2C030000 +41820020 A07D0004 +A09B0014 7C032000 +41820010 807B07C5 +38630001 907B07C5 +48000024 4E800021 +5B25645D 204E6F69 +73792073 7469636B +20636F75 6E743A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB07C5 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB5 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887D000A 7C630774 +2C03FFFD 40820020 +7FA3EB78 389B0010 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 386000B0 -98790000 93590001 -807B07C1 90790005 -887B001C 98790009 -889B0002 1C84000C -388400DC 3879000A -7C812214 38A0000C +4E800421 387B0010 +7FA4EB78 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +386000B0 98790000 +93590001 807B07C1 +90790005 887B001C +98790009 3879000A +7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 7F23CB78 38800016 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index dbad6427..4a94260a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1184,10 +1184,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C5 +40820338 386007C9 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C5 +7C7B1B78 388007C9 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1213,7 +1213,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C5 +93790005 386007C9 90790009 9359000D 3860010A 90790011 807B024F 90790015 @@ -1573,44 +1573,87 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 000000E5 #Online/Core/TriggerSendInput.asm +C2376A28 00000110 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206F0 3C608047 +40820848 3C608047 60639D64 80630000 -2C030000 408206DC +2C030000 40820834 836DB61C 833B00D2 831B00D6 82FB024B -835B0003 887B00DA +835B0003 889B0002 +1C84000C 386400DC +7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -4182062C 887B001C +41820774 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 3D808000 618CC160 7D8903A6 4E800421 -889B0002 1C84000C -386400E6 7C6118AE -7C630774 2C03FFFD -40820024 386400DC -7C611A14 389B0010 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 889B0002 -1C84000C 388400DC -387B0010 7C812214 +48000044 88830000 +7C840774 2C04FFFE +4180002C 2C040002 +41810024 88830001 +7C840774 2C04FFFE +41800014 2C040002 +4181000C 38600001 +48000008 38600000 +4E800020 387D0002 +4BFFFFBD 2C030000 +41820034 387B0012 +4BFFFFAD 2C030000 +41820024 A07D0002 +A09B0012 7C032000 +41820014 807B07C5 +38630001 907B07C5 +48000040 387D0004 +4BFFFF7D 2C030000 +41820030 387B0014 +4BFFFF6D 2C030000 +41820020 A07D0004 +A09B0014 7C032000 +41820010 807B07C5 +38630001 907B07C5 +48000024 4E800021 +5B25645D 204E6F69 +73792073 7469636B +20636F75 6E743A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB07C5 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB5 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887D000A 7C630774 +2C03FFFD 40820020 +7FA3EB78 389B0010 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 386000B0 -98790000 93590001 -807B07C1 90790005 -887B001C 98790009 -889B0002 1C84000C -388400DC 3879000A -7C812214 38A0000C +4E800421 387B0010 +7FA4EB78 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +386000B0 98790000 +93590001 807B07C1 +90790005 887B001C +98790009 3879000A +7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 7F23CB78 38800016 From 0c08fbcc2b78677ec38d77a625448af1c5d582d7 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 30 Jan 2022 15:36:09 -0500 Subject: [PATCH 059/217] add logic to clamp stick at rest to 0 --- Online/Core/TriggerSendInput.asm | 84 ++++++++------------------------ Output/Netplay/GALE01r2.ini | 54 ++++---------------- Output/Netplay/GALJ01r2.ini | 54 ++++---------------- 3 files changed, 39 insertions(+), 153 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 7aac6015..d4d9bcaa 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -93,78 +93,36 @@ SKIP_FROZEN_INPUT_CLEAR: # Section 2: Reduce analog stick resting noise ################################################################################ b SKIP_STICK_AT_REST_FUNCTION - -# Function to calculate whether a stick is at rest -FUNC_STICK_IS_AT_REST: -# Check x-axis between -2 and 2 +# Function to clamp a stick if it is at rest (to prevent noise from triggering rollbacks) +# This happens on about 10% of frames as per the testing done: +# https://github.com/project-slippi/slippi-ssbm-asm/commit/5aa07980a1cc27a3b4395e415a97eb8ddbea0b34 +FUNC_CLAMP_STICK_AT_REST: +.set CONST_REST_THRESH, 2 +# Check x-axis between at rest range lbz r4, 0x0(r3) extsb r4, r4 -cmpwi r4, -2 -blt STICK_NOT_AT_REST -cmpwi r4, 2 -bgt STICK_NOT_AT_REST -# Check y-axis between -2 and 2 +cmpwi r4, -CONST_REST_THRESH +blt FUNC_CLAMP_STICK_AT_REST_EXIT +cmpwi r4, CONST_REST_THRESH +bgt FUNC_CLAMP_STICK_AT_REST_EXIT +# Check y-axis between at rest range lbz r4, 0x1(r3) extsb r4, r4 -cmpwi r4, -2 -blt STICK_NOT_AT_REST -cmpwi r4, 2 -bgt STICK_NOT_AT_REST -# Stick is at rest -li r3, 1 -b FUNC_STICK_IS_AT_REST_EXIT -STICK_NOT_AT_REST: -li r3, 0 -FUNC_STICK_IS_AT_REST_EXIT: +cmpwi r4, -CONST_REST_THRESH +blt FUNC_CLAMP_STICK_AT_REST_EXIT +cmpwi r4, CONST_REST_THRESH +bgt FUNC_CLAMP_STICK_AT_REST_EXIT +# Clamp stick that is at rest +li r4, 0 +sth r4, 0x0(r3) +FUNC_CLAMP_STICK_AT_REST_EXIT: blr SKIP_STICK_AT_REST_FUNCTION: addi r3, REG_LOCAL_SOURCE_INPUT, 0x2 -bl FUNC_STICK_IS_AT_REST -cmpwi r3, 0 -beq CHECK_RIGHT_STICK - -addi r3, REG_ODB_ADDRESS, ODB_LAST_LOCAL_INPUTS + 0x2 -bl FUNC_STICK_IS_AT_REST -cmpwi r3, 0 -beq CHECK_RIGHT_STICK - -# Last frame left stick and this frame left stick at rest, compare -lhz r3, 0x2(REG_LOCAL_SOURCE_INPUT) -lhz r4, 0x2+ODB_LAST_LOCAL_INPUTS(REG_ODB_ADDRESS) -cmpw r3, r4 -beq CHECK_RIGHT_STICK - -# Not equal, increment -lwz r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) -addi r3, r3, 1 -stw r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) -b STICK_REST_CHECK_END - -CHECK_RIGHT_STICK: +bl FUNC_CLAMP_STICK_AT_REST addi r3, REG_LOCAL_SOURCE_INPUT, 0x4 -bl FUNC_STICK_IS_AT_REST -cmpwi r3, 0 -beq STICK_REST_CHECK_END - -addi r3, REG_ODB_ADDRESS, ODB_LAST_LOCAL_INPUTS + 0x4 -bl FUNC_STICK_IS_AT_REST -cmpwi r3, 0 -beq STICK_REST_CHECK_END - -# Last frame left stick and this frame left stick at rest, compare -lhz r3, 0x4(REG_LOCAL_SOURCE_INPUT) -lhz r4, 0x4+ODB_LAST_LOCAL_INPUTS(REG_ODB_ADDRESS) -cmpw r3, r4 -beq STICK_REST_CHECK_END - -# Not equal, increment -lwz r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) -addi r3, r3, 1 -stw r3, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS) - -STICK_REST_CHECK_END: -logf LOG_LEVEL_INFO, "[%d] Noisy stick count: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_REST_STICK_CHANGE_COUNTER(REG_ODB_ADDRESS)" +bl FUNC_CLAMP_STICK_AT_REST ################################################################################ # Section 3: Deal with stale? controller inputs diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index de14d090..ca350dbc 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1573,14 +1573,14 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 00000110 #Online/Core/TriggerSendInput.asm +C2376A28 000000EC #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820848 3C608047 +40820728 3C608047 60639D64 80630000 -2C030000 40820834 +2C030000 40820714 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 889B0002 @@ -1588,58 +1588,22 @@ C2376A28 00000110 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820774 887B001C +41820654 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 3D808000 618CC160 7D8903A6 4E800421 -48000044 88830000 +48000040 88830000 7C840774 2C04FFFE 4180002C 2C040002 41810024 88830001 7C840774 2C04FFFE 41800014 2C040002 -4181000C 38600001 -48000008 38600000 -4E800020 387D0002 -4BFFFFBD 2C030000 -41820034 387B0012 -4BFFFFAD 2C030000 -41820024 A07D0002 -A09B0012 7C032000 -41820014 807B07C5 -38630001 907B07C5 -48000040 387D0004 -4BFFFF7D 2C030000 -41820030 387B0014 -4BFFFF6D 2C030000 -41820020 A07D0004 -A09B0014 7C032000 -41820010 807B07C5 -38630001 907B07C5 -48000024 4E800021 -5B25645D 204E6F69 -73792073 7469636B -20636F75 6E743A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB07C5 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB5 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +4181000C 38800000 +B0830000 4E800020 +387D0002 4BFFFFC1 +387D0004 4BFFFFB9 887D000A 7C630774 2C03FFFD 40820020 7FA3EB78 389B0010 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 4a94260a..a85b29ff 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1573,14 +1573,14 @@ C0570010 3D80803A 4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 -C2376A28 00000110 #Online/Core/TriggerSendInput.asm +C2376A28 000000EC #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820848 3C608047 +40820728 3C608047 60639D64 80630000 -2C030000 40820834 +2C030000 40820714 836DB61C 833B00D2 831B00D6 82FB024B 835B0003 889B0002 @@ -1588,58 +1588,22 @@ C2376A28 00000110 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820774 887B001C +41820654 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 3D808000 618CC160 7D8903A6 4E800421 -48000044 88830000 +48000040 88830000 7C840774 2C04FFFE 4180002C 2C040002 41810024 88830001 7C840774 2C04FFFE 41800014 2C040002 -4181000C 38600001 -48000008 38600000 -4E800020 387D0002 -4BFFFFBD 2C030000 -41820034 387B0012 -4BFFFFAD 2C030000 -41820024 A07D0002 -A09B0012 7C032000 -41820014 807B07C5 -38630001 907B07C5 -48000040 387D0004 -4BFFFF7D 2C030000 -41820030 387B0014 -4BFFFF6D 2C030000 -41820020 A07D0004 -A09B0014 7C032000 -41820010 807B07C5 -38630001 907B07C5 -48000024 4E800021 -5B25645D 204E6F69 -73792073 7469636B -20636F75 6E743A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB07C5 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB5 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +4181000C 38800000 +B0830000 4E800020 +387D0002 4BFFFFC1 +387D0004 4BFFFFB9 887D000A 7C630774 2C03FFFD 40820020 7FA3EB78 389B0010 From 70cf476f9384e93051ea075221a217d982bb6b16 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sun, 30 Jan 2022 13:12:53 -0800 Subject: [PATCH 060/217] feat: add UIDs to replays --- Online/Online.s | 6 +++- Recording/Recording.s | 2 +- Recording/SendGameInfo.asm | 68 ++++++++++++++++++++++++++++++++++---- 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/Online/Online.s b/Online/Online.s index 3ef9bf2e..d16e45ab 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -273,7 +273,11 @@ .set MSRB_P2_CONNECT_CODE, MSRB_P1_CONNECT_CODE + 10 # string (10) hashtag is shift-jis .set MSRB_P3_CONNECT_CODE, MSRB_P2_CONNECT_CODE + 10 # string (10) hashtag is shift-jis .set MSRB_P4_CONNECT_CODE, MSRB_P3_CONNECT_CODE + 10 # string (10) hashtag is shift-jis -.set MSRB_ERROR_MSG, MSRB_P4_CONNECT_CODE + 10 # string (241) +.set MSRB_P1_SLIPPI_UID, MSRB_P4_CONNECT_CODE + 10 # string (29) +.set MSRB_P2_SLIPPI_UID, MSRB_P1_SLIPPI_UID + 29 # string (29) +.set MSRB_P3_SLIPPI_UID, MSRB_P2_SLIPPI_UID + 29 # string (29) +.set MSRB_P4_SLIPPI_UID, MSRB_P3_SLIPPI_UID + 29 # string (29) +.set MSRB_ERROR_MSG, MSRB_P4_SLIPPI_UID + 29 # string (241) .set ERROR_MESSAGE_LEN, 241 .set MSRB_GAME_INFO_BLOCK, MSRB_ERROR_MSG + ERROR_MESSAGE_LEN # MATCH_STRUCT_LEN .set MSRB_SIZE, MSRB_GAME_INFO_BLOCK + MATCH_STRUCT_LEN diff --git a/Recording/Recording.s b/Recording/Recording.s index c2d716b1..5a246444 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -15,7 +15,7 @@ # Payload lengths, if any additional data is added, these must be incremented .set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count -.set GAME_INFO_PAYLOAD_LENGTH, 584 # byte count +.set GAME_INFO_PAYLOAD_LENGTH, 700 # byte count .set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count .set GAME_PRE_FRAME_PAYLOAD_LENGTH, 63 # byte count .set GAME_POST_FRAME_PAYLOAD_LENGTH, 80 # byte count diff --git a/Recording/SendGameInfo.asm b/Recording/SendGameInfo.asm index fcdf5687..185caf78 100644 --- a/Recording/SendGameInfo.asm +++ b/Recording/SendGameInfo.asm @@ -368,7 +368,7 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: # Before trying to load match state, make sure we are in an online scene getMinorMajor r3 cmpwi r3, SCENE_ONLINE_IN_GAME - bne DISPLAY_CC_WRITE_ZERO # If not online in-game, skip normal processing + bne DISPLAY_CC_UID_WRITE_ZERO # If not online in-game, skip normal processing # Get MSRB address li r3,0 @@ -470,18 +470,74 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: cmpwi REG_LoopCount,4 blt CONNECT_CODE_LOOP +#------------- SEND Slippi UIDs ------------ +.set SlippiUIDStart, (ConnectCodeStart + ConnectCodeLength) +.set SlippiUIDLength,0x74 +# Offsets +.set PlayerDataStart,96 #player data starts in match struct +.set PlayerDataLength,36 #length of each player's data +.set PlayerStatus,0x1 #offset of players in-game status +# Constants +.set SlippiUIDBytesToCopy,29 # 1 bytes per char + 1 byte for null terminator = 29 bytes +# Registers +.set REG_LoopCount,20 +.set REG_PlayerDataStart,21 +.set REG_CurrentPlayerData,22 +.set REG_BufferSlippiUIDStart,23 +.set REG_BufferCurrentSlippiUID,24 +.set REG_MSRB_SlippiUIDStart,26 + +# Init loop + li REG_LoopCount,0 + addi REG_PlayerDataStart,r31,PlayerDataStart # player data start in match struct + addi REG_BufferSlippiUIDStart,REG_Buffer,SlippiUIDStart # Start of write buffer + addi REG_MSRB_SlippiUIDStart,REG_MSRB,MSRB_P1_SLIPPI_UID # Start of read buffer + + SLIPPI_UID_LOOP: +#Next write position + mulli r3,REG_LoopCount,SlippiUIDBytesToCopy + add REG_BufferCurrentSlippiUID,r3,REG_BufferSlippiUIDStart + +#Check if player exists + mulli REG_CurrentPlayerData,REG_LoopCount,PlayerDataLength + add REG_CurrentPlayerData,REG_CurrentPlayerData,REG_PlayerDataStart + lbz r3,PlayerStatus(REG_CurrentPlayerData) + cmpwi r3,0 + bne SEND_SLIPPI_UID_NO_CODE + +#Next read offset + mulli r3,REG_LoopCount,SlippiUIDBytesToCopy + +#Copy from read position to write position + add r4,r3,REG_MSRB_SlippiUIDStart # src (MSRB_SlippiUIDStart + offset) + mr r3,REG_BufferCurrentSlippiUID # dest + li r5,SlippiUIDBytesToCopy # length + branchl r12,memcpy + b SLIPPI_UID_INC_LOOP + + SEND_SLIPPI_UID_NO_CODE: +# Fill with zeroes + mr r3,REG_BufferCurrentSlippiUID + li r4,SlippiUIDBytesToCopy + branchl r12,Zero_AreaLength + + SLIPPI_UID_INC_LOOP: + addi REG_LoopCount,REG_LoopCount,1 + cmpwi REG_LoopCount,4 + blt SLIPPI_UID_LOOP + # Free MSRB mr r3,REG_MSRB branchl r12,HSD_Free - b SEND_CONNECT_CODE_END + b SEND_SLIPPI_UID_END - DISPLAY_CC_WRITE_ZERO: -# We will get here if not online. Just zero out the entire display name and cc sections + DISPLAY_CC_UID_WRITE_ZERO: +# We will get here if not online. Just zero out the entire display name, cc, and uid sections addi r3, REG_Buffer, DisplayNameStart - li r4, 4 * (DisplayNameBytesToCopy + ConnectCodeBytesToCopy) + li r4, 4 * (DisplayNameBytesToCopy + ConnectCodeBytesToCopy + SlippiUIDBytesToCopy) branchl r12,Zero_AreaLength - SEND_CONNECT_CODE_END: + SEND_SLIPPI_UID_END: #------------- Transfer Buffer ------------ mr r3,REG_Buffer li r4,MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH+1 + GAME_INFO_PAYLOAD_LENGTH+1 From eb93acd6889928eb4d6cd84d9b7eed6dd94f1164 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sun, 30 Jan 2022 13:13:06 -0800 Subject: [PATCH 061/217] chore: build codeset --- Output/Netplay/GALE01r2.ini | 248 +++++++++++++++++++----------------- Output/Netplay/GALJ01r2.ini | 248 +++++++++++++++++++----------------- 2 files changed, 262 insertions(+), 234 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index d243906c..c60ba0c0 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -626,12 +626,12 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000EB #Recording/SendGameInfo.asm +C216E74C 000000F9 #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820718 +2C030000 4182078C 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -650,7 +650,7 @@ C216E74C 000000EB #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 38600248 +987E0002 386002BC B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -728,7 +728,7 @@ B07E0015 3860003D 5463443E B07E01C0 3C608048 80639D30 5463443E 2C030208 -4082011C 38600000 +40820190 38600000 3D808000 618C5610 7D8903A6 4E800421 7C791B78 3A800000 @@ -760,108 +760,122 @@ B07E0015 3860003D 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 -4180FFA0 7F23CB78 -3D808037 618CF1B0 +4180FFA0 3A800000 +3ABF0060 3AFE0266 +3B590117 1C74001D +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74001D 7C83D214 +7F03C378 38A0001D +3D808000 618C31F4 7D8903A6 4E800421 -4800001C 387E01C2 -388000A4 3D808000 +4800001C 7F03C378 +3880001D 3D808000 618CC160 7D8903A6 -4E800421 7FC3F378 -38800266 38A00001 -3D808000 618C55F0 +4E800421 3A940001 +2C140004 4180FFA0 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 4800001C +387E01C2 38800118 +3D808000 618CC160 7D8903A6 4E800421 -38600205 3D808037 -618CF1E4 7D8903A6 -4E800421 7C751B78 -3C608000 60635600 -80630000 3AE30008 -38600010 98750000 -3860003D 98750203 -38600200 B0750201 -38600000 98750204 -3AC00000 7C76E050 -2C030200 41810010 -B0750201 38600001 -98750204 38750001 -7EE4BB78 7C84B214 -A0B50201 3D808000 -618C31F4 7D8903A6 -4E800421 7EA3AB78 -38800205 38A00001 -3D808000 618C55F0 +7FC3F378 388002DA +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 7D8903A6 4E800421 -3AD60200 7C16E000 -4180FFA4 7EA3AB78 -3D808037 618CF1B0 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 7D8903A6 4E800421 -48000070 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -806DB64C 83A30000 -838DB650 7FBDE214 -3860003A 987D0000 -806DB654 907D0001 -3C60804D 80635F90 -907D0005 3C608048 -80639D60 907D0009 -838DB650 3B9C000D -938DB650 BA810008 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 48000124 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200D8 +3B7B0001 2C1B000F +418100CC 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +83CDB650 3BDE002B +93CDB650 3BFF002B +83BD0008 2C1D0000 +4082FF30 BA810008 800100B4 382100B0 7C0803A6 4E800020 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A0000F -3D808038 618CFD54 -7D8903A6 4E800421 -48000124 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -806DB64C 83E30000 -83CDB650 7FFFF214 -3B600000 806DC18C -83A30024 2C1D0000 -418200D8 3B7B0001 -2C1B000F 418100CC -839D002C 3860003B -987F0000 806DB654 -907F0001 807C0010 -B07F0005 807C0024 -987F0007 807C002C -907F0008 807C0040 -907F000C 807C0044 -907F0010 807C004C -907F0014 807C0050 -907F0018 807C0C9C -B07F001C 807C0D44 -907F001E 807C001C -907F0022 887C0DD7 -987F0026 887C0DDB -987F0027 887C0DEB -987F0028 887C0DEF -987F0029 807C0518 -2C030000 41820018 -8063002C 2C030000 -4182000C 8863000C -48000008 3860FFFF -987F002A 83CDB650 -3BDE002B 93CDB650 -3BFF002B 83BD0008 -2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 3C608017 -60000000 00000000 +3C608017 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -1230,7 +1244,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 88780004 987B0001 80780005 907B0007 3C80804D 90645F90 -7FE3FB78 38980208 +7FE3FB78 3898027C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 @@ -2694,15 +2708,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C791B78 38600004 +7C761B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38790000 +7C781B78 38760000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38790000 48000261 +38760000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 @@ -2917,7 +2931,7 @@ BA810008 800100B4 887E0000 2C030005 408200A8 3B60000B 3B200000 3B000000 -3AE00000 3ADE0117 +3AE00000 3ADE018B 7EB6C8AE 56A00631 41820010 3B390002 3B180001 48000018 @@ -2932,7 +2946,7 @@ BA810008 800100B4 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 -387E0208 7C96CA14 +387E027C 7C96CA14 7C041800 40800010 2C1B000E 41810008 4BFFFF78 4800014C @@ -3148,7 +3162,7 @@ BE810008 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600340 +93E30000 386003B4 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -4488,7 +4502,7 @@ BE810008 38600000 989E004A C03F0000 D03E0008 C03F0004 D03E0024 D03E0028 -887D0210 2C030001 +887D0284 2C030001 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C @@ -4515,12 +4529,12 @@ C03F0004 D03E0024 D03E0028 38800001 989E004A 989E0049 C03F0000 D03E0008 -7FC3F378 A09D0216 +7FC3F378 A09D028A 3D808000 618C5690 7D8903A6 4E800421 2C030001 41820058 3CA0803B 60A57808 -A0DD0216 38600000 +A0DD028A 38600000 1C830002 7C85222E 7C043000 41820014 38630001 2C03001D @@ -4589,7 +4603,7 @@ BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 -1C630024 389F0268 +1C630024 389F02DC 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -4891,9 +4905,9 @@ FF2121EE 0000EE00 98640008 887F0087 9864000E 38600000 9864FFFF 9864FFFB -887E0210 2C030000 +887E0284 2C030000 418200F4 887E0003 -1C630024 38630271 +1C630024 386302E5 7F7E18AE 38600002 98640002 38600001 9864FFFB 98640006 @@ -4927,7 +4941,7 @@ FF2121EE 0000EE00 90640014 887F0063 98640018 887F0084 9064001C 887F0087 -98640020 887E0210 +98640020 887E0284 2C030000 41820024 887F00A8 90640024 887F00AB 98640028 @@ -4981,24 +4995,24 @@ BE810008 38600000 7D8903A6 4E800421 7C7F1B78 83CD8840 3BDE0598 7FC3F378 -389F0208 38A00138 +389F027C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 7FC3F378 3D808000 618C5694 7D8903A6 4E800421 3D808017 618CEB30 7D8903A6 -4E800421 889F0268 -98830000 889F026B +4E800421 889F02DC +98830000 889F02DF 98830001 38800000 98830002 38800003 98830005 38800078 98830004 3C80803D 6084DEC8 8084000C -887F028C 98640002 +887F0300 98640002 38602121 B0640003 3C808049 60840880 -887F028F 98640016 +887F0303 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 BA810008 @@ -5146,7 +5160,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 2C030000 40820018 -38600340 3D808037 +386003B4 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5154,7 +5168,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800340 38A00000 +388003B4 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 562bb0c4..658b9fee 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -626,12 +626,12 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000EB #Recording/SendGameInfo.asm +C216E74C 000000F9 #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820718 +2C030000 4182078C 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -650,7 +650,7 @@ C216E74C 000000EB #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 38600248 +987E0002 386002BC B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -728,7 +728,7 @@ B07E0015 3860003D 5463443E B07E01C0 3C608048 80639D30 5463443E 2C030208 -4082011C 38600000 +40820190 38600000 3D808000 618C5610 7D8903A6 4E800421 7C791B78 3A800000 @@ -760,108 +760,122 @@ B07E0015 3860003D 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 -4180FFA0 7F23CB78 -3D808037 618CF1B0 +4180FFA0 3A800000 +3ABF0060 3AFE0266 +3B590117 1C74001D +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74001D 7C83D214 +7F03C378 38A0001D +3D808000 618C31F4 7D8903A6 4E800421 -4800001C 387E01C2 -388000A4 3D808000 +4800001C 7F03C378 +3880001D 3D808000 618CC160 7D8903A6 -4E800421 7FC3F378 -38800266 38A00001 -3D808000 618C55F0 +4E800421 3A940001 +2C140004 4180FFA0 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 4800001C +387E01C2 38800118 +3D808000 618CC160 7D8903A6 4E800421 -38600205 3D808037 -618CF1E4 7D8903A6 -4E800421 7C751B78 -3C608000 60635600 -80630000 3AE30008 -38600010 98750000 -3860003D 98750203 -38600200 B0750201 -38600000 98750204 -3AC00000 7C76E050 -2C030200 41810010 -B0750201 38600001 -98750204 38750001 -7EE4BB78 7C84B214 -A0B50201 3D808000 -618C31F4 7D8903A6 -4E800421 7EA3AB78 -38800205 38A00001 -3D808000 618C55F0 +7FC3F378 388002DA +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 7D8903A6 4E800421 -3AD60200 7C16E000 -4180FFA4 7EA3AB78 -3D808037 618CF1B0 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 7D8903A6 4E800421 -48000070 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -806DB64C 83A30000 -838DB650 7FBDE214 -3860003A 987D0000 -806DB654 907D0001 -3C60804D 80635F90 -907D0005 3C608048 -80639D60 907D0009 -838DB650 3B9C000D -938DB650 BA810008 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 48000124 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200D8 +3B7B0001 2C1B000F +418100CC 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +83CDB650 3BDE002B +93CDB650 3BFF002B +83BD0008 2C1D0000 +4082FF30 BA810008 800100B4 382100B0 7C0803A6 4E800020 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A0000F -3D808038 618CFD54 -7D8903A6 4E800421 -48000124 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -806DB64C 83E30000 -83CDB650 7FFFF214 -3B600000 806DC18C -83A30024 2C1D0000 -418200D8 3B7B0001 -2C1B000F 418100CC -839D002C 3860003B -987F0000 806DB654 -907F0001 807C0010 -B07F0005 807C0024 -987F0007 807C002C -907F0008 807C0040 -907F000C 807C0044 -907F0010 807C004C -907F0014 807C0050 -907F0018 807C0C9C -B07F001C 807C0D44 -907F001E 807C001C -907F0022 887C0DD7 -987F0026 887C0DDB -987F0027 887C0DEB -987F0028 887C0DEF -987F0029 807C0518 -2C030000 41820018 -8063002C 2C030000 -4182000C 8863000C -48000008 3860FFFF -987F002A 83CDB650 -3BDE002B 93CDB650 -3BFF002B 83BD0008 -2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 3C608017 -60000000 00000000 +3C608017 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -1230,7 +1244,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 88780004 987B0001 80780005 907B0007 3C80804D 90645F90 -7FE3FB78 38980208 +7FE3FB78 3898027C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 @@ -2694,15 +2708,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C791B78 38600004 +7C761B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38790000 +7C781B78 38760000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38790000 48000261 +38760000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 @@ -2917,7 +2931,7 @@ BA810008 800100B4 887E0000 2C030005 408200A8 3B60000B 3B200000 3B000000 -3AE00000 3ADE0117 +3AE00000 3ADE018B 7EB6C8AE 56A00631 41820010 3B390002 3B180001 48000018 @@ -2932,7 +2946,7 @@ BA810008 800100B4 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 -387E0208 7C96CA14 +387E027C 7C96CA14 7C041800 40800010 2C1B000E 41810008 4BFFFF78 4800014C @@ -3148,7 +3162,7 @@ BE810008 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600340 +93E30000 386003B4 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -4488,7 +4502,7 @@ BE810008 38600000 989E004A C03F0000 D03E0008 C03F0004 D03E0024 D03E0028 -887D0210 2C030001 +887D0284 2C030001 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C @@ -4515,12 +4529,12 @@ C03F0004 D03E0024 D03E0028 38800001 989E004A 989E0049 C03F0000 D03E0008 -7FC3F378 A09D0216 +7FC3F378 A09D028A 3D808000 618C5690 7D8903A6 4E800421 2C030001 41820058 3CA0803B 60A57808 -A0DD0216 38600000 +A0DD028A 38600000 1C830002 7C85222E 7C043000 41820014 38630001 2C03001D @@ -4589,7 +4603,7 @@ BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 -1C630024 389F0268 +1C630024 389F02DC 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -4891,9 +4905,9 @@ FF2121EE 0000EE00 98640008 887F0087 9864000E 38600000 9864FFFF 9864FFFB -887E0210 2C030000 +887E0284 2C030000 418200F4 887E0003 -1C630024 38630271 +1C630024 386302E5 7F7E18AE 38600002 98640002 38600001 9864FFFB 98640006 @@ -4927,7 +4941,7 @@ FF2121EE 0000EE00 90640014 887F0063 98640018 887F0084 9064001C 887F0087 -98640020 887E0210 +98640020 887E0284 2C030000 41820024 887F00A8 90640024 887F00AB 98640028 @@ -4981,24 +4995,24 @@ BE810008 38600000 7D8903A6 4E800421 7C7F1B78 83CD8840 3BDE0598 7FC3F378 -389F0208 38A00138 +389F027C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 7FC3F378 3D808000 618C5694 7D8903A6 4E800421 3D808017 618CEB30 7D8903A6 -4E800421 889F0268 -98830000 889F026B +4E800421 889F02DC +98830000 889F02DF 98830001 38800000 98830002 38800003 98830005 38800078 98830004 3C80803D 6084DEC8 8084000C -887F028C 98640002 +887F0300 98640002 38602121 B0640003 3C808049 60840880 -887F028F 98640016 +887F0303 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 BA810008 @@ -5146,7 +5160,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 2C030000 40820018 -38600340 3D808037 +386003B4 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5154,7 +5168,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800340 38A00000 +388003B4 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA810008 From 5141592d12e736503a252cf2f0ed3f295d9c9008 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 1 Feb 2022 17:25:15 -0500 Subject: [PATCH 062/217] fix bugs which could cause game to hang This happened when the game tried to load a savestate that didn't exist. There were two reasons this would happen: 1. A frame advance request would cause a rollback request to a frame that had yet to be processed 2. A frame advance would cause the frame processing loop to iterate a few extra times in the case of a rollback when it wasn't supposed to --- Online/Core/ForceInputRefetchOnAdvance.asm | 3 +- .../Hacks/PreventPadAlarmDuringRollback.asm | 2 +- Online/Core/LoopEngineForRollback.asm | 35 ++- Online/Core/StartEngineLoop.asm | 68 +++-- Online/Core/TriggerSendInput.asm | 16 +- Online/Static/LoadState.asm | 15 +- Output/Netplay/GALE01r2.ini | 233 +++++++++++------- Output/Netplay/GALJ01r2.ini | 233 +++++++++++------- 8 files changed, 387 insertions(+), 218 deletions(-) diff --git a/Online/Core/ForceInputRefetchOnAdvance.asm b/Online/Core/ForceInputRefetchOnAdvance.asm index d4526769..a3cd3156 100644 --- a/Online/Core/ForceInputRefetchOnAdvance.asm +++ b/Online/Core/ForceInputRefetchOnAdvance.asm @@ -23,8 +23,7 @@ lbz r3, ODB_IS_FRAME_ADVANCE(r5) cmpwi r3, 0 beq EXIT -# lwz r3, ODB_FRAME(r5) -# logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "mr 5, 3" +# logf LOG_LEVEL_WARN, "Processing advance request on frame: %d", "lwz r5, ODB_FRAME(5)" # Here we got the signal to advance a frame, let's call RenewInputs_Prefunction again. # This should force the engine to loop twice the next time it runs. diff --git a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm index 25a7de4e..04c0f7f1 100644 --- a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +++ b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm @@ -41,7 +41,7 @@ cmpwi r3, 0 beq EXIT # Here we have gotten a VI retrace callback while executing a rollback -# logf LOG_LEVEL_NOTICE, "VI retrace CB during rollback..." +# logf LOG_LEVEL_NOTICE, "[%d] VI retrace CB during rollback...", "lwz r5, ODB_FRAME(5)" li r3, 1 stb r3, ODB_SHOULD_FORCE_PAD_RENEW(r5) diff --git a/Online/Core/LoopEngineForRollback.asm b/Online/Core/LoopEngineForRollback.asm index 18836d81..fa383f4d 100644 --- a/Online/Core/LoopEngineForRollback.asm +++ b/Online/Core/LoopEngineForRollback.asm @@ -161,21 +161,46 @@ stb REG_SOUND_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS) SKIP_NEW_FRAME_PROCESSING: +lbz REG_IS_ROLLBACK_ACTIVE, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) +cmpwi REG_IS_ROLLBACK_ACTIVE, 1 +bne RESTORE_AND_EXIT # If no rollback active, continue as normal + +lwz r3, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) +cmpw REG_CURRENT_FRAME, r3 +blt HANDLE_ROLLBACK # If we haven't reached end frame, loop the engine + +# Here we have reached the end frame for the rollback, clear states and don't loop +# Break out of the input loop here because r27 might still have a value that could +# make the loop continue otherwise +# logf LOG_LEVEL_INFO, "[%d] Resetting rollback active state", "mr r5, REG_CURRENT_FRAME" + +# If we have reached the frame, turn off rollback +li r3, 0 +stb r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) +stb r3, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) + # Restore interrupts mr r3, REG_INTERRUPT_IDX branchl r12, OSRestoreInterrupts -lbz REG_IS_ROLLBACK_ACTIVE, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) -cmpwi REG_IS_ROLLBACK_ACTIVE, 1 -bne RESTORE_AND_EXIT # If no rollback active, continue as normal +restore +addi r26, r26, 1 # Probably not necessary +branch r12, 0x801a5024 # Exit input processing loop HANDLE_ROLLBACK: +# Restore interrupts +mr r3, REG_INTERRUPT_IDX +branchl r12, OSRestoreInterrupts + # Here we have a rollback, we are going to loop back to the start of the # updateFunction loop bl FN_ExecCameraTasks # Loop back to start of updateFunction loop restore +# Add 1 to r26 to move to the next input in the case of an advance rollback where loading a state +# is not needed. Not 100% sure about whether this is safe +addi r26, r26, 1 branch r12, 0x801a4de4 # Continue rollback, branch to the start of game engine loop # Functions section @@ -183,6 +208,10 @@ FunctionBody_ExecCameraTasks # Terminate code RESTORE_AND_EXIT: +# Restore interrupts +mr r3, REG_INTERRUPT_IDX +branchl r12, OSRestoreInterrupts + restore EXIT: diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 62be8dc5..ec406a94 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -5,8 +5,10 @@ .include "Common/Common.s" .include "Online/Online.s" -.set REG_FRAME_INDEX, 27 -.set REG_ODB_ADDRESS, 26 +.set REG_FRAME_INDEX, 31 +.set REG_ODB_ADDRESS, 30 +.set REG_INPUTS_TO_PROCESS, 27 # From parent +.set REG_INPUT_PROCESS_COUNTER, 26 # From parent .set REG_INTERRUPT_IDX, 25 .set REG_TEXT_STRUCT, 24 .set REG_DATA_ADDR, 23 @@ -62,9 +64,8 @@ loadGlobalFrame REG_FRAME_INDEX branchl r12, OSDisableInterrupts mr REG_INTERRUPT_IDX, r3 -# # Log the frame we are starting -# mr r3, REG_FRAME_INDEX -# logf LOG_LEVEL_INFO, "Starting frame: %d", "mr 5, 3" +# Log the frame we are starting +# logf LOG_LEVEL_INFO, "[%d] Starting frame processing... r26: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 26" ################################################################################ # Check if we should display disconnect message @@ -151,16 +152,39 @@ beq CONTINUE_ROLLBACK # If we don't need to load state, just continue rollback ################################################################################ # Load state and restore data ################################################################################ +# logf LOG_LEVEL_INFO, "[%d] Considering loading state: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" + +# If we need a load a state but the requested frame is either equal to or greater than the current +# frame, that means that we have advanced some frames and determined a rollback was needed on the +# advanced frames to a frame that has yet been processed. In this case, we don't want to load state. +# Instead, if the frame is greater than the current frame, we let the frame process as normal and +# don't do any roll back logic. If the frame is equal, we process the rollback without loading a +# state +lwz r3, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS) +# cmpw REG_FRAME_INDEX, r3 +# bgt SKIP_LOAD_LOG +# logf LOG_LEVEL_NOTICE, "[%d] Surprising state load: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" +cmpw REG_FRAME_INDEX, r3 +beq SKIP_LOAD_STATE +blt HANDLE_ROLLBACK_INPUTS_END +SKIP_LOAD_LOG: + +# logf LOG_LEVEL_WARN, "[%d] Loading state: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" + # Load state from savestate frame lwz r3, ODB_SAVESTATE_SSRB_ADDR(REG_ODB_ADDRESS) lwz r4, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS) # Stable because we only load one state per iteration lwz r5, ODB_SAVESTATE_SSCB_ADDR(REG_ODB_ADDRESS) branchl r12, FN_LoadSavestate +SKIP_LOAD_STATE: # Unfortunately if we ended up saving a state, it was after predicted inputs # were added to the raw input buffer. This block will rewind the raw controller # data index such that subsequent calls to RenewInputs will add inputs to the -# right places +# right places. +# Update 2/1/22: I'm a bit worried this won't always work with frame advance though I haven't +# seen a desync in testing yet. If frame advance causes UCF desyncs, this section of code could be +# why. Think the code primarily exists to make sure UCF velocity calculations work correctly branchl r12, PadAlarmCheck # This loads the number of inputs into r3 (normally 1), should we just use HSD_PadGetRawQueueCount instead? load r5, 0x804c1f78 # Start of raw controller data section lbz r4, 0x2(r5) # Load the current raw data index @@ -197,21 +221,14 @@ stb r3, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) ################################################################################ CONTINUE_ROLLBACK: +# logf LOG_LEVEL_INFO, "[%d] About to request rollback input. End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" + # If there is an active rollback, trigger a controller status renewal. # This should pick up on the new global frame timer inputs for this game engine # loop and continue the rollback branchl r12, RenewInputs_Prefunction -# Check if we should disable rollback flag if this was the last frame -# Determine whether we should disable rollback if we have reached the target -lwz r3, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) -cmpw REG_FRAME_INDEX, r3 -blt HANDLE_ROLLBACK_INPUTS_END - -# If we have reached the frame, turn off rollback -li r3, 0 -stb r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) -stb r3, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) +# logf LOG_LEVEL_INFO, "[%d] Finished getting rollback input. End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" HANDLE_ROLLBACK_INPUTS_END: @@ -219,8 +236,21 @@ HANDLE_ROLLBACK_INPUTS_END: # Store stable data that needs to update every time RenewInputs_Prefunction is # called ################################################################################ +# logf LOG_LEVEL_INFO, "[%d] Updating stable finalized frame. CurrentStable: %d, Volatile: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" lwz r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +cmpw REG_FRAME_INDEX, r3 +bgt UPDATE_STABLE_FINALIZED # If cur frame greater than volatile, set stable to volatile +# Here the frame is equal to or less than or equal to the finalized frame. This might happen in +# the case of processing a rollback. Set the stable finalized frame to the current frame +mr r3, REG_FRAME_INDEX +b UPDATE_STABLE_FINALIZED +UPDATE_STABLE_FINALIZED: +lwz r4, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) +cmpw r3, r4 +ble SKIP_STABLE_FINALIZED_UPDATE +# logf LOG_LEVEL_INFO, "[%d] Stable value updated to %d. Volatile: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" stw r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) +SKIP_STABLE_FINALIZED_UPDATE: ################################################################################ # Check if we should capture state. We need to do this after the rollback @@ -228,7 +258,9 @@ stw r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) # even during a rollback ################################################################################ CAPTURE_CHECK: -# First check if a savestate is active +# logf LOG_LEVEL_INFO, "[%d] Considering saving state. Predicting: %d, Savestate Frame: %d", "mr r5, REG_FRAME_INDEX", "lbz r6, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS)", "lwz r7, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS)" + +# First check if a savestate is required (the frame has predicted inputs) lbz r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) cmpwi r3, 0 beq CAPTURE_END @@ -238,6 +270,8 @@ lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) cmpw REG_FRAME_INDEX, r3 blt CAPTURE_END +# logf LOG_LEVEL_WARN, "[%d] Saving state", "mr r5, REG_FRAME_INDEX" + # Do savestate lwz r3, ODB_SAVESTATE_SSRB_ADDR(REG_ODB_ADDRESS) mr r4, REG_FRAME_INDEX diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index d4d9bcaa..3f5276c3 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -71,7 +71,7 @@ cmpwi r3, 0 beq ROLLBACK_HANDLER PROCESS_NOT_ROLLBACK: -# logf LOG_LEVEL_NOTICE, "[%d] Input Requested, not rollback", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_NOTICE, "[%d] Input Requested (not rollback)", "mr r5, REG_FRAME_INDEX" ################################################################################ # Section 1: Clear all inputs during freeze time, this is done such that @@ -174,8 +174,10 @@ stb r3, TXB_CMD(REG_TXB_ADDRESS) # Load frame index into transfer buffer stw REG_FRAME_INDEX, TXB_FRAME(REG_TXB_ADDRESS) -# Transfer the finalized frame to know what inputs we can discard -lwz r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +# Finalized frame is used to decide which old inputs to discard. It is also used to determine +# whether to halt due to rollback limit. We are using STABLE because that ensures the frame +# has actually been processed by the game engine +lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) stw r3, TXB_FINALIZED_FRAME(REG_TXB_ADDRESS) # Transfer delay amount @@ -549,6 +551,8 @@ stb r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) # Store the end frame index to remember when to terminate rollback logic stw REG_FRAME_INDEX, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) +# logf LOG_LEVEL_WARN, "[%d] Triggering rollback to end on frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" + # We have successfully sent inputs to our opponent and preped them to use for rollback # We still want to increment the frame just in case another input is sent before we have # a chance to load the savestate. This should be fine because it will get overwritten when @@ -612,7 +616,7 @@ blt COMPUTE_SAVESTATE_FRAME_LOOP # Set the savestate frame to the minimum value among players with missing inputs stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -#logf LOG_LEVEL_WARN, "Set savestate frame to %d, game frame: %d", "mr r5, 3", "loadGlobalFrame r6" +# logf LOG_LEVEL_WARN, "[%d] Update savestate frame to %d after checking predictions", "mr r5, REG_FRAME_INDEX", "mr r6, 3" # Update finalized frame to the earliest frame where our predictions matched subi r5, r3, 1 @@ -806,7 +810,7 @@ beq LOAD_STALE_INPUTS # Store the rollback frame in the global savestate frame counter stw REG_FRAME_INDEX, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_WARN, "Setting global savestate frame to %d", "mr r5, 26" +# logf LOG_LEVEL_WARN, "[%d] Predicting on this frame and setting the savestate frame", "mr r5, REG_FRAME_INDEX" # Indicate that we have prepared for a rollback li r3, 1 @@ -861,7 +865,7 @@ b INCREMENT_AND_EXIT ################################################################################ ROLLBACK_HANDLER: -# logf LOG_LEVEL_NOTICE, "[%d] Input Requested (rollback)", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_NOTICE, "[%d] Input Requested (rollback). End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" # If the frame we want is past the rollback end, just do nothing. This might # happen in the case where we get an interrupt during a rollback diff --git a/Online/Static/LoadState.asm b/Online/Static/LoadState.asm index d76358f9..f3d53b58 100644 --- a/Online/Static/LoadState.asm +++ b/Online/Static/LoadState.asm @@ -34,9 +34,22 @@ mr REG_SSCB_ADDR, r5 # Determine the SSDB Ptr to read from lbz r6, SSCB_WRITE_INDEX(REG_SSCB_ADDR) +.set REG_LOOP_COUNT, REG_VARIOUS_1 + +li REG_LOOP_COUNT, 0 + # This loop will find the savestate we want to load. Currently there really -# isn't anything useful in the ASM-side savestates but eventually there will be +# isn't anything useful in the ASM-side savestates so currently this logic only really exists +# to ensure we saved a state for the frame requested FIND_FRAME_LOOP_START: +addi REG_LOOP_COUNT, REG_LOOP_COUNT, 1 +cmpwi REG_LOOP_COUNT, ROLLBACK_MAX_FRAME_COUNT +ble LIMIT_NOT_REACHED +# If we get here, the frame requested has not been saved. Perhaps the correct thing to do here +# is to end the game similar to DISCONNECTED but for now let's just assert +logf LOG_LEVEL_NOTICE, "Load state requested for frame %d but frame was not found.", "mr r5, REG_FRAME_INDEX" +b 0 +LIMIT_NOT_REACHED: subi r6, r6, 1 cmpwi r6, 0 bge SKIP_IDX_ADJUST diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 59f8e40a..7687daa6 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1381,15 +1381,15 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 881F0001 60000000 00000000 -C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm +C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820250 +2C030208 408202B8 3C608047 60639D64 80630000 2C030000 -4082023C 7C0802A6 +408202A4 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -1429,36 +1429,49 @@ A0840001 7C032000 4081001C 931F07A2 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 7FA3EB78 -3D808034 618C738C -7D8903A6 4E800421 -8B7F07AA 2C1B0001 -408200CC 48000025 -BA810008 800100B4 -382100B0 7C0803A6 -3D80801A 618C4DE4 +9B9E0000 8B7F07AA +2C1B0001 40820134 +807F07AB 7C181800 +41800048 38600000 +987F00DA 987F07AA +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 3B5A0001 +3D80801A 618C5024 7D8903A6 4E800420 -7C0802A6 90010004 -9421FF50 BE810008 -3D808003 618C0A50 -7D8903A6 4E800421 -3D808002 618CA4AC -7D8903A6 4E800421 -3D808003 618C0A50 -7D8903A6 4E800421 -80630028 3D808036 -618C8458 7D8903A6 -4E800421 806DC18C -82830020 4800002C -82B4002C 8875221F -546006F7 40820018 -7E83A378 3D808008 -618C6A8C 7D8903A6 -4E800421 82940008 -2C140000 4082FFD4 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 48000029 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 +3B5A0001 3D80801A +618C4DE4 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF50 +BE810008 3D808003 +618C0A50 7D8903A6 +4E800421 3D808002 +618CA4AC 7D8903A6 +4E800421 3D808003 +618C0A50 7D8903A6 +4E800421 80630028 +3D808036 618C8458 +7D8903A6 4E800421 +806DC18C 82830020 +4800002C 82B4002C +8875221F 546006F7 +40820018 7E83A378 +3D808008 618C6A8C +7D8903A6 4E800421 +82940008 2C140000 +4082FFD4 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm @@ -1494,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 0000005D #Online/Core/StartEngineLoop.asm +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1507,21 +1520,21 @@ C21A4DE4 0000005D #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820274 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 40820260 -834DB61C 3F608048 -837B9D60 3D808034 +2C030000 40820274 +83CDB61C 3FE08048 +83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 -887A000E 2C030000 -408200D0 887A000D +887E000E 2C030000 +408200D0 887E000D 2C030000 418200C4 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B9 3D80803A +809E07B9 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1540,12 +1553,14 @@ C0570010 3D80803A 38800000 38B70014 3D80803A 618C74F0 7D8903A6 4E800421 -38600001 987A000E -887A07AA 2C030000 -418200B8 887A07AF -2C030000 41820084 -807A024B 809A07B0 -80BA024F 3D808000 +38600001 987E000E +887E07AA 2C030000 +418200B0 887E07AF +2C030000 41820094 +807E07B0 7C1F1800 +41820024 41800094 +807E024B 809E07B0 +80BE024F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1554,40 +1569,41 @@ C0570010 3D80803A 7C832051 4080000C 88650000 7C841A14 98850002 38600000 -98650003 3F608048 -837B9D60 807A0238 -907A0003 38600000 -987A0237 987A0248 -987A0249 987A024A -987A00DB 987A07AF +98650003 3FE08048 +83FF9D60 807E0238 +907E0003 38600000 +987E0237 987E0248 +987E0249 987E024A +987E00DB 987E07AF 3D808001 618C95FC 7D8903A6 4E800421 -807A07AB 7C1B1800 -41800010 38600000 -987A00DA 987A07AA -807A07C1 907A07B4 -887A0237 2C030000 -4182002C 807A0238 -7C1B1800 41800020 -807A024B 7F64DB78 -80BA024F 3D808000 -618C5608 7D8903A6 -4E800421 887A000C -2C030001 4182004C -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -987A000B 4800002C -887A000B 38630001 -987A000B 2C030007 -40810018 38600001 -987A000C 807A07A6 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +807E07C1 7C1F1800 +4181000C 7FE3FB78 +48000004 809E07B4 +7C032000 40810008 +907E07B4 887E0237 +2C030000 4182002C +807E0238 7C1F1800 +41800020 807E024B +7FE4FB78 80BE024F +3D808000 618C5608 +7D8903A6 4E800421 +887E000C 2C030001 +4182004C 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 987E000B +4800002C 887E000B +38630001 987E000B +2C030007 40810018 +38600001 987E000C +807E07A6 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C2376A28 000000EC #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -1629,7 +1645,7 @@ B0830000 4E800020 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B07C1 +93590001 807B07B4 90790005 887B001C 98790009 3879000A 7FA4EB78 38A0000C @@ -5223,29 +5239,58 @@ C20056A4 00000022 #Online/Static/LoadPremadeText.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C200560C 00000016 #Online/Static/LoadState.asm +C200560C 00000033 #Online/Static/LoadState.asm 7C0802A6 90010004 9421FF50 BE810008 7C7B1B78 7C982378 7CBA2B78 88DA0000 -38C6FFFF 2C060000 -40800008 38C60007 -1C660004 38630002 -7F3A1A14 80790000 -7C03C000 4082FFDC -3D808034 618C7364 +3AC00000 3AD60001 +2C160007 408100D8 +48000044 4E800021 +4C6F6164 20737461 +74652072 65717565 +73746564 20666F72 +20667261 6D652025 +64206275 74206672 +616D6520 77617320 +6E6F7420 666F756E +642E0000 7C0802A6 +90010004 9421FF00 +BC610008 7F05C378 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFF95 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7C771B78 386000B2 -987B0000 931B0001 -7F63DB78 38800021 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7EE3BB78 -3D808034 618C738C +B8610008 80010104 +38210100 7C0803A6 +48000000 38C6FFFF +2C060000 40800008 +38C60007 1C660004 +38630002 7F3A1A14 +80790000 7C03C000 +4082FEFC 3D808034 +618C7364 7D8903A6 +4E800421 7C771B78 +386000B2 987B0000 +931B0001 7F63DB78 +38800021 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 00000000 +7EE3BB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C20055EC 00000008 #Online/Static/MultiplyRWithF.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 5dd552fd..9b092c0c 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1381,15 +1381,15 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 881F0001 60000000 00000000 -C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm +C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820250 +2C030208 408202B8 3C608047 60639D64 80630000 2C030000 -4082023C 7C0802A6 +408202A4 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 @@ -1429,36 +1429,49 @@ A0840001 7C032000 4081001C 931F07A2 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 7FA3EB78 -3D808034 618C738C -7D8903A6 4E800421 -8B7F07AA 2C1B0001 -408200CC 48000025 -BA810008 800100B4 -382100B0 7C0803A6 -3D80801A 618C4DE4 +9B9E0000 8B7F07AA +2C1B0001 40820134 +807F07AB 7C181800 +41800048 38600000 +987F00DA 987F07AA +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 3B5A0001 +3D80801A 618C5024 7D8903A6 4E800420 -7C0802A6 90010004 -9421FF50 BE810008 -3D808003 618C0A50 -7D8903A6 4E800421 -3D808002 618CA4AC -7D8903A6 4E800421 -3D808003 618C0A50 -7D8903A6 4E800421 -80630028 3D808036 -618C8458 7D8903A6 -4E800421 806DC18C -82830020 4800002C -82B4002C 8875221F -546006F7 40820018 -7E83A378 3D808008 -618C6A8C 7D8903A6 -4E800421 82940008 -2C140000 4082FFD4 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 48000029 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 +3B5A0001 3D80801A +618C4DE4 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF50 +BE810008 3D808003 +618C0A50 7D8903A6 +4E800421 3D808002 +618CA4AC 7D8903A6 +4E800421 3D808003 +618C0A50 7D8903A6 +4E800421 80630028 +3D808036 618C8458 +7D8903A6 4E800421 +806DC18C 82830020 +4800002C 82B4002C +8875221F 546006F7 +40820018 7E83A378 +3D808008 618C6A8C +7D8903A6 4E800421 +82940008 2C140000 +4082FFD4 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm @@ -1494,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 0000005D #Online/Core/StartEngineLoop.asm +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1507,21 +1520,21 @@ C21A4DE4 0000005D #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820274 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 40820260 -834DB61C 3F608048 -837B9D60 3D808034 +2C030000 40820274 +83CDB61C 3FE08048 +83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 -887A000E 2C030000 -408200D0 887A000D +887E000E 2C030000 +408200D0 887E000D 2C030000 418200C4 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B9 3D80803A +809E07B9 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1540,12 +1553,14 @@ C0570010 3D80803A 38800000 38B70014 3D80803A 618C74F0 7D8903A6 4E800421 -38600001 987A000E -887A07AA 2C030000 -418200B8 887A07AF -2C030000 41820084 -807A024B 809A07B0 -80BA024F 3D808000 +38600001 987E000E +887E07AA 2C030000 +418200B0 887E07AF +2C030000 41820094 +807E07B0 7C1F1800 +41820024 41800094 +807E024B 809E07B0 +80BE024F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1554,40 +1569,41 @@ C0570010 3D80803A 7C832051 4080000C 88650000 7C841A14 98850002 38600000 -98650003 3F608048 -837B9D60 807A0238 -907A0003 38600000 -987A0237 987A0248 -987A0249 987A024A -987A00DB 987A07AF +98650003 3FE08048 +83FF9D60 807E0238 +907E0003 38600000 +987E0237 987E0248 +987E0249 987E024A +987E00DB 987E07AF 3D808001 618C95FC 7D8903A6 4E800421 -807A07AB 7C1B1800 -41800010 38600000 -987A00DA 987A07AA -807A07C1 907A07B4 -887A0237 2C030000 -4182002C 807A0238 -7C1B1800 41800020 -807A024B 7F64DB78 -80BA024F 3D808000 -618C5608 7D8903A6 -4E800421 887A000C -2C030001 4182004C -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -987A000B 4800002C -887A000B 38630001 -987A000B 2C030007 -40810018 38600001 -987A000C 807A07A6 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +807E07C1 7C1F1800 +4181000C 7FE3FB78 +48000004 809E07B4 +7C032000 40810008 +907E07B4 887E0237 +2C030000 4182002C +807E0238 7C1F1800 +41800020 807E024B +7FE4FB78 80BE024F +3D808000 618C5608 +7D8903A6 4E800421 +887E000C 2C030001 +4182004C 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 987E000B +4800002C 887E000B +38630001 987E000B +2C030007 40810018 +38600001 987E000C +807E07A6 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C2376A28 000000EC #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -1629,7 +1645,7 @@ B0830000 4E800020 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B07C1 +93590001 807B07B4 90790005 887B001C 98790009 3879000A 7FA4EB78 38A0000C @@ -5223,29 +5239,58 @@ C20056A4 00000022 #Online/Static/LoadPremadeText.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C200560C 00000016 #Online/Static/LoadState.asm +C200560C 00000033 #Online/Static/LoadState.asm 7C0802A6 90010004 9421FF50 BE810008 7C7B1B78 7C982378 7CBA2B78 88DA0000 -38C6FFFF 2C060000 -40800008 38C60007 -1C660004 38630002 -7F3A1A14 80790000 -7C03C000 4082FFDC -3D808034 618C7364 +3AC00000 3AD60001 +2C160007 408100D8 +48000044 4E800021 +4C6F6164 20737461 +74652072 65717565 +73746564 20666F72 +20667261 6D652025 +64206275 74206672 +616D6520 77617320 +6E6F7420 666F756E +642E0000 7C0802A6 +90010004 9421FF00 +BC610008 7F05C378 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFF95 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7C771B78 386000B2 -987B0000 931B0001 -7F63DB78 38800021 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7EE3BB78 -3D808034 618C738C +B8610008 80010104 +38210100 7C0803A6 +48000000 38C6FFFF +2C060000 40800008 +38C60007 1C660004 +38630002 7F3A1A14 +80790000 7C03C000 +4082FEFC 3D808034 +618C7364 7D8903A6 +4E800421 7C771B78 +386000B2 987B0000 +931B0001 7F63DB78 +38800021 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 00000000 +7EE3BB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C20055EC 00000008 #Online/Static/MultiplyRWithF.asm 7C0802A6 90010004 9421FF50 BE810008 From 60e51fb6d8b2f1f1b753898959cc88fca5565c33 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 1 Feb 2022 19:47:57 -0500 Subject: [PATCH 063/217] fix bug where local input buffer could overflow this could cause garbage data to get loaded into the local input on a rollback --- Online/Core/TriggerSendInput.asm | 7 +- Online/Logging/LogInputOnCopy.asm | 14 ++- Online/Online.s | 10 +- Output/Netplay/GALE01r2.ini | 198 +++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 198 +++++++++++++++--------------- 5 files changed, 222 insertions(+), 205 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 3f5276c3..0f748970 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -72,6 +72,7 @@ beq ROLLBACK_HANDLER PROCESS_NOT_ROLLBACK: # logf LOG_LEVEL_NOTICE, "[%d] Input Requested (not rollback)", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_NOTICE, "[%d] Local Input: %08X %08X %08X", "mr r5, REG_FRAME_INDEX", "lwz r6, 0(REG_LOCAL_SOURCE_INPUT)", "lwz r7, 4(REG_LOCAL_SOURCE_INPUT)", "lwz r8, 8(REG_LOCAL_SOURCE_INPUT)" ################################################################################ # Section 1: Clear all inputs during freeze time, this is done such that @@ -302,7 +303,7 @@ branchl r12, memcpy # increment index lbz r3, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS) addi r3, r3, 1 -cmpwi r3, ROLLBACK_MAX_FRAME_COUNT +cmpwi r3, LOCAL_INPUT_BUFFER_LEN blt SKIP_LOCAL_INPUT_BUFFER_INDEX_WRAP li r3, 0 @@ -878,6 +879,7 @@ restore branch r12, 0x80376cec # branch to restore of parent function to skip handling input COPY_LOCAL_INPUTS: +# logf LOG_LEVEL_INFO, "[%d] Prior to local input copy. END_FRAME: %d, LOCAL_INPUTS_IDX: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)", "lbz r7, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS)" # get local input from history lwz r3, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) sub r3, r3, REG_FRAME_INDEX @@ -885,8 +887,9 @@ addi r3, r3, 1 lbz r4, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS) sub. r3, r4, r3 bge SKIP_LOCAL_INPUT_IDX_NEG -addi r3, r3, ROLLBACK_MAX_FRAME_COUNT +addi r3, r3, LOCAL_INPUT_BUFFER_LEN SKIP_LOCAL_INPUT_IDX_NEG: +# logf LOG_LEVEL_INFO, "[%d] Copying local inputs for rollback. Idx: %d, Offset: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "mulli r7, 3, PAD_REPORT_SIZE" mulli r3, r3, PAD_REPORT_SIZE addi r4, r3, ODB_ROLLBACK_LOCAL_INPUTS diff --git a/Online/Logging/LogInputOnCopy.asm b/Online/Logging/LogInputOnCopy.asm index 9341c31d..dc19499a 100644 --- a/Online/Logging/LogInputOnCopy.asm +++ b/Online/Logging/LogInputOnCopy.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 0x803775b8 # Here we are starting the copy +# Address: 0x803775b0 # Here we are starting the copy ################################################################################ .include "Common/Common.s" @@ -22,7 +22,15 @@ lwz r8, 4(r25) lwz r9, 8(r25) logf LOG_LEVEL_NOTICE, "[%d] P%d %08X %08X %08X" -.endif + +lbz r3, 0x0041(r26) +extsb. r0, r3 +beq EXIT + +logf LOG_LEVEL_INFO, "Input detected with non-zero status: %d", "extsb r5, 3" EXIT: -lhz r0, 0 (r25) +# Re-loads overwritten data, must run right before extsb. r0, r3 +lbz r3, 0x0041(r26) +.endif +extsb. r0, r3 # replaced codeline diff --git a/Online/Online.s b/Online/Online.s index 7f9dbdf8..a48b51b1 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -43,6 +43,12 @@ .set ROLLBACK_MAX_FRAME_COUNT, 7 .set PLAYER_MAX_INPUT_SIZE, PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT +# I don't know exactly how long the input buffer has to be but in very rare cases with a length +# of ROLLBACK_MAX_FRAME_COUNT we could overflow into the negative indices: +# [3975] Prior to local input copy. END_FRAME: 3983, LOCAL_INPUTS_IDX: 0 +# [3975] Copying local inputs for rollback. Idx: -2, Offset: -24 +.set LOCAL_INPUT_BUFFER_LEN, 2 * ROLLBACK_MAX_FRAME_COUNT + .set UNFREEZE_INPUTS_FRAME, 84 .set STATIC_PLAYER_BLOCK_P1, 0x80453080 @@ -202,8 +208,8 @@ .set ODB_ROLLBACK_SHOULD_LOAD_STATE, ODB_ROLLBACK_IS_ACTIVE + 1 # bool .set ODB_ROLLBACK_END_FRAME, ODB_ROLLBACK_SHOULD_LOAD_STATE + 1 # s32 .set ODB_ROLLBACK_LOCAL_INPUTS_IDX, ODB_ROLLBACK_END_FRAME + 4 # u8 -.set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT -.set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT # u8 +.set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN +.set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT .set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 # bool diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 7687daa6..7c8a2689 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -584,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 808507B4 -3884FF85 80E507BD +40820020 80850808 +3884FF85 80E50811 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1138,13 +1138,13 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 2C1B0000 41810014 888500DA 2C040000 4182002C 3B600001 -888500DA 988507AA -808500DC 908507AB -888500DB 988507AF -80850238 908507B0 -48000028 888507B8 +888500DA 988507FE +808500DC 908507FF +888500DB 98850803 +8085028C 90850804 +48000028 8885080C 2C040000 4182001C -38800000 988507B8 +38800000 9885080C 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1172,7 +1172,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407A6 +808DB61C 806407FA 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1199,15 +1199,15 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C9 +40820338 3860081D 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C9 +7C7B1B78 3880081D 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D -7C6802A6 907B07A6 +7C6802A6 907B07FA 38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 @@ -1220,18 +1220,18 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B024B 3860009E +933B029F 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B024F 3880009E +907B02A3 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C9 +93790005 3860081D 90790009 9359000D 3860010A 90790011 -807B024F 90790015 +807B02A3 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1394,10 +1394,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF0253 +83EDB61C 3BDF02A7 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07A2 7C18B800 +82FF07F6 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1426,14 +1426,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07A2 +4081001C 931F07F6 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F07AA +9B9E0000 8B7F07FE 2C1B0001 40820134 -807F07AB 7C181800 +807F07FF 7C181800 41800048 38600000 -987F00DA 987F07AA +987F00DA 987F07FE 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1475,8 +1475,8 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BD -38630001 906407BD +808DB61C 80640811 +38630001 90640811 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1534,7 +1534,7 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809E07B9 3D80803A +809E080D 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1554,13 +1554,13 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987E000E -887E07AA 2C030000 -418200B0 887E07AF +887E07FE 2C030000 +418200B0 887E0803 2C030000 41820094 -807E07B0 7C1F1800 +807E0804 7C1F1800 41820024 41800094 -807E024B 809E07B0 -80BE024F 3D808000 +807E029F 809E0804 +80BE02A3 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1570,22 +1570,22 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E0238 +83FF9D60 807E028C 907E0003 38600000 -987E0237 987E0248 -987E0249 987E024A -987E00DB 987E07AF +987E028B 987E029C +987E029D 987E029E +987E00DB 987E0803 3D808001 618C95FC 7D8903A6 4E800421 -807E07C1 7C1F1800 +807E0815 7C1F1800 4181000C 7FE3FB78 -48000004 809E07B4 +48000004 809E0808 7C032000 40810008 -907E07B4 887E0237 +907E0808 887E028B 2C030000 4182002C -807E0238 7C1F1800 -41800020 807E024B -7FE4FB78 80BE024F +807E028C 7C1F1800 +41800020 807E029F +7FE4FB78 80BE02A3 3D808000 618C5608 7D8903A6 4E800421 887E000C 2C030001 @@ -1597,7 +1597,7 @@ C0570010 3D80803A 38630001 987E000B 2C030007 40810018 38600001 987E000C -807E07A6 7C6903A6 +807E07FA 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 @@ -1613,7 +1613,7 @@ C2376A28 000000EC #Online/Core/TriggerSendInput.asm 60639D64 80630000 2C030000 40820714 836DB61C 833B00D2 -831B00D6 82FB024B +831B00D6 82FB029F 835B0003 889B0002 1C84000C 386400DC 7FA11A14 887B00DA @@ -1645,7 +1645,7 @@ B0830000 4E800020 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B07B4 +93590001 807B0808 90790005 887B001C 98790009 3879000A 7FA4EB78 38A0000C @@ -1683,7 +1683,7 @@ B0830000 4E800020 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E0 -38630001 2C030007 +38630001 2C03000E 41800008 38600000 987B00E0 887B001D 1C63000C 3863001E @@ -1697,24 +1697,24 @@ B0830000 4E800020 887B00DA 2C030000 40820010 887B00DB 2C030000 4082016C -3B800000 887B0237 +3B800000 887B028B 2C030000 40820018 -38600000 987B0248 -987B0249 987B024A +38600000 987B029C +987B029D 987B029E 48000268 3A800000 -38D40248 7C66D8AE +38D4029C 7C66D8AE 2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 -38C6023C 7C86D82E +38C60290 7C86D82E 7C641851 4180014C -7C761B78 38D40135 -7C66D8AE 38D40138 +7C761B78 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7EC3B378 1C63000C 3863000E 1CD40054 7C633214 -38D40135 7C86D8AE -1C84000C 3884013B +38D40189 7C86D8AE +1C84000C 3884018F 1CB40054 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1732,13 +1732,13 @@ B0830000 4E800020 2C04002A 4081FFE0 7C032000 40820054 4BFFFFD4 1CD40004 -38C6023C 7C66D82E +38C60290 7C66D82E 38630001 7C66D92E -38D40135 7C66D8AE +38D40189 7C66D8AE 38630001 2C030007 41800008 3863FFF9 -7C66D9AE 38D40135 -7C66D8AE 38D40138 +7C66D9AE 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7C041800 4082FED0 48000044 3B800001 4800003C @@ -1751,33 +1751,33 @@ BA810008 800100B4 7D8903A6 4E800420 3A940001 2C140003 4180FE80 3AA00000 -3A800000 807B0238 -38D40248 7C86D8AE +3A800000 807B028C +38D4029C 7C86D8AE 2C040001 40820028 -1CD40004 38C6023C +1CD40004 38C60290 7C86D82E 2C150000 4182000C 7C041800 4080000C 7C832378 3AA00001 3A940001 2C140003 4180FFC4 -907B0238 38A3FFFF -90BB07C1 2C1C0000 +907B028C 38A3FFFF +90BB0815 2C1C0000 4082FF60 3A800000 -38D40248 7C86D8AE +38D4029C 7C86D8AE 2C040001 40820038 -38D40135 7C66D8AE -38D40138 7C86D8AE -38D40135 7C66D8AE -38D40138 7C86D8AE +38D40189 7C66D8AE +38D4018C 7C86D8AE +38D40189 7C66D8AE +38D4018C 7C86D8AE 7C041800 40820010 -38600000 38D40248 +38600000 38D4029C 7C66D9AE 3A940001 2C140003 4180FFB4 -3A800000 38D40248 +3A800000 38D4029C 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 -38600000 987B0237 +38600000 987B028B 3A800000 3AA00000 3B800001 887B0000 7C151800 40820008 @@ -1789,8 +1789,8 @@ BA810008 800100B4 7C1A1800 418000C0 887B000C 2C030001 418200B4 3B800000 -38D40138 7EC6D8AE -1C76000C 3863013B +38D4018C 7EC6D8AE +1C76000C 3863018F 1CB40054 7C632A14 1CD40054 38C6000E 7C7B1A14 7C983214 @@ -1798,19 +1798,19 @@ BA810008 800100B4 618C31F4 7D8903A6 4E800421 38760001 2C030007 41800008 -3863FFF9 38D40138 -7C66D9AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40248 +3863FFF9 38D4018C +7C66D9AE 38D40189 +7C66D8AE 38D4018C +7C86D8AE 38D4029C 7C66D8AE 2C030001 4182003C 1CD40004 -38C6023C 7F46D92E -38600001 38D40248 -7C66D9AE 38D40135 -7EC6D9AE 887B0237 +38C60290 7F46D92E +38600001 38D4029C +7C66D9AE 38D40189 +7EC6D9AE 887B028B 2C030001 41820010 -935B0238 38600001 -987B0237 38600000 +935B028C 38600001 +987B028B 38600000 1C63000C 38A3000E 1CD40054 7CA53214 1C75000C 386300DC @@ -1820,7 +1820,7 @@ BA810008 800100B4 4E800421 3A940001 3AB50001 2C140003 4180FEC4 2C1C0000 -41820008 935B07C1 +41820008 935B0815 48000080 807B00DC 7C1A1800 40810024 BA810008 800100B4 @@ -1830,7 +1830,7 @@ BA810008 800100B4 807B00DC 7C7A1850 38630001 889B00E0 7C632051 40800008 -38630007 1C63000C +3863000E 1C63000C 388300E1 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 @@ -1991,7 +1991,7 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 2C000003 40820028 886500DA 2C030000 4182001C 38600001 -986507B8 3D808001 +9865080C 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2010,11 +2010,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF0253 8B9E0000 +3BDF02A7 8B9E0000 3C608048 80639D60 -809F07A2 7C032000 +809F07F6 7C032000 41810028 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2032,12 +2032,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0253 57DE043E +3BBF02A7 57DE043E 8B9D0000 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C032000 41810088 3C608048 80639D60 -809F07A2 7C632050 +809F07F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2062,12 +2062,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0253 57DE043E +3BBF02A7 57DE043E 8B9D0000 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C032000 41810088 3C608048 80639D60 -809F07A2 7C632050 +809F07F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2094,13 +2094,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF0253 +83EDB61C 3BDF02A7 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07A2 7C032000 +809F07F6 7C032000 41810070 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3900,7 +3900,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B9 +83CDB61C 93FE080D 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -5563,7 +5563,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B8 A0190000 #Online/Logging/LogInputOnCopy.asm +043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9b092c0c..f2dd57f7 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -584,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 808507B4 -3884FF85 80E507BD +40820020 80850808 +3884FF85 80E50811 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1138,13 +1138,13 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 2C1B0000 41810014 888500DA 2C040000 4182002C 3B600001 -888500DA 988507AA -808500DC 908507AB -888500DB 988507AF -80850238 908507B0 -48000028 888507B8 +888500DA 988507FE +808500DC 908507FF +888500DB 98850803 +8085028C 90850804 +48000028 8885080C 2C040000 4182001C -38800000 988507B8 +38800000 9885080C 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1172,7 +1172,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407A6 +808DB61C 806407FA 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1199,15 +1199,15 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 386007C9 +40820338 3860081D 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C9 +7C7B1B78 3880081D 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D -7C6802A6 907B07A6 +7C6802A6 907B07FA 38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 @@ -1220,18 +1220,18 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B024B 3860009E +933B029F 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B024F 3880009E +907B02A3 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C9 +93790005 3860081D 90790009 9359000D 3860010A 90790011 -807B024F 90790015 +807B02A3 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1394,10 +1394,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF0253 +83EDB61C 3BDF02A7 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07A2 7C18B800 +82FF07F6 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1426,14 +1426,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07A2 +4081001C 931F07F6 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F07AA +9B9E0000 8B7F07FE 2C1B0001 40820134 -807F07AB 7C181800 +807F07FF 7C181800 41800048 38600000 -987F00DA 987F07AA +987F00DA 987F07FE 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1475,8 +1475,8 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BD -38630001 906407BD +808DB61C 80640811 +38630001 90640811 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1534,7 +1534,7 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809E07B9 3D80803A +809E080D 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1554,13 +1554,13 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987E000E -887E07AA 2C030000 -418200B0 887E07AF +887E07FE 2C030000 +418200B0 887E0803 2C030000 41820094 -807E07B0 7C1F1800 +807E0804 7C1F1800 41820024 41800094 -807E024B 809E07B0 -80BE024F 3D808000 +807E029F 809E0804 +80BE02A3 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1570,22 +1570,22 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E0238 +83FF9D60 807E028C 907E0003 38600000 -987E0237 987E0248 -987E0249 987E024A -987E00DB 987E07AF +987E028B 987E029C +987E029D 987E029E +987E00DB 987E0803 3D808001 618C95FC 7D8903A6 4E800421 -807E07C1 7C1F1800 +807E0815 7C1F1800 4181000C 7FE3FB78 -48000004 809E07B4 +48000004 809E0808 7C032000 40810008 -907E07B4 887E0237 +907E0808 887E028B 2C030000 4182002C -807E0238 7C1F1800 -41800020 807E024B -7FE4FB78 80BE024F +807E028C 7C1F1800 +41800020 807E029F +7FE4FB78 80BE02A3 3D808000 618C5608 7D8903A6 4E800421 887E000C 2C030001 @@ -1597,7 +1597,7 @@ C0570010 3D80803A 38630001 987E000B 2C030007 40810018 38600001 987E000C -807E07A6 7C6903A6 +807E07FA 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 @@ -1613,7 +1613,7 @@ C2376A28 000000EC #Online/Core/TriggerSendInput.asm 60639D64 80630000 2C030000 40820714 836DB61C 833B00D2 -831B00D6 82FB024B +831B00D6 82FB029F 835B0003 889B0002 1C84000C 386400DC 7FA11A14 887B00DA @@ -1645,7 +1645,7 @@ B0830000 4E800020 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B07B4 +93590001 807B0808 90790005 887B001C 98790009 3879000A 7FA4EB78 38A0000C @@ -1683,7 +1683,7 @@ B0830000 4E800020 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E0 -38630001 2C030007 +38630001 2C03000E 41800008 38600000 987B00E0 887B001D 1C63000C 3863001E @@ -1697,24 +1697,24 @@ B0830000 4E800020 887B00DA 2C030000 40820010 887B00DB 2C030000 4082016C -3B800000 887B0237 +3B800000 887B028B 2C030000 40820018 -38600000 987B0248 -987B0249 987B024A +38600000 987B029C +987B029D 987B029E 48000268 3A800000 -38D40248 7C66D8AE +38D4029C 7C66D8AE 2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 -38C6023C 7C86D82E +38C60290 7C86D82E 7C641851 4180014C -7C761B78 38D40135 -7C66D8AE 38D40138 +7C761B78 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7EC3B378 1C63000C 3863000E 1CD40054 7C633214 -38D40135 7C86D8AE -1C84000C 3884013B +38D40189 7C86D8AE +1C84000C 3884018F 1CB40054 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1732,13 +1732,13 @@ B0830000 4E800020 2C04002A 4081FFE0 7C032000 40820054 4BFFFFD4 1CD40004 -38C6023C 7C66D82E +38C60290 7C66D82E 38630001 7C66D92E -38D40135 7C66D8AE +38D40189 7C66D8AE 38630001 2C030007 41800008 3863FFF9 -7C66D9AE 38D40135 -7C66D8AE 38D40138 +7C66D9AE 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7C041800 4082FED0 48000044 3B800001 4800003C @@ -1751,33 +1751,33 @@ BA810008 800100B4 7D8903A6 4E800420 3A940001 2C140003 4180FE80 3AA00000 -3A800000 807B0238 -38D40248 7C86D8AE +3A800000 807B028C +38D4029C 7C86D8AE 2C040001 40820028 -1CD40004 38C6023C +1CD40004 38C60290 7C86D82E 2C150000 4182000C 7C041800 4080000C 7C832378 3AA00001 3A940001 2C140003 4180FFC4 -907B0238 38A3FFFF -90BB07C1 2C1C0000 +907B028C 38A3FFFF +90BB0815 2C1C0000 4082FF60 3A800000 -38D40248 7C86D8AE +38D4029C 7C86D8AE 2C040001 40820038 -38D40135 7C66D8AE -38D40138 7C86D8AE -38D40135 7C66D8AE -38D40138 7C86D8AE +38D40189 7C66D8AE +38D4018C 7C86D8AE +38D40189 7C66D8AE +38D4018C 7C86D8AE 7C041800 40820010 -38600000 38D40248 +38600000 38D4029C 7C66D9AE 3A940001 2C140003 4180FFB4 -3A800000 38D40248 +3A800000 38D4029C 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 -38600000 987B0237 +38600000 987B028B 3A800000 3AA00000 3B800001 887B0000 7C151800 40820008 @@ -1789,8 +1789,8 @@ BA810008 800100B4 7C1A1800 418000C0 887B000C 2C030001 418200B4 3B800000 -38D40138 7EC6D8AE -1C76000C 3863013B +38D4018C 7EC6D8AE +1C76000C 3863018F 1CB40054 7C632A14 1CD40054 38C6000E 7C7B1A14 7C983214 @@ -1798,19 +1798,19 @@ BA810008 800100B4 618C31F4 7D8903A6 4E800421 38760001 2C030007 41800008 -3863FFF9 38D40138 -7C66D9AE 38D40135 -7C66D8AE 38D40138 -7C86D8AE 38D40248 +3863FFF9 38D4018C +7C66D9AE 38D40189 +7C66D8AE 38D4018C +7C86D8AE 38D4029C 7C66D8AE 2C030001 4182003C 1CD40004 -38C6023C 7F46D92E -38600001 38D40248 -7C66D9AE 38D40135 -7EC6D9AE 887B0237 +38C60290 7F46D92E +38600001 38D4029C +7C66D9AE 38D40189 +7EC6D9AE 887B028B 2C030001 41820010 -935B0238 38600001 -987B0237 38600000 +935B028C 38600001 +987B028B 38600000 1C63000C 38A3000E 1CD40054 7CA53214 1C75000C 386300DC @@ -1820,7 +1820,7 @@ BA810008 800100B4 4E800421 3A940001 3AB50001 2C140003 4180FEC4 2C1C0000 -41820008 935B07C1 +41820008 935B0815 48000080 807B00DC 7C1A1800 40810024 BA810008 800100B4 @@ -1830,7 +1830,7 @@ BA810008 800100B4 807B00DC 7C7A1850 38630001 889B00E0 7C632051 40800008 -38630007 1C63000C +3863000E 1C63000C 388300E1 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 @@ -1991,7 +1991,7 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 2C000003 40820028 886500DA 2C030000 4182001C 38600001 -986507B8 3D808001 +9865080C 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2010,11 +2010,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF0253 8B9E0000 +3BDF02A7 8B9E0000 3C608048 80639D60 -809F07A2 7C032000 +809F07F6 7C032000 41810028 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2032,12 +2032,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0253 57DE043E +3BBF02A7 57DE043E 8B9D0000 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C032000 41810088 3C608048 80639D60 -809F07A2 7C632050 +809F07F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2062,12 +2062,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0253 57DE043E +3BBF02A7 57DE043E 8B9D0000 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C032000 41810088 3C608048 80639D60 -809F07A2 7C632050 +809F07F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2094,13 +2094,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF0253 +83EDB61C 3BDF02A7 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07A2 7C032000 +809F07F6 7C032000 41810070 3C608048 -80639D60 809F07A2 +80639D60 809F07F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3900,7 +3900,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B9 +83CDB61C 93FE080D 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -5563,7 +5563,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B8 A0190000 #Online/Logging/LogInputOnCopy.asm +043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C From 890ff75481b550bf053d1759b88095eb493dbd0e Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Feb 2022 15:40:09 -0500 Subject: [PATCH 064/217] fix bug where redundant savestates would be requested additionally had to solve a desync after making the changes to stop the crash requesting a savesate that no longer existed --- Online/Core/StartEngineLoop.asm | 6 +- Online/Core/TriggerSendInput.asm | 96 ++-- Online/Logging/LogInputOnCopy.asm | 2 +- Online/Online.s | 4 +- Output/Netplay/GALE01r2.ini | 797 ++++++++++++++++++++++-------- Output/Netplay/GALJ01r2.ini | 797 ++++++++++++++++++++++-------- 6 files changed, 1235 insertions(+), 467 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index ec406a94..d60c4d88 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -248,7 +248,7 @@ UPDATE_STABLE_FINALIZED: lwz r4, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) cmpw r3, r4 ble SKIP_STABLE_FINALIZED_UPDATE -# logf LOG_LEVEL_INFO, "[%d] Stable value updated to %d. Volatile: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[%d] Stable finalized value updated to %d. Volatile: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" stw r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) SKIP_STABLE_FINALIZED_UPDATE: @@ -266,9 +266,9 @@ cmpwi r3, 0 beq CAPTURE_END # Next check if this frame is greater than or equal to the frame we need -lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) +lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) cmpw REG_FRAME_INDEX, r3 -blt CAPTURE_END +ble CAPTURE_END # logf LOG_LEVEL_WARN, "[%d] Saving state", "mr r5, REG_FRAME_INDEX" diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 0f748970..b2dc335b 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -225,6 +225,7 @@ branchl r12, FN_EXITransferBuffer li r3, 0 stb r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) +# logf LOG_LEVEL_INFO, "[%d] Received results from Dolphin. Result: %d, Latest Frame: %d", "mr r5, REG_FRAME_INDEX", "lbz r6, RXB_RESULT(REG_RXB_ADDRESS)", "lwz r7, RXB_OPNT_FRAME_NUMS(REG_RXB_ADDRESS)" lbz r3, RXB_RESULT(REG_RXB_ADDRESS) cmpwi r3, RESP_SKIP beq SKIP_INPUT @@ -348,31 +349,18 @@ SKIP_DELAY_BUFFER_INDEX_WRAP: stb r3, ODB_DELAY_BUFFER_INDEX(REG_ODB_ADDRESS) ################################################################################ -# Section 9: Determine if we need to check for opponent inputs -################################################################################ -# If we already have an active rollback that we are waiting to be processed, just update -# the end frame so that this new frame of inputs gets used. TRIGGER_ROLLBACK already handles -# all of that for us, so just call that -lbz r3, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) -cmpwi r3, 0 -bne ROLLBACK_NOT_ACTIVE -# The check below might not be required because I think we might not be able to get here -# if should load state is false because of the check at the start of the file -lbz r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) -cmpwi r3, 0 -bne TRIGGER_ROLLBACK # If state should be loaded, TRIGGER_ROLLBACK -ROLLBACK_NOT_ACTIVE: - -################################################################################ -# Section 10: Check if we have prepared for rollback and inputs have been received +# Section 9: Check if we have prepared for rollback and inputs have been received ################################################################################ .set REG_ROLLBACK_REQUIRED, REG_VARIOUS_3 +.set REG_RXB_OFFSET, REG_VARIOUS_1 # Keep track if rollback is required. We still need to iterate through all the players # and frames and determine the earliest frame so we can update the SAVESTATE_FRAME before # triggering a rollback, otherwise we'd always rollback to the oldest frame -li REG_ROLLBACK_REQUIRED, 0 +# If a rollback is already active, this was an advance frame. In that case, always force the +# rollback again to update the end frame. +lbz REG_ROLLBACK_REQUIRED, ODB_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS) # If ODB_SAVESTATE_IS_PREDICTING is 0, we either don't have a savestate created # or we're in a rollback, so set the per-player savestate flags to 0 and skip @@ -416,24 +404,31 @@ lwzx r3, r6, REG_RXB_ADDRESS mulli r6, REG_COUNT, 4 addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME lwzx r4, r6, REG_ODB_ADDRESS -sub. r3, r3, r4 # Load offset for RXB, subtract opp frame from savestate frame +sub. REG_RXB_OFFSET, r3, r4 # Load offset for RXB, subtract opp frame from savestate frame blt CONTINUE_ROLLBACK_CHECK_LOOP +# logf LOG_LEVEL_INFO, "[%d] Checking predictions for opp #%d. SavestateFrame: %d, Finalized: %d, Latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4", "lwz r8, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)", "mr r9, 3" +lwz r6, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) +cmpw r4, r6 # If PLAYER_SAVESTATE_FRAME is greater than the finalized frame, check if inputs matched +bgt HAVE_PLAYER_INPUTS + +cmpw r3, r4 # Compare latest frame to current savestate frame (current index) + +# Advance the savestate frame without checking inputs if the frame we are considering has already +# been finalized +bgt INPUTS_MATCH + +# If the latest frame is equal to current savestate frame but we have +# already finalized that frame (only way we get here), just move on to the next player +b CONTINUE_ROLLBACK_CHECK_LOOP + HAVE_PLAYER_INPUTS: # If we get here, we have a savestate ready and we have received the inputs # required to handle the savestate, so let's check the inputs to see if we need # to roll back -mr REG_VARIOUS_1, r3 # backup depth offset to savestate frame -addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player -lbzx r3, r6, REG_ODB_ADDRESS -addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player -lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d[%d] r/w indexes when reading next input: %d/%d", "mr r5, 20", "mr r6, 22", "mr r7, 3", "mr r8, 4" -mr r3, REG_VARIOUS_1 # restore depth offset to savestate frame - # Compute offset of true inputs for this player on this frame -mulli r3, r3, PAD_REPORT_SIZE +mulli r3, REG_RXB_OFFSET, PAD_REPORT_SIZE addi r3, r3, RXB_OPNT_INPUTS mulli r6, REG_COUNT, PLAYER_MAX_INPUT_SIZE add r3, r3, r6 @@ -513,9 +508,9 @@ stwx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r3, r6, REG_ODB_ADDRESS # load this player's read idx addi r3, r3, 1 -cmpwi r3, ROLLBACK_MAX_FRAME_COUNT +cmpwi r3, LOCAL_INPUT_BUFFER_LEN blt SKIP_PREDICTED_INPUTS_READ_IDX_ADJUST -subi r3, r3, ROLLBACK_MAX_FRAME_COUNT +subi r3, r3, LOCAL_INPUT_BUFFER_LEN SKIP_PREDICTED_INPUTS_READ_IDX_ADJUST: stbx r3, r6, REG_ODB_ADDRESS @@ -578,12 +573,16 @@ blt CHECK_WHETHER_TO_ROLL_BACK_LOOP # the lowest value among players we're tracking a savestate frame for. This will allow us to # then roll back (if we need to) to the earliest frame that requires it +.set REG_LATEST_FRAME, REG_VARIOUS_1 .set REG_SAVESTATE_FRAME_SET, REG_VARIOUS_2 li REG_SAVESTATE_FRAME_SET, 0 li REG_COUNT, 0 -lwz r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) # r3 will hold the min savestate frame we see -#logf LOG_LEVEL_WARN, "Attempting to advance savestate frame past %d", "mr r5, 3" +# Minimum savestate should always be equal to the finalized frame, normally it should be +1 but +# in the case where we have not received any new inputs, we don't want to update the finalized +# frame which could cause inputs to get discarded +lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) # r3 will hold the min savestate frame we see +# logf LOG_LEVEL_WARN, "[%d] Attempting to advance savestate frame past %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3" COMPUTE_SAVESTATE_FRAME_LOOP: # If this player doesn't have missing inputs, ignore their savestate frame @@ -597,6 +596,7 @@ mulli r6, REG_COUNT, 4 addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME lwzx r4, r6, REG_ODB_ADDRESS +# logf LOG_LEVEL_INFO, "[%d] Checking savestate frame for opp #%d. Value: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4" # If we are the first player to bump the savestate frame, do it to set an initial value. cmpwi REG_SAVESTATE_FRAME_SET, 0 beq SKIP_SAVESTATE_FRAME_CHECK @@ -610,6 +610,12 @@ mr r3, r4 #logf LOG_LEVEL_WARN, "Player %d set savestate frame %d", "mr r5, 20", "mr r6, 4" li REG_SAVESTATE_FRAME_SET, 1 +# Keep track of the latest received frame for the player that sets the savestate frame. We don't +# want finalized frame to be greater than the latest received frame +mulli r6, REG_COUNT, 4 +addi r6, r6, RXB_OPNT_FRAME_NUMS +lwzx REG_LATEST_FRAME, r6, REG_RXB_ADDRESS + CONTINUE_SAVESTATE_FRAME_LOOP: addi REG_COUNT, REG_COUNT, 1 cmpwi REG_COUNT, 3 @@ -617,12 +623,17 @@ blt COMPUTE_SAVESTATE_FRAME_LOOP # Set the savestate frame to the minimum value among players with missing inputs stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_WARN, "[%d] Update savestate frame to %d after checking predictions", "mr r5, REG_FRAME_INDEX", "mr r6, 3" # Update finalized frame to the earliest frame where our predictions matched -subi r5, r3, 1 -stw r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) - +# We don't want finalized frame to be greater than the latest frame though, so make sure +# to not allow that +stw r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +cmpw r3, REG_LATEST_FRAME +ble SKIP_FINALIZED_OVERWRITE +stw REG_LATEST_FRAME, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +SKIP_FINALIZED_OVERWRITE: + +# logf LOG_LEVEL_WARN, "[%d] Savestate frame and volatile finalized set to: %d after checking predictions", "mr r5, REG_FRAME_INDEX", "mr r6, 3" # logf LOG_LEVEL_NOTICE, "New frame finalized: %d (Prediction)", "lwz r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" # Check if we had determined that a rollback was needed. If so, trigger the rollback now @@ -639,17 +650,12 @@ lbzx r4, r6, REG_ODB_ADDRESS cmpwi r4, 1 bne CONTINUE_CHECK_RESET_SAVESTATE_LOOP -addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player -lbzx r3, r6, REG_ODB_ADDRESS -addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player -lbzx r4, r6, REG_ODB_ADDRESS -#logf LOG_LEVEL_WARN, "Player %d r/w indexes during reset: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" - # Check if this player's inputs have caught up to the prediction addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player lbzx r4, r6, REG_ODB_ADDRESS +#logf LOG_LEVEL_WARN, "Player %d r/w indexes during reset: %d/%d", "mr r5, 20", "mr r6, 3", "mr r7, 4" # if we're caught up to the prediction, set this player's savestate flag back to 0 cmpw r4, r3 @@ -686,7 +692,7 @@ stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) #logf LOG_LEVEL_WARN, "Reset savestate flags to 0" ################################################################################ -# Section 11: Try to read opponent's input for this frame +# Section 10: Try to read opponent's input for this frame ################################################################################ .set REG_REMOTE_PLAYER_IDX, REG_VARIOUS_2 @@ -766,9 +772,9 @@ branchl r12, memcpy # increment write index addi r3, REG_PREDICTED_WRITE_IDX, 1 -cmpwi r3, ROLLBACK_MAX_FRAME_COUNT +cmpwi r3, LOCAL_INPUT_BUFFER_LEN blt SKIP_PREDICTED_INPUTS_WRITE_IDX_ADJUST -subi r3, r3, ROLLBACK_MAX_FRAME_COUNT +subi r3, r3, LOCAL_INPUT_BUFFER_LEN SKIP_PREDICTED_INPUTS_WRITE_IDX_ADJUST: addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player diff --git a/Online/Logging/LogInputOnCopy.asm b/Online/Logging/LogInputOnCopy.asm index dc19499a..01310f75 100644 --- a/Online/Logging/LogInputOnCopy.asm +++ b/Online/Logging/LogInputOnCopy.asm @@ -21,7 +21,7 @@ lwz r7, 0(r25) lwz r8, 4(r25) lwz r9, 8(r25) -logf LOG_LEVEL_NOTICE, "[%d] P%d %08X %08X %08X" +logf LOG_LEVEL_NOTICE, "[%d] P%d Using Input: %08X %08X %08X" lbz r3, 0x0041(r26) extsb. r0, r3 diff --git a/Online/Online.s b/Online/Online.s index a48b51b1..488370b6 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -211,8 +211,8 @@ .set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN .set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8 -.set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT -.set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 # bool +.set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN +.set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN * 3 # bool .set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_PREDICTING + 1 # s32 .set ODB_PLAYER_SAVESTATE_FRAME, ODB_SAVESTATE_FRAME + 4 # u32 .set ODB_PLAYER_SAVESTATE_IS_PREDICTING, ODB_PLAYER_SAVESTATE_FRAME + 4*3 # u32[3] diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 7c8a2689..afc11ada 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -584,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 80850808 -3884FF85 80E50811 +40820020 80850904 +3884FF85 80E5090D 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1138,13 +1138,13 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 2C1B0000 41810014 888500DA 2C040000 4182002C 3B600001 -888500DA 988507FE -808500DC 908507FF -888500DB 98850803 -8085028C 90850804 -48000028 8885080C +888500DA 988508FA +808500DC 908508FB +888500DB 988508FF +80850388 90850900 +48000028 88850908 2C040000 4182001C -38800000 9885080C +38800000 98850908 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1172,7 +1172,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407FA +808DB61C 806408F6 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1199,15 +1199,15 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 3860081D +40820338 38600919 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 3880081D +7C7B1B78 38800919 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D -7C6802A6 907B07FA +7C6802A6 907B08F6 38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 @@ -1220,18 +1220,18 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B029F 3860009E +933B039B 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B02A3 3880009E +907B039F 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 3860081D +93790005 38600919 90790009 9359000D 3860010A 90790011 -807B02A3 90790015 +807B039F 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1394,10 +1394,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF02A7 +83EDB61C 3BDF03A3 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07F6 7C18B800 +82FF08F2 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1426,14 +1426,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07F6 +4081001C 931F08F2 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F07FE +9B9E0000 8B7F08FA 2C1B0001 40820134 -807F07FF 7C181800 +807F08FB 7C181800 41800048 38600000 -987F00DA 987F07FE +987F00DA 987F08FA 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1475,8 +1475,8 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 80640811 -38630001 90640811 +808DB61C 8064090D +38630001 9064090D 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000109 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820288 3C608047 +408207D0 3C608047 60639D64 80630000 -2C030000 40820274 +2C030000 408207BC 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1534,7 +1534,7 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809E080D 3D80803A +809E0909 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1554,13 +1554,81 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987E000E -887E07FE 2C030000 -418200B0 887E0803 -2C030000 41820094 -807E0804 7C1F1800 -41820024 41800094 -807E029F 809E0804 -80BE02A3 3D808000 +887E08FA 2C030000 +418202D0 887E08FF +2C030000 418202B4 +4800002C 4E800021 +5B25645D 20436F6E +73696465 72696E67 +206C6F61 64696E67 +20737461 74653A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFAD 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +807E0900 7C1F1800 +418100C4 48000028 +4E800021 5B25645D +20537572 70726973 +696E6720 73746174 +65206C6F 61643A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB1 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +7C1F1800 418200D0 +41800140 48000020 +4E800021 5B25645D +204C6F61 64696E67 +20737461 74653A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +807E039B 809E0900 +80BE039F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1570,22 +1638,123 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E028C +83FF9D60 807E0388 907E0003 38600000 -987E028B 987E029C -987E029D 987E029E -987E00DB 987E0803 +987E0387 987E0398 +987E0399 987E039A +987E00DB 987E08FF 3D808001 618C95FC 7D8903A6 4E800421 -807E0815 7C1F1800 -4181000C 7FE3FB78 -48000004 809E0808 -7C032000 40810008 -907E0808 887E028B -2C030000 4182002C -807E028C 7C1F1800 -41800020 807E029F -7FE4FB78 80BE02A3 +48000050 4E800021 +5B25645D 20557064 +6174696E 67207374 +61626C65 2066696E +616C697A 65642066 +72616D65 2E204375 +7272656E 74537461 +626C653A 2025642C +20566F6C 6174696C +653A2025 64000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 80DE0904 +80FE0911 60000000 +60000000 806DAFC4 +38630003 4BFFFF89 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E0911 +7C1F1800 4181000C +7FE3FB78 48000004 +809E0904 7C032000 +408100D4 48000040 +4E800021 5B25645D +20537461 626C6520 +66696E61 6C697A65 +64207661 6C756520 +75706461 74656420 +746F2025 642E2056 +6F6C6174 696C653A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +7C661B78 80FE0911 +60000000 60000000 +806DAFC4 38630003 +4BFFFF99 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +907E0904 4800004C +4E800021 5B25645D +20436F6E 73696465 +72696E67 20736176 +696E6720 73746174 +652E2050 72656469 +6374696E 673A2025 +642C2053 61766573 +74617465 20467261 +6D653A20 25640000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 88DE0387 +80FE0388 60000000 +60000000 806DAFC4 +38630003 4BFFFF8D +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 887E0387 +2C030000 418200D4 +807E0904 7C1F1800 +408100C8 4800001C +4E800021 5B25645D +20536176 696E6720 +73746174 65000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFBD +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E039B +7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 887E000C 2C030001 @@ -1597,29 +1766,29 @@ C0570010 3D80803A 38630001 987E000B 2C030007 40810018 38600001 987E000C -807E07FA 7C6903A6 +807E08F6 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 000000EC #Online/Core/TriggerSendInput.asm +C2376A28 00000187 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820728 3C608047 +40820BFC 3C608047 60639D64 80630000 -2C030000 40820714 +2C030000 40820BE8 836DB61C 833B00D2 -831B00D6 82FB029F +831B00D6 82FB039B 835B0003 889B0002 1C84000C 386400DC 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820654 887B001C +41820B28 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1645,7 +1814,7 @@ B0830000 4E800020 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B0808 +93590001 807B0904 90790005 887B001C 98790009 3879000A 7FA4EB78 38A0000C @@ -1659,6 +1828,33 @@ B0830000 4E800020 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F +4800004C 4E800021 +5B25645D 20526563 +65697665 64207265 +73756C74 73206672 +6F6D2044 6F6C7068 +696E2E20 52657375 +6C743A20 25642C20 +4C617465 73742046 +72616D65 3A202564 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +88D80000 80F80002 +60000000 60000000 +806DAFC4 38630003 +4BFFFF8D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1694,153 +1890,281 @@ B0830000 4E800020 887B001D 38630001 7C032000 41800008 38600000 987B001D -887B00DA 2C030000 -40820010 887B00DB -2C030000 4082016C -3B800000 887B028B +8B9B00DA 887B0387 2C030000 40820018 -38600000 987B029C -987B029D 987B029E -48000268 3A800000 -38D4029C 7C66D8AE -2C030001 4082016C +38600000 987B0398 +987B0399 987B039A +4800067C 3A800000 +38D40398 7C66D8AE +2C030001 40820300 1CD40004 38C60002 7C66C02E 1CD40004 -38C60290 7C86D82E -7C641851 4180014C -7C761B78 38D40189 -7C66D8AE 38D4018C -7C86D8AE 7EC3B378 -1C63000C 3863000E -1CD40054 7C633214 -38D40189 7C86D8AE -1C84000C 3884018F -1CB40054 7C842A14 -7CD81A14 7CFB2214 -88660000 88870000 -546306FE 548406FE -7C032000 408200AC -88660001 88870001 -5463067E 5484067E -7C032000 40820094 -80660002 80870002 -7C032000 40820084 -38A00005 38A50001 -2C050008 40800028 -7C6530AE 7C8538AE -2C03002A 4181000C -2C04002A 4081FFE0 -7C032000 40820054 -4BFFFFD4 1CD40004 -38C60290 7C66D82E -38630001 7C66D92E +38C6038C 7C86D82E +7EC41851 418002E0 +48000060 4E800021 +5B25645D 20436865 +636B696E 67207072 +65646963 74696F6E +7320666F 72206F70 +70202325 642E2053 +61766573 74617465 +4672616D 653A2025 +642C2046 696E616C +697A6564 3A202564 +2C204C61 74657374 +3A202564 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +7F45D378 7E86A378 +7C872378 811B0904 +7C691B78 806DAFC4 +38630003 4BFFFF79 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 80DB0904 +7C043000 418100B8 +4800001C 4E800021 +426F6F2C 20776520 +6D616465 20697421 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 60000000 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFBD 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +7C032000 418100AC +48000134 1C76000C +3863000E 1CD40054 +7C633214 38D40189 +7C86D8AE 1C84000C +3884018F 1CB40054 +7C842A14 7CD81A14 +7CFB2214 88660000 +88870000 546306FE +548406FE 7C032000 +408200AC 88660001 +88870001 5463067E +5484067E 7C032000 +40820094 80660002 +80870002 7C032000 +40820084 38A00005 +38A50001 2C050008 +40800028 7C6530AE +7C8538AE 2C03002A +4181000C 2C04002A +4081FFE0 7C032000 +40820054 4BFFFFD4 +1CD40004 38C6038C +7C66D82E 38630001 +7C66D92E 38D40189 +7C66D8AE 38630001 +2C03000E 41800008 +3863FFF2 7C66D9AE 38D40189 7C66D8AE -38630001 2C030007 -41800008 3863FFF9 -7C66D9AE 38D40189 +38D4018C 7C86D8AE +7C041800 4082FD3C +48000044 3B800001 +4800003C 38600001 +987B00DA 987B00DB +935B00DC 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 3A940001 +2C140003 4180FCEC +3AA00000 3A800000 +807B0904 4800003C +4E800021 5B25645D +20417474 656D7074 +696E6720 746F2061 +6476616E 63652073 +61766573 74617465 +20667261 6D652070 +61737420 25640000 +7C0802A6 90010004 +9421FF00 BC610008 +7F45D378 7C661B78 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFF9D +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 38D40398 +7C86D8AE 2C040001 +40820100 1CD40004 +38C6038C 7C86D82E +48000040 4E800021 +5B25645D 20436865 +636B696E 67207361 +76657374 61746520 +6672616D 6520666F +72206F70 70202325 +642E2056 616C7565 +3A202564 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +7F45D378 7E86A378 +7C872378 60000000 +60000000 806DAFC4 +38630003 4BFFFF99 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 2C150000 +4182000C 7C041800 +40800018 7C832378 +3AA00001 1CD40004 +38C60002 7EC6C02E +3A940001 2C140003 +4180FEEC 907B0388 +907B0911 7C03B000 +40810008 92DB0911 +4800005C 4E800021 +5B25645D 20536176 +65737461 74652066 +72616D65 20616E64 +20766F6C 6174696C +65206669 6E616C69 +7A656420 73657420 +746F3A20 25642061 +66746572 20636865 +636B696E 67207072 +65646963 74696F6E +73000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +7C661B78 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFF7D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +2C1C0000 4082FCD0 +3A800000 38D40398 +7C86D8AE 2C040001 +40820028 38D40189 7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FED0 48000044 -3B800001 4800003C -38600001 987B00DA -987B00DB 935B00DC -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 +40820010 38600000 +38D40398 7C66D9AE 3A940001 2C140003 -4180FE80 3AA00000 -3A800000 807B028C -38D4029C 7C86D8AE -2C040001 40820028 -1CD40004 38C60290 -7C86D82E 2C150000 -4182000C 7C041800 -4080000C 7C832378 -3AA00001 3A940001 -2C140003 4180FFC4 -907B028C 38A3FFFF -90BB0815 2C1C0000 -4082FF60 3A800000 -38D4029C 7C86D8AE -2C040001 40820038 -38D40189 7C66D8AE -38D4018C 7C86D8AE +4180FFC4 3A800000 +38D40398 7C86D8AE +2C040001 41820018 +3A940001 2C140003 +4180FFE8 38600000 +987B0387 3A800000 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D8 +887B001C 38800054 +7C632050 7C1A1800 +418000C0 887B000C +2C030001 418200B4 +3B800000 38D4018C +7EC6D8AE 1C76000C +3863018F 1CB40054 +7C632A14 1CD40054 +38C6000E 7C7B1A14 +7C983214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +38760001 2C03000E +41800008 3863FFF2 +38D4018C 7C66D9AE 38D40189 7C66D8AE 38D4018C 7C86D8AE -7C041800 40820010 -38600000 38D4029C -7C66D9AE 3A940001 -2C140003 4180FFB4 -3A800000 38D4029C -7C86D8AE 2C040001 -41820018 3A940001 -2C140003 4180FFE8 -38600000 987B028B -3A800000 3AA00000 -3B800001 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D8 887B001C -38800054 7C632050 -7C1A1800 418000C0 -887B000C 2C030001 -418200B4 3B800000 -38D4018C 7EC6D8AE -1C76000C 3863018F -1CB40054 7C632A14 -1CD40054 38C6000E -7C7B1A14 7C983214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 38760001 -2C030007 41800008 -3863FFF9 38D4018C -7C66D9AE 38D40189 -7C66D8AE 38D4018C -7C86D8AE 38D4029C -7C66D8AE 2C030001 -4182003C 1CD40004 -38C60290 7F46D92E -38600001 38D4029C -7C66D9AE 38D40189 -7EC6D9AE 887B028B -2C030001 41820010 -935B028C 38600001 -987B028B 38600000 -1C63000C 38A3000E -1CD40054 7CA53214 -1C75000C 386300DC -7C611A14 7C982A14 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 3A940001 -3AB50001 2C140003 -4180FEC4 2C1C0000 -41820008 935B0815 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -3863000E 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE2C -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +38D40398 7C66D8AE +2C030001 4182003C +1CD40004 38C6038C +7F46D92E 38600001 +38D40398 7C66D9AE +38D40189 7EC6D9AE +887B0387 2C030001 +41820010 935B0388 +38600001 987B0387 +38600000 1C63000C +38A3000E 1CD40054 +7CA53214 1C75000C +386300DC 7C611A14 +7C982A14 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +3A940001 3AB50001 +2C140003 4180FEC4 +2C1C0000 41820008 +935B0911 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 3863000E +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -1991,7 +2315,7 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 2C000003 40820028 886500DA 2C030000 4182001C 38600001 -9865080C 3D808001 +98650908 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2010,11 +2334,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF02A7 8B9E0000 +3BDF03A3 8B9E0000 3C608048 80639D60 -809F07F6 7C032000 +809F08F2 7C032000 41810028 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2032,12 +2356,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF02A7 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07F6 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2062,12 +2386,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF02A7 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07F6 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2094,13 +2418,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF02A7 +83EDB61C 3BDF03A3 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07F6 7C032000 +809F08F2 7C032000 41810070 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3900,7 +4224,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE080D +83CDB61C 93FE0909 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -5563,7 +5887,64 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm +C23775B0 00000039 #Online/Logging/LogInputOnCopy.asm +3C608048 80639D30 +5463443E 2C030208 +408201A8 2C180002 +408001A0 3CA08048 +80A59D60 7F06C378 +80F90000 81190004 +81390008 48000030 +4E800021 5B25645D +20502564 20557369 +6E672049 6E707574 +3A202530 38582025 +30385820 25303858 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 60000000 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887A0041 7C600775 +418200C0 48000030 +4E800021 496E7075 +74206465 74656374 +65642077 69746820 +6E6F6E2D 7A65726F +20737461 7475733A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7C650774 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887A0041 7C600775 +60000000 00000000 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f2dd57f7..47c2fc1e 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -584,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 80850808 -3884FF85 80E50811 +40820020 80850904 +3884FF85 80E5090D 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1138,13 +1138,13 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 2C1B0000 41810014 888500DA 2C040000 4182002C 3B600001 -888500DA 988507FE -808500DC 908507FF -888500DB 98850803 -8085028C 90850804 -48000028 8885080C +888500DA 988508FA +808500DC 908508FB +888500DB 988508FF +80850388 90850900 +48000028 88850908 2C040000 4182001C -38800000 9885080C +38800000 98850908 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1172,7 +1172,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407FA +808DB61C 806408F6 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1199,15 +1199,15 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820338 3860081D +40820338 38600919 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 3880081D +7C7B1B78 38800919 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 4800023D -7C6802A6 907B07FA +7C6802A6 907B08F6 38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 @@ -1220,18 +1220,18 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B029F 3860009E +933B039B 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B02A3 3880009E +907B039F 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 3860081D +93790005 38600919 90790009 9359000D 3860010A 90790011 -807B02A3 90790015 +807B039F 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1394,10 +1394,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF02A7 +83EDB61C 3BDF03A3 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07F6 7C18B800 +82FF08F2 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1426,14 +1426,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07F6 +4081001C 931F08F2 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F07FE +9B9E0000 8B7F08FA 2C1B0001 40820134 -807F07FF 7C181800 +807F08FB 7C181800 41800048 38600000 -987F00DA 987F07FE +987F00DA 987F08FA 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1475,8 +1475,8 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 80640811 -38630001 90640811 +808DB61C 8064090D +38630001 9064090D 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000109 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820288 3C608047 +408207D0 3C608047 60639D64 80630000 -2C030000 40820274 +2C030000 408207BC 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1534,7 +1534,7 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809E080D 3D80803A +809E0909 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1554,13 +1554,81 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987E000E -887E07FE 2C030000 -418200B0 887E0803 -2C030000 41820094 -807E0804 7C1F1800 -41820024 41800094 -807E029F 809E0804 -80BE02A3 3D808000 +887E08FA 2C030000 +418202D0 887E08FF +2C030000 418202B4 +4800002C 4E800021 +5B25645D 20436F6E +73696465 72696E67 +206C6F61 64696E67 +20737461 74653A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFAD 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +807E0900 7C1F1800 +418100C4 48000028 +4E800021 5B25645D +20537572 70726973 +696E6720 73746174 +65206C6F 61643A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB1 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +7C1F1800 418200D0 +41800140 48000020 +4E800021 5B25645D +204C6F61 64696E67 +20737461 74653A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +807E039B 809E0900 +80BE039F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1570,22 +1638,123 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E028C +83FF9D60 807E0388 907E0003 38600000 -987E028B 987E029C -987E029D 987E029E -987E00DB 987E0803 +987E0387 987E0398 +987E0399 987E039A +987E00DB 987E08FF 3D808001 618C95FC 7D8903A6 4E800421 -807E0815 7C1F1800 -4181000C 7FE3FB78 -48000004 809E0808 -7C032000 40810008 -907E0808 887E028B -2C030000 4182002C -807E028C 7C1F1800 -41800020 807E029F -7FE4FB78 80BE02A3 +48000050 4E800021 +5B25645D 20557064 +6174696E 67207374 +61626C65 2066696E +616C697A 65642066 +72616D65 2E204375 +7272656E 74537461 +626C653A 2025642C +20566F6C 6174696C +653A2025 64000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 80DE0904 +80FE0911 60000000 +60000000 806DAFC4 +38630003 4BFFFF89 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E0911 +7C1F1800 4181000C +7FE3FB78 48000004 +809E0904 7C032000 +408100D4 48000040 +4E800021 5B25645D +20537461 626C6520 +66696E61 6C697A65 +64207661 6C756520 +75706461 74656420 +746F2025 642E2056 +6F6C6174 696C653A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +7C661B78 80FE0911 +60000000 60000000 +806DAFC4 38630003 +4BFFFF99 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +907E0904 4800004C +4E800021 5B25645D +20436F6E 73696465 +72696E67 20736176 +696E6720 73746174 +652E2050 72656469 +6374696E 673A2025 +642C2053 61766573 +74617465 20467261 +6D653A20 25640000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 88DE0387 +80FE0388 60000000 +60000000 806DAFC4 +38630003 4BFFFF8D +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 887E0387 +2C030000 418200D4 +807E0904 7C1F1800 +408100C8 4800001C +4E800021 5B25645D +20536176 696E6720 +73746174 65000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFBD +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E039B +7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 887E000C 2C030001 @@ -1597,29 +1766,29 @@ C0570010 3D80803A 38630001 987E000B 2C030007 40810018 38600001 987E000C -807E07FA 7C6903A6 +807E08F6 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 000000EC #Online/Core/TriggerSendInput.asm +C2376A28 00000187 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820728 3C608047 +40820BFC 3C608047 60639D64 80630000 -2C030000 40820714 +2C030000 40820BE8 836DB61C 833B00D2 -831B00D6 82FB029F +831B00D6 82FB039B 835B0003 889B0002 1C84000C 386400DC 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820654 887B001C +41820B28 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1645,7 +1814,7 @@ B0830000 4E800020 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B0808 +93590001 807B0904 90790005 887B001C 98790009 3879000A 7FA4EB78 38A0000C @@ -1659,6 +1828,33 @@ B0830000 4E800020 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F +4800004C 4E800021 +5B25645D 20526563 +65697665 64207265 +73756C74 73206672 +6F6D2044 6F6C7068 +696E2E20 52657375 +6C743A20 25642C20 +4C617465 73742046 +72616D65 3A202564 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +88D80000 80F80002 +60000000 60000000 +806DAFC4 38630003 +4BFFFF8D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1694,153 +1890,281 @@ B0830000 4E800020 887B001D 38630001 7C032000 41800008 38600000 987B001D -887B00DA 2C030000 -40820010 887B00DB -2C030000 4082016C -3B800000 887B028B +8B9B00DA 887B0387 2C030000 40820018 -38600000 987B029C -987B029D 987B029E -48000268 3A800000 -38D4029C 7C66D8AE -2C030001 4082016C +38600000 987B0398 +987B0399 987B039A +4800067C 3A800000 +38D40398 7C66D8AE +2C030001 40820300 1CD40004 38C60002 7C66C02E 1CD40004 -38C60290 7C86D82E -7C641851 4180014C -7C761B78 38D40189 -7C66D8AE 38D4018C -7C86D8AE 7EC3B378 -1C63000C 3863000E -1CD40054 7C633214 -38D40189 7C86D8AE -1C84000C 3884018F -1CB40054 7C842A14 -7CD81A14 7CFB2214 -88660000 88870000 -546306FE 548406FE -7C032000 408200AC -88660001 88870001 -5463067E 5484067E -7C032000 40820094 -80660002 80870002 -7C032000 40820084 -38A00005 38A50001 -2C050008 40800028 -7C6530AE 7C8538AE -2C03002A 4181000C -2C04002A 4081FFE0 -7C032000 40820054 -4BFFFFD4 1CD40004 -38C60290 7C66D82E -38630001 7C66D92E +38C6038C 7C86D82E +7EC41851 418002E0 +48000060 4E800021 +5B25645D 20436865 +636B696E 67207072 +65646963 74696F6E +7320666F 72206F70 +70202325 642E2053 +61766573 74617465 +4672616D 653A2025 +642C2046 696E616C +697A6564 3A202564 +2C204C61 74657374 +3A202564 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +7F45D378 7E86A378 +7C872378 811B0904 +7C691B78 806DAFC4 +38630003 4BFFFF79 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 80DB0904 +7C043000 418100B8 +4800001C 4E800021 +426F6F2C 20776520 +6D616465 20697421 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 60000000 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFBD 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +7C032000 418100AC +48000134 1C76000C +3863000E 1CD40054 +7C633214 38D40189 +7C86D8AE 1C84000C +3884018F 1CB40054 +7C842A14 7CD81A14 +7CFB2214 88660000 +88870000 546306FE +548406FE 7C032000 +408200AC 88660001 +88870001 5463067E +5484067E 7C032000 +40820094 80660002 +80870002 7C032000 +40820084 38A00005 +38A50001 2C050008 +40800028 7C6530AE +7C8538AE 2C03002A +4181000C 2C04002A +4081FFE0 7C032000 +40820054 4BFFFFD4 +1CD40004 38C6038C +7C66D82E 38630001 +7C66D92E 38D40189 +7C66D8AE 38630001 +2C03000E 41800008 +3863FFF2 7C66D9AE 38D40189 7C66D8AE -38630001 2C030007 -41800008 3863FFF9 -7C66D9AE 38D40189 +38D4018C 7C86D8AE +7C041800 4082FD3C +48000044 3B800001 +4800003C 38600001 +987B00DA 987B00DB +935B00DC 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 3A940001 +2C140003 4180FCEC +3AA00000 3A800000 +807B0904 4800003C +4E800021 5B25645D +20417474 656D7074 +696E6720 746F2061 +6476616E 63652073 +61766573 74617465 +20667261 6D652070 +61737420 25640000 +7C0802A6 90010004 +9421FF00 BC610008 +7F45D378 7C661B78 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFF9D +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 38D40398 +7C86D8AE 2C040001 +40820100 1CD40004 +38C6038C 7C86D82E +48000040 4E800021 +5B25645D 20436865 +636B696E 67207361 +76657374 61746520 +6672616D 6520666F +72206F70 70202325 +642E2056 616C7565 +3A202564 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +7F45D378 7E86A378 +7C872378 60000000 +60000000 806DAFC4 +38630003 4BFFFF99 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800004 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 2C150000 +4182000C 7C041800 +40800018 7C832378 +3AA00001 1CD40004 +38C60002 7EC6C02E +3A940001 2C140003 +4180FEEC 907B0388 +907B0911 7C03B000 +40810008 92DB0911 +4800005C 4E800021 +5B25645D 20536176 +65737461 74652066 +72616D65 20616E64 +20766F6C 6174696C +65206669 6E616C69 +7A656420 73657420 +746F3A20 25642061 +66746572 20636865 +636B696E 67207072 +65646963 74696F6E +73000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +7C661B78 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFF7D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +2C1C0000 4082FCD0 +3A800000 38D40398 +7C86D8AE 2C040001 +40820028 38D40189 7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FED0 48000044 -3B800001 4800003C -38600001 987B00DA -987B00DB 935B00DC -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 +40820010 38600000 +38D40398 7C66D9AE 3A940001 2C140003 -4180FE80 3AA00000 -3A800000 807B028C -38D4029C 7C86D8AE -2C040001 40820028 -1CD40004 38C60290 -7C86D82E 2C150000 -4182000C 7C041800 -4080000C 7C832378 -3AA00001 3A940001 -2C140003 4180FFC4 -907B028C 38A3FFFF -90BB0815 2C1C0000 -4082FF60 3A800000 -38D4029C 7C86D8AE -2C040001 40820038 -38D40189 7C66D8AE -38D4018C 7C86D8AE +4180FFC4 3A800000 +38D40398 7C86D8AE +2C040001 41820018 +3A940001 2C140003 +4180FFE8 38600000 +987B0387 3A800000 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D8 +887B001C 38800054 +7C632050 7C1A1800 +418000C0 887B000C +2C030001 418200B4 +3B800000 38D4018C +7EC6D8AE 1C76000C +3863018F 1CB40054 +7C632A14 1CD40054 +38C6000E 7C7B1A14 +7C983214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +38760001 2C03000E +41800008 3863FFF2 +38D4018C 7C66D9AE 38D40189 7C66D8AE 38D4018C 7C86D8AE -7C041800 40820010 -38600000 38D4029C -7C66D9AE 3A940001 -2C140003 4180FFB4 -3A800000 38D4029C -7C86D8AE 2C040001 -41820018 3A940001 -2C140003 4180FFE8 -38600000 987B028B -3A800000 3AA00000 -3B800001 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D8 887B001C -38800054 7C632050 -7C1A1800 418000C0 -887B000C 2C030001 -418200B4 3B800000 -38D4018C 7EC6D8AE -1C76000C 3863018F -1CB40054 7C632A14 -1CD40054 38C6000E -7C7B1A14 7C983214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 38760001 -2C030007 41800008 -3863FFF9 38D4018C -7C66D9AE 38D40189 -7C66D8AE 38D4018C -7C86D8AE 38D4029C -7C66D8AE 2C030001 -4182003C 1CD40004 -38C60290 7F46D92E -38600001 38D4029C -7C66D9AE 38D40189 -7EC6D9AE 887B028B -2C030001 41820010 -935B028C 38600001 -987B028B 38600000 -1C63000C 38A3000E -1CD40054 7CA53214 -1C75000C 386300DC -7C611A14 7C982A14 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 3A940001 -3AB50001 2C140003 -4180FEC4 2C1C0000 -41820008 935B0815 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -3863000E 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE2C -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +38D40398 7C66D8AE +2C030001 4182003C +1CD40004 38C6038C +7F46D92E 38600001 +38D40398 7C66D9AE +38D40189 7EC6D9AE +887B0387 2C030001 +41820010 935B0388 +38600001 987B0387 +38600000 1C63000C +38A3000E 1CD40054 +7CA53214 1C75000C +386300DC 7C611A14 +7C982A14 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +3A940001 3AB50001 +2C140003 4180FEC4 +2C1C0000 41820008 +935B0911 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 3863000E +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -1991,7 +2315,7 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 2C000003 40820028 886500DA 2C030000 4182001C 38600001 -9865080C 3D808001 +98650908 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2010,11 +2334,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF02A7 8B9E0000 +3BDF03A3 8B9E0000 3C608048 80639D60 -809F07F6 7C032000 +809F08F2 7C032000 41810028 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2032,12 +2356,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF02A7 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07F6 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2062,12 +2386,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF02A7 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07F6 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2094,13 +2418,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF02A7 +83EDB61C 3BDF03A3 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07F6 7C032000 +809F08F2 7C032000 41810070 3C608048 -80639D60 809F07F6 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3900,7 +4224,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE080D +83CDB61C 93FE0909 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -5563,7 +5887,64 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm +C23775B0 00000039 #Online/Logging/LogInputOnCopy.asm +3C608048 80639D30 +5463443E 2C030208 +408201A8 2C180002 +408001A0 3CA08048 +80A59D60 7F06C378 +80F90000 81190004 +81390008 48000030 +4E800021 5B25645D +20502564 20557369 +6E672049 6E707574 +3A202530 38582025 +30385820 25303858 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 60000000 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887A0041 7C600775 +418200C0 48000030 +4E800021 496E7075 +74206465 74656374 +65642077 69746820 +6E6F6E2D 7A65726F +20737461 7475733A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7C650774 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887A0041 7C600775 +60000000 00000000 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C From caaa8b425afca61d7b192416a29a81a82b0d45ed Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Feb 2022 15:41:29 -0500 Subject: [PATCH 065/217] build codeset --- Output/Netplay/GALE01r2.ini | 523 +++++------------------------------- Output/Netplay/GALJ01r2.ini | 523 +++++------------------------------- 2 files changed, 140 insertions(+), 906 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index afc11ada..56699573 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000109 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 00000109 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408207D0 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 408207BC +2C030000 40820274 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1555,78 +1555,10 @@ C0570010 3D80803A 7D8903A6 4E800421 38600001 987E000E 887E08FA 2C030000 -418202D0 887E08FF -2C030000 418202B4 -4800002C 4E800021 -5B25645D 20436F6E -73696465 72696E67 -206C6F61 64696E67 -20737461 74653A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFAD 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +418200B0 887E08FF +2C030000 41820094 807E0900 7C1F1800 -418100C4 48000028 -4E800021 5B25645D -20537572 70726973 -696E6720 73746174 -65206C6F 61643A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB1 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -7C1F1800 418200D0 -41800140 48000020 -4E800021 5B25645D -204C6F61 64696E67 -20737461 74653A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +41820024 41800094 807E039B 809E0900 80BE039F 3D808000 618C560C 7D8903A6 @@ -1645,115 +1577,14 @@ B8610008 80010104 987E00DB 987E08FF 3D808001 618C95FC 7D8903A6 4E800421 -48000050 4E800021 -5B25645D 20557064 -6174696E 67207374 -61626C65 2066696E -616C697A 65642066 -72616D65 2E204375 -7272656E 74537461 -626C653A 2025642C -20566F6C 6174696C -653A2025 64000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 80DE0904 -80FE0911 60000000 -60000000 806DAFC4 -38630003 4BFFFF89 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E0911 -7C1F1800 4181000C -7FE3FB78 48000004 -809E0904 7C032000 -408100D4 48000040 -4E800021 5B25645D -20537461 626C6520 -66696E61 6C697A65 -64207661 6C756520 -75706461 74656420 -746F2025 642E2056 -6F6C6174 696C653A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -7C661B78 80FE0911 -60000000 60000000 -806DAFC4 38630003 -4BFFFF99 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -907E0904 4800004C -4E800021 5B25645D -20436F6E 73696465 -72696E67 20736176 -696E6720 73746174 -652E2050 72656469 -6374696E 673A2025 -642C2053 61766573 -74617465 20467261 -6D653A20 25640000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 88DE0387 -80FE0388 60000000 -60000000 806DAFC4 -38630003 4BFFFF8D -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 887E0387 -2C030000 418200D4 +807E0911 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0904 +7C032000 40810008 +907E0904 887E0387 +2C030000 4182002C 807E0904 7C1F1800 -408100C8 4800001C -4E800021 5B25645D -20536176 696E6720 -73746174 65000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFBD -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E039B +40810020 807E039B 7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 @@ -1773,14 +1604,14 @@ B8610008 80010104 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 00000187 #Online/Core/TriggerSendInput.asm +C2376A28 000000EA #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820BFC 3C608047 +40820714 3C608047 60639D64 80630000 -2C030000 40820BE8 +2C030000 40820700 836DB61C 833B00D2 831B00D6 82FB039B 835B0003 889B0002 @@ -1788,7 +1619,7 @@ C2376A28 00000187 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820B28 887B001C +41820640 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1828,33 +1659,6 @@ B0830000 4E800020 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F -4800004C 4E800021 -5B25645D 20526563 -65697665 64207265 -73756C74 73206672 -6F6D2044 6F6C7068 -696E2E20 52657375 -6C743A20 25642C20 -4C617465 73742046 -72616D65 3A202564 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -88D80000 80F80002 -60000000 60000000 -806DAFC4 38630003 -4BFFFF8D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1894,200 +1698,70 @@ B8610008 80010104 2C030000 40820018 38600000 987B0398 987B0399 987B039A -4800067C 3A800000 +4800026C 3A800000 38D40398 7C66D8AE -2C030001 40820300 +2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 38C6038C 7C86D82E -7EC41851 418002E0 -48000060 4E800021 -5B25645D 20436865 -636B696E 67207072 -65646963 74696F6E -7320666F 72206F70 -70202325 642E2053 -61766573 74617465 -4672616D 653A2025 -642C2046 696E616C -697A6564 3A202564 -2C204C61 74657374 -3A202564 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -7F45D378 7E86A378 -7C872378 811B0904 -7C691B78 806DAFC4 -38630003 4BFFFF79 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 80DB0904 -7C043000 418100B8 -4800001C 4E800021 -426F6F2C 20776520 -6D616465 20697421 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFBD 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -7C032000 418100AC -48000134 1C76000C -3863000E 1CD40054 -7C633214 38D40189 -7C86D8AE 1C84000C -3884018F 1CB40054 -7C842A14 7CD81A14 -7CFB2214 88660000 -88870000 546306FE -548406FE 7C032000 -408200AC 88660001 -88870001 5463067E -5484067E 7C032000 -40820094 80660002 -80870002 7C032000 -40820084 38A00005 -38A50001 2C050008 -40800028 7C6530AE -7C8538AE 2C03002A -4181000C 2C04002A -4081FFE0 7C032000 -40820054 4BFFFFD4 -1CD40004 38C6038C -7C66D82E 38630001 -7C66D92E 38D40189 -7C66D8AE 38630001 -2C03000E 41800008 -3863FFF2 7C66D9AE +7EC41851 4180014C +80DB0904 7C043000 +41810010 7C032000 +418100AC 48000134 +1C76000C 3863000E +1CD40054 7C633214 +38D40189 7C86D8AE +1C84000C 3884018F +1CB40054 7C842A14 +7CD81A14 7CFB2214 +88660000 88870000 +546306FE 548406FE +7C032000 408200AC +88660001 88870001 +5463067E 5484067E +7C032000 40820094 +80660002 80870002 +7C032000 40820084 +38A00005 38A50001 +2C050008 40800028 +7C6530AE 7C8538AE +2C03002A 4181000C +2C04002A 4081FFE0 +7C032000 40820054 +4BFFFFD4 1CD40004 +38C6038C 7C66D82E +38630001 7C66D92E 38D40189 7C66D8AE -38D4018C 7C86D8AE -7C041800 4082FD3C -48000044 3B800001 -4800003C 38600001 -987B00DA 987B00DB -935B00DC 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FCEC -3AA00000 3A800000 -807B0904 4800003C -4E800021 5B25645D -20417474 656D7074 -696E6720 746F2061 -6476616E 63652073 -61766573 74617465 -20667261 6D652070 -61737420 25640000 -7C0802A6 90010004 -9421FF00 BC610008 -7F45D378 7C661B78 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFF9D -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 38D40398 -7C86D8AE 2C040001 -40820100 1CD40004 -38C6038C 7C86D82E -48000040 4E800021 -5B25645D 20436865 -636B696E 67207361 -76657374 61746520 -6672616D 6520666F -72206F70 70202325 -642E2056 616C7565 -3A202564 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -7F45D378 7E86A378 -7C872378 60000000 -60000000 806DAFC4 -38630003 4BFFFF99 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 2C150000 +38630001 2C03000E +41800008 3863FFF2 +7C66D9AE 38D40189 +7C66D8AE 38D4018C +7C86D8AE 7C041800 +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +3A940001 2C140003 +4180FE80 3AA00000 +3A800000 807B0904 +38D40398 7C86D8AE +2C040001 40820034 +1CD40004 38C6038C +7C86D82E 2C150000 4182000C 7C041800 40800018 7C832378 3AA00001 1CD40004 38C60002 7EC6C02E 3A940001 2C140003 -4180FEEC 907B0388 +4180FFB8 907B0388 907B0911 7C03B000 40810008 92DB0911 -4800005C 4E800021 -5B25645D 20536176 -65737461 74652066 -72616D65 20616E64 -20766F6C 6174696C -65206669 6E616C69 -7A656420 73657420 -746F3A20 25642061 -66746572 20636865 -636B696E 67207072 -65646963 74696F6E -73000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -7C661B78 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFF7D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -2C1C0000 4082FCD0 +2C1C0000 4082FF4C 3A800000 38D40398 7C86D8AE 2C040001 40820028 38D40189 @@ -5887,64 +5561,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C23775B0 00000039 #Online/Logging/LogInputOnCopy.asm -3C608048 80639D30 -5463443E 2C030208 -408201A8 2C180002 -408001A0 3CA08048 -80A59D60 7F06C378 -80F90000 81190004 -81390008 48000030 -4E800021 5B25645D -20502564 20557369 -6E672049 6E707574 -3A202530 38582025 -30385820 25303858 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887A0041 7C600775 -418200C0 48000030 -4E800021 496E7075 -74206465 74656374 -65642077 69746820 -6E6F6E2D 7A65726F -20737461 7475733A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7C650774 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887A0041 7C600775 -60000000 00000000 +043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 47c2fc1e..62d770fa 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000109 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 00000109 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408207D0 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 408207BC +2C030000 40820274 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1555,78 +1555,10 @@ C0570010 3D80803A 7D8903A6 4E800421 38600001 987E000E 887E08FA 2C030000 -418202D0 887E08FF -2C030000 418202B4 -4800002C 4E800021 -5B25645D 20436F6E -73696465 72696E67 -206C6F61 64696E67 -20737461 74653A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFAD 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +418200B0 887E08FF +2C030000 41820094 807E0900 7C1F1800 -418100C4 48000028 -4E800021 5B25645D -20537572 70726973 -696E6720 73746174 -65206C6F 61643A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB1 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -7C1F1800 418200D0 -41800140 48000020 -4E800021 5B25645D -204C6F61 64696E67 -20737461 74653A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +41820024 41800094 807E039B 809E0900 80BE039F 3D808000 618C560C 7D8903A6 @@ -1645,115 +1577,14 @@ B8610008 80010104 987E00DB 987E08FF 3D808001 618C95FC 7D8903A6 4E800421 -48000050 4E800021 -5B25645D 20557064 -6174696E 67207374 -61626C65 2066696E -616C697A 65642066 -72616D65 2E204375 -7272656E 74537461 -626C653A 2025642C -20566F6C 6174696C -653A2025 64000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 80DE0904 -80FE0911 60000000 -60000000 806DAFC4 -38630003 4BFFFF89 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E0911 -7C1F1800 4181000C -7FE3FB78 48000004 -809E0904 7C032000 -408100D4 48000040 -4E800021 5B25645D -20537461 626C6520 -66696E61 6C697A65 -64207661 6C756520 -75706461 74656420 -746F2025 642E2056 -6F6C6174 696C653A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -7C661B78 80FE0911 -60000000 60000000 -806DAFC4 38630003 -4BFFFF99 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -907E0904 4800004C -4E800021 5B25645D -20436F6E 73696465 -72696E67 20736176 -696E6720 73746174 -652E2050 72656469 -6374696E 673A2025 -642C2053 61766573 -74617465 20467261 -6D653A20 25640000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 88DE0387 -80FE0388 60000000 -60000000 806DAFC4 -38630003 4BFFFF8D -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 887E0387 -2C030000 418200D4 +807E0911 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0904 +7C032000 40810008 +907E0904 887E0387 +2C030000 4182002C 807E0904 7C1F1800 -408100C8 4800001C -4E800021 5B25645D -20536176 696E6720 -73746174 65000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFBD -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E039B +40810020 807E039B 7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 @@ -1773,14 +1604,14 @@ B8610008 80010104 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 00000187 #Online/Core/TriggerSendInput.asm +C2376A28 000000EA #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820BFC 3C608047 +40820714 3C608047 60639D64 80630000 -2C030000 40820BE8 +2C030000 40820700 836DB61C 833B00D2 831B00D6 82FB039B 835B0003 889B0002 @@ -1788,7 +1619,7 @@ C2376A28 00000187 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820B28 887B001C +41820640 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1828,33 +1659,6 @@ B0830000 4E800020 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F -4800004C 4E800021 -5B25645D 20526563 -65697665 64207265 -73756C74 73206672 -6F6D2044 6F6C7068 -696E2E20 52657375 -6C743A20 25642C20 -4C617465 73742046 -72616D65 3A202564 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -88D80000 80F80002 -60000000 60000000 -806DAFC4 38630003 -4BFFFF8D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1894,200 +1698,70 @@ B8610008 80010104 2C030000 40820018 38600000 987B0398 987B0399 987B039A -4800067C 3A800000 +4800026C 3A800000 38D40398 7C66D8AE -2C030001 40820300 +2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 38C6038C 7C86D82E -7EC41851 418002E0 -48000060 4E800021 -5B25645D 20436865 -636B696E 67207072 -65646963 74696F6E -7320666F 72206F70 -70202325 642E2053 -61766573 74617465 -4672616D 653A2025 -642C2046 696E616C -697A6564 3A202564 -2C204C61 74657374 -3A202564 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -7F45D378 7E86A378 -7C872378 811B0904 -7C691B78 806DAFC4 -38630003 4BFFFF79 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 80DB0904 -7C043000 418100B8 -4800001C 4E800021 -426F6F2C 20776520 -6D616465 20697421 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFBD 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -7C032000 418100AC -48000134 1C76000C -3863000E 1CD40054 -7C633214 38D40189 -7C86D8AE 1C84000C -3884018F 1CB40054 -7C842A14 7CD81A14 -7CFB2214 88660000 -88870000 546306FE -548406FE 7C032000 -408200AC 88660001 -88870001 5463067E -5484067E 7C032000 -40820094 80660002 -80870002 7C032000 -40820084 38A00005 -38A50001 2C050008 -40800028 7C6530AE -7C8538AE 2C03002A -4181000C 2C04002A -4081FFE0 7C032000 -40820054 4BFFFFD4 -1CD40004 38C6038C -7C66D82E 38630001 -7C66D92E 38D40189 -7C66D8AE 38630001 -2C03000E 41800008 -3863FFF2 7C66D9AE +7EC41851 4180014C +80DB0904 7C043000 +41810010 7C032000 +418100AC 48000134 +1C76000C 3863000E +1CD40054 7C633214 +38D40189 7C86D8AE +1C84000C 3884018F +1CB40054 7C842A14 +7CD81A14 7CFB2214 +88660000 88870000 +546306FE 548406FE +7C032000 408200AC +88660001 88870001 +5463067E 5484067E +7C032000 40820094 +80660002 80870002 +7C032000 40820084 +38A00005 38A50001 +2C050008 40800028 +7C6530AE 7C8538AE +2C03002A 4181000C +2C04002A 4081FFE0 +7C032000 40820054 +4BFFFFD4 1CD40004 +38C6038C 7C66D82E +38630001 7C66D92E 38D40189 7C66D8AE -38D4018C 7C86D8AE -7C041800 4082FD3C -48000044 3B800001 -4800003C 38600001 -987B00DA 987B00DB -935B00DC 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FCEC -3AA00000 3A800000 -807B0904 4800003C -4E800021 5B25645D -20417474 656D7074 -696E6720 746F2061 -6476616E 63652073 -61766573 74617465 -20667261 6D652070 -61737420 25640000 -7C0802A6 90010004 -9421FF00 BC610008 -7F45D378 7C661B78 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFF9D -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 38D40398 -7C86D8AE 2C040001 -40820100 1CD40004 -38C6038C 7C86D82E -48000040 4E800021 -5B25645D 20436865 -636B696E 67207361 -76657374 61746520 -6672616D 6520666F -72206F70 70202325 -642E2056 616C7565 -3A202564 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -7F45D378 7E86A378 -7C872378 60000000 -60000000 806DAFC4 -38630003 4BFFFF99 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800004 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 2C150000 +38630001 2C03000E +41800008 3863FFF2 +7C66D9AE 38D40189 +7C66D8AE 38D4018C +7C86D8AE 7C041800 +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +3A940001 2C140003 +4180FE80 3AA00000 +3A800000 807B0904 +38D40398 7C86D8AE +2C040001 40820034 +1CD40004 38C6038C +7C86D82E 2C150000 4182000C 7C041800 40800018 7C832378 3AA00001 1CD40004 38C60002 7EC6C02E 3A940001 2C140003 -4180FEEC 907B0388 +4180FFB8 907B0388 907B0911 7C03B000 40810008 92DB0911 -4800005C 4E800021 -5B25645D 20536176 -65737461 74652066 -72616D65 20616E64 -20766F6C 6174696C -65206669 6E616C69 -7A656420 73657420 -746F3A20 25642061 -66746572 20636865 -636B696E 67207072 -65646963 74696F6E -73000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -7C661B78 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFF7D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -2C1C0000 4082FCD0 +2C1C0000 4082FF4C 3A800000 38D40398 7C86D8AE 2C040001 40820028 38D40189 @@ -5887,64 +5561,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C23775B0 00000039 #Online/Logging/LogInputOnCopy.asm -3C608048 80639D30 -5463443E 2C030208 -408201A8 2C180002 -408001A0 3CA08048 -80A59D60 7F06C378 -80F90000 81190004 -81390008 48000030 -4E800021 5B25645D -20502564 20557369 -6E672049 6E707574 -3A202530 38582025 -30385820 25303858 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887A0041 7C600775 -418200C0 48000030 -4E800021 496E7075 -74206465 74656374 -65642077 69746820 -6E6F6E2D 7A65726F -20737461 7475733A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7C650774 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887A0041 7C600775 -60000000 00000000 +043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C From 83ef8c003e589bd8b6033291ea6abdeb1ef38710 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Feb 2022 16:54:34 -0500 Subject: [PATCH 066/217] add comment --- Online/Online.s | 1 + 1 file changed, 1 insertion(+) diff --git a/Online/Online.s b/Online/Online.s index 488370b6..769e3b0a 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -211,6 +211,7 @@ .set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN .set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8 +// Note: I think ODB_ROLLBACK_PREDICTED_INPUTS could probably be ROLLBACK_MAX_FRAME_COUNT length but I'm not 100% sure .set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN .set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN * 3 # bool .set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_PREDICTING + 1 # s32 From 41298d3c5adde5e72647c812cde4ae2e6db6ea39 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Feb 2022 16:55:27 -0500 Subject: [PATCH 067/217] sometimes you make a stupid mistake... wrong comment character --- Online/Online.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Online/Online.s b/Online/Online.s index 769e3b0a..523cccc9 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -211,7 +211,7 @@ .set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN .set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN # u8 .set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8 -// Note: I think ODB_ROLLBACK_PREDICTED_INPUTS could probably be ROLLBACK_MAX_FRAME_COUNT length but I'm not 100% sure +# Note: I think ODB_ROLLBACK_PREDICTED_INPUTS could probably be ROLLBACK_MAX_FRAME_COUNT length but I'm not 100% sure .set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN .set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN * 3 # bool .set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_PREDICTING + 1 # s32 From 313c66fde0092a30d3494f3b4a7defd6e28bc9dc Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 4 Feb 2022 14:39:26 -0500 Subject: [PATCH 068/217] fix doubles specific frame advance crash --- Online/Core/StartEngineLoop.asm | 20 +- Online/Core/TriggerSendInput.asm | 74 +++--- Online/Online.s | 3 +- Output/Netplay/GALE01r2.ini | 415 +++++++++++++++++++++++++------ Output/Netplay/GALJ01r2.ini | 415 +++++++++++++++++++++++++------ 5 files changed, 719 insertions(+), 208 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index d60c4d88..d682b225 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -65,7 +65,7 @@ branchl r12, OSDisableInterrupts mr REG_INTERRUPT_IDX, r3 # Log the frame we are starting -# logf LOG_LEVEL_INFO, "[%d] Starting frame processing... r26: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 26" +# logf LOG_LEVEL_INFO, "[SEL] [%d] Starting frame processing... r26: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 26" ################################################################################ # Check if we should display disconnect message @@ -152,7 +152,7 @@ beq CONTINUE_ROLLBACK # If we don't need to load state, just continue rollback ################################################################################ # Load state and restore data ################################################################################ -# logf LOG_LEVEL_INFO, "[%d] Considering loading state: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[SEL] [%d] Considering loading state: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" # If we need a load a state but the requested frame is either equal to or greater than the current # frame, that means that we have advanced some frames and determined a rollback was needed on the @@ -163,13 +163,13 @@ beq CONTINUE_ROLLBACK # If we don't need to load state, just continue rollback lwz r3, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS) # cmpw REG_FRAME_INDEX, r3 # bgt SKIP_LOAD_LOG -# logf LOG_LEVEL_NOTICE, "[%d] Surprising state load: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_NOTICE, "[SEL] [%d] Surprising state load: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" cmpw REG_FRAME_INDEX, r3 beq SKIP_LOAD_STATE blt HANDLE_ROLLBACK_INPUTS_END SKIP_LOAD_LOG: -# logf LOG_LEVEL_WARN, "[%d] Loading state: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_WARN, "[SEL] [%d] Loading state: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_SAVESTATE_FRAME(REG_ODB_ADDRESS)" # Load state from savestate frame lwz r3, ODB_SAVESTATE_SSRB_ADDR(REG_ODB_ADDRESS) @@ -221,14 +221,14 @@ stb r3, ODB_STABLE_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) ################################################################################ CONTINUE_ROLLBACK: -# logf LOG_LEVEL_INFO, "[%d] About to request rollback input. End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[SEL] [%d] About to request rollback input. End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" # If there is an active rollback, trigger a controller status renewal. # This should pick up on the new global frame timer inputs for this game engine # loop and continue the rollback branchl r12, RenewInputs_Prefunction -# logf LOG_LEVEL_INFO, "[%d] Finished getting rollback input. End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[SEL] [%d] Finished getting rollback input. End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" HANDLE_ROLLBACK_INPUTS_END: @@ -236,7 +236,7 @@ HANDLE_ROLLBACK_INPUTS_END: # Store stable data that needs to update every time RenewInputs_Prefunction is # called ################################################################################ -# logf LOG_LEVEL_INFO, "[%d] Updating stable finalized frame. CurrentStable: %d, Volatile: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[SEL] [%d] Considering updating stable finalized frame. CurrentStable: %d, Volatile: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" lwz r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) cmpw REG_FRAME_INDEX, r3 bgt UPDATE_STABLE_FINALIZED # If cur frame greater than volatile, set stable to volatile @@ -248,7 +248,7 @@ UPDATE_STABLE_FINALIZED: lwz r4, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) cmpw r3, r4 ble SKIP_STABLE_FINALIZED_UPDATE -# logf LOG_LEVEL_INFO, "[%d] Stable finalized value updated to %d. Volatile: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_WARN, "[SEL] [%d] Stable finalized value updated to %d. Volatile: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" stw r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) SKIP_STABLE_FINALIZED_UPDATE: @@ -258,7 +258,7 @@ SKIP_STABLE_FINALIZED_UPDATE: # even during a rollback ################################################################################ CAPTURE_CHECK: -# logf LOG_LEVEL_INFO, "[%d] Considering saving state. Predicting: %d, Savestate Frame: %d", "mr r5, REG_FRAME_INDEX", "lbz r6, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS)", "lwz r7, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[SEL] [%d] Considering saving state. Predicting: %d, Finalized: %d", "mr r5, REG_FRAME_INDEX", "lbz r6, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS)", "lwz r7, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)" # First check if a savestate is required (the frame has predicted inputs) lbz r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) @@ -270,7 +270,7 @@ lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) cmpw REG_FRAME_INDEX, r3 ble CAPTURE_END -# logf LOG_LEVEL_WARN, "[%d] Saving state", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_WARN, "[SEL] [%d] Saving state", "mr r5, REG_FRAME_INDEX" # Do savestate lwz r3, ODB_SAVESTATE_SSRB_ADDR(REG_ODB_ADDRESS) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index b2dc335b..eab02b29 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -71,8 +71,8 @@ cmpwi r3, 0 beq ROLLBACK_HANDLER PROCESS_NOT_ROLLBACK: -# logf LOG_LEVEL_NOTICE, "[%d] Input Requested (not rollback)", "mr r5, REG_FRAME_INDEX" -# logf LOG_LEVEL_NOTICE, "[%d] Local Input: %08X %08X %08X", "mr r5, REG_FRAME_INDEX", "lwz r6, 0(REG_LOCAL_SOURCE_INPUT)", "lwz r7, 4(REG_LOCAL_SOURCE_INPUT)", "lwz r8, 8(REG_LOCAL_SOURCE_INPUT)" +# logf LOG_LEVEL_NOTICE, "[TSI] [%d] Input Requested (not rollback)", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_NOTICE, "[TSI] [%d] Local Input: %08X %08X %08X", "mr r5, REG_FRAME_INDEX", "lwz r6, 0(REG_LOCAL_SOURCE_INPUT)", "lwz r7, 4(REG_LOCAL_SOURCE_INPUT)", "lwz r8, 8(REG_LOCAL_SOURCE_INPUT)" ################################################################################ # Section 1: Clear all inputs during freeze time, this is done such that @@ -225,7 +225,7 @@ branchl r12, FN_EXITransferBuffer li r3, 0 stb r3, ODB_IS_FRAME_ADVANCE(REG_ODB_ADDRESS) -# logf LOG_LEVEL_INFO, "[%d] Received results from Dolphin. Result: %d, Latest Frame: %d", "mr r5, REG_FRAME_INDEX", "lbz r6, RXB_RESULT(REG_RXB_ADDRESS)", "lwz r7, RXB_OPNT_FRAME_NUMS(REG_RXB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[TSI] [%d] Received results from Dolphin. Result: %d, Latest Frames: %d | %d | %d", "mr r5, REG_FRAME_INDEX", "lbz r6, RXB_RESULT(REG_RXB_ADDRESS)", "lwz r7, RXB_OPNT_FRAME_NUMS(REG_RXB_ADDRESS)", "lwz r8, RXB_OPNT_FRAME_NUMS+4(REG_RXB_ADDRESS)", "lwz r9, RXB_OPNT_FRAME_NUMS+8(REG_RXB_ADDRESS)" lbz r3, RXB_RESULT(REG_RXB_ADDRESS) cmpwi r3, RESP_SKIP beq SKIP_INPUT @@ -407,7 +407,7 @@ lwzx r4, r6, REG_ODB_ADDRESS sub. REG_RXB_OFFSET, r3, r4 # Load offset for RXB, subtract opp frame from savestate frame blt CONTINUE_ROLLBACK_CHECK_LOOP -# logf LOG_LEVEL_INFO, "[%d] Checking predictions for opp #%d. SavestateFrame: %d, Finalized: %d, Latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4", "lwz r8, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)", "mr r9, 3" +# logf LOG_LEVEL_INFO, "[TSI] [%d] Checking predictions for opp #%d. SavestateFrame: %d, Finalized: %d, Latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4", "lwz r8, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS)", "mr r9, 3" lwz r6, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) cmpw r4, r6 # If PLAYER_SAVESTATE_FRAME is greater than the finalized frame, check if inputs matched bgt HAVE_PLAYER_INPUTS @@ -547,7 +547,7 @@ stb r3, ODB_ROLLBACK_SHOULD_LOAD_STATE(REG_ODB_ADDRESS) # Store the end frame index to remember when to terminate rollback logic stw REG_FRAME_INDEX, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_WARN, "[%d] Triggering rollback to end on frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_WARN, "[TSI] [%d] Triggering rollback. Start: %d, End: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS)", "lwz r7, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" # We have successfully sent inputs to our opponent and preped them to use for rollback # We still want to increment the frame just in case another input is sent before we have @@ -573,16 +573,16 @@ blt CHECK_WHETHER_TO_ROLL_BACK_LOOP # the lowest value among players we're tracking a savestate frame for. This will allow us to # then roll back (if we need to) to the earliest frame that requires it -.set REG_LATEST_FRAME, REG_VARIOUS_1 -.set REG_SAVESTATE_FRAME_SET, REG_VARIOUS_2 -li REG_SAVESTATE_FRAME_SET, 0 +.set REG_SAVESTATE_FRAME, REG_VARIOUS_2 +.set REGV_VALUES_SET, 11 +li REGV_VALUES_SET, 0 li REG_COUNT, 0 # Minimum savestate should always be equal to the finalized frame, normally it should be +1 but # in the case where we have not received any new inputs, we don't want to update the finalized # frame which could cause inputs to get discarded -lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) # r3 will hold the min savestate frame we see -# logf LOG_LEVEL_WARN, "[%d] Attempting to advance savestate frame past %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3" +lwz REG_SAVESTATE_FRAME, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) # will hold the min savestate frame we see +# logf LOG_LEVEL_WARN, "[TSI] [%d] Attempting to advance savestate frame past %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3" COMPUTE_SAVESTATE_FRAME_LOOP: # If this player doesn't have missing inputs, ignore their savestate frame @@ -596,25 +596,20 @@ mulli r6, REG_COUNT, 4 addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME lwzx r4, r6, REG_ODB_ADDRESS -# logf LOG_LEVEL_INFO, "[%d] Checking savestate frame for opp #%d. Value: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4" +# logf LOG_LEVEL_INFO, "[TSI] [%d] Checking savestate frame for opp #%d. Value: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4" # If we are the first player to bump the savestate frame, do it to set an initial value. -cmpwi REG_SAVESTATE_FRAME_SET, 0 -beq SKIP_SAVESTATE_FRAME_CHECK - +cmpwi REGV_VALUES_SET, 0 +beq UPDATE_SAVESTATE_FRAME_SET # Otherwise only replace it with our frame if we're the new lowest. -cmpw r4, r3 # r4 = this player's savestate frame, r3 = lowest frame seen so far -bge CONTINUE_SAVESTATE_FRAME_LOOP +cmpw r4, REG_SAVESTATE_FRAME # r4 = this player's savestate frame, REG_SAVESTATE_FRAME = lowest frame seen so far +bge UPDATE_SAVESTATE_FRAME_END +UPDATE_SAVESTATE_FRAME_SET: +mr REG_SAVESTATE_FRAME, r4 +UPDATE_SAVESTATE_FRAME_END: -SKIP_SAVESTATE_FRAME_CHECK: -mr r3, r4 #logf LOG_LEVEL_WARN, "Player %d set savestate frame %d", "mr r5, 20", "mr r6, 4" -li REG_SAVESTATE_FRAME_SET, 1 -# Keep track of the latest received frame for the player that sets the savestate frame. We don't -# want finalized frame to be greater than the latest received frame -mulli r6, REG_COUNT, 4 -addi r6, r6, RXB_OPNT_FRAME_NUMS -lwzx REG_LATEST_FRAME, r6, REG_RXB_ADDRESS +li REGV_VALUES_SET, 1 CONTINUE_SAVESTATE_FRAME_LOOP: addi REG_COUNT, REG_COUNT, 1 @@ -622,18 +617,19 @@ cmpwi REG_COUNT, 3 blt COMPUTE_SAVESTATE_FRAME_LOOP # Set the savestate frame to the minimum value among players with missing inputs -stw r3, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) +stw REG_SAVESTATE_FRAME, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) # Update finalized frame to the earliest frame where our predictions matched # We don't want finalized frame to be greater than the latest frame though, so make sure # to not allow that -stw r3, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) -cmpw r3, REG_LATEST_FRAME +stw REG_SAVESTATE_FRAME, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +lwz r6, RXB_SMALLEST_LATEST_FRAME(REG_RXB_ADDRESS) +cmpw REG_SAVESTATE_FRAME, r6 ble SKIP_FINALIZED_OVERWRITE -stw REG_LATEST_FRAME, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) +stw r6, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) SKIP_FINALIZED_OVERWRITE: -# logf LOG_LEVEL_WARN, "[%d] Savestate frame and volatile finalized set to: %d after checking predictions", "mr r5, REG_FRAME_INDEX", "mr r6, 3" +# logf LOG_LEVEL_WARN, "[TSI] [%d] Setting frames after checking predictions: savestate: %d, volatile finalized: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS)", "lwz r7, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" # logf LOG_LEVEL_NOTICE, "New frame finalized: %d (Prediction)", "lwz r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" # Check if we had determined that a rollback was needed. If so, trigger the rollback now @@ -700,7 +696,7 @@ stb r3, ODB_SAVESTATE_IS_PREDICTING(REG_ODB_ADDRESS) LOAD_OPPONENT_INPUTS: -# logf LOG_LEVEL_NOTICE, "[%d] Reading Inputs...", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_NOTICE, "[TSI] [%d] Reading Inputs...", "mr r5, REG_FRAME_INDEX" # loop over each remote player li REG_COUNT, 0 @@ -727,7 +723,7 @@ bge CALC_OPNT_PAD_OFFSET PREDICT_INPUTS_OPP: # We are predicting inputs, back up the inputs for later comparison .if DEBUG_INPUTS==1 -logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d Needs Prediction" +logf LOG_LEVEL_NOTICE, "[TSI] [%d] (Opp) P%d Needs Prediction" .endif # Don't save any states at the start of the game, it's frozen anyway @@ -749,7 +745,7 @@ li REG_HAS_INPUTS_FROM_ALL, 0 # mulli r6, REG_COUNT, 4 # addi r6, r6, RXB_OPNT_FRAME_NUMS # lwzx r3, r6, REG_RXB_ADDRESS -# logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d Predicting. Latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_REMOTE_PLAYER_IDX", "mr r7, 3" +# logf LOG_LEVEL_NOTICE, "[TSI] [%d] (Opp) P%d Predicting. Latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_REMOTE_PLAYER_IDX", "mr r7, 3" .set REG_PREDICTED_WRITE_IDX, REG_VARIOUS_1 @@ -817,7 +813,7 @@ beq LOAD_STALE_INPUTS # Store the rollback frame in the global savestate frame counter stw REG_FRAME_INDEX, ODB_SAVESTATE_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_WARN, "[%d] Predicting on this frame and setting the savestate frame", "mr r5, REG_FRAME_INDEX" +# logf LOG_LEVEL_WARN, "[TSI] [%d] Predicting on this frame and setting the savestate frame", "mr r5, REG_FRAME_INDEX" # Indicate that we have prepared for a rollback li r3, 1 @@ -847,7 +843,7 @@ li r5, PAD_REPORT_SIZE .if DEBUG_INPUTS==1 cmpwi REG_COUNT, 1 bge SKIP_OPP_LOG -logf LOG_LEVEL_NOTICE, "[%d] (Opp) P%d %08X %08X %08X", "mr r5, REG_FRAME_INDEX", "mr r6, REG_REMOTE_PLAYER_IDX", "lwz r7, 0(4)", "lwz r8, 4(4)", "lwz r9, 8(4)" +logf LOG_LEVEL_NOTICE, "[TSI] [%d] (Opp) P%d %08X %08X %08X", "mr r5, REG_FRAME_INDEX", "mr r6, REG_REMOTE_PLAYER_IDX", "lwz r7, 0(4)", "lwz r8, 4(4)", "lwz r9, 8(4)" SKIP_OPP_LOG: .endif @@ -862,7 +858,7 @@ blt LOOP_LOAD_OPPONENT_INPUTS cmpwi REG_HAS_INPUTS_FROM_ALL, 0 beq SKIP_FINALIZED_FRAME_ADJUST stw REG_FRAME_INDEX, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_NOTICE, "New frame finalized: %d", "lwz r5, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_NOTICE, "[TSI] [%d] New volatile finalized: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_FINALIZED_FRAME(REG_ODB_ADDRESS)" SKIP_FINALIZED_FRAME_ADJUST: b INCREMENT_AND_EXIT @@ -872,7 +868,7 @@ b INCREMENT_AND_EXIT ################################################################################ ROLLBACK_HANDLER: -# logf LOG_LEVEL_NOTICE, "[%d] Input Requested (rollback). End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_NOTICE, "[TSI] [%d] Input Requested (rollback). End frame: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" # If the frame we want is past the rollback end, just do nothing. This might # happen in the case where we get an interrupt during a rollback @@ -885,7 +881,7 @@ restore branch r12, 0x80376cec # branch to restore of parent function to skip handling input COPY_LOCAL_INPUTS: -# logf LOG_LEVEL_INFO, "[%d] Prior to local input copy. END_FRAME: %d, LOCAL_INPUTS_IDX: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)", "lbz r7, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_INFO, "[TSI] [%d] Prior to local input copy. END_FRAME: %d, LOCAL_INPUTS_IDX: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)", "lbz r7, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS)" # get local input from history lwz r3, ODB_ROLLBACK_END_FRAME(REG_ODB_ADDRESS) sub r3, r3, REG_FRAME_INDEX @@ -895,7 +891,7 @@ sub. r3, r4, r3 bge SKIP_LOCAL_INPUT_IDX_NEG addi r3, r3, LOCAL_INPUT_BUFFER_LEN SKIP_LOCAL_INPUT_IDX_NEG: -# logf LOG_LEVEL_INFO, "[%d] Copying local inputs for rollback. Idx: %d, Offset: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "mulli r7, 3, PAD_REPORT_SIZE" +# logf LOG_LEVEL_INFO, "[TSI] [%d] Copying local inputs for rollback. Idx: %d, Offset: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "mulli r7, 3, PAD_REPORT_SIZE" mulli r3, r3, PAD_REPORT_SIZE addi r4, r3, ODB_ROLLBACK_LOCAL_INPUTS @@ -928,7 +924,7 @@ b LOAD_OPPONENT_INPUTS ################################################################################ .if DEBUG_INPUTS==1 FN_PrintInputs: -logf LOG_LEVEL_NOTICE, "[%d] (%d) %08X %08X %08X", "mr r5, 11", "mr r6, 10", "lwz r7, 0(12)", "lwz r8, 4(12)", "lwz r9, 8(12)" +logf LOG_LEVEL_NOTICE, "[TSI] [%d] (%d) %08X %08X %08X", "mr r5, 11", "mr r6, 10", "lwz r7, 0(12)", "lwz r8, 4(12)", "lwz r9, 8(12)" blr .endif diff --git a/Online/Online.s b/Online/Online.s index 523cccc9..f9ed30a9 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -244,7 +244,8 @@ .set RXB_RESULT, 0 # u8 .set RXB_OPNT_COUNT, RXB_RESULT + 1 # u8 .set RXB_OPNT_FRAME_NUMS, RXB_OPNT_COUNT + 1 # s32[3] -.set RXB_OPNT_INPUTS, RXB_OPNT_FRAME_NUMS + 4*3 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 +.set RXB_SMALLEST_LATEST_FRAME, RXB_OPNT_FRAME_NUMS + 4*3 # s32 +.set RXB_OPNT_INPUTS, RXB_SMALLEST_LATEST_FRAME + 4 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 .set RXB_SIZE, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 ################################################################################ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 56699573..edc13555 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1211,10 +1211,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 -3860010A 3D808037 +3860010E 3D808037 618CF1E4 7D8903A6 4E800421 907B00D6 -7C7A1B78 3880010A +7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1230,7 +1230,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38800007 98830001 93790005 38600919 90790009 9359000D -3860010A 90790011 +3860010E 90790011 807B039F 90790015 3860009E 90790019 38600000 9079001D @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000F7 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820288 3C608047 +40820740 3C608047 60639D64 80630000 -2C030000 40820274 +2C030000 4082072C 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1555,36 +1555,187 @@ C0570010 3D80803A 7D8903A6 4E800421 38600001 987E000E 887E08FA 2C030000 -418200B0 887E08FF -2C030000 41820094 +41820224 887E08FF +2C030000 41820208 +48000034 4E800021 +5B53454C 5D205B25 +645D2043 6F6E7369 +64657269 6E67206C +6F616469 6E672073 +74617465 3A202564 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA5 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 807E0900 7C1F1800 -41820024 41800094 -807E039B 809E0900 -80BE039F 3D808000 -618C560C 7D8903A6 -4E800421 3D808001 -618C9894 7D8903A6 -4E800421 3CA0804C -60A51F78 88850002 -7C832051 4080000C -88650000 7C841A14 -98850002 38600000 -98650003 3FE08048 -83FF9D60 807E0388 -907E0003 38600000 -987E0387 987E0398 -987E0399 987E039A -987E00DB 987E08FF -3D808001 618C95FC +418200D8 41800148 +48000028 4E800021 +5B53454C 5D205B25 +645D204C 6F616469 +6E672073 74617465 +3A202564 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 80DE0900 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFB1 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E039B +809E0900 80BE039F +3D808000 618C560C +7D8903A6 4E800421 +3D808001 618C9894 +7D8903A6 4E800421 +3CA0804C 60A51F78 +88850002 7C832051 +4080000C 88650000 +7C841A14 98850002 +38600000 98650003 +3FE08048 83FF9D60 +807E0388 907E0003 +38600000 987E0387 +987E0398 987E0399 +987E039A 987E00DB +987E08FF 3D808001 +618C95FC 7D8903A6 +4E800421 48000060 +4E800021 5B53454C +5D205B25 645D2043 +6F6E7369 64657269 +6E672075 70646174 +696E6720 73746162 +6C652066 696E616C +697A6564 20667261 +6D652E20 43757272 +656E7453 7461626C +653A2025 642C2056 +6F6C6174 696C653A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0904 80FE0911 +60000000 60000000 +806DAFC4 38630003 +4BFFFF79 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 807E0911 7C1F1800 4181000C 7FE3FB78 48000004 809E0904 -7C032000 40810008 -907E0904 887E0387 -2C030000 4182002C -807E0904 7C1F1800 -40810020 807E039B +7C032000 408100DC +48000048 4E800021 +5B53454C 5D205B25 +645D2053 7461626C +65206669 6E616C69 +7A656420 76616C75 +65207570 64617465 +6420746F 2025642E +20566F6C 6174696C +653A2025 64000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 7C661B78 +80FE0911 60000000 +60000000 806DAFC4 +38630003 4BFFFF91 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 907E0904 +4800004C 4E800021 +5B53454C 5D205B25 +645D2043 6F6E7369 +64657269 6E672073 +6176696E 67207374 +6174652E 20507265 +64696374 696E673A +2025642C 2046696E +616C697A 65643A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +88DE0387 80FE0904 +60000000 60000000 +806DAFC4 38630003 +4BFFFF8D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887E0387 2C030000 +418200D8 807E0904 +7C1F1800 408100CC +48000020 4E800021 +5B53454C 5D205B25 +645D2053 6176696E +67207374 61746500 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFB9 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E039B 7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 @@ -1604,14 +1755,14 @@ C0570010 3D80803A BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 000000EA #Online/Core/TriggerSendInput.asm +C2376A28 00000154 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820714 3C608047 +40820A68 3C608047 60639D64 80630000 -2C030000 40820700 +2C030000 40820A54 836DB61C 833B00D2 831B00D6 82FB039B 835B0003 889B0002 @@ -1619,7 +1770,7 @@ C2376A28 000000EA #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820640 887B001C +41820994 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1655,10 +1806,39 @@ B0830000 4E800020 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38780000 -3880010A 38A00000 +3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F +4800005C 4E800021 +5B545349 5D205B25 +645D2052 65636569 +76656420 72657375 +6C747320 66726F6D +20446F6C 7068696E +2E205265 73756C74 +3A202564 2C204C61 +74657374 20467261 +6D65733A 20256420 +7C202564 207C2025 +64000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +88D80000 80F80002 +81180006 8138000A +806DAFC4 38630003 +4BFFFF7D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1698,17 +1878,17 @@ B0830000 4E800020 2C030000 40820018 38600000 987B0398 987B0399 987B039A -4800026C 3A800000 +4800041C 3A800000 38D40398 7C66D8AE -2C030001 4082016C +2C030001 40820234 1CD40004 38C60002 7C66C02E 1CD40004 38C6038C 7C86D82E -7EC41851 4180014C +7EC41851 41800214 80DB0904 7C043000 41810010 7C032000 -418100AC 48000134 -1C76000C 3863000E +418100AC 480001FC +1C76000C 38630012 1CD40054 7C633214 38D40189 7C86D8AE 1C84000C 3884018F @@ -1737,31 +1917,85 @@ B0830000 4E800020 7C66D9AE 38D40189 7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FED0 48000044 -3B800001 4800003C +4082FED0 4800010C +3B800001 48000104 38600001 987B00DA 987B00DB 935B00DC +4800003C 4E800021 +5B545349 5D205B25 +645D2054 72696767 +6572696E 6720726F +6C6C6261 636B2E20 +53746172 743A2025 +642C2045 6E643A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB0388 80FB00DC +60000000 60000000 +806DAFC4 38630003 +4BFFFF9D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 2C140003 -4180FE80 3AA00000 -3A800000 807B0904 +4180FDB8 39600000 +3A800000 82BB0904 38D40398 7C86D8AE -2C040001 40820034 +2C040001 40820028 1CD40004 38C6038C -7C86D82E 2C150000 -4182000C 7C041800 -40800018 7C832378 -3AA00001 1CD40004 -38C60002 7EC6C02E -3A940001 2C140003 -4180FFB8 907B0388 -907B0911 7C03B000 -40810008 92DB0911 -2C1C0000 4082FF4C +7C86D82E 2C0B0000 +4182000C 7C04A800 +40800008 7C952378 +39600001 3A940001 +2C140003 4180FFC4 +92BB0388 92BB0911 +80D8000E 7C153000 +40810008 90DB0911 +48000064 4E800021 +5B545349 5D205B25 +645D2053 65747469 +6E672066 72616D65 +73206166 74657220 +63686563 6B696E67 +20707265 64696374 +696F6E73 3A207361 +76657374 6174653A +2025642C 20766F6C +6174696C 65206669 +6E616C69 7A65643A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB0388 80FB0911 +60000000 60000000 +806DAFC4 38630003 +4BFFFF75 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +2C1C0000 4082FD9C 3A800000 38D40398 7C86D8AE 2C040001 40820028 38D40189 @@ -1790,7 +2024,7 @@ BA810008 800100B4 7EC6D8AE 1C76000C 3863018F 1CB40054 7C632A14 1CD40054 -38C6000E 7C7B1A14 +38C60012 7C7B1A14 7C983214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 @@ -1809,7 +2043,7 @@ BA810008 800100B4 41820010 935B0388 38600001 987B0387 38600000 1C63000C -38A3000E 1CD40054 +38A30012 1CD40054 7CA53214 1C75000C 386300DC 7C611A14 7C982A14 38A0000C @@ -1817,28 +2051,51 @@ BA810008 800100B4 7D8903A6 4E800421 3A940001 3AB50001 2C140003 4180FEC4 -2C1C0000 41820008 -935B0911 48000080 -807B00DC 7C1A1800 -40810024 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 807B00DC -7C7A1850 38630001 -889B00E0 7C632051 -40800008 3863000E -1C63000C 388300E1 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 +2C1C0000 418200C4 +935B0911 48000030 +4E800021 5B545349 +5D205B25 645D204E +65772076 6F6C6174 +696C6520 66696E61 +6C697A65 643A2025 +64000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB0911 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -4BFFFE2C 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +B8610008 80010104 +38210100 7C0803A6 +48000080 807B00DC +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00DC 7C7A1850 +38630001 889B00E0 +7C632051 40800008 +3863000E 1C63000C +388300E1 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFD70 +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 62d770fa..7dd7ddd0 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1211,10 +1211,10 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38600016 3D808037 618CF1E4 7D8903A6 4E800421 907B00D2 -3860010A 3D808037 +3860010E 3D808037 618CF1E4 7D8903A6 4E800421 907B00D6 -7C7A1B78 3880010A +7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1230,7 +1230,7 @@ C216E748 00000070 #Online/Core/InitOnlinePlay.asm 38800007 98830001 93790005 38600919 90790009 9359000D -3860010A 90790011 +3860010E 90790011 807B039F 90790015 3860009E 90790019 38600000 9079001D @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000F7 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820288 3C608047 +40820740 3C608047 60639D64 80630000 -2C030000 40820274 +2C030000 4082072C 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1555,36 +1555,187 @@ C0570010 3D80803A 7D8903A6 4E800421 38600001 987E000E 887E08FA 2C030000 -418200B0 887E08FF -2C030000 41820094 +41820224 887E08FF +2C030000 41820208 +48000034 4E800021 +5B53454C 5D205B25 +645D2043 6F6E7369 +64657269 6E67206C +6F616469 6E672073 +74617465 3A202564 +00000000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0900 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA5 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 807E0900 7C1F1800 -41820024 41800094 -807E039B 809E0900 -80BE039F 3D808000 -618C560C 7D8903A6 -4E800421 3D808001 -618C9894 7D8903A6 -4E800421 3CA0804C -60A51F78 88850002 -7C832051 4080000C -88650000 7C841A14 -98850002 38600000 -98650003 3FE08048 -83FF9D60 807E0388 -907E0003 38600000 -987E0387 987E0398 -987E0399 987E039A -987E00DB 987E08FF -3D808001 618C95FC +418200D8 41800148 +48000028 4E800021 +5B53454C 5D205B25 +645D204C 6F616469 +6E672073 74617465 +3A202564 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 80DE0900 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFB1 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E039B +809E0900 80BE039F +3D808000 618C560C +7D8903A6 4E800421 +3D808001 618C9894 +7D8903A6 4E800421 +3CA0804C 60A51F78 +88850002 7C832051 +4080000C 88650000 +7C841A14 98850002 +38600000 98650003 +3FE08048 83FF9D60 +807E0388 907E0003 +38600000 987E0387 +987E0398 987E0399 +987E039A 987E00DB +987E08FF 3D808001 +618C95FC 7D8903A6 +4E800421 48000060 +4E800021 5B53454C +5D205B25 645D2043 +6F6E7369 64657269 +6E672075 70646174 +696E6720 73746162 +6C652066 696E616C +697A6564 20667261 +6D652E20 43757272 +656E7453 7461626C +653A2025 642C2056 +6F6C6174 696C653A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +80DE0904 80FE0911 +60000000 60000000 +806DAFC4 38630003 +4BFFFF79 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 807E0911 7C1F1800 4181000C 7FE3FB78 48000004 809E0904 -7C032000 40810008 -907E0904 887E0387 -2C030000 4182002C -807E0904 7C1F1800 -40810020 807E039B +7C032000 408100DC +48000048 4E800021 +5B53454C 5D205B25 +645D2053 7461626C +65206669 6E616C69 +7A656420 76616C75 +65207570 64617465 +6420746F 2025642E +20566F6C 6174696C +653A2025 64000000 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 7C661B78 +80FE0911 60000000 +60000000 806DAFC4 +38630003 4BFFFF91 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 907E0904 +4800004C 4E800021 +5B53454C 5D205B25 +645D2043 6F6E7369 +64657269 6E672073 +6176696E 67207374 +6174652E 20507265 +64696374 696E673A +2025642C 2046696E +616C697A 65643A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7FE5FB78 +88DE0387 80FE0904 +60000000 60000000 +806DAFC4 38630003 +4BFFFF8D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +887E0387 2C030000 +418200D8 807E0904 +7C1F1800 408100CC +48000020 4E800021 +5B53454C 5D205B25 +645D2053 6176696E +67207374 61746500 +7C0802A6 90010004 +9421FF00 BC610008 +7FE5FB78 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFFB9 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800003 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 807E039B 7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 @@ -1604,14 +1755,14 @@ C0570010 3D80803A BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 000000EA #Online/Core/TriggerSendInput.asm +C2376A28 00000154 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820714 3C608047 +40820A68 3C608047 60639D64 80630000 -2C030000 40820700 +2C030000 40820A54 836DB61C 833B00D2 831B00D6 82FB039B 835B0003 889B0002 @@ -1619,7 +1770,7 @@ C2376A28 000000EA #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820640 887B001C +41820994 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1655,10 +1806,39 @@ B0830000 4E800020 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38780000 -3880010A 38A00000 +3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F +4800005C 4E800021 +5B545349 5D205B25 +645D2052 65636569 +76656420 72657375 +6C747320 66726F6D +20446F6C 7068696E +2E205265 73756C74 +3A202564 2C204C61 +74657374 20467261 +6D65733A 20256420 +7C202564 207C2025 +64000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +88D80000 80F80002 +81180006 8138000A +806DAFC4 38630003 +4BFFFF7D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800004 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1698,17 +1878,17 @@ B0830000 4E800020 2C030000 40820018 38600000 987B0398 987B0399 987B039A -4800026C 3A800000 +4800041C 3A800000 38D40398 7C66D8AE -2C030001 4082016C +2C030001 40820234 1CD40004 38C60002 7C66C02E 1CD40004 38C6038C 7C86D82E -7EC41851 4180014C +7EC41851 41800214 80DB0904 7C043000 41810010 7C032000 -418100AC 48000134 -1C76000C 3863000E +418100AC 480001FC +1C76000C 38630012 1CD40054 7C633214 38D40189 7C86D8AE 1C84000C 3884018F @@ -1737,31 +1917,85 @@ B0830000 4E800020 7C66D9AE 38D40189 7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FED0 48000044 -3B800001 4800003C +4082FED0 4800010C +3B800001 48000104 38600001 987B00DA 987B00DB 935B00DC +4800003C 4E800021 +5B545349 5D205B25 +645D2054 72696767 +6572696E 6720726F +6C6C6261 636B2E20 +53746172 743A2025 +642C2045 6E643A20 +25640000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB0388 80FB00DC +60000000 60000000 +806DAFC4 38630003 +4BFFFF9D 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 2C140003 -4180FE80 3AA00000 -3A800000 807B0904 +4180FDB8 39600000 +3A800000 82BB0904 38D40398 7C86D8AE -2C040001 40820034 +2C040001 40820028 1CD40004 38C6038C -7C86D82E 2C150000 -4182000C 7C041800 -40800018 7C832378 -3AA00001 1CD40004 -38C60002 7EC6C02E -3A940001 2C140003 -4180FFB8 907B0388 -907B0911 7C03B000 -40810008 92DB0911 -2C1C0000 4082FF4C +7C86D82E 2C0B0000 +4182000C 7C04A800 +40800008 7C952378 +39600001 3A940001 +2C140003 4180FFC4 +92BB0388 92BB0911 +80D8000E 7C153000 +40810008 90DB0911 +48000064 4E800021 +5B545349 5D205B25 +645D2053 65747469 +6E672066 72616D65 +73206166 74657220 +63686563 6B696E67 +20707265 64696374 +696F6E73 3A207361 +76657374 6174653A +2025642C 20766F6C +6174696C 65206669 +6E616C69 7A65643A +20256400 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB0388 80FB0911 +60000000 60000000 +806DAFC4 38630003 +4BFFFF75 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800003 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +2C1C0000 4082FD9C 3A800000 38D40398 7C86D8AE 2C040001 40820028 38D40189 @@ -1790,7 +2024,7 @@ BA810008 800100B4 7EC6D8AE 1C76000C 3863018F 1CB40054 7C632A14 1CD40054 -38C6000E 7C7B1A14 +38C60012 7C7B1A14 7C983214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 @@ -1809,7 +2043,7 @@ BA810008 800100B4 41820010 935B0388 38600001 987B0387 38600000 1C63000C -38A3000E 1CD40054 +38A30012 1CD40054 7CA53214 1C75000C 386300DC 7C611A14 7C982A14 38A0000C @@ -1817,28 +2051,51 @@ BA810008 800100B4 7D8903A6 4E800421 3A940001 3AB50001 2C140003 4180FEC4 -2C1C0000 41820008 -935B0911 48000080 -807B00DC 7C1A1800 -40810024 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 807B00DC -7C7A1850 38630001 -889B00E0 7C632051 -40800008 3863000E -1C63000C 388300E1 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 +2C1C0000 418200C4 +935B0911 48000030 +4E800021 5B545349 +5D205B25 645D204E +65772076 6F6C6174 +696C6520 66696E61 +6C697A65 643A2025 +64000000 7C0802A6 +90010004 9421FF00 +BC610008 7F45D378 +80DB0911 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFA9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -4BFFFE2C 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +B8610008 80010104 +38210100 7C0803A6 +48000080 807B00DC +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00DC 7C7A1850 +38630001 889B00E0 +7C632051 40800008 +3863000E 1C63000C +388300E1 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFD70 +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 From bf98b4057c42120564dca0025313606c97b0e6fe Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 4 Feb 2022 14:40:00 -0500 Subject: [PATCH 069/217] remove loggers --- Output/Netplay/GALE01r2.ini | 380 ++++++------------------------------ Output/Netplay/GALJ01r2.ini | 380 ++++++------------------------------ 2 files changed, 122 insertions(+), 638 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index edc13555..68b09597 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000F7 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 000000F7 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820740 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 4082072C +2C030000 40820274 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1555,187 +1555,36 @@ C0570010 3D80803A 7D8903A6 4E800421 38600001 987E000E 887E08FA 2C030000 -41820224 887E08FF -2C030000 41820208 -48000034 4E800021 -5B53454C 5D205B25 -645D2043 6F6E7369 -64657269 6E67206C -6F616469 6E672073 -74617465 3A202564 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA5 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +418200B0 887E08FF +2C030000 41820094 807E0900 7C1F1800 -418200D8 41800148 -48000028 4E800021 -5B53454C 5D205B25 -645D204C 6F616469 -6E672073 74617465 -3A202564 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 80DE0900 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFB1 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E039B -809E0900 80BE039F -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E0388 907E0003 -38600000 987E0387 -987E0398 987E0399 -987E039A 987E00DB -987E08FF 3D808001 -618C95FC 7D8903A6 -4E800421 48000060 -4E800021 5B53454C -5D205B25 645D2043 -6F6E7369 64657269 -6E672075 70646174 -696E6720 73746162 -6C652066 696E616C -697A6564 20667261 -6D652E20 43757272 -656E7453 7461626C -653A2025 642C2056 -6F6C6174 696C653A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0904 80FE0911 -60000000 60000000 -806DAFC4 38630003 -4BFFFF79 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 +41820024 41800094 +807E039B 809E0900 +80BE039F 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E0388 +907E0003 38600000 +987E0387 987E0398 +987E0399 987E039A +987E00DB 987E08FF +3D808001 618C95FC 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 807E0911 7C1F1800 4181000C 7FE3FB78 48000004 809E0904 -7C032000 408100DC -48000048 4E800021 -5B53454C 5D205B25 -645D2053 7461626C -65206669 6E616C69 -7A656420 76616C75 -65207570 64617465 -6420746F 2025642E -20566F6C 6174696C -653A2025 64000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 7C661B78 -80FE0911 60000000 -60000000 806DAFC4 -38630003 4BFFFF91 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 907E0904 -4800004C 4E800021 -5B53454C 5D205B25 -645D2043 6F6E7369 -64657269 6E672073 -6176696E 67207374 -6174652E 20507265 -64696374 696E673A -2025642C 2046696E -616C697A 65643A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -88DE0387 80FE0904 -60000000 60000000 -806DAFC4 38630003 -4BFFFF8D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887E0387 2C030000 -418200D8 807E0904 -7C1F1800 408100CC -48000020 4E800021 -5B53454C 5D205B25 -645D2053 6176696E -67207374 61746500 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFB9 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E039B +7C032000 40810008 +907E0904 887E0387 +2C030000 4182002C +807E0904 7C1F1800 +40810020 807E039B 7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 @@ -1755,14 +1604,14 @@ B8610008 80010104 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 00000154 #Online/Core/TriggerSendInput.asm +C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820A68 3C608047 +4082070C 3C608047 60639D64 80630000 -2C030000 40820A54 +2C030000 408206F8 836DB61C 833B00D2 831B00D6 82FB039B 835B0003 889B0002 @@ -1770,7 +1619,7 @@ C2376A28 00000154 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820994 887B001C +41820638 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1810,35 +1659,6 @@ B0830000 4E800020 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F -4800005C 4E800021 -5B545349 5D205B25 -645D2052 65636569 -76656420 72657375 -6C747320 66726F6D -20446F6C 7068696E -2E205265 73756C74 -3A202564 2C204C61 -74657374 20467261 -6D65733A 20256420 -7C202564 207C2025 -64000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -88D80000 80F80002 -81180006 8138000A -806DAFC4 38630003 -4BFFFF7D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1878,16 +1698,16 @@ B8610008 80010104 2C030000 40820018 38600000 987B0398 987B0399 987B039A -4800041C 3A800000 +48000264 3A800000 38D40398 7C66D8AE -2C030001 40820234 +2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 38C6038C 7C86D82E -7EC41851 41800214 +7EC41851 4180014C 80DB0904 7C043000 41810010 7C032000 -418100AC 480001FC +418100AC 48000134 1C76000C 38630012 1CD40054 7C633214 38D40189 7C86D8AE @@ -1917,42 +1737,17 @@ B8610008 80010104 7C66D9AE 38D40189 7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FED0 4800010C -3B800001 48000104 +4082FED0 48000044 +3B800001 4800003C 38600001 987B00DA 987B00DB 935B00DC -4800003C 4E800021 -5B545349 5D205B25 -645D2054 72696767 -6572696E 6720726F -6C6C6261 636B2E20 -53746172 743A2025 -642C2045 6E643A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB0388 80FB00DC -60000000 60000000 -806DAFC4 38630003 -4BFFFF9D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 2C140003 -4180FDB8 39600000 +4180FE80 39600000 3A800000 82BB0904 38D40398 7C86D8AE 2C040001 40820028 @@ -1965,37 +1760,7 @@ BA810008 800100B4 92BB0388 92BB0911 80D8000E 7C153000 40810008 90DB0911 -48000064 4E800021 -5B545349 5D205B25 -645D2053 65747469 -6E672066 72616D65 -73206166 74657220 -63686563 6B696E67 -20707265 64696374 -696F6E73 3A207361 -76657374 6174653A -2025642C 20766F6C -6174696C 65206669 -6E616C69 7A65643A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB0388 80FB0911 -60000000 60000000 -806DAFC4 38630003 -4BFFFF75 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -2C1C0000 4082FD9C +2C1C0000 4082FF54 3A800000 38D40398 7C86D8AE 2C040001 40820028 38D40189 @@ -2051,51 +1816,28 @@ B8610008 80010104 7D8903A6 4E800421 3A940001 3AB50001 2C140003 4180FEC4 -2C1C0000 418200C4 -935B0911 48000030 -4E800021 5B545349 -5D205B25 645D204E -65772076 6F6C6174 -696C6520 66696E61 -6C697A65 643A2025 -64000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB0911 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 +2C1C0000 41820008 +935B0911 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 3863000E +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -3863000E 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFD70 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7dd7ddd0..7ad10807 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1507,7 +1507,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000F7 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1520,9 +1520,9 @@ C21A4DE4 000000F7 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820740 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 4082072C +2C030000 40820274 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1555,187 +1555,36 @@ C0570010 3D80803A 7D8903A6 4E800421 38600001 987E000E 887E08FA 2C030000 -41820224 887E08FF -2C030000 41820208 -48000034 4E800021 -5B53454C 5D205B25 -645D2043 6F6E7369 -64657269 6E67206C -6F616469 6E672073 -74617465 3A202564 -00000000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0900 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA5 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 +418200B0 887E08FF +2C030000 41820094 807E0900 7C1F1800 -418200D8 41800148 -48000028 4E800021 -5B53454C 5D205B25 -645D204C 6F616469 -6E672073 74617465 -3A202564 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 80DE0900 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFB1 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E039B -809E0900 80BE039F -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E0388 907E0003 -38600000 987E0387 -987E0398 987E0399 -987E039A 987E00DB -987E08FF 3D808001 -618C95FC 7D8903A6 -4E800421 48000060 -4E800021 5B53454C -5D205B25 645D2043 -6F6E7369 64657269 -6E672075 70646174 -696E6720 73746162 -6C652066 696E616C -697A6564 20667261 -6D652E20 43757272 -656E7453 7461626C -653A2025 642C2056 -6F6C6174 696C653A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -80DE0904 80FE0911 -60000000 60000000 -806DAFC4 38630003 -4BFFFF79 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 +41820024 41800094 +807E039B 809E0900 +80BE039F 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E0388 +907E0003 38600000 +987E0387 987E0398 +987E0399 987E039A +987E00DB 987E08FF +3D808001 618C95FC 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 807E0911 7C1F1800 4181000C 7FE3FB78 48000004 809E0904 -7C032000 408100DC -48000048 4E800021 -5B53454C 5D205B25 -645D2053 7461626C -65206669 6E616C69 -7A656420 76616C75 -65207570 64617465 -6420746F 2025642E -20566F6C 6174696C -653A2025 64000000 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 7C661B78 -80FE0911 60000000 -60000000 806DAFC4 -38630003 4BFFFF91 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 907E0904 -4800004C 4E800021 -5B53454C 5D205B25 -645D2043 6F6E7369 -64657269 6E672073 -6176696E 67207374 -6174652E 20507265 -64696374 696E673A -2025642C 2046696E -616C697A 65643A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7FE5FB78 -88DE0387 80FE0904 -60000000 60000000 -806DAFC4 38630003 -4BFFFF8D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -887E0387 2C030000 -418200D8 807E0904 -7C1F1800 408100CC -48000020 4E800021 -5B53454C 5D205B25 -645D2053 6176696E -67207374 61746500 -7C0802A6 90010004 -9421FF00 BC610008 -7FE5FB78 60000000 -60000000 60000000 -60000000 806DAFC4 -38630003 4BFFFFB9 -7C8802A6 4CC63242 -3D808032 618C3CF4 -7D8903A6 4E800421 -806DAFC4 388000D0 -98830000 38800000 -98830001 38800003 -98830002 38800080 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 B8610008 -80010104 38210100 -7C0803A6 807E039B +7C032000 40810008 +907E0904 887E0387 +2C030000 4182002C +807E0904 7C1F1800 +40810020 807E039B 7FE4FB78 80BE039F 3D808000 618C5608 7D8903A6 4E800421 @@ -1755,14 +1604,14 @@ B8610008 80010104 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 00000154 #Online/Core/TriggerSendInput.asm +C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820A68 3C608047 +4082070C 3C608047 60639D64 80630000 -2C030000 40820A54 +2C030000 408206F8 836DB61C 833B00D2 831B00D6 82FB039B 835B0003 889B0002 @@ -1770,7 +1619,7 @@ C2376A28 00000154 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DA 2C030000 41820010 887B00DB 2C030000 -41820994 887B001C +41820638 887B001C 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1810,35 +1659,6 @@ B0830000 4E800020 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B000F -4800005C 4E800021 -5B545349 5D205B25 -645D2052 65636569 -76656420 72657375 -6C747320 66726F6D -20446F6C 7068696E -2E205265 73756C74 -3A202564 2C204C61 -74657374 20467261 -6D65733A 20256420 -7C202564 207C2025 -64000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -88D80000 80F80002 -81180006 8138000A -806DAFC4 38630003 -4BFFFF7D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800004 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1878,16 +1698,16 @@ B8610008 80010104 2C030000 40820018 38600000 987B0398 987B0399 987B039A -4800041C 3A800000 +48000264 3A800000 38D40398 7C66D8AE -2C030001 40820234 +2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 38C6038C 7C86D82E -7EC41851 41800214 +7EC41851 4180014C 80DB0904 7C043000 41810010 7C032000 -418100AC 480001FC +418100AC 48000134 1C76000C 38630012 1CD40054 7C633214 38D40189 7C86D8AE @@ -1917,42 +1737,17 @@ B8610008 80010104 7C66D9AE 38D40189 7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FED0 4800010C -3B800001 48000104 +4082FED0 48000044 +3B800001 4800003C 38600001 987B00DA 987B00DB 935B00DC -4800003C 4E800021 -5B545349 5D205B25 -645D2054 72696767 -6572696E 6720726F -6C6C6261 636B2E20 -53746172 743A2025 -642C2045 6E643A20 -25640000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB0388 80FB00DC -60000000 60000000 -806DAFC4 38630003 -4BFFFF9D 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 2C140003 -4180FDB8 39600000 +4180FE80 39600000 3A800000 82BB0904 38D40398 7C86D8AE 2C040001 40820028 @@ -1965,37 +1760,7 @@ BA810008 800100B4 92BB0388 92BB0911 80D8000E 7C153000 40810008 90DB0911 -48000064 4E800021 -5B545349 5D205B25 -645D2053 65747469 -6E672066 72616D65 -73206166 74657220 -63686563 6B696E67 -20707265 64696374 -696F6E73 3A207361 -76657374 6174653A -2025642C 20766F6C -6174696C 65206669 -6E616C69 7A65643A -20256400 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB0388 80FB0911 -60000000 60000000 -806DAFC4 38630003 -4BFFFF75 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800003 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -2C1C0000 4082FD9C +2C1C0000 4082FF54 3A800000 38D40398 7C86D8AE 2C040001 40820028 38D40189 @@ -2051,51 +1816,28 @@ B8610008 80010104 7D8903A6 4E800421 3A940001 3AB50001 2C140003 4180FEC4 -2C1C0000 418200C4 -935B0911 48000030 -4E800021 5B545349 -5D205B25 645D204E -65772076 6F6C6174 -696C6520 66696E61 -6C697A65 643A2025 -64000000 7C0802A6 -90010004 9421FF00 -BC610008 7F45D378 -80DB0911 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFA9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 +2C1C0000 41820008 +935B0911 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 3863000E +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -48000080 807B00DC -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DC 7C7A1850 -38630001 889B00E0 -7C632051 40800008 -3863000E 1C63000C -388300E1 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFD70 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 From ae718bff8ebde34c69547ffb44d11ecc5b138d47 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 4 Feb 2022 15:46:37 -0500 Subject: [PATCH 070/217] fix bug where GAME would display on teams LRAS --- Online/Core/CustomizeMessageLRAS.asm | 7 ++----- Output/Netplay/GALE01r2.ini | 24 +++++++++++------------- Output/Netplay/GALJ01r2.ini | 24 +++++++++++------------- 3 files changed, 24 insertions(+), 31 deletions(-) diff --git a/Online/Core/CustomizeMessageLRAS.asm b/Online/Core/CustomizeMessageLRAS.asm index 1a0a2ee8..cc5e24f6 100644 --- a/Online/Core/CustomizeMessageLRAS.asm +++ b/Online/Core/CustomizeMessageLRAS.asm @@ -13,11 +13,8 @@ getMinorMajor r7 cmpwi r7, SCENE_ONLINE_IN_GAME bne EXIT -# Ensure that this is an unranked game -# TODO: We could perhaps check for any mode which has local-pausing enabled instead -lbz r7, OFST_R13_ONLINE_MODE(r13) -cmpwi r7, ONLINE_MODE_UNRANKED -bne EXIT +# It seems like on an LRAS where pause is still on/normal, we don't get into this function +# anyway, so we don't have to worry about direct mode's LRAS # Ensure the game ended as an LRAS lbz r7, 0x8(REG_MATCH_INFO) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 68b09597..7605bb9a 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1111,21 +1111,19 @@ C05F00B4 FC020840 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm +C22F7094 0000000C #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 54E7443E 2C070208 -40820054 88EDAFA0 -2C070001 40820048 -88E30008 2C070007 -4082003C 89430001 -816DB61C 886B0000 -7C035000 41820018 -38600005 3D808002 -618C4030 7D8903A6 -4E800421 3D80802F -618C7120 7D8903A6 -4E800420 8903000B -60000000 00000000 +40820048 88E30008 +2C070007 4082003C +89430001 816DB61C +886B0000 7C035000 +41820018 38600005 +3D808002 618C4030 +7D8903A6 4E800421 +3D80802F 618C7120 +7D8903A6 4E800420 +8903000B 00000000 C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7ad10807..a3230b58 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1111,21 +1111,19 @@ C05F00B4 FC020840 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C22F7094 0000000E #Online/Core/CustomizeMessageLRAS.asm +C22F7094 0000000C #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 54E7443E 2C070208 -40820054 88EDAFA0 -2C070001 40820048 -88E30008 2C070007 -4082003C 89430001 -816DB61C 886B0000 -7C035000 41820018 -38600005 3D808002 -618C4030 7D8903A6 -4E800421 3D80802F -618C7120 7D8903A6 -4E800420 8903000B -60000000 00000000 +40820048 88E30008 +2C070007 4082003C +89430001 816DB61C +886B0000 7C035000 +41820018 38600005 +3D808002 618C4030 +7D8903A6 4E800421 +3D80802F 618C7120 +7D8903A6 4E800420 +8903000B 00000000 C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 From 1d77be7224b2cb8483bd827f93808841b403dd4f Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 5 Feb 2022 20:27:07 -0500 Subject: [PATCH 071/217] fix bug causing doubles desyncs, buffer sizes --- Common/Common.s | 3 +- Online/Core/TriggerSendInput.asm | 30 +++++++++------ Online/Online.s | 25 +++++++----- Output/Netplay/GALE01r2.ini | 66 ++++++++++++++++---------------- Output/Netplay/GALJ01r2.ini | 66 ++++++++++++++++---------------- 5 files changed, 101 insertions(+), 89 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 2e8ed398..291348e6 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -78,7 +78,7 @@ addi r1,r1,0x100 mtlr r0 .endm -.macro logf level, str, arg1="nop", arg2="nop", arg3="nop", arg4="nop", arg5="nop" +.macro logf level, str, arg1="nop", arg2="nop", arg3="nop", arg4="nop", arg5="nop", arg6="nop" b 1f 0: blrl @@ -94,6 +94,7 @@ backupall \arg3 \arg4 \arg5 +\arg6 lwz r3, OFST_R13_SB_ADDR(r13) # Buf to use as EXI buf addi r3, r3, 3 diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index eab02b29..56f3089e 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -304,7 +304,7 @@ branchl r12, memcpy # increment index lbz r3, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS) addi r3, r3, 1 -cmpwi r3, LOCAL_INPUT_BUFFER_LEN +cmpwi r3, LOCAL_INPUTS_COUNT blt SKIP_LOCAL_INPUT_BUFFER_INDEX_WRAP li r3, 0 @@ -387,6 +387,7 @@ li REG_COUNT, 0 CHECK_WHETHER_TO_ROLL_BACK_LOOP: addi r6, REG_COUNT, ODB_PLAYER_SAVESTATE_IS_PREDICTING lbzx r3, r6, REG_ODB_ADDRESS +# logf LOG_LEVEL_INFO, "[TSI] [%d] Opp #%d prediction loop start. isPredicting: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 3" cmpwi r3, 1 bne CONTINUE_ROLLBACK_CHECK_LOOP @@ -404,6 +405,7 @@ lwzx r3, r6, REG_RXB_ADDRESS mulli r6, REG_COUNT, 4 addi r6, r6, ODB_PLAYER_SAVESTATE_FRAME lwzx r4, r6, REG_ODB_ADDRESS +# logf LOG_LEVEL_INFO, "[TSI] [%d] Opp #%d comparing savestate frame to latest. savestate: %d, latest: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4", "mr r8, 3" sub. REG_RXB_OFFSET, r3, r4 # Load offset for RXB, subtract opp frame from savestate frame blt CONTINUE_ROLLBACK_CHECK_LOOP @@ -430,20 +432,23 @@ HAVE_PLAYER_INPUTS: # Compute offset of true inputs for this player on this frame mulli r3, REG_RXB_OFFSET, PAD_REPORT_SIZE addi r3, r3, RXB_OPNT_INPUTS -mulli r6, REG_COUNT, PLAYER_MAX_INPUT_SIZE +mulli r6, REG_COUNT, RXB_INPUTS_COUNT * PAD_REPORT_SIZE add r3, r3, r6 # Get inputs that were predicted for this frame addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r4, r6, REG_ODB_ADDRESS # load this player's read idx # r4 = read idx = 0 +# logf LOG_LEVEL_INFO, "[TSI] [%d] Opp #%d reading predicted inputs from idx: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mr r7, 4" mulli r4, r4, PAD_REPORT_SIZE # compute offset within predicted input buffer addi r4, r4, ODB_ROLLBACK_PREDICTED_INPUTS # Offset of inputs -mulli r5, REG_COUNT, PLAYER_MAX_INPUT_SIZE +mulli r5, REG_COUNT, PREDICTED_INPUTS_COUNT * PAD_REPORT_SIZE add r4, r4, r5 add r6, REG_RXB_ADDRESS, r3 # contains actual input for frame add r7, REG_ODB_ADDRESS, r4 # contains predicted input +# logf LOG_LEVEL_INFO, "[TSI] [%d] Opp #%d comparing inputs. Predicted: %08X %08X, Actual: %08X %08X", "lwz r8, 4(7)", "lwz r7, 0(7)", "lwz r10, 4(6)", "lwz r9, 0(6)", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT" + # mulli r3, REG_COUNT, 4 # addi r3, r3, ODB_PLAYER_SAVESTATE_FRAME # lwzx r3, r3, REG_ODB_ADDRESS @@ -508,9 +513,9 @@ stwx r3, r6, REG_ODB_ADDRESS addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS # compute offset of read idx for this player lbzx r3, r6, REG_ODB_ADDRESS # load this player's read idx addi r3, r3, 1 -cmpwi r3, LOCAL_INPUT_BUFFER_LEN +cmpwi r3, PREDICTED_INPUTS_COUNT blt SKIP_PREDICTED_INPUTS_READ_IDX_ADJUST -subi r3, r3, LOCAL_INPUT_BUFFER_LEN +subi r3, r3, PREDICTED_INPUTS_COUNT SKIP_PREDICTED_INPUTS_READ_IDX_ADJUST: stbx r3, r6, REG_ODB_ADDRESS @@ -529,6 +534,7 @@ INDICATE_ROLLBACK_REQUIRED: # This gets called when we determine we will need to rollback for one of the players # we still need to go through the other players though to determine the earliest frame # we are allowed to rollback to +# logf LOG_LEVEL_INFO, "[TSI] [%d] Opp #%d marking savestate required. Frame: %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_COUNT", "mulli r7, REG_COUNT, 4", "addi r7, 7, ODB_PLAYER_SAVESTATE_FRAME", "lwzx r7, 7, REG_ODB_ADDRESS" li REG_ROLLBACK_REQUIRED, 1 b CONTINUE_ROLLBACK_CHECK_LOOP # Move on to next player @@ -582,7 +588,7 @@ li REG_COUNT, 0 # in the case where we have not received any new inputs, we don't want to update the finalized # frame which could cause inputs to get discarded lwz REG_SAVESTATE_FRAME, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) # will hold the min savestate frame we see -# logf LOG_LEVEL_WARN, "[TSI] [%d] Attempting to advance savestate frame past %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3" +# logf LOG_LEVEL_WARN, "[TSI] [%d] Attempting to advance savestate frame past %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_SAVESTATE_FRAME" COMPUTE_SAVESTATE_FRAME_LOOP: # If this player doesn't have missing inputs, ignore their savestate frame @@ -754,12 +760,12 @@ addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of lbzx REG_PREDICTED_WRITE_IDX, r6, REG_ODB_ADDRESS mulli r3, REG_PREDICTED_WRITE_IDX, PAD_REPORT_SIZE addi r3, r3, ODB_ROLLBACK_PREDICTED_INPUTS # offset from REG_ODB_ADDRESS where to write -mulli r5, REG_COUNT, PLAYER_MAX_INPUT_SIZE # Add offset based on which player this is +mulli r5, REG_COUNT, PREDICTED_INPUTS_COUNT * PAD_REPORT_SIZE # Add offset based on which player this is add r3, r3, r5 # copy predicted pad data to predicted input buffer for later comparison # in order to decide whether to roll back -mulli r6, REG_COUNT, PLAYER_MAX_INPUT_SIZE +mulli r6, REG_COUNT, RXB_INPUTS_COUNT * PAD_REPORT_SIZE addi r6, r6, RXB_OPNT_INPUTS add r3, REG_ODB_ADDRESS, r3 # destination add r4, REG_RXB_ADDRESS, r6 # source @@ -768,9 +774,9 @@ branchl r12, memcpy # increment write index addi r3, REG_PREDICTED_WRITE_IDX, 1 -cmpwi r3, LOCAL_INPUT_BUFFER_LEN +cmpwi r3, PREDICTED_INPUTS_COUNT blt SKIP_PREDICTED_INPUTS_WRITE_IDX_ADJUST -subi r3, r3, LOCAL_INPUT_BUFFER_LEN +subi r3, r3, PREDICTED_INPUTS_COUNT SKIP_PREDICTED_INPUTS_WRITE_IDX_ADJUST: addi r6, REG_COUNT, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS # compute offset of write idx for this player @@ -828,7 +834,7 @@ CALC_OPNT_PAD_OFFSET: # Slippi should have told us to wait mulli r3, r3, PAD_REPORT_SIZE # offset for index of input frame to look at addi r5, r3, RXB_OPNT_INPUTS # offset from start of RXB -mulli r6, REG_COUNT, PLAYER_MAX_INPUT_SIZE # offset for index of remote player +mulli r6, REG_COUNT, RXB_INPUTS_COUNT * PAD_REPORT_SIZE # offset for index of remote player add r5, r5, r6 # get offset from sp of online player's pad data @@ -889,7 +895,7 @@ addi r3, r3, 1 lbz r4, ODB_ROLLBACK_LOCAL_INPUTS_IDX(REG_ODB_ADDRESS) sub. r3, r4, r3 bge SKIP_LOCAL_INPUT_IDX_NEG -addi r3, r3, LOCAL_INPUT_BUFFER_LEN +addi r3, r3, LOCAL_INPUTS_COUNT SKIP_LOCAL_INPUT_IDX_NEG: # logf LOG_LEVEL_INFO, "[TSI] [%d] Copying local inputs for rollback. Idx: %d, Offset: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "mulli r7, 3, PAD_REPORT_SIZE" mulli r3, r3, PAD_REPORT_SIZE diff --git a/Online/Online.s b/Online/Online.s index f9ed30a9..b72e9fba 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -41,13 +41,18 @@ .set MIN_DELAY_FRAMES, 1 .set MAX_DELAY_FRAMES, 15 .set ROLLBACK_MAX_FRAME_COUNT, 7 -.set PLAYER_MAX_INPUT_SIZE, PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT -# I don't know exactly how long the input buffer has to be but in very rare cases with a length +# I don't know exactly how long the local input buffer has to be but in very rare cases with a length # of ROLLBACK_MAX_FRAME_COUNT we could overflow into the negative indices: # [3975] Prior to local input copy. END_FRAME: 3983, LOCAL_INPUTS_IDX: 0 # [3975] Copying local inputs for rollback. Idx: -2, Offset: -24 -.set LOCAL_INPUT_BUFFER_LEN, 2 * ROLLBACK_MAX_FRAME_COUNT +.set LOCAL_INPUTS_COUNT, 2 * ROLLBACK_MAX_FRAME_COUNT + +# Predicted input buffer might be able to bet ROLLBACK_MAX_FRAME_COUNT long but I'm not sure +.set PREDICTED_INPUTS_COUNT, 2 * ROLLBACK_MAX_FRAME_COUNT + +# This one should be fine, Dolphin caps how many inputs it sends to the rollback limit +.set RXB_INPUTS_COUNT, ROLLBACK_MAX_FRAME_COUNT .set UNFREEZE_INPUTS_FRAME, 84 @@ -208,12 +213,12 @@ .set ODB_ROLLBACK_SHOULD_LOAD_STATE, ODB_ROLLBACK_IS_ACTIVE + 1 # bool .set ODB_ROLLBACK_END_FRAME, ODB_ROLLBACK_SHOULD_LOAD_STATE + 1 # s32 .set ODB_ROLLBACK_LOCAL_INPUTS_IDX, ODB_ROLLBACK_END_FRAME + 4 # u8 -.set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN -.set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN # u8 -.set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8 +.set ODB_ROLLBACK_LOCAL_INPUTS, ODB_ROLLBACK_LOCAL_INPUTS_IDX + 1 # PAD_REPORT_SIZE * LOCAL_INPUTS_COUNT +.set ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS, ODB_ROLLBACK_LOCAL_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUTS_COUNT # u8[3] +.set ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS, ODB_ROLLBACK_PREDICTED_INPUTS_READ_IDXS + 1*3 # u8[3] # Note: I think ODB_ROLLBACK_PREDICTED_INPUTS could probably be ROLLBACK_MAX_FRAME_COUNT length but I'm not 100% sure -.set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN -.set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * LOCAL_INPUT_BUFFER_LEN * 3 # bool +.set ODB_ROLLBACK_PREDICTED_INPUTS, ODB_ROLLBACK_PREDICTED_INPUTS_WRITE_IDXS + 1*3 # PAD_REPORT_SIZE * PREDICTED_INPUTS_COUNT * 3 +.set ODB_SAVESTATE_IS_PREDICTING, ODB_ROLLBACK_PREDICTED_INPUTS + PAD_REPORT_SIZE * PREDICTED_INPUTS_COUNT * 3 # bool .set ODB_SAVESTATE_FRAME, ODB_SAVESTATE_IS_PREDICTING + 1 # s32 .set ODB_PLAYER_SAVESTATE_FRAME, ODB_SAVESTATE_FRAME + 4 # u32 .set ODB_PLAYER_SAVESTATE_IS_PREDICTING, ODB_PLAYER_SAVESTATE_FRAME + 4*3 # u32[3] @@ -245,8 +250,8 @@ .set RXB_OPNT_COUNT, RXB_RESULT + 1 # u8 .set RXB_OPNT_FRAME_NUMS, RXB_OPNT_COUNT + 1 # s32[3] .set RXB_SMALLEST_LATEST_FRAME, RXB_OPNT_FRAME_NUMS + 4*3 # s32 -.set RXB_OPNT_INPUTS, RXB_SMALLEST_LATEST_FRAME + 4 # PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 -.set RXB_SIZE, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * ROLLBACK_MAX_FRAME_COUNT * 3 +.set RXB_OPNT_INPUTS, RXB_SMALLEST_LATEST_FRAME + 4 # PAD_REPORT_SIZE * RXB_INPUTS_COUNT * 3 +.set RXB_SIZE, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * RXB_INPUTS_COUNT * 3 ################################################################################ # Matchmaking States diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 7605bb9a..de695a09 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1710,7 +1710,7 @@ B0830000 4E800020 1CD40054 7C633214 38D40189 7C86D8AE 1C84000C 3884018F -1CB40054 7C842A14 +1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 546306FE 548406FE @@ -1785,7 +1785,7 @@ BA810008 800100B4 2C030001 418200B4 3B800000 38D4018C 7EC6D8AE 1C76000C -3863018F 1CB40054 +3863018F 1CB400A8 7C632A14 1CD40054 38C60012 7C7B1A14 7C983214 38A0000C @@ -5240,7 +5240,7 @@ C200560C 00000033 #Online/Static/LoadState.asm 7C7B1B78 7C982378 7CBA2B78 88DA0000 3AC00000 3AD60001 -2C160007 408100D8 +2C160007 408100DC 48000044 4E800021 4C6F6164 20737461 74652072 65717565 @@ -5254,38 +5254,38 @@ C200560C 00000033 #Online/Static/LoadState.asm BC610008 7F05C378 60000000 60000000 60000000 60000000 -806DAFC4 38630003 -4BFFFF95 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 +60000000 806DAFC4 +38630003 4BFFFF91 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800001 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 48000000 +38C6FFFF 2C060000 +40800008 38C60007 +1C660004 38630002 +7F3A1A14 80790000 +7C03C000 4082FEF8 +3D808034 618C7364 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -48000000 38C6FFFF -2C060000 40800008 -38C60007 1C660004 -38630002 7F3A1A14 -80790000 7C03C000 -4082FEFC 3D808034 -618C7364 7D8903A6 -4E800421 7C771B78 -386000B2 987B0000 -931B0001 7F63DB78 -38800021 38A00001 -3D808000 618C55F0 +7C771B78 386000B2 +987B0000 931B0001 +7F63DB78 38800021 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7EE3BB78 +3D808034 618C738C 7D8903A6 4E800421 -7EE3BB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 00000000 C20055EC 00000008 #Online/Static/MultiplyRWithF.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a3230b58..caaaa208 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1710,7 +1710,7 @@ B0830000 4E800020 1CD40054 7C633214 38D40189 7C86D8AE 1C84000C 3884018F -1CB40054 7C842A14 +1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 546306FE 548406FE @@ -1785,7 +1785,7 @@ BA810008 800100B4 2C030001 418200B4 3B800000 38D4018C 7EC6D8AE 1C76000C -3863018F 1CB40054 +3863018F 1CB400A8 7C632A14 1CD40054 38C60012 7C7B1A14 7C983214 38A0000C @@ -5240,7 +5240,7 @@ C200560C 00000033 #Online/Static/LoadState.asm 7C7B1B78 7C982378 7CBA2B78 88DA0000 3AC00000 3AD60001 -2C160007 408100D8 +2C160007 408100DC 48000044 4E800021 4C6F6164 20737461 74652072 65717565 @@ -5254,38 +5254,38 @@ C200560C 00000033 #Online/Static/LoadState.asm BC610008 7F05C378 60000000 60000000 60000000 60000000 -806DAFC4 38630003 -4BFFFF95 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 +60000000 806DAFC4 +38630003 4BFFFF91 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800001 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 48000000 +38C6FFFF 2C060000 +40800008 38C60007 +1C660004 38630002 +7F3A1A14 80790000 +7C03C000 4082FEF8 +3D808034 618C7364 7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -48000000 38C6FFFF -2C060000 40800008 -38C60007 1C660004 -38630002 7F3A1A14 -80790000 7C03C000 -4082FEFC 3D808034 -618C7364 7D8903A6 -4E800421 7C771B78 -386000B2 987B0000 -931B0001 7F63DB78 -38800021 38A00001 -3D808000 618C55F0 +7C771B78 386000B2 +987B0000 931B0001 +7F63DB78 38800021 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7EE3BB78 +3D808034 618C738C 7D8903A6 4E800421 -7EE3BB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 00000000 C20055EC 00000008 #Online/Static/MultiplyRWithF.asm 7C0802A6 90010004 9421FF50 BE810008 From f4eb64ba08256e2b143e3d7193806eaaca2dcd6f Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 7 Feb 2022 13:14:33 -0500 Subject: [PATCH 072/217] extract language option on game start required for homerun context because the stage is different when the language is different --- Output/Netplay/GALE01r2.ini | 185 ++++++++++++++++++------------------ Output/Netplay/GALJ01r2.ini | 185 ++++++++++++++++++------------------ Recording/Recording.s | 6 +- Recording/SendGameInfo.asm | 8 ++ 4 files changed, 199 insertions(+), 185 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index de695a09..ff849ad8 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -626,12 +626,12 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000F9 #Recording/SendGameInfo.asm +C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182078C +2C030000 418207A0 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -650,7 +650,7 @@ C216E74C 000000F9 #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 386002BC +987E0002 386002BD B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -668,7 +668,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030B 60630000 +3C60030C 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -781,101 +781,104 @@ B07E0015 3860003D 387E01C2 38800118 3D808000 618CC160 7D8903A6 4E800421 -7FC3F378 388002DA -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 38600205 -3D808037 618CF1E4 +3D808000 618CADF4 7D8903A6 4E800421 -7C751B78 3C608000 -60635600 80630000 -3AE30008 38600010 -98750000 3860003D -98750203 38600200 -B0750201 38600000 -98750204 3AC00000 -7C76E050 2C030200 -41810010 B0750201 -38600001 98750204 -38750001 7EE4BB78 -7C84B214 A0B50201 -3D808000 618C31F4 +987E02DA 7FC3F378 +388002DB 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7EA3AB78 38800205 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 3AD60200 -7C16E000 4180FFA4 -7EA3AB78 3D808037 -618CF1B0 7D8903A6 -4E800421 38600004 -38800007 38A00000 -3D808039 618C01F0 +38600205 3D808037 +618CF1E4 7D8903A6 +4E800421 7C751B78 +3C608000 60635600 +80630000 3AE30008 +38600010 98750000 +3860003D 98750203 +38600200 B0750201 +38600000 98750204 +3AC00000 7C76E050 +2C030200 41810010 +B0750201 38600001 +98750204 38750001 +7EE4BB78 7C84B214 +A0B50201 3D808000 +618C31F4 7D8903A6 +4E800421 7EA3AB78 +38800205 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -48000021 7C8802A6 -38A00000 3D808038 -618CFD54 7D8903A6 -4E800421 48000070 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83A30000 838DB650 -7FBDE214 3860003A -987D0000 806DB654 -907D0001 3C60804D -80635F90 907D0005 -3C608048 80639D60 -907D0009 838DB650 -3B9C000D 938DB650 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600004 -38800007 38A00000 -3D808039 618C01F0 +3AD60200 7C16E000 +4180FFA4 7EA3AB78 +3D808037 618CF1B0 7D8903A6 4E800421 -48000021 7C8802A6 -38A0000F 3D808038 -618CFD54 7D8903A6 -4E800421 48000124 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83E30000 83CDB650 -7FFFF214 3B600000 -806DC18C 83A30024 -2C1D0000 418200D8 -3B7B0001 2C1B000F -418100CC 839D002C -3860003B 987F0000 -806DB654 907F0001 -807C0010 B07F0005 -807C0024 987F0007 -807C002C 907F0008 -807C0040 907F000C -807C0044 907F0010 -807C004C 907F0014 -807C0050 907F0018 -807C0C9C B07F001C -807C0D44 907F001E -807C001C 907F0022 -887C0DD7 987F0026 -887C0DDB 987F0027 -887C0DEB 987F0028 -887C0DEF 987F0029 -807C0518 2C030000 -41820018 8063002C -2C030000 4182000C -8863000C 48000008 -3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B -83BD0008 2C1D0000 -4082FF30 BA810008 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +48000070 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83A30000 +838DB650 7FBDE214 +3860003A 987D0000 +806DB654 907D0001 +3C60804D 80635F90 +907D0005 3C608048 +80639D60 907D0009 +838DB650 3B9C000D +938DB650 BA810008 800100B4 382100B0 7C0803A6 4E800020 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A0000F +3D808038 618CFD54 +7D8903A6 4E800421 +48000124 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83E30000 +83CDB650 7FFFF214 +3B600000 806DC18C +83A30024 2C1D0000 +418200D8 3B7B0001 +2C1B000F 418100CC +839D002C 3860003B +987F0000 806DB654 +907F0001 807C0010 +B07F0005 807C0024 +987F0007 807C002C +907F0008 807C0040 +907F000C 807C0044 +907F0010 807C004C +907F0014 807C0050 +907F0018 807C0C9C +B07F001C 807C0D44 +907F001E 807C001C +907F0022 887C0DD7 +987F0026 887C0DDB +987F0027 887C0DEB +987F0028 887C0DEF +987F0029 807C0518 +2C030000 41820018 +8063002C 2C030000 +4182000C 8863000C +48000008 3860FFFF +987F002A 83CDB650 +3BDE002B 93CDB650 +3BFF002B 83BD0008 +2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -3C608017 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 3C608017 +60000000 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index caaaa208..ad818250 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -626,12 +626,12 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000F9 #Recording/SendGameInfo.asm +C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182078C +2C030000 418207A0 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -650,7 +650,7 @@ C216E74C 000000F9 #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 386002BC +987E0002 386002BD B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -668,7 +668,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030B 60630000 +3C60030C 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -781,101 +781,104 @@ B07E0015 3860003D 387E01C2 38800118 3D808000 618CC160 7D8903A6 4E800421 -7FC3F378 388002DA -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 38600205 -3D808037 618CF1E4 +3D808000 618CADF4 7D8903A6 4E800421 -7C751B78 3C608000 -60635600 80630000 -3AE30008 38600010 -98750000 3860003D -98750203 38600200 -B0750201 38600000 -98750204 3AC00000 -7C76E050 2C030200 -41810010 B0750201 -38600001 98750204 -38750001 7EE4BB78 -7C84B214 A0B50201 -3D808000 618C31F4 +987E02DA 7FC3F378 +388002DB 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7EA3AB78 38800205 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 3AD60200 -7C16E000 4180FFA4 -7EA3AB78 3D808037 -618CF1B0 7D8903A6 -4E800421 38600004 -38800007 38A00000 -3D808039 618C01F0 +38600205 3D808037 +618CF1E4 7D8903A6 +4E800421 7C751B78 +3C608000 60635600 +80630000 3AE30008 +38600010 98750000 +3860003D 98750203 +38600200 B0750201 +38600000 98750204 +3AC00000 7C76E050 +2C030200 41810010 +B0750201 38600001 +98750204 38750001 +7EE4BB78 7C84B214 +A0B50201 3D808000 +618C31F4 7D8903A6 +4E800421 7EA3AB78 +38800205 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -48000021 7C8802A6 -38A00000 3D808038 -618CFD54 7D8903A6 -4E800421 48000070 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83A30000 838DB650 -7FBDE214 3860003A -987D0000 806DB654 -907D0001 3C60804D -80635F90 907D0005 -3C608048 80639D60 -907D0009 838DB650 -3B9C000D 938DB650 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600004 -38800007 38A00000 -3D808039 618C01F0 +3AD60200 7C16E000 +4180FFA4 7EA3AB78 +3D808037 618CF1B0 7D8903A6 4E800421 -48000021 7C8802A6 -38A0000F 3D808038 -618CFD54 7D8903A6 -4E800421 48000124 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83E30000 83CDB650 -7FFFF214 3B600000 -806DC18C 83A30024 -2C1D0000 418200D8 -3B7B0001 2C1B000F -418100CC 839D002C -3860003B 987F0000 -806DB654 907F0001 -807C0010 B07F0005 -807C0024 987F0007 -807C002C 907F0008 -807C0040 907F000C -807C0044 907F0010 -807C004C 907F0014 -807C0050 907F0018 -807C0C9C B07F001C -807C0D44 907F001E -807C001C 907F0022 -887C0DD7 987F0026 -887C0DDB 987F0027 -887C0DEB 987F0028 -887C0DEF 987F0029 -807C0518 2C030000 -41820018 8063002C -2C030000 4182000C -8863000C 48000008 -3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B -83BD0008 2C1D0000 -4082FF30 BA810008 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A00000 +3D808038 618CFD54 +7D8903A6 4E800421 +48000070 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83A30000 +838DB650 7FBDE214 +3860003A 987D0000 +806DB654 907D0001 +3C60804D 80635F90 +907D0005 3C608048 +80639D60 907D0009 +838DB650 3B9C000D +938DB650 BA810008 800100B4 382100B0 7C0803A6 4E800020 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A0000F +3D808038 618CFD54 +7D8903A6 4E800421 +48000124 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83E30000 +83CDB650 7FFFF214 +3B600000 806DC18C +83A30024 2C1D0000 +418200D8 3B7B0001 +2C1B000F 418100CC +839D002C 3860003B +987F0000 806DB654 +907F0001 807C0010 +B07F0005 807C0024 +987F0007 807C002C +907F0008 807C0040 +907F000C 807C0044 +907F0010 807C004C +907F0014 807C0050 +907F0018 807C0C9C +B07F001C 807C0D44 +907F001E 807C001C +907F0022 887C0DD7 +987F0026 887C0DDB +987F0027 887C0DEB +987F0028 887C0DEF +987F0029 807C0518 +2C030000 41820018 +8063002C 2C030000 +4182000C 8863000C +48000008 3860FFFF +987F002A 83CDB650 +3BDE002B 93CDB650 +3BFF002B 83BD0008 +2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -3C608017 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 3C608017 +60000000 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Recording/Recording.s b/Recording/Recording.s index 5a246444..8393a0c1 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -15,7 +15,7 @@ # Payload lengths, if any additional data is added, these must be incremented .set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count -.set GAME_INFO_PAYLOAD_LENGTH, 700 # byte count +.set GAME_INFO_PAYLOAD_LENGTH, 701 # byte count .set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count .set GAME_PRE_FRAME_PAYLOAD_LENGTH, 63 # byte count .set GAME_POST_FRAME_PAYLOAD_LENGTH, 80 # byte count @@ -52,8 +52,8 @@ # build version number. Each byte is one digit # any change in command data should result in a minor version change -# current version: 3.11.0 -.set CURRENT_VERSION,0x030B0000 +# current version: 3.12.0 +.set CURRENT_VERSION,0x030C0000 ################################################################################ # Static Function Locations diff --git a/Recording/SendGameInfo.asm b/Recording/SendGameInfo.asm index 185caf78..c9770aa3 100644 --- a/Recording/SendGameInfo.asm +++ b/Recording/SendGameInfo.asm @@ -538,6 +538,14 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: branchl r12,Zero_AreaLength SEND_SLIPPI_UID_END: + #------------- LANGUAGE INFO ------------- +.set LanguageStart, (SlippiUIDStart + SlippiUIDLength) +.set LanguageLength,0x1 + +# write out random seed + branchl r12, 0x8000adf4 # Language_GetLanguage + stb r3, LanguageStart+0x0(REG_Buffer) + #------------- Transfer Buffer ------------ mr r3,REG_Buffer li r4,MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH+1 + GAME_INFO_PAYLOAD_LENGTH+1 From 7211b1cfe0792e0fa5ebfbac6bb493bda05d8ee2 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 7 Feb 2022 13:19:17 -0500 Subject: [PATCH 073/217] fix comment copy pasta --- Recording/SendGameInfo.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Recording/SendGameInfo.asm b/Recording/SendGameInfo.asm index c9770aa3..0206771c 100644 --- a/Recording/SendGameInfo.asm +++ b/Recording/SendGameInfo.asm @@ -542,7 +542,7 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: .set LanguageStart, (SlippiUIDStart + SlippiUIDLength) .set LanguageLength,0x1 -# write out random seed +# fetch and write current language setting branchl r12, 0x8000adf4 # Language_GetLanguage stb r3, LanguageStart+0x0(REG_Buffer) From 4ef94a556da608a1ef45fd7713ef35f9ee58e476 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 2 Mar 2022 16:21:41 -0500 Subject: [PATCH 074/217] fix searching text in ranked mode --- Online/Menus/CSS/LoadCSSText.asm | 12 +- Output/Netplay/GALE01r2.ini | 1449 ++++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 1449 ++++++++++++++++-------------- 3 files changed, 1606 insertions(+), 1304 deletions(-) diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index a5468f97..c4be420a 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -1030,10 +1030,12 @@ cmpwi r3, MM_STATE_OPPONENT_CONNECTING beq UPDATE_CONNECTING_TO_OPPONENT # Prep "searching" text to use -lbz r5, OFST_R13_ONLINE_MODE(r13) -cmpwi r5, ONLINE_MODE_UNRANKED addi r5, REG_TEXT_PROPERTIES, TPO_STRING_SEARCHING_FOR addi r6, REG_TEXT_PROPERTIES, TPO_STRING_OPPONENT +lbz r11, OFST_R13_ONLINE_MODE(r13) +cmpwi r11, ONLINE_MODE_UNRANKED +beq UPDATE_WAITING +cmpwi r11, ONLINE_MODE_RANKED beq UPDATE_WAITING addi r5, REG_TEXT_PROPERTIES, TPO_STRING_SEARCHING_FOR @@ -1042,10 +1044,12 @@ b UPDATE_WAITING UPDATE_CONNECTING_TO_OPPONENT: # Prep "connecting" text to use -lbz r5, OFST_R13_ONLINE_MODE(r13) -cmpwi r5, ONLINE_MODE_UNRANKED addi r5, REG_TEXT_PROPERTIES, TPO_STRING_CONNECTING_TO addi r6, REG_TEXT_PROPERTIES, TPO_STRING_OPPONENT +lbz r11, OFST_R13_ONLINE_MODE(r13) +cmpwi r11, ONLINE_MODE_UNRANKED +beq UPDATE_WAITING +cmpwi r11, ONLINE_MODE_RANKED beq UPDATE_WAITING addi r5, REG_TEXT_PROPERTIES, TPO_STRING_CONNECTING_TO diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index c2ee9b6d..8c8ace8c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -57,13 +57,18 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 0416B480 60000000 #C-Stick in Single Player [Zauron] 0422D638 38000006 #Debug Menu [Magus, donny2112] 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] -C216E510 00000093 #External/NeutralSpawn/NeutralSpawn.asm +C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 9421FF50 BE810008 3D808016 618CB41C 7D8903A6 4E800421 -2C030000 40820458 -2C1C0005 40800450 +2C030000 40820480 +2C1C0005 40800478 +3C608048 80639D30 +5463443E 2C03021C +41820464 3C608048 +80639D30 5463443E +2C03010F 41820450 887F24D0 2C030001 41820054 3B200000 3B400000 7F43D378 @@ -558,7 +563,7 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0803A6 8001001C 60000000 00000000 -$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] +$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm @@ -579,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 808507B3 -3884FF85 80E507BC +40820020 80850904 +3884FF85 80E5090D 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -621,19 +626,19 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000E9 #Recording/SendGameInfo.asm +C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182070C +2C030000 418207A0 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600702 3D808037 +38600726 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -645,15 +650,15 @@ C216E74C 000000E9 #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 38600248 +987E0002 386002BD B07E0003 38600037 987E0005 3860003F B07E0006 38600038 -987E0008 3860004C +987E0008 38600050 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A -987E000E 38600008 +987E000E 3860000C B07E000F 3860003B 987E0011 3860002A B07E0012 3860003C @@ -663,7 +668,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600309 60630000 +3C60030C 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -723,7 +728,7 @@ B07E0015 3860003D 5463443E B07E01C0 3C608048 80639D30 5463443E 2C030208 -4082011C 38600000 +40820190 38600000 3D808000 618C5610 7D8903A6 4E800421 7C791B78 3A800000 @@ -755,14 +760,31 @@ B07E0015 3860003D 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 -4180FFA0 7F23CB78 -3D808037 618CF1B0 +4180FFA0 3A800000 +3ABF0060 3AFE0266 +3B5900F7 1C74001D +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74001D 7C83D214 +7F03C378 38A0001D +3D808000 618C31F4 7D8903A6 4E800421 -4800001C 387E01C2 -388000A4 3D808000 +4800001C 7F03C378 +3880001D 3D808000 618CC160 7D8903A6 -4E800421 7FC3F378 -38800266 38A00001 +4E800421 3A940001 +2C140004 4180FFA0 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 4800001C +387E01C2 38800118 +3D808000 618CC160 +7D8903A6 4E800421 +3D808000 618CADF4 +7D8903A6 4E800421 +987E02DA 7FC3F378 +388002DB 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600205 3D808037 @@ -796,7 +818,7 @@ A0B50201 3D808000 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000064 4E800021 +48000070 4E800021 7C0802A6 90010004 9421FF50 BE810008 806DB64C 83A30000 @@ -804,65 +826,67 @@ A0B50201 3D808000 3860003A 987D0000 806DB654 907D0001 3C60804D 80635F90 -907D0005 838DB650 -3B9C0009 938DB650 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600004 -38800007 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -48000021 7C8802A6 -38A0000F 3D808038 -618CFD54 7D8903A6 -4E800421 48000124 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83E30000 83CDB650 -7FFFF214 3B600000 -806DC18C 83A30024 -2C1D0000 418200D8 -3B7B0001 2C1B000F -418100CC 839D002C -3860003B 987F0000 -806DB654 907F0001 -807C0010 B07F0005 -807C0024 987F0007 -807C002C 907F0008 -807C0040 907F000C -807C0044 907F0010 -807C004C 907F0014 -807C0050 907F0018 -807C0C9C B07F001C -807C0D44 907F001E -807C001C 907F0022 -887C0DD7 987F0026 -887C0DDB 987F0027 -887C0DEB 987F0028 -887C0DEF 987F0029 -807C0518 2C030000 -41820018 8063002C -2C030000 4182000C -8863000C 48000008 -3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B -83BD0008 2C1D0000 -4082FF30 BA810008 +907D0005 3C608048 +80639D60 907D0009 +838DB650 3B9C000D +938DB650 BA810008 800100B4 382100B0 7C0803A6 4E800020 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A0000F +3D808038 618CFD54 +7D8903A6 4E800421 +48000124 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83E30000 +83CDB650 7FFFF214 +3B600000 806DC18C +83A30024 2C1D0000 +418200D8 3B7B0001 +2C1B000F 418100CC +839D002C 3860003B +987F0000 806DB654 +907F0001 807C0010 +B07F0005 807C0024 +987F0007 807C002C +907F0008 807C0040 +907F000C 807C0044 +907F0010 807C004C +907F0014 807C0050 +907F0018 807C0C9C +B07F001C 807C0D44 +907F001E 807C001C +907F0022 887C0DD7 +987F0026 887C0DDB +987F0027 887C0DEB +987F0028 887C0DEF +987F0029 807C0518 +2C030000 41820018 +8063002C 2C030000 +4182000C 8863000C +48000008 3860FFFF +987F002A 83CDB650 +3BDE002B 93CDB650 +3BFF002B 83BD0008 +2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -3C608017 00000000 -C206DA34 00000035 #Recording/SendGamePostFrame.asm +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 3C608017 +60000000 00000000 +C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820168 +2C030000 41820170 887F221F 546306F7 -4082015C 8B7F000C +40820164 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -904,7 +928,8 @@ B07D0030 887F1968 807F0090 907D0041 807F00EC 907D0045 807F195C 907D0049 -838DB650 3B9C004D +807F0014 907D004D +838DB650 3B9C0051 938DB650 BA810008 800100B4 382100B0 7C0803A6 8001001C @@ -953,11 +978,13 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000008 #Recording/ShouldRecord.asm +C2005604 0000000A #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182001C 2C030302 -41820014 2C030208 +4182002C 2C030302 +41820024 2C030208 +4182001C 2C03010F +41820014 2C030120 4182000C 38600000 4800000C 38600001 48000004 4E800020 @@ -971,9 +998,6 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 -C200569C 00000002 #Common/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -990,14 +1014,6 @@ C20055F8 0000000F #Common/GetIsFollower.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056A0 00000007 #Common/GetSSMIndex.asm -2C030001 41820018 -3C60803B 6063B3C0 -1C840010 7C6320AE -48000018 3C60803B -6063B6B0 1C840003 -7C6320AE 48000004 -4E800020 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm 987F0008 3C608048 80639D58 2C030000 @@ -1005,154 +1021,6 @@ C216D294 00000006 #Common/IncrementFrameIndex.asm 906DB654 48000010 806DB654 38630001 906DB654 00000000 -C20055F4 00000007 #Common/IntToFloat.asm -9421FF00 D0410008 -3C004330 C84298A8 -6C638000 900100F0 -906100F4 C82100F0 -EC211028 C0410008 -38210100 4E800020 -60000000 00000000 -C20056A4 00000022 #Common/LoadPremadeText.asm -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -3B800004 7F83E378 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C7D1B78 7F84E378 -3D808000 618CC160 -7D8903A6 4E800421 -386000E1 48000055 -839D0000 7FA3EB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -7F83E378 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -386000E2 4800001D -7FA3EB78 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -987D0000 9BFD0001 -9BDD0002 7FA3EB78 -38800003 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7FA3EB78 7F84E378 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20055EC 00000008 #Common/MultiplyRWithF.asm -7C0802A6 90010004 -9421FF50 BE810008 -3D808000 618C55F4 -7D8903A6 4E800421 -EC2100B2 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20056A8 00000005 #Common/RequestSSMLoad.asm -2C030037 41820018 -3D808043 618C37C4 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 -C20056B4 00000059 #Common/SubtextFunctions.asm -2C050002 418201F8 -7C0802A6 90010004 -9421FF50 BE810008 -7C751B78 7C962378 -7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C -FEA00890 FEC01090 -FEE01890 FF202890 -FF403090 2C180001 -418000FC 39E00004 -FC20B090 FC40B890 -2C0F0001 41820020 -2C0F0002 41820020 -2C0F0003 41820020 -2C0F0004 41820020 -48000024 EC21D028 -4800001C EC21D02A -48000014 EC42D028 -4800000C EC42D02A -48000004 7EA3AB78 -80810038 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7F25CB78 2C0F0000 -40820008 7EC5B378 -7EA3AB78 7EE4BB78 -3D80803A 618C74F0 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C -3D80803A 618C70A0 -7D8903A6 4E800421 -2C0F0000 4182000C -39EFFFFF 4BFFFF14 -48000094 7EA3AB78 -80810038 FC20B090 -FC40B890 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -7EC5B378 3D80803A -618C74F0 7D8903A6 -4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A -618C70A0 7D8903A6 -4E800421 7EE3BB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -7C9C2378 7CDB3378 -FEC00890 FEE01090 -FF001890 FEA02090 -4800008D 7F4802A6 -38600000 7F64DB78 -C01A0000 FC20B090 -FC40B890 FC60C090 -C09A0004 C0BA0008 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C751B78 2C1C0000 -41820010 38600001 -986DAFEC 7F86E378 -7EA3AB78 7FA4EB78 -FC00A890 D0030024 -D0030028 3D80803A -618C6368 7D8903A6 -4E800421 7EA3AB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -41100000 44160000 -41A00000 00000000 041D460C 809F00EC #Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm C21D14C8 00000002 #Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm 38600000 987F00F0 @@ -1218,59 +1086,86 @@ C216EBAC 0000000C #Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm $Required: Slippi Online [Fizzi, UnclePunch] *Adds online mode, Slippi device must be in Slot B. *Change settings in Config > GameCube -C206A880 00000018 #Online/Core/BrawlOffscreenDamage.asm +C206A880 0000001B #Online/Core/BrawlOffscreenDamage.asm 7C0802A6 90010004 9421FF50 BE810008 -887F221F 54630673 -40820088 807F0010 -2C030004 4182007C -2C030006 41820074 -3D808022 618C4A54 +3C608048 80639D30 +5463443E 2C030120 +41820094 887F221F +54630673 40820088 +807F0010 2C030004 +4182007C 2C030006 +41820074 3D808022 +618C4A54 7D8903A6 +4E800421 C05F00B0 +FC020840 41800060 +3D808022 618C4A68 7D8903A6 4E800421 C05F00B0 FC020840 -41800060 3D808022 -618C4A68 7D8903A6 -4E800421 C05F00B0 -FC020840 41810044 -3D808022 618C4A80 +41810044 3D808022 +618C4A80 7D8903A6 +4E800421 C05F00B4 +FC020840 41810028 +3D808022 618C4A98 7D8903A6 4E800421 C05F00B4 FC020840 -41810028 3D808022 -618C4A98 7D8903A6 -4E800421 C05F00B4 -FC020840 4180000C -38600000 48000008 -38600001 BA810008 -800100B4 382100B0 -7C0803A6 00000000 -C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm +4180000C 38600000 +48000008 38600001 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C22F7094 0000000C #Online/Core/CustomizeMessageLRAS.asm +3CE08048 80E79D30 +54E7443E 2C070208 +40820048 88E30008 +2C070007 4082003C +89430001 816DB61C +886B0000 7C035000 +41820018 38600005 +3D808002 618C4030 +7D8903A6 4E800421 +3D80802F 618C7120 +7D8903A6 4E800420 +8903000B 00000000 +C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B0 3C608047 +408200A4 3C608047 60639D64 80630000 -2C030000 4082009C +2C030000 40820090 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500D9 2C040000 -41820038 3B600001 -888500D9 988507A9 -808500DB 908507AA -888500DA 988507AE -80850237 908507AF -808500D5 8084010A -908507B3 48000028 -888507B7 2C040000 -4182001C 38800000 -988507B7 3D808001 -618C95FC 7D8903A6 -4E800421 7F43D378 -3D808034 618C738C +888500DA 2C040000 +4182002C 3B600001 +888500DA 988508FA +808500DC 908508FB +888500DB 988508FF +80850388 90850900 +48000028 88850908 +2C040000 4182001C +38800000 98850908 +3D808001 618C95FC +7D8903A6 4E800421 +7F43D378 3D808034 +618C738C 7D8903A6 +4E800421 2C1B0000 +40820014 3D80801A +618C4DA8 7D8903A6 +4E800420 00000000 +C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm +3D808001 618CD2BC +7D8903A6 4E800421 +3C608048 80639D30 +5463443E 2C030208 +40820038 3C608047 +60639D64 80630000 +2C030000 40820024 +80ADB61C 8865000F +2C030000 41820014 +3D808001 618C95FC 7D8903A6 4E800421 -2C1B0000 40820014 -3D80801A 618C4DA8 -7D8903A6 4E800420 60000000 00000000 C216D310 00000009 #Online/Core/HandleLRAS.asm 3C608048 80639D30 @@ -1278,7 +1173,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407A5 +808DB61C 806408F6 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1305,39 +1200,39 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 386007C0 +4082037C 38600919 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C0 +7C7B1B78 38800919 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 -7C6802A6 907B07A5 -38600012 3D808037 +7C6802A6 907B08F6 +38600016 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D1 +4E800421 907B00D2 3860010E 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D5 +4E800421 907B00D6 7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B024A 3860009E +933B039B 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B024E 3880009E +907B039F 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C0 +93790005 38600919 90790009 9359000D 3860010E 90790011 -807B024E 90790015 +807B039F 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1348,7 +1243,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 88780004 987B0001 80780005 907B0007 3C80804D 90645F90 -7FE3FB78 389801E8 +7FE3FB78 3898025C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 @@ -1374,7 +1269,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 41800010 2C03000F 41810010 48000010 38600001 48000008 -3860000F 987B001B +3860000F 987B001C 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 @@ -1419,11 +1314,11 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 -C216E904 00000050 #Online/Core/InitPause.asm +C216E904 0000004C #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 -40820264 886DAFA0 -2C030000 41820258 +40820248 886DAFA0 +2C030000 4182023C 3D808046 618CDB68 886C0002 54630739 41820028 48000029 @@ -1431,7 +1326,7 @@ C216E904 00000050 #Online/Core/InitPause.asm 38600000 986DAFC8 886C0002 38800000 50831F38 986C0002 -4800021C 4E800021 +48000200 4E800021 7C0802A6 90010004 9421FF50 BE810008 83ADB61C 3BC00000 @@ -1455,68 +1350,64 @@ C216E904 00000050 #Online/Core/InitPause.asm 3C80804C 60841FAC 1C7E0044 7FE32214 886DAFC8 2C030000 -418200C8 887D000D +418200AC 887D000D 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 4E800421 2C030000 -41820070 807F0008 -546004E7 40820064 -4800010C 38600002 -3D808002 618C4030 -7D8903A6 4E800421 -3D808037 618C8330 -7D8903A6 4E800421 -3C608046 6063B6A0 -9BC30001 7FC3F378 -38800007 3D808016 -618CCF4C 7D8903A6 -4E800421 38600003 -3C808046 6084B6A0 -98640000 480000B0 -38600000 986DAFC8 -3D80802F 618C33CC +41820054 807F0008 +546004E7 40820048 +480000F0 3C608046 +6063B6A0 9BC30001 +38800007 98830008 +3880001E 988324D5 +3D80802F 618C3394 7D8903A6 4E800421 -7FC3F378 3D80801A -618C10FC 7D8903A6 -4E800421 48000080 -887D000D 2C030000 -40820020 7FC3F378 -3D808003 618C3BD8 +3D80801A 618C10FC 7D8903A6 4E800421 -2C030000 41820058 -807F0008 546004E7 -4182004C 38600001 +480000B0 38600000 986DAFC8 3D80802F -618C3394 7D8903A6 +618C33CC 7D8903A6 4E800421 7FC3F378 -38800005 3D80801A -618C0FEC 7D8903A6 -4E800421 38600005 -3D808002 618C4030 +3D80801A 618C10FC 7D8903A6 4E800421 -48000004 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 881F0001 -60000000 00000000 -C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm +48000080 887D000D +2C030000 40820020 +7FC3F378 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +41820058 807F0008 +546004E7 4182004C +38600001 986DAFC8 +3D80802F 618C3394 +7D8903A6 4E800421 +7FC3F378 38800005 +3D80801A 618C0FEC +7D8903A6 4E800421 +38600005 3D808002 +618C4030 7D8903A6 +4E800421 48000004 +3860FFFF BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +881F0001 00000000 +C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820250 +2C030208 408202B8 3C608047 60639D64 80630000 2C030000 -4082023C 7C0802A6 +408202A4 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF0252 +83EDB61C 3BDF03A3 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07A1 7C18B800 +82FF08F2 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1545,44 +1436,57 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07A1 +4081001C 931F08F2 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 7FA3EB78 -3D808034 618C738C -7D8903A6 4E800421 -8B7F07A9 2C1B0001 -408200CC 48000025 -BA810008 800100B4 -382100B0 7C0803A6 -3D80801A 618C4DE4 +9B9E0000 8B7F08FA +2C1B0001 40820134 +807F08FB 7C181800 +41800048 38600000 +987F00DA 987F08FA +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 3B5A0001 +3D80801A 618C5024 7D8903A6 4E800420 -7C0802A6 90010004 -9421FF50 BE810008 -3D808003 618C0A50 -7D8903A6 4E800421 -3D808002 618CA4AC -7D8903A6 4E800421 -3D808003 618C0A50 -7D8903A6 4E800421 -80630028 3D808036 -618C8458 7D8903A6 -4E800421 806DC18C -82830020 4800002C -82B4002C 8875221F -546006F7 40820018 -7E83A378 3D808008 -618C6A8C 7D8903A6 -4E800421 82940008 -2C140000 4082FFD4 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 48000029 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 +3B5A0001 3D80801A +618C4DE4 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF50 +BE810008 3D808003 +618C0A50 7D8903A6 +4E800421 3D808002 +618CA4AC 7D8903A6 +4E800421 3D808003 +618C0A50 7D8903A6 +4E800421 80630028 +3D808036 618C8458 +7D8903A6 4E800421 +806DC18C 82830020 +4800002C 82B4002C +8875221F 546006F7 +40820018 7E83A378 +3D808008 618C6A8C +7D8903A6 4E800421 +82940008 2C140000 +4082FFD4 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BC -38630001 906407BC +808DB61C 8064090D +38630001 9064090D 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1600,18 +1504,20 @@ C216EA30 00000004 #Online/Core/Remember Who LRA Started.asm 40820014 3C808046 6084B6A0 88840001 989E000C 00000000 -C2376A20 0000000A #Online/Core/SkipNewInputFetchOnRollback.asm +C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -40820038 3C608047 +40820044 3C608047 60639D64 80630000 -2C030000 40820024 -806DB61C 886300D9 -2C030001 40820014 -3D808037 618C6A28 -7D8903A6 4E800420 -3861002C 00000000 -C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm +2C030000 40820030 +808DB61C 886400DA +2C030000 41820020 +886400DB 2C030000 +40820014 3D808037 +618C6A28 7D8903A6 +4E800420 3861002C +60000000 00000000 +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1624,21 +1530,21 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082026C 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 40820258 -834DB61C 3F608048 -837B9D60 3D808034 +2C030000 40820274 +83CDB61C 3FE08048 +83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 -887A000E 2C030000 -408200D0 887A000D +887E000E 2C030000 +408200D0 887E000D 2C030000 418200C4 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B8 3D80803A +809E0909 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1657,12 +1563,14 @@ C0570010 3D80803A 38800000 38B70014 3D80803A 618C74F0 7D8903A6 4E800421 -38600001 987A000E -887A07A9 2C030000 -418200B8 887A07AE -2C030000 41820084 -807A024A 809A07AF -80BA024E 3D808000 +38600001 987E000E +887E08FA 2C030000 +418200B0 887E08FF +2C030000 41820094 +807E0900 7C1F1800 +41820024 41800094 +807E039B 809E0900 +80BE039F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1671,261 +1579,275 @@ C0570010 3D80803A 7C832051 4080000C 88650000 7C841A14 98850002 38600000 -98650003 3F608048 -837B9D60 807A0237 -907A0003 38600000 -987A0236 987A0247 -987A0248 987A0249 -987A00DA 987A07AE +98650003 3FE08048 +83FF9D60 807E0388 +907E0003 38600000 +987E0387 987E0398 +987E0399 987E039A +987E00DB 987E08FF 3D808001 618C95FC 7D8903A6 4E800421 -807A07AA 7C1B1800 -41800010 38600000 -987A00D9 987A07A9 -887A0236 2C030000 -4182002C 807A0237 -7C1B1800 41800020 -807A024A 7F64DB78 -80BA024E 3D808000 -618C5608 7D8903A6 -4E800421 887A000C -2C030001 4182004C -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -987A000B 4800002C -887A000B 38630001 -987A000B 2C030007 -40810018 38600001 -987A000C 807A07A5 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 -C2376A28 000000DD #Online/Core/TriggerSendInput.asm +807E0911 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0904 +7C032000 40810008 +907E0904 887E0387 +2C030000 4182002C +807E0904 7C1F1800 +40810020 807E039B +7FE4FB78 80BE039F +3D808000 618C5608 +7D8903A6 4E800421 +887E000C 2C030001 +4182004C 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 987E000B +4800002C 887E000B +38630001 987E000B +2C030007 40810018 +38600001 987E000C +807E08F6 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206B0 3C608047 +4082070C 3C608047 60639D64 80630000 -2C030000 4082069C -836DB61C 833B00D1 -831B00D5 82FB024A -835B0003 887B00D9 -2C030001 418205F8 -887B001B 38800054 -7C632050 2C1A0003 -4080001C 386100DC -38800030 3D808000 -618CC160 7D8903A6 -4E800421 889B0002 -1C84000C 386400E6 -7C6118AE 7C630774 -2C03FFFD 40820024 -386400DC 7C611A14 -389B000F 38A0000C -3D808000 618C31F4 +2C030000 408206F8 +836DB61C 833B00D2 +831B00D6 82FB039B +835B0003 889B0002 +1C84000C 386400DC +7FA11A14 887B00DA +2C030000 41820010 +887B00DB 2C030000 +41820638 887B001C +38800054 7C632050 +2C1A0003 4080001C +386100DC 38800030 +3D808000 618CC160 7D8903A6 4E800421 -889B0002 1C84000C -388400DC 387B000F -7C812214 38A0000C +48000040 88830000 +7C840774 2C04FFFE +4180002C 2C040002 +41810024 88830001 +7C840774 2C04FFFE +41800014 2C040002 +4181000C 38800000 +B0830000 4E800020 +387D0002 4BFFFFC1 +387D0004 4BFFFFB9 +887D000A 7C630774 +2C03FFFD 40820020 +7FA3EB78 389B0010 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 387B0010 +7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 887B001B -98790005 889B0002 -1C84000C 388400DC -38790006 7C812214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 7F23CB78 -38800012 38A00001 -3D808000 618C55F0 +93590001 807B0904 +90790005 887B001C +98790009 3879000A +7FA4EB78 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -38780000 3880010E -38A00000 3D808000 +7F23CB78 38800016 +38A00001 3D808000 618C55F0 7D8903A6 -4E800421 88780000 -2C030002 4182001C -2C030003 41820008 -48000030 38600001 -987B000D 48000024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -889B001C 1C84000C -3884001D 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 887B00DF -1C63000C 386300E0 -889B0000 1C84000C -388400DC 7C7B1A14 -7C812214 38A0000C -3D808000 618C31F4 +4E800421 38780000 +3880010E 38A00000 +3D808000 618C55F0 7D8903A6 4E800421 -887B00DF 38630001 -2C030007 41800008 -38600000 987B00DF -887B001C 1C63000C -3863001D 7C7B1A14 -38990006 38A0000C +38600000 987B000F +88780000 2C030002 +41820024 2C030003 +41820010 2C030004 +41820034 48000038 +38600001 987B000D +4800002C BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 38600001 +987B000F 889B001D +1C84000C 3884001E +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -889B001B 887B001C -38630001 7C032000 +887B00E0 1C63000C +386300E1 889B0000 +1C84000C 388400DC +7C7B1A14 7C812214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 887B00E0 +38630001 2C03000E 41800008 38600000 -987B001C 887B0236 +987B00E0 887B001D +1C63000C 3863001E +7C7B1A14 3899000A +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 889B001C +887B001D 38630001 +7C032000 41800008 +38600000 987B001D +8B9B00DA 887B0387 2C030000 40820018 -38600000 987B0247 -987B0248 987B0249 -48000284 3A800000 -38D40247 7C66D8AE -2C030001 40820178 +38600000 987B0398 +987B0399 987B039A +48000264 3A800000 +38D40398 7C66D8AE +2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 -38C6023B 7C86D82E -7C641851 41800158 -7C761B78 38D40134 -7C66D8AE 38D40137 -7C86D8AE 7EC3B378 -1C63000C 3863000E +38C6038C 7C86D82E +7EC41851 4180014C +80DB0904 7C043000 +41810010 7C032000 +418100AC 48000134 +1C76000C 38630012 1CD40054 7C633214 -38D40134 7C86D8AE -1C84000C 3884013A -1CB40054 7C842A14 +38D40189 7C86D8AE +1C84000C 3884018F +1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 546306FE 548406FE -7C032000 408200BC +7C032000 408200AC 88660001 88870001 5463067E 5484067E -7C032000 408200A4 -80660002 80870002 7C032000 40820094 +80660002 80870002 +7C032000 40820084 38A00005 38A50001 2C050008 40800028 7C6530AE 7C8538AE 2C03002A 4181000C 2C04002A 4081FFE0 -7C032000 40820064 +7C032000 40820054 4BFFFFD4 1CD40004 -38C6023B 7C66D82E +38C6038C 7C66D82E 38630001 7C66D92E -38D40134 7C66D8AE -38630001 2C030007 -41800008 3863FFF9 -7C66D9AE 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +38D40189 7C66D8AE +38630001 2C03000E +41800008 3863FFF2 +7C66D9AE 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FEC0 48000040 -1CD40004 38C6023B -7C66D82E 38600001 -987B00D9 987B00DA -935B00DB BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE74 -3AA00000 3A800000 -807B0237 7C761B78 -7EC3B378 38D40247 -7C86D8AE 7C761B78 -7EC3B378 38D40247 -7C86D8AE 2C040001 -40820030 1CD40004 -38C6023B 7C86D82E -2C150000 4182000C -7C041800 40800014 -7C832378 7C761B78 -7EC3B378 3AA00001 +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 3A940001 2C140003 -4180FFAC 907B0237 -3A800000 38D40247 +4180FE80 39600000 +3A800000 82BB0904 +38D40398 7C86D8AE +2C040001 40820028 +1CD40004 38C6038C +7C86D82E 2C0B0000 +4182000C 7C04A800 +40800008 7C952378 +39600001 3A940001 +2C140003 4180FFC4 +92BB0388 92BB0911 +80D8000E 7C153000 +40810008 90DB0911 +2C1C0000 4082FF54 +3A800000 38D40398 7C86D8AE 2C040001 -40820038 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +40820028 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7C041800 40820010 38600000 -38D40247 7C66D9AE +38D40398 7C66D9AE 3A940001 2C140003 -4180FFB4 3A800000 -38D40247 7C86D8AE +4180FFC4 3A800000 +38D40398 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B0236 3A800000 -3AA00000 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D4 887B001B -38800054 7C632050 -7C1A1800 418000BC -887B000C 2C030001 -418200B0 38D40137 +987B0387 3A800000 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D8 +887B001C 38800054 +7C632050 7C1A1800 +418000C0 887B000C +2C030001 418200B4 +3B800000 38D4018C 7EC6D8AE 1C76000C -3863013A 1CB40054 +3863018F 1CB400A8 7C632A14 1CD40054 -38C6000E 7C7B1A14 +38C60012 7C7B1A14 7C983214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -38760001 2C030007 -41800008 3863FFF9 -38D40137 7C66D9AE -38D40134 7C66D8AE -38D40137 7C86D8AE -38D40247 7C66D8AE +38760001 2C03000E +41800008 3863FFF2 +38D4018C 7C66D9AE +38D40189 7C66D8AE +38D4018C 7C86D8AE +38D40398 7C66D8AE 2C030001 4182003C -1CD40004 38C6023B +1CD40004 38C6038C 7F46D92E 38600001 -38D40247 7C66D9AE -38D40134 7EC6D9AE -887B0236 2C030001 -41820010 935B0237 -38600001 987B0236 +38D40398 7C66D9AE +38D40189 7EC6D9AE +887B0387 2C030001 +41820010 935B0388 +38600001 987B0387 38600000 1C63000C -38A3000E 1CD40054 +38A30012 1CD40054 7CA53214 1C75000C 386300DC 7C611A14 7C982A14 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 3A940001 3AB50001 -2C140003 4180FEC8 -48000080 807B00DB -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DB 7C7A1850 -38630001 889B00DF -7C632051 40800008 -38630007 1C63000C -388300E0 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE40 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +2C140003 4180FEC4 +2C1C0000 41820008 +935B0911 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 3863000E +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -2001,6 +1923,42 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7FC3F378 60000000 00000000 +C20D4C1C 00000005 #Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm +901F2344 C01E0030 +D01F2348 C01E003C +D01F234C 38600000 +907F0080 907F0084 +907F0088 00000000 +C20D4D68 0000000B #Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm +C03E0034 C05E0038 +C07F2348 FC630828 +FC401050 FC031040 +41810008 FC601090 +D07F2348 C03F2360 +C05F2348 EC21102A +D03F2360 C03F234C +C05F2364 EC21102A +D03F2364 3D80800D +618C4D84 7D8903A6 +4E800420 00000000 +C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808003 618C10B8 +7D8903A6 4E800421 +3D808036 618C9808 +7D8903A6 4E800421 +389E2350 38A10080 +3D808034 618C2AA8 +7D8903A6 4E800421 +80610080 907F0038 +80610084 907F003C +80610088 907F0040 +BA810008 800100B4 +382100B0 7C0803A6 +3D808008 618C0EE4 +7D8903A6 4E800420 +60000000 00000000 04019260 48000034 #Online/Core/Hacks/ForceNoDiskCrash.asm C2376304 0000000B #Online/Core/Hacks/ForceNoVideoAssert.asm 48000031 7C6802A6 @@ -2028,18 +1986,19 @@ C23A63A8 0000000C #Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm 7C0803A6 38600000 986DAFEC 00000000 04321D70 38600000 #Online/Core/Hacks/PreventCharacterCrowdChants.asm -C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 9421FFF8 3C608048 80639D30 5463443E -2C030208 40820050 +2C030208 40820058 3C608047 60639D64 80630000 2C030000 -4082003C 3C608037 -60635E00 2C000003 -4082002C 80ADB61C -886500D9 2C030000 +40820044 80ADB61C +38600000 9865000F +3C608037 60635E00 +2C000003 40820028 +886500DA 2C030000 4182001C 38600001 -986507B7 3D808001 +98650908 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2058,11 +2017,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF0252 8B9E0000 +3BDF03A3 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F08F2 7C032000 41810028 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2080,12 +2039,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2110,12 +2069,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2142,13 +2101,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF0252 +83EDB61C 3BDF03A3 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F08F2 7C032000 41810070 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2704,10 +2663,10 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001DC #Online/Menus/CSS/LoadCSSText.asm +C2264534 000001DE #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820EC4 480001F8 +40820ED4 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2844,7 +2803,7 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000A78 +7C0803A6 48000A88 7C0802A6 90010004 9421FF50 BE810008 FDA01890 7F83E378 @@ -2913,7 +2872,7 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800081D 887E000A +4800082D 887E000A 2C030000 4182001C 3B1E0015 7C791B78 887C0018 38630001 @@ -2971,22 +2930,22 @@ BA810008 800100B4 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7EC3B378 -480003E1 7C8802A6 +480003F1 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 887E0000 2C030004 4182000C 38BD0098 48000008 38BD017C 38800009 -48000615 887E0000 +48000625 887E0000 2C030004 4182000C 38BD0098 48000008 38BE00B0 3880000A -480005F5 887E0000 +48000605 887E0000 2C030004 4182000C 38BD0098 48000008 38BD0185 38800008 -480005D5 887E0000 +480005E5 887E0000 2C030004 41820034 2C030005 41820020 2C030000 4181000C @@ -2995,21 +2954,21 @@ BA810008 800100B4 48000018 38BD0197 38DD01C4 4800000C 38BD01A5 38DD01B2 -38800007 48000589 +38800007 48000599 3B600001 7F64DB78 -38BD0098 48000579 +38BD0098 48000589 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 38BD0098 -48000545 3B7B0001 +48000555 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 3B60000B 3B200000 3B000000 -3AE00000 3ADE00F7 +3AE00000 3ADE016B 7EB6C8AE 56A00631 41820010 3B390002 3B180001 48000018 @@ -3020,20 +2979,20 @@ BA810008 800100B4 41810008 4800002C 38800000 7C96B9AE 7F64DB78 7EC5B378 -480004C5 3B7B0001 +480004D5 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 -387E01E8 7C96CA14 +387E025C 7C96CA14 7C041800 40800010 2C1B000E 41810008 -4BFFFF78 4800014C +4BFFFF78 4800015C 3B600001 886DB657 7F64DB78 2C030000 40820018 38BD00BE -4800046D 38600001 -987C000C 48000124 -38BD00D4 48000459 +4800047D 38600001 +987C000C 48000134 +38BD00D4 48000469 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 @@ -3051,20 +3010,22 @@ BA810008 800100B4 38DD010C 886DAFA0 2C030002 4180000C 38BD00E7 38DD0101 -480003CD 38600001 -987C000D 48000084 -38BD0120 480003B9 +480003DD 38600001 +987C000D 48000094 +38BD0120 480003C9 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 -4182004C 2C030003 -41820024 88ADAFA0 -2C050001 38BD012A -38DD015A 41820038 +4182005C 2C030003 +4182002C 38BD012A +38DD015A 896DAFA0 +2C0B0001 41820048 +2C0B0000 41820040 38BD012A 38DD0163 -4800002C 88ADAFA0 -2C050001 38BD013B -38DD015A 41820018 +48000034 38BD013B +38DD015A 896DAFA0 +2C0B0001 41820020 +2C0B0000 41820018 38BD013B 38DD0163 4800000C 38BD014C 38DD015A 48000349 @@ -3098,7 +3059,7 @@ B07C000F BA810008 4E800021 7C6E1B78 7C0802A6 90010004 9421FF50 BE810008 -4BFFF3D1 7FA802A6 +4BFFF3C1 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 82B00004 @@ -3240,7 +3201,7 @@ BE810008 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600320 +93E30000 38600394 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -3949,7 +3910,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B8 +83CDB61C 93FE0909 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -3964,7 +3925,7 @@ D03D0008 C03C0004 D03D0024 D03D0028 C03C0008 C05C000C 7FA3EB78 389C0048 -88BE001B 3D80803A +88BE001C 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 38800000 C03C0010 @@ -4577,7 +4538,7 @@ BE810008 38600000 989E004A C03F0000 D03E0008 C03F0004 D03E0024 D03E0028 -887D01F0 2C030001 +887D0264 2C030001 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C @@ -4604,12 +4565,12 @@ C03F0004 D03E0024 D03E0028 38800001 989E004A 989E0049 C03F0000 D03E0008 -7FC3F378 A09D01F6 +7FC3F378 A09D026A 3D808000 618C5690 7D8903A6 4E800421 2C030001 41820058 3CA0803B 60A57808 -A0DD01F6 38600000 +A0DD026A 38600000 1C830002 7C85222E 7C043000 41820014 38630001 2C03001D @@ -4678,7 +4639,7 @@ BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 -1C630024 389F0248 +1C630024 389F02BC 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -4932,7 +4893,7 @@ BE810008 3D80801B 387C0002 7C9B18AE 38A40001 7CBB19AE 1C9C0002 3884000F -A07F01F6 7C7B232E +A07F026A 7C7B232E 889B0000 38840001 38600002 7C841B96 7C052000 4080002C @@ -5030,10 +4991,10 @@ BE810008 38600000 887F0084 98640008 887F0087 9864000E 38600000 9864FFFF -9864FFFB 887E01F0 +9864FFFB 887E0264 2C030000 418200F4 887E0003 1C630024 -38630251 7F7E18AE +386302C5 7F7E18AE 38600002 98640002 38600001 9864FFFB 98640006 98640007 @@ -5067,7 +5028,7 @@ BE810008 38600000 887F0063 98640018 887F0084 9064001C 887F0087 98640020 -887E01F0 2C030000 +887E0264 2C030000 41820024 887F00A8 90640024 887F00AB 98640028 887F00CC @@ -5120,7 +5081,7 @@ BE810008 3C808047 618C5610 7D8903A6 4E800421 7C7F1B78 83CD8840 3BDE0598 -7FC3F378 389F01E8 +7FC3F378 389F025C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 7FC3F378 @@ -5128,16 +5089,16 @@ BE810008 3C808047 7D8903A6 4E800421 3D808017 618CEB30 7D8903A6 4E800421 -889F0248 98830000 -889F024B 98830001 +889F02BC 98830000 +889F02BF 98830001 38800000 98830002 38800003 98830005 38800078 98830004 3C80803D 6084DEC8 -8084000C 887F026C +8084000C 887F02E0 98640002 38602121 B0640003 3C808049 -60840880 887F026F +60840880 887F02E3 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -5325,11 +5286,19 @@ C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 +C20055F4 00000007 #Online/Static/IntToFloat.asm +9421FF00 D0410008 +3C004330 C84298A8 +6C638000 900100F0 +906100F4 C82100F0 +EC211028 C0410008 +38210100 4E800020 +60000000 00000000 C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 2C030000 40820018 -38600320 3D808037 +38600394 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5337,23 +5306,87 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800320 38A00000 +38800394 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA810008 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C200560C 00000016 #Online/Static/LoadState.asm +C20056A4 00000022 #Online/Static/LoadPremadeText.asm +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +3B800004 7F83E378 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7D1B78 7F84E378 +3D808000 618CC160 +7D8903A6 4E800421 +386000E1 48000055 +839D0000 7FA3EB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +7F83E378 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +386000E2 4800001D +7FA3EB78 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +987D0000 9BFD0001 +9BDD0002 7FA3EB78 +38800003 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FA3EB78 7F84E378 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 +C200560C 00000033 #Online/Static/LoadState.asm 7C0802A6 90010004 9421FF50 BE810008 7C7B1B78 7C982378 7CBA2B78 88DA0000 +3AC00000 3AD60001 +2C160007 408100DC +48000044 4E800021 +4C6F6164 20737461 +74652072 65717565 +73746564 20666F72 +20667261 6D652025 +64206275 74206672 +616D6520 77617320 +6E6F7420 666F756E +642E0000 7C0802A6 +90010004 9421FF00 +BC610008 7F05C378 +60000000 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFF91 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800001 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 48000000 38C6FFFF 2C060000 40800008 38C60007 1C660004 38630002 7F3A1A14 80790000 -7C03C000 4082FFDC +7C03C000 4082FEF8 3D808034 618C7364 7D8903A6 4E800421 7C771B78 386000B2 @@ -5367,6 +5400,15 @@ C200560C 00000016 #Online/Static/LoadState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20055EC 00000008 #Online/Static/MultiplyRWithF.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808000 618C55F4 +7D8903A6 4E800421 +EC2100B2 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C2005608 00000016 #Online/Static/SaveState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5390,6 +5432,96 @@ C2005608 00000016 #Online/Static/SaveState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20056B4 00000059 #Online/Static/SubtextFunctions.asm +2C050002 418201F8 +7C0802A6 90010004 +9421FF50 BE810008 +7C751B78 7C962378 +7CB82B78 7CD93378 +90E10038 9101003C +91210040 91410044 +91610048 9181004C +FEA00890 FEC01090 +FEE01890 FF202890 +FF403090 2C180001 +418000FC 39E00004 +FC20B090 FC40B890 +2C0F0001 41820020 +2C0F0002 41820020 +2C0F0003 41820020 +2C0F0004 41820020 +48000024 EC21D028 +4800001C EC21D02A +48000014 EC42D028 +4800000C EC42D02A +48000004 7EA3AB78 +80810038 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7F25CB78 2C0F0000 +40820008 7EC5B378 +7EA3AB78 7EE4BB78 +3D80803A 618C74F0 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +80A10038 80C1003C +80E10040 81010044 +81210048 8141004C +3D80803A 618C70A0 +7D8903A6 4E800421 +2C0F0000 4182000C +39EFFFFF 4BFFFF14 +48000094 7EA3AB78 +80810038 FC20B090 +FC40B890 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +7EC5B378 3D80803A +618C74F0 7D8903A6 +4E800421 7EA3AB78 +7EE4BB78 80A10038 +80C1003C 80E10040 +81010044 81210048 +8141004C 3D80803A +618C70A0 7D8903A6 +4E800421 7EE3BB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +7C9C2378 7CDB3378 +FEC00890 FEE01090 +FF001890 FEA02090 +4800008D 7F4802A6 +38600000 7F64DB78 +C01A0000 FC20B090 +FC40B890 FC60C090 +C09A0004 C0BA0008 +3D80803A 618C5ACC +7D8903A6 4E800421 +7C751B78 2C1C0000 +41820010 38600001 +986DAFEC 7F86E378 +7EA3AB78 7FA4EB78 +FC00A890 D0030024 +D0030028 3D80803A +618C6368 7D8903A6 +4E800421 7EA3AB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +41100000 44160000 +41A00000 00000000 C2005618 00000095 #Online/Static/UserDisplayFunctions.asm 4E800021 4800004C 480001E0 480002F4 @@ -5540,7 +5672,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B8 A0190000 #Online/Logging/LogInputOnCopy.asm +043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C @@ -8267,6 +8399,23 @@ BA810008 80010104 3D808039 618C4B04 7D8903A6 4E800420 60000000 00000000 +C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 +C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm +2C030001 41820018 +3C60803B 6063B3C0 +1C840010 7C6320AE +48000018 3C60803B +6063B6B0 1C840003 +7C6320AE 48000004 +4E800020 00000000 +C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm +2C030037 41820018 +3D808043 618C37C4 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm 7C7D1B78 3BC00000 60000000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9c0a6ebf..6881310a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -57,13 +57,18 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 0416B480 60000000 #C-Stick in Single Player [Zauron] 0422D638 38000006 #Debug Menu [Magus, donny2112] 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] -C216E510 00000093 #External/NeutralSpawn/NeutralSpawn.asm +C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 9421FF50 BE810008 3D808016 618CB41C 7D8903A6 4E800421 -2C030000 40820458 -2C1C0005 40800450 +2C030000 40820480 +2C1C0005 40800478 +3C608048 80639D30 +5463443E 2C03021C +41820464 3C608048 +80639D30 5463443E +2C03010F 41820450 887F24D0 2C030001 41820054 3B200000 3B400000 7F43D378 @@ -558,7 +563,7 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0803A6 8001001C 60000000 00000000 -$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337] +$Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Saves replays, Slippi device must be in Slot B. *To disable saving replays, visit the Slippi settings in Config > GameCube 040679BC 38802600 #Recording/ExtendPlayerBlock.asm @@ -579,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 808507B3 -3884FF85 80E507BC +40820020 80850904 +3884FF85 80E5090D 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -621,19 +626,19 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000E9 #Recording/SendGameInfo.asm +C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182070C +2C030000 418207A0 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600702 3D808037 +38600726 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -645,15 +650,15 @@ C216E74C 000000E9 #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 38600248 +987E0002 386002BD B07E0003 38600037 987E0005 3860003F B07E0006 38600038 -987E0008 3860004C +987E0008 38600050 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A -987E000E 38600008 +987E000E 3860000C B07E000F 3860003B 987E0011 3860002A B07E0012 3860003C @@ -663,7 +668,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600309 60630000 +3C60030C 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -723,7 +728,7 @@ B07E0015 3860003D 5463443E B07E01C0 3C608048 80639D30 5463443E 2C030208 -4082011C 38600000 +40820190 38600000 3D808000 618C5610 7D8903A6 4E800421 7C791B78 3A800000 @@ -755,14 +760,31 @@ B07E0015 3860003D 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 -4180FFA0 7F23CB78 -3D808037 618CF1B0 +4180FFA0 3A800000 +3ABF0060 3AFE0266 +3B5900F7 1C74001D +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74001D 7C83D214 +7F03C378 38A0001D +3D808000 618C31F4 7D8903A6 4E800421 -4800001C 387E01C2 -388000A4 3D808000 +4800001C 7F03C378 +3880001D 3D808000 618CC160 7D8903A6 -4E800421 7FC3F378 -38800266 38A00001 +4E800421 3A940001 +2C140004 4180FFA0 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 4800001C +387E01C2 38800118 +3D808000 618CC160 +7D8903A6 4E800421 +3D808000 618CADF4 +7D8903A6 4E800421 +987E02DA 7FC3F378 +388002DB 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600205 3D808037 @@ -796,7 +818,7 @@ A0B50201 3D808000 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000064 4E800021 +48000070 4E800021 7C0802A6 90010004 9421FF50 BE810008 806DB64C 83A30000 @@ -804,65 +826,67 @@ A0B50201 3D808000 3860003A 987D0000 806DB654 907D0001 3C60804D 80635F90 -907D0005 838DB650 -3B9C0009 938DB650 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 38600004 -38800007 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -48000021 7C8802A6 -38A0000F 3D808038 -618CFD54 7D8903A6 -4E800421 48000124 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C -83E30000 83CDB650 -7FFFF214 3B600000 -806DC18C 83A30024 -2C1D0000 418200D8 -3B7B0001 2C1B000F -418100CC 839D002C -3860003B 987F0000 -806DB654 907F0001 -807C0010 B07F0005 -807C0024 987F0007 -807C002C 907F0008 -807C0040 907F000C -807C0044 907F0010 -807C004C 907F0014 -807C0050 907F0018 -807C0C9C B07F001C -807C0D44 907F001E -807C001C 907F0022 -887C0DD7 987F0026 -887C0DDB 987F0027 -887C0DEB 987F0028 -887C0DEF 987F0029 -807C0518 2C030000 -41820018 8063002C -2C030000 4182000C -8863000C 48000008 -3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B -83BD0008 2C1D0000 -4082FF30 BA810008 +907D0005 3C608048 +80639D60 907D0009 +838DB650 3B9C000D +938DB650 BA810008 800100B4 382100B0 7C0803A6 4E800020 +38600004 38800007 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 48000021 +7C8802A6 38A0000F +3D808038 618CFD54 +7D8903A6 4E800421 +48000124 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +806DB64C 83E30000 +83CDB650 7FFFF214 +3B600000 806DC18C +83A30024 2C1D0000 +418200D8 3B7B0001 +2C1B000F 418100CC +839D002C 3860003B +987F0000 806DB654 +907F0001 807C0010 +B07F0005 807C0024 +987F0007 807C002C +907F0008 807C0040 +907F000C 807C0044 +907F0010 807C004C +907F0014 807C0050 +907F0018 807C0C9C +B07F001C 807C0D44 +907F001E 807C001C +907F0022 887C0DD7 +987F0026 887C0DDB +987F0027 887C0DEB +987F0028 887C0DEF +987F0029 807C0518 +2C030000 41820018 +8063002C 2C030000 +4182000C 8863000C +48000008 3860FFFF +987F002A 83CDB650 +3BDE002B 93CDB650 +3BFF002B 83BD0008 +2C1D0000 4082FF30 BA810008 800100B4 382100B0 7C0803A6 -3C608017 00000000 -C206DA34 00000035 #Recording/SendGamePostFrame.asm +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 3C608017 +60000000 00000000 +C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820168 +2C030000 41820170 887F221F 546306F7 -4082015C 8B7F000C +40820164 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -904,7 +928,8 @@ B07D0030 887F1968 807F0090 907D0041 807F00EC 907D0045 807F195C 907D0049 -838DB650 3B9C004D +807F0014 907D004D +838DB650 3B9C0051 938DB650 BA810008 800100B4 382100B0 7C0803A6 8001001C @@ -953,11 +978,13 @@ B07D0031 80640030 800100B4 382100B0 7C0803A6 881F2219 60000000 00000000 -C2005604 00000008 #Recording/ShouldRecord.asm +C2005604 0000000A #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182001C 2C030302 -41820014 2C030208 +4182002C 2C030302 +41820024 2C030208 +4182001C 2C03010F +41820014 2C030120 4182000C 38600000 4800000C 38600001 48000004 4E800020 @@ -971,9 +998,6 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 -C200569C 00000002 #Common/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -990,14 +1014,6 @@ C20055F8 0000000F #Common/GetIsFollower.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C20056A0 00000007 #Common/GetSSMIndex.asm -2C030001 41820018 -3C60803B 6063B3C0 -1C840010 7C6320AE -48000018 3C60803B -6063B6B0 1C840003 -7C6320AE 48000004 -4E800020 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm 987F0008 3C608048 80639D58 2C030000 @@ -1005,154 +1021,6 @@ C216D294 00000006 #Common/IncrementFrameIndex.asm 906DB654 48000010 806DB654 38630001 906DB654 00000000 -C20055F4 00000007 #Common/IntToFloat.asm -9421FF00 D0410008 -3C004330 C84298A8 -6C638000 900100F0 -906100F4 C82100F0 -EC211028 C0410008 -38210100 4E800020 -60000000 00000000 -C20056A4 00000022 #Common/LoadPremadeText.asm -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 7C9E2378 -3B800004 7F83E378 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C7D1B78 7F84E378 -3D808000 618CC160 -7D8903A6 4E800421 -386000E1 48000055 -839D0000 7FA3EB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -7F83E378 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7D1B78 -386000E2 4800001D -7FA3EB78 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -987D0000 9BFD0001 -9BDD0002 7FA3EB78 -38800003 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7FA3EB78 7F84E378 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20055EC 00000008 #Common/MultiplyRWithF.asm -7C0802A6 90010004 -9421FF50 BE810008 -3D808000 618C55F4 -7D8903A6 4E800421 -EC2100B2 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -60000000 00000000 -C20056A8 00000005 #Common/RequestSSMLoad.asm -2C030037 41820018 -3D808043 618C37C4 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 -C20056B4 00000059 #Common/SubtextFunctions.asm -2C050002 418201F8 -7C0802A6 90010004 -9421FF50 BE810008 -7C751B78 7C962378 -7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C -FEA00890 FEC01090 -FEE01890 FF202890 -FF403090 2C180001 -418000FC 39E00004 -FC20B090 FC40B890 -2C0F0001 41820020 -2C0F0002 41820020 -2C0F0003 41820020 -2C0F0004 41820020 -48000024 EC21D028 -4800001C EC21D02A -48000014 EC42D028 -4800000C EC42D02A -48000004 7EA3AB78 -80810038 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7F25CB78 2C0F0000 -40820008 7EC5B378 -7EA3AB78 7EE4BB78 -3D80803A 618C74F0 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C -3D80803A 618C70A0 -7D8903A6 4E800421 -2C0F0000 4182000C -39EFFFFF 4BFFFF14 -48000094 7EA3AB78 -80810038 FC20B090 -FC40B890 3D80803A -618C6B98 7D8903A6 -4E800421 7C771B78 -7EA3AB78 7EE4BB78 -FC20A890 FC40A890 -3D80803A 618C7548 -7D8903A6 4E800421 -7EA3AB78 7EE4BB78 -7EC5B378 3D80803A -618C74F0 7D8903A6 -4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A -618C70A0 7D8903A6 -4E800421 7EE3BB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -7C9C2378 7CDB3378 -FEC00890 FEE01090 -FF001890 FEA02090 -4800008D 7F4802A6 -38600000 7F64DB78 -C01A0000 FC20B090 -FC40B890 FC60C090 -C09A0004 C0BA0008 -3D80803A 618C5ACC -7D8903A6 4E800421 -7C751B78 2C1C0000 -41820010 38600001 -986DAFEC 7F86E378 -7EA3AB78 7FA4EB78 -FC00A890 D0030024 -D0030028 3D80803A -618C6368 7D8903A6 -4E800421 7EA3AB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -41100000 44160000 -41A00000 00000000 041D460C 809F00EC #Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm C21D14C8 00000002 #Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm 38600000 987F00F0 @@ -1218,59 +1086,86 @@ C216EBAC 0000000C #Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm $Required: Slippi Online [Fizzi, UnclePunch] *Adds online mode, Slippi device must be in Slot B. *Change settings in Config > GameCube -C206A880 00000018 #Online/Core/BrawlOffscreenDamage.asm +C206A880 0000001B #Online/Core/BrawlOffscreenDamage.asm 7C0802A6 90010004 9421FF50 BE810008 -887F221F 54630673 -40820088 807F0010 -2C030004 4182007C -2C030006 41820074 -3D808022 618C4A54 +3C608048 80639D30 +5463443E 2C030120 +41820094 887F221F +54630673 40820088 +807F0010 2C030004 +4182007C 2C030006 +41820074 3D808022 +618C4A54 7D8903A6 +4E800421 C05F00B0 +FC020840 41800060 +3D808022 618C4A68 7D8903A6 4E800421 C05F00B0 FC020840 -41800060 3D808022 -618C4A68 7D8903A6 -4E800421 C05F00B0 -FC020840 41810044 -3D808022 618C4A80 +41810044 3D808022 +618C4A80 7D8903A6 +4E800421 C05F00B4 +FC020840 41810028 +3D808022 618C4A98 7D8903A6 4E800421 C05F00B4 FC020840 -41810028 3D808022 -618C4A98 7D8903A6 -4E800421 C05F00B4 -FC020840 4180000C -38600000 48000008 -38600001 BA810008 -800100B4 382100B0 -7C0803A6 00000000 -C21A4DB4 0000001C #Online/Core/ForceEngineOnRollback.asm +4180000C 38600000 +48000008 38600001 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C22F7094 0000000C #Online/Core/CustomizeMessageLRAS.asm +3CE08048 80E79D30 +54E7443E 2C070208 +40820048 88E30008 +2C070007 4082003C +89430001 816DB61C +886B0000 7C035000 +41820018 38600005 +3D808002 618C4030 +7D8903A6 4E800421 +3D80802F 618C7120 +7D8903A6 4E800420 +8903000B 00000000 +C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -408200B0 3C608047 +408200A4 3C608047 60639D64 80630000 -2C030000 4082009C +2C030000 40820090 3D808034 618C7364 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500D9 2C040000 -41820038 3B600001 -888500D9 988507A9 -808500DB 908507AA -888500DA 988507AE -80850237 908507AF -808500D5 8084010A -908507B3 48000028 -888507B7 2C040000 -4182001C 38800000 -988507B7 3D808001 -618C95FC 7D8903A6 -4E800421 7F43D378 -3D808034 618C738C +888500DA 2C040000 +4182002C 3B600001 +888500DA 988508FA +808500DC 908508FB +888500DB 988508FF +80850388 90850900 +48000028 88850908 +2C040000 4182001C +38800000 98850908 +3D808001 618C95FC +7D8903A6 4E800421 +7F43D378 3D808034 +618C738C 7D8903A6 +4E800421 2C1B0000 +40820014 3D80801A +618C4DA8 7D8903A6 +4E800420 00000000 +C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm +3D808001 618CD2BC +7D8903A6 4E800421 +3C608048 80639D30 +5463443E 2C030208 +40820038 3C608047 +60639D64 80630000 +2C030000 40820024 +80ADB61C 8865000F +2C030000 41820014 +3D808001 618C95FC 7D8903A6 4E800421 -2C1B0000 40820014 -3D80801A 618C4DA8 -7D8903A6 4E800420 60000000 00000000 C216D310 00000009 #Online/Core/HandleLRAS.asm 3C608048 80639D30 @@ -1278,7 +1173,7 @@ C216D310 00000009 #Online/Core/HandleLRAS.asm 40820028 3C608046 6063B6A0 88630008 2C030007 40820014 -808DB61C 806407A5 +808DB61C 806408F6 7C6903A6 4E800421 8001003C 83E10034 60000000 00000000 @@ -1305,39 +1200,39 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 386007C0 +4082037C 38600919 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388007C0 +7C7B1B78 38800919 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 -7C6802A6 907B07A5 -38600012 3D808037 +7C6802A6 907B08F6 +38600016 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D1 +4E800421 907B00D2 3860010E 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D5 +4E800421 907B00D6 7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B024A 3860009E +933B039B 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B024E 3880009E +907B039F 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386007C0 +93790005 38600919 90790009 9359000D 3860010E 90790011 -807B024E 90790015 +807B039F 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1348,7 +1243,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 88780004 987B0001 80780005 907B0007 3C80804D 90645F90 -7FE3FB78 389801E8 +7FE3FB78 3898025C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 @@ -1374,7 +1269,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 41800010 2C03000F 41810010 48000010 38600001 48000008 -3860000F 987B001B +3860000F 987B001C 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 @@ -1419,11 +1314,11 @@ BA810008 800100B4 4E800020 BA810008 800100B4 382100B0 7C0803A6 00000000 -C216E904 00000050 #Online/Core/InitPause.asm +C216E904 0000004C #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 -40820264 886DAFA0 -2C030000 41820258 +40820248 886DAFA0 +2C030000 4182023C 3D808046 618CDB68 886C0002 54630739 41820028 48000029 @@ -1431,7 +1326,7 @@ C216E904 00000050 #Online/Core/InitPause.asm 38600000 986DAFC8 886C0002 38800000 50831F38 986C0002 -4800021C 4E800021 +48000200 4E800021 7C0802A6 90010004 9421FF50 BE810008 83ADB61C 3BC00000 @@ -1455,68 +1350,64 @@ C216E904 00000050 #Online/Core/InitPause.asm 3C80804C 60841FAC 1C7E0044 7FE32214 886DAFC8 2C030000 -418200C8 887D000D +418200AC 887D000D 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 4E800421 2C030000 -41820070 807F0008 -546004E7 40820064 -4800010C 38600002 -3D808002 618C4030 -7D8903A6 4E800421 -3D808037 618C8330 -7D8903A6 4E800421 -3C608046 6063B6A0 -9BC30001 7FC3F378 -38800007 3D808016 -618CCF4C 7D8903A6 -4E800421 38600003 -3C808046 6084B6A0 -98640000 480000B0 -38600000 986DAFC8 -3D80802F 618C33CC +41820054 807F0008 +546004E7 40820048 +480000F0 3C608046 +6063B6A0 9BC30001 +38800007 98830008 +3880001E 988324D5 +3D80802F 618C3394 7D8903A6 4E800421 -7FC3F378 3D80801A -618C10FC 7D8903A6 -4E800421 48000080 -887D000D 2C030000 -40820020 7FC3F378 -3D808003 618C3BD8 +3D80801A 618C10FC 7D8903A6 4E800421 -2C030000 41820058 -807F0008 546004E7 -4182004C 38600001 +480000B0 38600000 986DAFC8 3D80802F -618C3394 7D8903A6 +618C33CC 7D8903A6 4E800421 7FC3F378 -38800005 3D80801A -618C0FEC 7D8903A6 -4E800421 38600005 -3D808002 618C4030 +3D80801A 618C10FC 7D8903A6 4E800421 -48000004 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 881F0001 -60000000 00000000 -C21A5014 0000004F #Online/Core/LoopEngineForRollback.asm +48000080 887D000D +2C030000 40820020 +7FC3F378 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +41820058 807F0008 +546004E7 4182004C +38600001 986DAFC8 +3D80802F 618C3394 +7D8903A6 4E800421 +7FC3F378 38800005 +3D80801A 618C0FEC +7D8903A6 4E800421 +38600005 3D808002 +618C4030 7D8903A6 +4E800421 48000004 +3860FFFF BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +881F0001 00000000 +C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 4E800420 3C608048 80639D30 5463443E -2C030208 40820250 +2C030208 408202B8 3C608047 60639D64 80630000 2C030000 -4082023C 7C0802A6 +408202A4 7C0802A6 90010004 9421FF50 BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF0252 +83EDB61C 3BDF03A3 8B9E0000 3F008048 83189D60 3B18FFFF -82FF07A1 7C18B800 +82FF08F2 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1545,44 +1436,57 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F07A1 +4081001C 931F08F2 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 7FA3EB78 -3D808034 618C738C -7D8903A6 4E800421 -8B7F07A9 2C1B0001 -408200CC 48000025 -BA810008 800100B4 -382100B0 7C0803A6 -3D80801A 618C4DE4 +9B9E0000 8B7F08FA +2C1B0001 40820134 +807F08FB 7C181800 +41800048 38600000 +987F00DA 987F08FA +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 3B5A0001 +3D80801A 618C5024 7D8903A6 4E800420 -7C0802A6 90010004 -9421FF50 BE810008 -3D808003 618C0A50 -7D8903A6 4E800421 -3D808002 618CA4AC -7D8903A6 4E800421 -3D808003 618C0A50 -7D8903A6 4E800421 -80630028 3D808036 -618C8458 7D8903A6 -4E800421 806DC18C -82830020 4800002C -82B4002C 8875221F -546006F7 40820018 -7E83A378 3D808008 -618C6A8C 7D8903A6 -4E800421 82940008 -2C140000 4082FFD4 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 48000029 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 +3B5A0001 3D80801A +618C4DE4 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF50 +BE810008 3D808003 +618C0A50 7D8903A6 +4E800421 3D808002 +618CA4AC 7D8903A6 +4E800421 3D808003 +618C0A50 7D8903A6 +4E800421 80630028 +3D808036 618C8458 +7D8903A6 4E800421 +806DC18C 82830020 +4800002C 82B4002C +8875221F 546006F7 +40820018 7E83A378 +3D808008 618C6A8C +7D8903A6 4E800421 +82940008 2C140000 +4082FFD4 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7FA3EB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 806407BC -38630001 906407BC +808DB61C 8064090D +38630001 9064090D 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1600,18 +1504,20 @@ C216EA30 00000004 #Online/Core/Remember Who LRA Started.asm 40820014 3C808046 6084B6A0 88840001 989E000C 00000000 -C2376A20 0000000A #Online/Core/SkipNewInputFetchOnRollback.asm +C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 3C608048 80639D30 5463443E 2C030208 -40820038 3C608047 +40820044 3C608047 60639D64 80630000 -2C030000 40820024 -806DB61C 886300D9 -2C030001 40820014 -3D808037 618C6A28 -7D8903A6 4E800420 -3861002C 00000000 -C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm +2C030000 40820030 +808DB61C 886400DA +2C030000 41820020 +886400DB 2C030000 +40820014 3D808037 +618C6A28 7D8903A6 +4E800420 3861002C +60000000 00000000 +C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1624,21 +1530,21 @@ C21A4DE4 0000005C #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082026C 3C608047 +40820288 3C608047 60639D64 80630000 -2C030000 40820258 -834DB61C 3F608048 -837B9D60 3D808034 +2C030000 40820274 +83CDB61C 3FE08048 +83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 -887A000E 2C030000 -408200D0 887A000D +887E000E 2C030000 +408200D0 887E000D 2C030000 418200C4 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809A07B8 3D80803A +809E0909 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1657,12 +1563,14 @@ C0570010 3D80803A 38800000 38B70014 3D80803A 618C74F0 7D8903A6 4E800421 -38600001 987A000E -887A07A9 2C030000 -418200B8 887A07AE -2C030000 41820084 -807A024A 809A07AF -80BA024E 3D808000 +38600001 987E000E +887E08FA 2C030000 +418200B0 887E08FF +2C030000 41820094 +807E0900 7C1F1800 +41820024 41800094 +807E039B 809E0900 +80BE039F 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1671,261 +1579,275 @@ C0570010 3D80803A 7C832051 4080000C 88650000 7C841A14 98850002 38600000 -98650003 3F608048 -837B9D60 807A0237 -907A0003 38600000 -987A0236 987A0247 -987A0248 987A0249 -987A00DA 987A07AE +98650003 3FE08048 +83FF9D60 807E0388 +907E0003 38600000 +987E0387 987E0398 +987E0399 987E039A +987E00DB 987E08FF 3D808001 618C95FC 7D8903A6 4E800421 -807A07AA 7C1B1800 -41800010 38600000 -987A00D9 987A07A9 -887A0236 2C030000 -4182002C 807A0237 -7C1B1800 41800020 -807A024A 7F64DB78 -80BA024E 3D808000 -618C5608 7D8903A6 -4E800421 887A000C -2C030001 4182004C -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -987A000B 4800002C -887A000B 38630001 -987A000B 2C030007 -40810018 38600001 -987A000C 807A07A5 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 -C2376A28 000000DD #Online/Core/TriggerSendInput.asm +807E0911 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0904 +7C032000 40810008 +907E0904 887E0387 +2C030000 4182002C +807E0904 7C1F1800 +40810020 807E039B +7FE4FB78 80BE039F +3D808000 618C5608 +7D8903A6 4E800421 +887E000C 2C030001 +4182004C 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 987E000B +4800002C 887E000B +38630001 987E000B +2C030007 40810018 +38600001 987E000C +807E08F6 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408206B0 3C608047 +4082070C 3C608047 60639D64 80630000 -2C030000 4082069C -836DB61C 833B00D1 -831B00D5 82FB024A -835B0003 887B00D9 -2C030001 418205F8 -887B001B 38800054 -7C632050 2C1A0003 -4080001C 386100DC -38800030 3D808000 -618CC160 7D8903A6 -4E800421 889B0002 -1C84000C 386400E6 -7C6118AE 7C630774 -2C03FFFD 40820024 -386400DC 7C611A14 -389B000F 38A0000C -3D808000 618C31F4 +2C030000 408206F8 +836DB61C 833B00D2 +831B00D6 82FB039B +835B0003 889B0002 +1C84000C 386400DC +7FA11A14 887B00DA +2C030000 41820010 +887B00DB 2C030000 +41820638 887B001C +38800054 7C632050 +2C1A0003 4080001C +386100DC 38800030 +3D808000 618CC160 7D8903A6 4E800421 -889B0002 1C84000C -388400DC 387B000F -7C812214 38A0000C +48000040 88830000 +7C840774 2C04FFFE +4180002C 2C040002 +41810024 88830001 +7C840774 2C04FFFE +41800014 2C040002 +4181000C 38800000 +B0830000 4E800020 +387D0002 4BFFFFC1 +387D0004 4BFFFFB9 +887D000A 7C630774 +2C03FFFD 40820020 +7FA3EB78 389B0010 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 387B0010 +7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 887B001B -98790005 889B0002 -1C84000C 388400DC -38790006 7C812214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 7F23CB78 -38800012 38A00001 -3D808000 618C55F0 +93590001 807B0904 +90790005 887B001C +98790009 3879000A +7FA4EB78 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -38780000 3880010E -38A00000 3D808000 +7F23CB78 38800016 +38A00001 3D808000 618C55F0 7D8903A6 -4E800421 88780000 -2C030002 4182001C -2C030003 41820008 -48000030 38600001 -987B000D 48000024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -889B001C 1C84000C -3884001D 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 887B00DF -1C63000C 386300E0 -889B0000 1C84000C -388400DC 7C7B1A14 -7C812214 38A0000C -3D808000 618C31F4 +4E800421 38780000 +3880010E 38A00000 +3D808000 618C55F0 7D8903A6 4E800421 -887B00DF 38630001 -2C030007 41800008 -38600000 987B00DF -887B001C 1C63000C -3863001D 7C7B1A14 -38990006 38A0000C +38600000 987B000F +88780000 2C030002 +41820024 2C030003 +41820010 2C030004 +41820034 48000038 +38600001 987B000D +4800002C BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 38600001 +987B000F 889B001D +1C84000C 3884001E +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -889B001B 887B001C -38630001 7C032000 +887B00E0 1C63000C +386300E1 889B0000 +1C84000C 388400DC +7C7B1A14 7C812214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 887B00E0 +38630001 2C03000E 41800008 38600000 -987B001C 887B0236 +987B00E0 887B001D +1C63000C 3863001E +7C7B1A14 3899000A +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 889B001C +887B001D 38630001 +7C032000 41800008 +38600000 987B001D +8B9B00DA 887B0387 2C030000 40820018 -38600000 987B0247 -987B0248 987B0249 -48000284 3A800000 -38D40247 7C66D8AE -2C030001 40820178 +38600000 987B0398 +987B0399 987B039A +48000264 3A800000 +38D40398 7C66D8AE +2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 -38C6023B 7C86D82E -7C641851 41800158 -7C761B78 38D40134 -7C66D8AE 38D40137 -7C86D8AE 7EC3B378 -1C63000C 3863000E +38C6038C 7C86D82E +7EC41851 4180014C +80DB0904 7C043000 +41810010 7C032000 +418100AC 48000134 +1C76000C 38630012 1CD40054 7C633214 -38D40134 7C86D8AE -1C84000C 3884013A -1CB40054 7C842A14 +38D40189 7C86D8AE +1C84000C 3884018F +1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 546306FE 548406FE -7C032000 408200BC +7C032000 408200AC 88660001 88870001 5463067E 5484067E -7C032000 408200A4 -80660002 80870002 7C032000 40820094 +80660002 80870002 +7C032000 40820084 38A00005 38A50001 2C050008 40800028 7C6530AE 7C8538AE 2C03002A 4181000C 2C04002A 4081FFE0 -7C032000 40820064 +7C032000 40820054 4BFFFFD4 1CD40004 -38C6023B 7C66D82E +38C6038C 7C66D82E 38630001 7C66D92E -38D40134 7C66D8AE -38630001 2C030007 -41800008 3863FFF9 -7C66D9AE 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +38D40189 7C66D8AE +38630001 2C03000E +41800008 3863FFF2 +7C66D9AE 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7C041800 -4082FEC0 48000040 -1CD40004 38C6023B -7C66D82E 38600001 -987B00D9 987B00DA -935B00DB BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE74 -3AA00000 3A800000 -807B0237 7C761B78 -7EC3B378 38D40247 -7C86D8AE 7C761B78 -7EC3B378 38D40247 -7C86D8AE 2C040001 -40820030 1CD40004 -38C6023B 7C86D82E -2C150000 4182000C -7C041800 40800014 -7C832378 7C761B78 -7EC3B378 3AA00001 +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DA +987B00DB 935B00DC +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 3A940001 2C140003 -4180FFAC 907B0237 -3A800000 38D40247 +4180FE80 39600000 +3A800000 82BB0904 +38D40398 7C86D8AE +2C040001 40820028 +1CD40004 38C6038C +7C86D82E 2C0B0000 +4182000C 7C04A800 +40800008 7C952378 +39600001 3A940001 +2C140003 4180FFC4 +92BB0388 92BB0911 +80D8000E 7C153000 +40810008 90DB0911 +2C1C0000 4082FF54 +3A800000 38D40398 7C86D8AE 2C040001 -40820038 38D40134 -7C66D8AE 38D40137 -7C86D8AE 38D40134 -7C66D8AE 38D40137 +40820028 38D40189 +7C66D8AE 38D4018C 7C86D8AE 7C041800 40820010 38600000 -38D40247 7C66D9AE +38D40398 7C66D9AE 3A940001 2C140003 -4180FFB4 3A800000 -38D40247 7C86D8AE +4180FFC4 3A800000 +38D40398 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B0236 3A800000 -3AA00000 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C60002 7C66C02E -7C7A1850 2C030000 -408000D4 887B001B -38800054 7C632050 -7C1A1800 418000BC -887B000C 2C030001 -418200B0 38D40137 +987B0387 3A800000 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C60002 +7C66C02E 7C7A1850 +2C030000 408000D8 +887B001C 38800054 +7C632050 7C1A1800 +418000C0 887B000C +2C030001 418200B4 +3B800000 38D4018C 7EC6D8AE 1C76000C -3863013A 1CB40054 +3863018F 1CB400A8 7C632A14 1CD40054 -38C6000E 7C7B1A14 +38C60012 7C7B1A14 7C983214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -38760001 2C030007 -41800008 3863FFF9 -38D40137 7C66D9AE -38D40134 7C66D8AE -38D40137 7C86D8AE -38D40247 7C66D8AE +38760001 2C03000E +41800008 3863FFF2 +38D4018C 7C66D9AE +38D40189 7C66D8AE +38D4018C 7C86D8AE +38D40398 7C66D8AE 2C030001 4182003C -1CD40004 38C6023B +1CD40004 38C6038C 7F46D92E 38600001 -38D40247 7C66D9AE -38D40134 7EC6D9AE -887B0236 2C030001 -41820010 935B0237 -38600001 987B0236 +38D40398 7C66D9AE +38D40189 7EC6D9AE +887B0387 2C030001 +41820010 935B0388 +38600001 987B0387 38600000 1C63000C -38A3000E 1CD40054 +38A30012 1CD40054 7CA53214 1C75000C 386300DC 7C611A14 7C982A14 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 3A940001 3AB50001 -2C140003 4180FEC8 -48000080 807B00DB -7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -807B00DB 7C7A1850 -38630001 889B00DF -7C632051 40800008 -38630007 1C63000C -388300E0 887B0000 -1C63000C 386300DC -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE40 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -2C1E0000 00000000 +2C140003 4180FEC4 +2C1C0000 41820008 +935B0911 48000080 +807B00DC 7C1A1800 +40810024 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00DC +7C7A1850 38630001 +889B00E0 7C632051 +40800008 3863000E +1C63000C 388300E1 +887B0000 1C63000C +386300DC 7C611A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -2001,6 +1923,42 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7FC3F378 60000000 00000000 +C20D4C1C 00000005 #Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm +901F2344 C01E0030 +D01F2348 C01E003C +D01F234C 38600000 +907F0080 907F0084 +907F0088 00000000 +C20D4D68 0000000B #Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm +C03E0034 C05E0038 +C07F2348 FC630828 +FC401050 FC031040 +41810008 FC601090 +D07F2348 C03F2360 +C05F2348 EC21102A +D03F2360 C03F234C +C05F2364 EC21102A +D03F2364 3D80800D +618C4D84 7D8903A6 +4E800420 00000000 +C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808003 618C10B8 +7D8903A6 4E800421 +3D808036 618C9808 +7D8903A6 4E800421 +389E2350 38A10080 +3D808034 618C2AA8 +7D8903A6 4E800421 +80610080 907F0038 +80610084 907F003C +80610088 907F0040 +BA810008 800100B4 +382100B0 7C0803A6 +3D808008 618C0EE4 +7D8903A6 4E800420 +60000000 00000000 04019260 48000034 #Online/Core/Hacks/ForceNoDiskCrash.asm C2376304 0000000B #Online/Core/Hacks/ForceNoVideoAssert.asm 48000031 7C6802A6 @@ -2028,18 +1986,19 @@ C23A63A8 0000000C #Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm 7C0803A6 38600000 986DAFEC 00000000 04321D70 38600000 #Online/Core/Hacks/PreventCharacterCrowdChants.asm -C2019608 0000000E #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 9421FFF8 3C608048 80639D30 5463443E -2C030208 40820050 +2C030208 40820058 3C608047 60639D64 80630000 2C030000 -4082003C 3C608037 -60635E00 2C000003 -4082002C 80ADB61C -886500D9 2C030000 +40820044 80ADB61C +38600000 9865000F +3C608037 60635E00 +2C000003 40820028 +886500DA 2C030000 4182001C 38600001 -986507B7 3D808001 +98650908 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2058,11 +2017,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF0252 8B9E0000 +3BDF03A3 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F08F2 7C032000 41810028 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2080,12 +2039,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2110,12 +2069,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF0252 57DE043E +3BBF03A3 57DE043E 8B9D0000 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C032000 41810088 3C608048 80639D60 -809F07A1 7C632050 +809F08F2 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2142,13 +2101,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF0252 +83EDB61C 3BDF03A3 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F07A1 7C032000 +809F08F2 7C032000 41810070 3C608048 -80639D60 809F07A1 +80639D60 809F08F2 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2704,10 +2663,10 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001DC #Online/Menus/CSS/LoadCSSText.asm +C2264534 000001DE #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820EC4 480001F8 +40820ED4 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2844,7 +2803,7 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000A78 +7C0803A6 48000A88 7C0802A6 90010004 9421FF50 BE810008 FDA01890 7F83E378 @@ -2913,7 +2872,7 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800081D 887E000A +4800082D 887E000A 2C030000 4182001C 3B1E0015 7C791B78 887C0018 38630001 @@ -2971,22 +2930,22 @@ BA810008 800100B4 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7EC3B378 -480003E1 7C8802A6 +480003F1 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 887E0000 2C030004 4182000C 38BD0098 48000008 38BD017C 38800009 -48000615 887E0000 +48000625 887E0000 2C030004 4182000C 38BD0098 48000008 38BE00B0 3880000A -480005F5 887E0000 +48000605 887E0000 2C030004 4182000C 38BD0098 48000008 38BD0185 38800008 -480005D5 887E0000 +480005E5 887E0000 2C030004 41820034 2C030005 41820020 2C030000 4181000C @@ -2995,21 +2954,21 @@ BA810008 800100B4 48000018 38BD0197 38DD01C4 4800000C 38BD01A5 38DD01B2 -38800007 48000589 +38800007 48000599 3B600001 7F64DB78 -38BD0098 48000579 +38BD0098 48000589 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 38BD0098 -48000545 3B7B0001 +48000555 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 3B60000B 3B200000 3B000000 -3AE00000 3ADE00F7 +3AE00000 3ADE016B 7EB6C8AE 56A00631 41820010 3B390002 3B180001 48000018 @@ -3020,20 +2979,20 @@ BA810008 800100B4 41810008 4800002C 38800000 7C96B9AE 7F64DB78 7EC5B378 -480004C5 3B7B0001 +480004D5 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 -387E01E8 7C96CA14 +387E025C 7C96CA14 7C041800 40800010 2C1B000E 41810008 -4BFFFF78 4800014C +4BFFFF78 4800015C 3B600001 886DB657 7F64DB78 2C030000 40820018 38BD00BE -4800046D 38600001 -987C000C 48000124 -38BD00D4 48000459 +4800047D 38600001 +987C000C 48000134 +38BD00D4 48000469 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 @@ -3051,20 +3010,22 @@ BA810008 800100B4 38DD010C 886DAFA0 2C030002 4180000C 38BD00E7 38DD0101 -480003CD 38600001 -987C000D 48000084 -38BD0120 480003B9 +480003DD 38600001 +987C000D 48000094 +38BD0120 480003C9 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 -4182004C 2C030003 -41820024 88ADAFA0 -2C050001 38BD012A -38DD015A 41820038 +4182005C 2C030003 +4182002C 38BD012A +38DD015A 896DAFA0 +2C0B0001 41820048 +2C0B0000 41820040 38BD012A 38DD0163 -4800002C 88ADAFA0 -2C050001 38BD013B -38DD015A 41820018 +48000034 38BD013B +38DD015A 896DAFA0 +2C0B0001 41820020 +2C0B0000 41820018 38BD013B 38DD0163 4800000C 38BD014C 38DD015A 48000349 @@ -3098,7 +3059,7 @@ B07C000F BA810008 4E800021 7C6E1B78 7C0802A6 90010004 9421FF50 BE810008 -4BFFF3D1 7FA802A6 +4BFFF3C1 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 82B00004 @@ -3240,7 +3201,7 @@ BE810008 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600320 +93E30000 38600394 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -3949,7 +3910,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE07B8 +83CDB61C 93FE0909 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -3964,7 +3925,7 @@ D03D0008 C03C0004 D03D0024 D03D0028 C03C0008 C05C000C 7FA3EB78 389C0048 -88BE001B 3D80803A +88BE001C 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 38800000 C03C0010 @@ -4577,7 +4538,7 @@ BE810008 38600000 989E004A C03F0000 D03E0008 C03F0004 D03E0024 D03E0028 -887D01F0 2C030001 +887D0264 2C030001 41820038 387F0010 389F0052 38BD0034 38C00000 C03F001C @@ -4604,12 +4565,12 @@ C03F0004 D03E0024 D03E0028 38800001 989E004A 989E0049 C03F0000 D03E0008 -7FC3F378 A09D01F6 +7FC3F378 A09D026A 3D808000 618C5690 7D8903A6 4E800421 2C030001 41820058 3CA0803B 60A57808 -A0DD01F6 38600000 +A0DD026A 38600000 1C830002 7C85222E 7C043000 41820014 38630001 2C03001D @@ -4678,7 +4639,7 @@ BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 -1C630024 389F0248 +1C630024 389F02BC 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -4932,7 +4893,7 @@ BE810008 3D80801B 387C0002 7C9B18AE 38A40001 7CBB19AE 1C9C0002 3884000F -A07F01F6 7C7B232E +A07F026A 7C7B232E 889B0000 38840001 38600002 7C841B96 7C052000 4080002C @@ -5030,10 +4991,10 @@ BE810008 38600000 887F0084 98640008 887F0087 9864000E 38600000 9864FFFF -9864FFFB 887E01F0 +9864FFFB 887E0264 2C030000 418200F4 887E0003 1C630024 -38630251 7F7E18AE +386302C5 7F7E18AE 38600002 98640002 38600001 9864FFFB 98640006 98640007 @@ -5067,7 +5028,7 @@ BE810008 38600000 887F0063 98640018 887F0084 9064001C 887F0087 98640020 -887E01F0 2C030000 +887E0264 2C030000 41820024 887F00A8 90640024 887F00AB 98640028 887F00CC @@ -5120,7 +5081,7 @@ BE810008 3C808047 618C5610 7D8903A6 4E800421 7C7F1B78 83CD8840 3BDE0598 -7FC3F378 389F01E8 +7FC3F378 389F025C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 7FC3F378 @@ -5128,16 +5089,16 @@ BE810008 3C808047 7D8903A6 4E800421 3D808017 618CEB30 7D8903A6 4E800421 -889F0248 98830000 -889F024B 98830001 +889F02BC 98830000 +889F02BF 98830001 38800000 98830002 38800003 98830005 38800078 98830004 3C80803D 6084DEC8 -8084000C 887F026C +8084000C 887F02E0 98640002 38602121 B0640003 3C808049 -60840880 887F026F +60840880 887F02E3 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 @@ -5325,11 +5286,19 @@ C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 +C20055F4 00000007 #Online/Static/IntToFloat.asm +9421FF00 D0410008 +3C004330 C84298A8 +6C638000 900100F0 +906100F4 C82100F0 +EC211028 C0410008 +38210100 4E800020 +60000000 00000000 C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF50 BE810008 2C030000 40820018 -38600320 3D808037 +38600394 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5337,23 +5306,87 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800320 38A00000 +38800394 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA810008 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -C200560C 00000016 #Online/Static/LoadState.asm +C20056A4 00000022 #Online/Static/LoadPremadeText.asm +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +3B800004 7F83E378 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7D1B78 7F84E378 +3D808000 618CC160 +7D8903A6 4E800421 +386000E1 48000055 +839D0000 7FA3EB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +7F83E378 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7D1B78 +386000E2 4800001D +7FA3EB78 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +987D0000 9BFD0001 +9BDD0002 7FA3EB78 +38800003 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FA3EB78 7F84E378 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 +C200560C 00000033 #Online/Static/LoadState.asm 7C0802A6 90010004 9421FF50 BE810008 7C7B1B78 7C982378 7CBA2B78 88DA0000 +3AC00000 3AD60001 +2C160007 408100DC +48000044 4E800021 +4C6F6164 20737461 +74652072 65717565 +73746564 20666F72 +20667261 6D652025 +64206275 74206672 +616D6520 77617320 +6E6F7420 666F756E +642E0000 7C0802A6 +90010004 9421FF00 +BC610008 7F05C378 +60000000 60000000 +60000000 60000000 +60000000 806DAFC4 +38630003 4BFFFF91 +7C8802A6 4CC63242 +3D808032 618C3CF4 +7D8903A6 4E800421 +806DAFC4 388000D0 +98830000 38800000 +98830001 38800001 +98830002 38800080 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 B8610008 +80010104 38210100 +7C0803A6 48000000 38C6FFFF 2C060000 40800008 38C60007 1C660004 38630002 7F3A1A14 80790000 -7C03C000 4082FFDC +7C03C000 4082FEF8 3D808034 618C7364 7D8903A6 4E800421 7C771B78 386000B2 @@ -5367,6 +5400,15 @@ C200560C 00000016 #Online/Static/LoadState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20055EC 00000008 #Online/Static/MultiplyRWithF.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808000 618C55F4 +7D8903A6 4E800421 +EC2100B2 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +60000000 00000000 C2005608 00000016 #Online/Static/SaveState.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -5390,6 +5432,96 @@ C2005608 00000016 #Online/Static/SaveState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 +C20056B4 00000059 #Online/Static/SubtextFunctions.asm +2C050002 418201F8 +7C0802A6 90010004 +9421FF50 BE810008 +7C751B78 7C962378 +7CB82B78 7CD93378 +90E10038 9101003C +91210040 91410044 +91610048 9181004C +FEA00890 FEC01090 +FEE01890 FF202890 +FF403090 2C180001 +418000FC 39E00004 +FC20B090 FC40B890 +2C0F0001 41820020 +2C0F0002 41820020 +2C0F0003 41820020 +2C0F0004 41820020 +48000024 EC21D028 +4800001C EC21D02A +48000014 EC42D028 +4800000C EC42D02A +48000004 7EA3AB78 +80810038 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7F25CB78 2C0F0000 +40820008 7EC5B378 +7EA3AB78 7EE4BB78 +3D80803A 618C74F0 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +80A10038 80C1003C +80E10040 81010044 +81210048 8141004C +3D80803A 618C70A0 +7D8903A6 4E800421 +2C0F0000 4182000C +39EFFFFF 4BFFFF14 +48000094 7EA3AB78 +80810038 FC20B090 +FC40B890 3D80803A +618C6B98 7D8903A6 +4E800421 7C771B78 +7EA3AB78 7EE4BB78 +FC20A890 FC40A890 +3D80803A 618C7548 +7D8903A6 4E800421 +7EA3AB78 7EE4BB78 +7EC5B378 3D80803A +618C74F0 7D8903A6 +4E800421 7EA3AB78 +7EE4BB78 80A10038 +80C1003C 80E10040 +81010044 81210048 +8141004C 3D80803A +618C70A0 7D8903A6 +4E800421 7EE3BB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +7C9C2378 7CDB3378 +FEC00890 FEE01090 +FF001890 FEA02090 +4800008D 7F4802A6 +38600000 7F64DB78 +C01A0000 FC20B090 +FC40B890 FC60C090 +C09A0004 C0BA0008 +3D80803A 618C5ACC +7D8903A6 4E800421 +7C751B78 2C1C0000 +41820010 38600001 +986DAFEC 7F86E378 +7EA3AB78 7FA4EB78 +FC00A890 D0030024 +D0030028 3D80803A +618C6368 7D8903A6 +4E800421 7EA3AB78 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +41100000 44160000 +41A00000 00000000 C2005618 00000095 #Online/Static/UserDisplayFunctions.asm 4E800021 4800004C 480001E0 480002F4 @@ -5540,7 +5672,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B8 A0190000 #Online/Logging/LogInputOnCopy.asm +043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C @@ -8267,6 +8399,23 @@ BA810008 80010104 3D808039 618C4B04 7D8903A6 4E800420 60000000 00000000 +C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 +C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm +2C030001 41820018 +3C60803B 6063B3C0 +1C840010 7C6320AE +48000018 3C60803B +6063B6B0 1C840003 +7C6320AE 48000004 +4E800020 00000000 +C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm +2C030037 41820018 +3D808043 618C37C4 +38800001 1C630004 +7C83612E 4E800020 +60000000 00000000 C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm 7C7D1B78 3BC00000 60000000 00000000 From 8a0ae315ae3d35acd8f5a59e85491c08257aa844 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Mar 2022 12:55:41 -0500 Subject: [PATCH 075/217] remove LRAS handler this was needed before because there was no delay when LRAS'ing --- Online/Core/HandleLRAS.asm | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 Online/Core/HandleLRAS.asm diff --git a/Online/Core/HandleLRAS.asm b/Online/Core/HandleLRAS.asm deleted file mode 100644 index aa2f1e73..00000000 --- a/Online/Core/HandleLRAS.asm +++ /dev/null @@ -1,33 +0,0 @@ -################################################################################ -# Address: 0x8016d310 -################################################################################ - -.include "Common/Common.s" -.include "Online/Online.s" - -.set REG_ODB_ADDRESS, 4 - -# Ensure that this is an online match -getMinorMajor r3 -cmpwi r3, SCENE_ONLINE_IN_GAME -bne EXIT - -################################################################################ -# Handle game completed -################################################################################ -# Load game end ID, check for LRAS. This case will not trigger the game completed -load r3, 0x8046b6a0 -lbz r3, 0x8(r3) -cmpwi r3, 7 # Check for LRAS ID -bne EXIT - -# Call game end handler function -lwz REG_ODB_ADDRESS, OFST_R13_ODB_ADDR(r13) # data buffer address -lwz r3, ODB_FN_HANDLE_GAME_OVER_ADDR(REG_ODB_ADDRESS) -mtctr r3 -bctrl - -EXIT: -# Replaced code lines -lwz r0, 0x003C(sp) -lwz r31, 0x0034(sp) From 2391699d27ca90ca53fe336c04f3f86399f885b6 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Mar 2022 16:02:18 -0500 Subject: [PATCH 076/217] fix inconsistent game length reporting --- Online/Core/InitOnlinePlay.asm | 2 +- Online/Core/StartEngineLoop.asm | 20 +- Online/Online.s | 6 +- Output/Netplay/GALE01r2.ini | 325 ++++++++++++++++---------------- Output/Netplay/GALJ01r2.ini | 325 ++++++++++++++++---------------- 5 files changed, 332 insertions(+), 346 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index ec78bb43..5ae287e3 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -288,7 +288,7 @@ mr REG_RGB_ADDR, r3 li r3, CONST_SlippiCmdReportMatch stb r3, RGB_COMMAND(REG_RGB_ADDR) -lwz r3, ODB_FRAME(REG_ODB_ADDRESS) +lwz r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) stw r3, RGB_FRAME_LENGTH(REG_RGB_ADDR) # Store frame length PLAYER_LOOP_INIT: diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index d682b225..0dfdabc4 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -280,7 +280,7 @@ branchl r12, FN_CaptureSavestate CAPTURE_END: ################################################################################ -# Check if game has ended +# Check if game has ended. We give a buffer of ROLLBACK_MAX_FRAME_COUNT ################################################################################ lbz r3, ODB_IS_GAME_OVER(REG_ODB_ADDRESS) cmpwi r3, 1 @@ -290,18 +290,22 @@ beq CHECK_GAME_END_END load r3, 0x8046b6a0 lbz r3, 0x8(r3) cmpwi r3, 0 -bne INCREMENT_GAME_END_COUNTER +bne SKIP_GAME_END_FRAME_RESET -# Game end is 0, that means the game is not over, reset the counter +# Game end is 0, that means the game is not over, reset the end frame li r3, 0 -stb r3, ODB_GAME_OVER_COUNTER(REG_ODB_ADDRESS) +stw r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) b CHECK_GAME_END_END +SKIP_GAME_END_FRAME_RESET: -INCREMENT_GAME_END_COUNTER: -lbz r3, ODB_GAME_OVER_COUNTER(REG_ODB_ADDRESS) -addi r3, r3, 1 -stb r3, ODB_GAME_OVER_COUNTER(REG_ODB_ADDRESS) +lwz r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne SKIP_SET_GAME_END_FRAME +stw REG_FRAME_INDEX, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) +SKIP_SET_GAME_END_FRAME: +lwz r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) +sub r3, REG_FRAME_INDEX, r3 cmpwi r3, ROLLBACK_MAX_FRAME_COUNT ble CHECK_GAME_END_END # Not sure if this could be blt instead... ble is safer diff --git a/Online/Online.s b/Online/Online.s index ce4c762c..1c682592 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -198,9 +198,9 @@ .set ODB_INPUT_SOURCE_INDEX, ODB_ONLINE_PLAYER_INDEX + 1 # u8 .set ODB_FRAME, ODB_INPUT_SOURCE_INDEX + 1 # u32 .set ODB_RNG_OFFSET, ODB_FRAME + 4 # u32 -.set ODB_GAME_OVER_COUNTER, ODB_RNG_OFFSET + 4 # u8 -.set ODB_IS_GAME_OVER, ODB_GAME_OVER_COUNTER + 1 # bool -.set ODB_IS_DISCONNECTED, ODB_IS_GAME_OVER + 1 # bool +.set ODB_GAME_END_FRAME, ODB_RNG_OFFSET + 4 # u32 +.set ODB_IS_GAME_OVER, ODB_GAME_END_FRAME + 4 # bool +.set ODB_IS_DISCONNECTED, ODB_IS_GAME_OVER + 1 # bool .set ODB_IS_DISCONNECT_STATE_DISPLAYED, ODB_IS_DISCONNECTED + 1 # bool .set ODB_IS_FRAME_ADVANCE, ODB_IS_DISCONNECT_STATE_DISPLAYED + 1 # bool .set ODB_LAST_LOCAL_INPUTS, ODB_IS_FRAME_ADVANCE + 1 # PAD_REPORT_SIZE diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 8c8ace8c..f69d86a6 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -581,11 +581,11 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 3C608048 80639D30 5463443E 2C030208 806DB654 4082003C -80ADB61C 8885000D +80ADB61C 88850010 2C040000 4082002C -8885000C 2C040000 -40820020 80850904 -3884FF85 80E5090D +8885000F 2C040000 +40820020 80850907 +3884FF85 80E50910 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -611,7 +611,7 @@ C216D884 0000001C #Recording/SendGameEnd.asm 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 -806DB61C 8863000C +806DB61C 8863000F 2C030000 41820050 83B80000 38600039 987D0000 9B5D0001 @@ -1137,15 +1137,15 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500DA 2C040000 +888500DD 2C040000 4182002C 3B600001 -888500DA 988508FA -808500DC 908508FB -888500DB 988508FF -80850388 90850900 -48000028 88850908 +888500DD 988508FD +808500DF 908508FE +888500DE 98850902 +8085038B 90850903 +48000028 8885090B 2C040000 4182001C -38800000 98850908 +38800000 9885090B 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1162,21 +1162,11 @@ C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm 40820038 3C608047 60639D64 80630000 2C030000 40820024 -80ADB61C 8865000F +80ADB61C 88650012 2C030000 41820014 3D808001 618C95FC 7D8903A6 4E800421 60000000 00000000 -C216D310 00000009 #Online/Core/HandleLRAS.asm -3C608048 80639D30 -5463443E 2C030208 -40820028 3C608046 -6063B6A0 88630008 -2C030007 40820014 -808DB61C 806408F6 -7C6903A6 4E800421 -8001003C 83E10034 -60000000 00000000 C234DED8 0000000F #Online/Core/HandleRumble.asm 3BA30000 3C608048 80639D30 5463443E @@ -1200,39 +1190,39 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 38600919 +4082037C 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 38800919 +7C7B1B78 3880091C 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 -7C6802A6 907B08F6 +7C6802A6 907B08F9 38600016 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D2 +4E800421 907B00D5 3860010E 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D6 +4E800421 907B00D9 7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B039B 3860009E +933B039E 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B039F 3880009E +907B03A2 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 38600919 +93790005 3860091C 90790009 9359000D 3860010E 90790011 -807B039F 90790015 +807B03A2 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1269,7 +1259,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 41800010 2C03000F 41810010 48000010 38600001 48000008 -3860000F 987B001C +3860000F 987B001F 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 @@ -1296,7 +1286,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 618CF1E4 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 -807C0003 907E0001 +807C000B 907E0001 3BE00000 3BBE0005 7FE3FB78 3D808003 618C1724 7D8903A6 @@ -1333,7 +1323,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 7FC3F378 3D808003 618C241C 7D8903A6 4E800421 2C030000 -40820060 887D000D +40820060 887D0010 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 @@ -1350,7 +1340,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 3C80804C 60841FAC 1C7E0044 7FE32214 886DAFC8 2C030000 -418200AC 887D000D +418200AC 887D0010 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 @@ -1371,7 +1361,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 4E800421 7FC3F378 3D80801A 618C10FC 7D8903A6 4E800421 -48000080 887D000D +48000080 887D0010 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 @@ -1404,10 +1394,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF03A3 +83EDB61C 3BDF03A6 8B9E0000 3F008048 83189D60 3B18FFFF -82FF08F2 7C18B800 +82FF08F5 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1436,14 +1426,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F08F2 +4081001C 931F08F5 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F08FA +9B9E0000 8B7F08FD 2C1B0001 40820134 -807F08FB 7C181800 +807F08FE 7C181800 41800048 38600000 -987F00DA 987F08FA +987F00DD 987F08FD 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1485,14 +1475,14 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 8064090D -38630001 9064090D +808DB61C 80640910 +38630001 90640910 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 5463443E 2C030208 40820038 83ADB61C -887D000D 2C030001 +887D0010 2C030001 40820028 889D0000 887E0001 7C630774 7C032000 41820014 @@ -1510,14 +1500,14 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 40820044 3C608047 60639D64 80630000 2C030000 40820030 -808DB61C 886400DA +808DB61C 886400DD 2C030000 41820020 -886400DB 2C030000 +886400DE 2C030000 40820014 3D808037 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000061 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1530,21 +1520,21 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820288 3C608047 +40820294 3C608047 60639D64 80630000 -2C030000 40820274 +2C030000 40820280 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 -887E000E 2C030000 -408200D0 887E000D +887E0011 2C030000 +408200D0 887E0010 2C030000 418200C4 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809E0909 3D80803A +809E090C 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1563,14 +1553,14 @@ C0570010 3D80803A 38800000 38B70014 3D80803A 618C74F0 7D8903A6 4E800421 -38600001 987E000E -887E08FA 2C030000 -418200B0 887E08FF +38600001 987E0011 +887E08FD 2C030000 +418200B0 887E0902 2C030000 41820094 -807E0900 7C1F1800 +807E0903 7C1F1800 41820024 41800094 -807E039B 809E0900 -80BE039F 3D808000 +807E039E 809E0903 +80BE03A2 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1580,40 +1570,41 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E0388 +83FF9D60 807E038B 907E0003 38600000 -987E0387 987E0398 -987E0399 987E039A -987E00DB 987E08FF +987E038A 987E039B +987E039C 987E039D +987E00DE 987E0902 3D808001 618C95FC 7D8903A6 4E800421 -807E0911 7C1F1800 +807E0914 7C1F1800 4181000C 7FE3FB78 -48000004 809E0904 +48000004 809E0907 7C032000 40810008 -907E0904 887E0387 +907E0907 887E038A 2C030000 4182002C -807E0904 7C1F1800 -40810020 807E039B -7FE4FB78 80BE039F +807E0907 7C1F1800 +40810020 807E039E +7FE4FB78 80BE03A2 3D808000 618C5608 7D8903A6 4E800421 -887E000C 2C030001 -4182004C 3C608046 +887E000F 2C030001 +41820058 3C608046 6063B6A0 88630008 2C030000 40820010 -38600000 987E000B -4800002C 887E000B -38630001 987E000B -2C030007 40810018 -38600001 987E000C -807E08F6 7C6903A6 -4E800421 7F23CB78 -3D808034 618C738C -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -60000000 00000000 +38600000 907E000B +48000038 807E000B +2C030000 40820008 +93FE000B 807E000B +7C63F850 2C030007 +40810018 38600001 +987E000F 807E08F9 +7C6903A6 4E800421 +7F23CB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 00000000 C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -1622,14 +1613,14 @@ C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 4082070C 3C608047 60639D64 80630000 2C030000 408206F8 -836DB61C 833B00D2 -831B00D6 82FB039B +836DB61C 833B00D5 +831B00D9 82FB039E 835B0003 889B0002 1C84000C 386400DC -7FA11A14 887B00DA +7FA11A14 887B00DD 2C030000 41820010 -887B00DB 2C030000 -41820638 887B001C +887B00DE 2C030000 +41820638 887B001F 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1647,16 +1638,16 @@ B0830000 4E800020 387D0004 4BFFFFB9 887D000A 7C630774 2C03FFFD 40820020 -7FA3EB78 389B0010 +7FA3EB78 389B0013 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 387B0010 +4E800421 387B0013 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B0904 -90790005 887B001C +93590001 807B0907 +90790005 887B001F 98790009 3879000A 7FA4EB78 38A0000C 3D808000 618C31F4 @@ -1668,60 +1659,60 @@ B0830000 4E800020 3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -38600000 987B000F +38600000 987B0012 88780000 2C030002 41820024 2C030003 41820010 2C030004 41820034 48000038 -38600001 987B000D +38600001 987B0010 4800002C BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 38600001 -987B000F 889B001D -1C84000C 3884001E +987B0012 889B0020 +1C84000C 38840021 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00E0 1C63000C -386300E1 889B0000 +887B00E3 1C63000C +386300E4 889B0000 1C84000C 388400DC 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00E0 +4E800421 887B00E3 38630001 2C03000E 41800008 38600000 -987B00E0 887B001D -1C63000C 3863001E +987B00E3 887B0020 +1C63000C 38630021 7C7B1A14 3899000A 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 889B001C -887B001D 38630001 +4E800421 889B001F +887B0020 38630001 7C032000 41800008 -38600000 987B001D -8B9B00DA 887B0387 +38600000 987B0020 +8B9B00DD 887B038A 2C030000 40820018 -38600000 987B0398 -987B0399 987B039A +38600000 987B039B +987B039C 987B039D 48000264 3A800000 -38D40398 7C66D8AE +38D4039B 7C66D8AE 2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 -38C6038C 7C86D82E +38C6038F 7C86D82E 7EC41851 4180014C -80DB0904 7C043000 +80DB0907 7C043000 41810010 7C032000 418100AC 48000134 1C76000C 38630012 1CD40054 7C633214 -38D40189 7C86D8AE -1C84000C 3884018F +38D4018C 7C86D8AE +1C84000C 38840192 1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1739,18 +1730,18 @@ B0830000 4E800020 2C04002A 4081FFE0 7C032000 40820054 4BFFFFD4 1CD40004 -38C6038C 7C66D82E +38C6038F 7C66D82E 38630001 7C66D92E -38D40189 7C66D8AE +38D4018C 7C66D8AE 38630001 2C03000E 41800008 3863FFF2 -7C66D9AE 38D40189 -7C66D8AE 38D4018C +7C66D9AE 38D4018C +7C66D8AE 38D4018F 7C86D8AE 7C041800 4082FED0 48000044 3B800001 4800003C -38600001 987B00DA -987B00DB 935B00DC +38600001 987B00DD +987B00DE 935B00DF 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 @@ -1758,46 +1749,46 @@ BA810008 800100B4 7D8903A6 4E800420 3A940001 2C140003 4180FE80 39600000 -3A800000 82BB0904 -38D40398 7C86D8AE +3A800000 82BB0907 +38D4039B 7C86D8AE 2C040001 40820028 -1CD40004 38C6038C +1CD40004 38C6038F 7C86D82E 2C0B0000 4182000C 7C04A800 40800008 7C952378 39600001 3A940001 2C140003 4180FFC4 -92BB0388 92BB0911 +92BB038B 92BB0914 80D8000E 7C153000 -40810008 90DB0911 +40810008 90DB0914 2C1C0000 4082FF54 -3A800000 38D40398 +3A800000 38D4039B 7C86D8AE 2C040001 -40820028 38D40189 -7C66D8AE 38D4018C +40820028 38D4018C +7C66D8AE 38D4018F 7C86D8AE 7C041800 40820010 38600000 -38D40398 7C66D9AE +38D4039B 7C66D9AE 3A940001 2C140003 4180FFC4 3A800000 -38D40398 7C86D8AE +38D4039B 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B0387 3A800000 +987B038A 3A800000 3AA00000 3B800001 887B0000 7C151800 40820008 3AB50001 1CD40004 38C60002 7C66C02E 7C7A1850 2C030000 408000D8 -887B001C 38800054 +887B001F 38800054 7C632050 7C1A1800 -418000C0 887B000C +418000C0 887B000F 2C030001 418200B4 -3B800000 38D4018C +3B800000 38D4018F 7EC6D8AE 1C76000C -3863018F 1CB400A8 +38630192 1CB400A8 7C632A14 1CD40054 38C60012 7C7B1A14 7C983214 38A0000C @@ -1805,18 +1796,18 @@ BA810008 800100B4 7D8903A6 4E800421 38760001 2C03000E 41800008 3863FFF2 -38D4018C 7C66D9AE -38D40189 7C66D8AE -38D4018C 7C86D8AE -38D40398 7C66D8AE +38D4018F 7C66D9AE +38D4018C 7C66D8AE +38D4018F 7C86D8AE +38D4039B 7C66D8AE 2C030001 4182003C -1CD40004 38C6038C +1CD40004 38C6038F 7F46D92E 38600001 -38D40398 7C66D9AE -38D40189 7EC6D9AE -887B0387 2C030001 -41820010 935B0388 -38600001 987B0387 +38D4039B 7C66D9AE +38D4018C 7EC6D9AE +887B038A 2C030001 +41820010 935B038B +38600001 987B038A 38600000 1C63000C 38A30012 1CD40054 7CA53214 1C75000C @@ -1827,17 +1818,17 @@ BA810008 800100B4 3A940001 3AB50001 2C140003 4180FEC4 2C1C0000 41820008 -935B0911 48000080 -807B00DC 7C1A1800 +935B0914 48000080 +807B00DF 7C1A1800 40810024 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 -4E800420 807B00DC +4E800420 807B00DF 7C7A1850 38630001 -889B00E0 7C632051 +889B00E3 7C632051 40800008 3863000E -1C63000C 388300E1 +1C63000C 388300E4 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C @@ -1993,12 +1984,12 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 3C608047 60639D64 80630000 2C030000 40820044 80ADB61C -38600000 9865000F +38600000 98650012 3C608037 60635E00 2C000003 40820028 -886500DA 2C030000 +886500DD 2C030000 4182001C 38600001 -98650908 3D808001 +9865090B 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2017,11 +2008,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF03A3 8B9E0000 +3BDF03A6 8B9E0000 3C608048 80639D60 -809F08F2 7C032000 +809F08F5 7C032000 41810028 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2039,12 +2030,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A3 57DE043E +3BBF03A6 57DE043E 8B9D0000 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C032000 41810088 3C608048 80639D60 -809F08F2 7C632050 +809F08F5 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2069,12 +2060,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A3 57DE043E +3BBF03A6 57DE043E 8B9D0000 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C032000 41810088 3C608048 80639D60 -809F08F2 7C632050 +809F08F5 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2101,13 +2092,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF03A3 +83EDB61C 3BDF03A6 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F08F2 7C032000 +809F08F5 7C032000 41810070 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2142,7 +2133,7 @@ C216BE28 0000000A #Online/Core/Teams/PreventDeadStranding.asm 5484443E 2C040208 4082002C 888DAFA0 2C040003 40820020 -808DB61C 8884000D +808DB61C 88840010 2C040001 41820008 4800000C 38600000 48000004 2C030000 @@ -3910,7 +3901,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE0909 +83CDB61C 93FE090C 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -3925,7 +3916,7 @@ D03D0008 C03C0004 D03D0024 D03D0028 C03C0008 C05C000C 7FA3EB78 389C0048 -88BE001C 3D80803A +88BE001F 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 38800000 C03C0010 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 6881310a..e3d134a6 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -581,11 +581,11 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 3C608048 80639D30 5463443E 2C030208 806DB654 4082003C -80ADB61C 8885000D +80ADB61C 88850010 2C040000 4082002C -8885000C 2C040000 -40820020 80850904 -3884FF85 80E5090D +8885000F 2C040000 +40820020 80850907 +3884FF85 80E50910 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -611,7 +611,7 @@ C216D884 0000001C #Recording/SendGameEnd.asm 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 -806DB61C 8863000C +806DB61C 8863000F 2C030000 41820050 83B80000 38600039 987D0000 9B5D0001 @@ -1137,15 +1137,15 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500DA 2C040000 +888500DD 2C040000 4182002C 3B600001 -888500DA 988508FA -808500DC 908508FB -888500DB 988508FF -80850388 90850900 -48000028 88850908 +888500DD 988508FD +808500DF 908508FE +888500DE 98850902 +8085038B 90850903 +48000028 8885090B 2C040000 4182001C -38800000 98850908 +38800000 9885090B 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1162,21 +1162,11 @@ C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm 40820038 3C608047 60639D64 80630000 2C030000 40820024 -80ADB61C 8865000F +80ADB61C 88650012 2C030000 41820014 3D808001 618C95FC 7D8903A6 4E800421 60000000 00000000 -C216D310 00000009 #Online/Core/HandleLRAS.asm -3C608048 80639D30 -5463443E 2C030208 -40820028 3C608046 -6063B6A0 88630008 -2C030007 40820014 -808DB61C 806408F6 -7C6903A6 4E800421 -8001003C 83E10034 -60000000 00000000 C234DED8 0000000F #Online/Core/HandleRumble.asm 3BA30000 3C608048 80639D30 5463443E @@ -1200,39 +1190,39 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 38600919 +4082037C 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 38800919 +7C7B1B78 3880091C 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 -7C6802A6 907B08F6 +7C6802A6 907B08F9 38600016 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D2 +4E800421 907B00D5 3860010E 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D6 +4E800421 907B00D9 7C7A1B78 3880010E 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B039B 3860009E +933B039E 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B039F 3880009E +907B03A2 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 38600919 +93790005 3860091C 90790009 9359000D 3860010E 90790011 -807B039F 90790015 +807B03A2 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1269,7 +1259,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 41800010 2C03000F 41810010 48000010 38600001 48000008 -3860000F 987B001C +3860000F 987B001F 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 @@ -1296,7 +1286,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 618CF1E4 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 -807C0003 907E0001 +807C000B 907E0001 3BE00000 3BBE0005 7FE3FB78 3D808003 618C1724 7D8903A6 @@ -1333,7 +1323,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 7FC3F378 3D808003 618C241C 7D8903A6 4E800421 2C030000 -40820060 887D000D +40820060 887D0010 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 @@ -1350,7 +1340,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 3C80804C 60841FAC 1C7E0044 7FE32214 886DAFC8 2C030000 -418200AC 887D000D +418200AC 887D0010 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 @@ -1371,7 +1361,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 4E800421 7FC3F378 3D80801A 618C10FC 7D8903A6 4E800421 -48000080 887D000D +48000080 887D0010 2C030000 40820020 7FC3F378 3D808003 618C3BD8 7D8903A6 @@ -1404,10 +1394,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF03A3 +83EDB61C 3BDF03A6 8B9E0000 3F008048 83189D60 3B18FFFF -82FF08F2 7C18B800 +82FF08F5 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1436,14 +1426,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F08F2 +4081001C 931F08F5 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F08FA +9B9E0000 8B7F08FD 2C1B0001 40820134 -807F08FB 7C181800 +807F08FE 7C181800 41800048 38600000 -987F00DA 987F08FA +987F00DD 987F08FD 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1485,14 +1475,14 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 8064090D -38630001 9064090D +808DB61C 80640910 +38630001 90640910 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 5463443E 2C030208 40820038 83ADB61C -887D000D 2C030001 +887D0010 2C030001 40820028 889D0000 887E0001 7C630774 7C032000 41820014 @@ -1510,14 +1500,14 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 40820044 3C608047 60639D64 80630000 2C030000 40820030 -808DB61C 886400DA +808DB61C 886400DD 2C030000 41820020 -886400DB 2C030000 +886400DE 2C030000 40820014 3D808037 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000061 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1530,21 +1520,21 @@ C21A4DE4 00000060 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820288 3C608047 +40820294 3C608047 60639D64 80630000 -2C030000 40820274 +2C030000 40820280 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 -887E000E 2C030000 -408200D0 887E000D +887E0011 2C030000 +408200D0 887E0010 2C030000 418200C4 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 7EE802A6 38600002 -809E0909 3D80803A +809E090C 3D80803A 618C6754 7D8903A6 4E800421 7C781B78 38800001 98980049 @@ -1563,14 +1553,14 @@ C0570010 3D80803A 38800000 38B70014 3D80803A 618C74F0 7D8903A6 4E800421 -38600001 987E000E -887E08FA 2C030000 -418200B0 887E08FF +38600001 987E0011 +887E08FD 2C030000 +418200B0 887E0902 2C030000 41820094 -807E0900 7C1F1800 +807E0903 7C1F1800 41820024 41800094 -807E039B 809E0900 -80BE039F 3D808000 +807E039E 809E0903 +80BE03A2 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1580,40 +1570,41 @@ C0570010 3D80803A 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E0388 +83FF9D60 807E038B 907E0003 38600000 -987E0387 987E0398 -987E0399 987E039A -987E00DB 987E08FF +987E038A 987E039B +987E039C 987E039D +987E00DE 987E0902 3D808001 618C95FC 7D8903A6 4E800421 -807E0911 7C1F1800 +807E0914 7C1F1800 4181000C 7FE3FB78 -48000004 809E0904 +48000004 809E0907 7C032000 40810008 -907E0904 887E0387 +907E0907 887E038A 2C030000 4182002C -807E0904 7C1F1800 -40810020 807E039B -7FE4FB78 80BE039F +807E0907 7C1F1800 +40810020 807E039E +7FE4FB78 80BE03A2 3D808000 618C5608 7D8903A6 4E800421 -887E000C 2C030001 -4182004C 3C608046 +887E000F 2C030001 +41820058 3C608046 6063B6A0 88630008 2C030000 40820010 -38600000 987E000B -4800002C 887E000B -38630001 987E000B -2C030007 40810018 -38600001 987E000C -807E08F6 7C6903A6 -4E800421 7F23CB78 -3D808034 618C738C -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -60000000 00000000 +38600000 907E000B +48000038 807E000B +2C030000 40820008 +93FE000B 807E000B +7C63F850 2C030007 +40810018 38600001 +987E000F 807E08F9 +7C6903A6 4E800421 +7F23CB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 00000000 C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -1622,14 +1613,14 @@ C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 4082070C 3C608047 60639D64 80630000 2C030000 408206F8 -836DB61C 833B00D2 -831B00D6 82FB039B +836DB61C 833B00D5 +831B00D9 82FB039E 835B0003 889B0002 1C84000C 386400DC -7FA11A14 887B00DA +7FA11A14 887B00DD 2C030000 41820010 -887B00DB 2C030000 -41820638 887B001C +887B00DE 2C030000 +41820638 887B001F 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1647,16 +1638,16 @@ B0830000 4E800020 387D0004 4BFFFFB9 887D000A 7C630774 2C03FFFD 40820020 -7FA3EB78 389B0010 +7FA3EB78 389B0013 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 387B0010 +4E800421 387B0013 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B0904 -90790005 887B001C +93590001 807B0907 +90790005 887B001F 98790009 3879000A 7FA4EB78 38A0000C 3D808000 618C31F4 @@ -1668,60 +1659,60 @@ B0830000 4E800020 3880010E 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -38600000 987B000F +38600000 987B0012 88780000 2C030002 41820024 2C030003 41820010 2C030004 41820034 48000038 -38600001 987B000D +38600001 987B0010 4800002C BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 38600001 -987B000F 889B001D -1C84000C 3884001E +987B0012 889B0020 +1C84000C 38840021 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00E0 1C63000C -386300E1 889B0000 +887B00E3 1C63000C +386300E4 889B0000 1C84000C 388400DC 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00E0 +4E800421 887B00E3 38630001 2C03000E 41800008 38600000 -987B00E0 887B001D -1C63000C 3863001E +987B00E3 887B0020 +1C63000C 38630021 7C7B1A14 3899000A 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 889B001C -887B001D 38630001 +4E800421 889B001F +887B0020 38630001 7C032000 41800008 -38600000 987B001D -8B9B00DA 887B0387 +38600000 987B0020 +8B9B00DD 887B038A 2C030000 40820018 -38600000 987B0398 -987B0399 987B039A +38600000 987B039B +987B039C 987B039D 48000264 3A800000 -38D40398 7C66D8AE +38D4039B 7C66D8AE 2C030001 4082016C 1CD40004 38C60002 7C66C02E 1CD40004 -38C6038C 7C86D82E +38C6038F 7C86D82E 7EC41851 4180014C -80DB0904 7C043000 +80DB0907 7C043000 41810010 7C032000 418100AC 48000134 1C76000C 38630012 1CD40054 7C633214 -38D40189 7C86D8AE -1C84000C 3884018F +38D4018C 7C86D8AE +1C84000C 38840192 1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1739,18 +1730,18 @@ B0830000 4E800020 2C04002A 4081FFE0 7C032000 40820054 4BFFFFD4 1CD40004 -38C6038C 7C66D82E +38C6038F 7C66D82E 38630001 7C66D92E -38D40189 7C66D8AE +38D4018C 7C66D8AE 38630001 2C03000E 41800008 3863FFF2 -7C66D9AE 38D40189 -7C66D8AE 38D4018C +7C66D9AE 38D4018C +7C66D8AE 38D4018F 7C86D8AE 7C041800 4082FED0 48000044 3B800001 4800003C -38600001 987B00DA -987B00DB 935B00DC +38600001 987B00DD +987B00DE 935B00DF 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 @@ -1758,46 +1749,46 @@ BA810008 800100B4 7D8903A6 4E800420 3A940001 2C140003 4180FE80 39600000 -3A800000 82BB0904 -38D40398 7C86D8AE +3A800000 82BB0907 +38D4039B 7C86D8AE 2C040001 40820028 -1CD40004 38C6038C +1CD40004 38C6038F 7C86D82E 2C0B0000 4182000C 7C04A800 40800008 7C952378 39600001 3A940001 2C140003 4180FFC4 -92BB0388 92BB0911 +92BB038B 92BB0914 80D8000E 7C153000 -40810008 90DB0911 +40810008 90DB0914 2C1C0000 4082FF54 -3A800000 38D40398 +3A800000 38D4039B 7C86D8AE 2C040001 -40820028 38D40189 -7C66D8AE 38D4018C +40820028 38D4018C +7C66D8AE 38D4018F 7C86D8AE 7C041800 40820010 38600000 -38D40398 7C66D9AE +38D4039B 7C66D9AE 3A940001 2C140003 4180FFC4 3A800000 -38D40398 7C86D8AE +38D4039B 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B0387 3A800000 +987B038A 3A800000 3AA00000 3B800001 887B0000 7C151800 40820008 3AB50001 1CD40004 38C60002 7C66C02E 7C7A1850 2C030000 408000D8 -887B001C 38800054 +887B001F 38800054 7C632050 7C1A1800 -418000C0 887B000C +418000C0 887B000F 2C030001 418200B4 -3B800000 38D4018C +3B800000 38D4018F 7EC6D8AE 1C76000C -3863018F 1CB400A8 +38630192 1CB400A8 7C632A14 1CD40054 38C60012 7C7B1A14 7C983214 38A0000C @@ -1805,18 +1796,18 @@ BA810008 800100B4 7D8903A6 4E800421 38760001 2C03000E 41800008 3863FFF2 -38D4018C 7C66D9AE -38D40189 7C66D8AE -38D4018C 7C86D8AE -38D40398 7C66D8AE +38D4018F 7C66D9AE +38D4018C 7C66D8AE +38D4018F 7C86D8AE +38D4039B 7C66D8AE 2C030001 4182003C -1CD40004 38C6038C +1CD40004 38C6038F 7F46D92E 38600001 -38D40398 7C66D9AE -38D40189 7EC6D9AE -887B0387 2C030001 -41820010 935B0388 -38600001 987B0387 +38D4039B 7C66D9AE +38D4018C 7EC6D9AE +887B038A 2C030001 +41820010 935B038B +38600001 987B038A 38600000 1C63000C 38A30012 1CD40054 7CA53214 1C75000C @@ -1827,17 +1818,17 @@ BA810008 800100B4 3A940001 3AB50001 2C140003 4180FEC4 2C1C0000 41820008 -935B0911 48000080 -807B00DC 7C1A1800 +935B0914 48000080 +807B00DF 7C1A1800 40810024 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 -4E800420 807B00DC +4E800420 807B00DF 7C7A1850 38630001 -889B00E0 7C632051 +889B00E3 7C632051 40800008 3863000E -1C63000C 388300E1 +1C63000C 388300E4 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C @@ -1993,12 +1984,12 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 3C608047 60639D64 80630000 2C030000 40820044 80ADB61C -38600000 9865000F +38600000 98650012 3C608037 60635E00 2C000003 40820028 -886500DA 2C030000 +886500DD 2C030000 4182001C 38600001 -98650908 3D808001 +9865090B 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2017,11 +2008,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF03A3 8B9E0000 +3BDF03A6 8B9E0000 3C608048 80639D60 -809F08F2 7C032000 +809F08F5 7C032000 41810028 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2039,12 +2030,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A3 57DE043E +3BBF03A6 57DE043E 8B9D0000 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C032000 41810088 3C608048 80639D60 -809F08F2 7C632050 +809F08F5 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2069,12 +2060,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A3 57DE043E +3BBF03A6 57DE043E 8B9D0000 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C032000 41810088 3C608048 80639D60 -809F08F2 7C632050 +809F08F5 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2101,13 +2092,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF03A3 +83EDB61C 3BDF03A6 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F08F2 7C032000 +809F08F5 7C032000 41810070 3C608048 -80639D60 809F08F2 +80639D60 809F08F5 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2142,7 +2133,7 @@ C216BE28 0000000A #Online/Core/Teams/PreventDeadStranding.asm 5484443E 2C040208 4082002C 888DAFA0 2C040003 40820020 -808DB61C 8884000D +808DB61C 88840010 2C040001 41820008 4800000C 38600000 48000004 2C030000 @@ -3910,7 +3901,7 @@ BE810008 3C60804D 39400008 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 -83CDB61C 93FE0909 +83CDB61C 93FE090C 4BFFFE69 7F8802A6 38600000 3D808000 618C5610 7D8903A6 @@ -3925,7 +3916,7 @@ D03D0008 C03C0004 D03D0024 D03D0028 C03C0008 C05C000C 7FA3EB78 389C0048 -88BE001C 3D80803A +88BE001F 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 38800000 C03C0010 From 733e3b0fd7c0d7ef1c9cbbff900ced0a6fb5c8d8 Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Thu, 3 Mar 2022 18:26:55 -0500 Subject: [PATCH 077/217] remove m-ex's slippi compatibility patches --- Binary/m-ex.bin | Bin 21552 -> 21000 bytes Online/Static/CSSUpdateCSP.asm | 28 ++++++------- Output/Netplay/GALE01r2.ini | 69 --------------------------------- Output/Netplay/GALJ01r2.ini | 69 --------------------------------- 4 files changed, 14 insertions(+), 152 deletions(-) diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin index 059c31f3983a216cc7e59ce5f9050742d30ef4fa..07876107b6a3dc7d3786fb67f07566a49df313eb 100644 GIT binary patch delta 14 Vcmdn6g0W)>jiL1|I+b delta 485 zcmZ8eKS%;m82>#zM9|=fh6{zfD2kAZS|k%KC>$bcaSOCRQ*&^`)jhqS3mt@Wu+oqc zacBry8cHf@Z>TLIsP>>GXt+Mj9DMNc@qT~4_v3p;nVnbJxjr_R1K?7fwn~;k$jKIJ zNjQVAK(LOue!>=_fY;ao{C3EZ6r4vj;w-S>3kLjsaLjP)-FyxA4k30$v+NINfbn$EdjSabRpb(aM-9o z9LyBO9`hmK(k>~VjjsZY%yGIj4&}~MBb+UD;Dr{x(1Cji@9x~`bcsjP_r>w_M{!a= z!DE2aV#|=!>yaMg9!z!2e}We5<{J*Z&I_U5zpT diff --git a/Online/Static/CSSUpdateCSP.asm b/Online/Static/CSSUpdateCSP.asm index 5afa141e..cc4ea455 100644 --- a/Online/Static/CSSUpdateCSP.asm +++ b/Online/Static/CSSUpdateCSP.asm @@ -26,25 +26,25 @@ mr REG_CostumeID,r5 mr REG_isNull,r6 # get CSS icon data -branchl r12,FN_GetCSSIconData -mr r5,r3 + branchl r12,FN_GetCSSIconData + mr r5,r3 # get port's icon ID -mulli r3,REG_PlayerID,36 # port index -load r4,0x803f0a48 -add r4,r3,r4 -lbz r3, 0x03C2(r4) # get selected icon + mulli r3,REG_PlayerID,36 # port index + load r4,0x803f0a48 + add r4,r3,r4 + lbz r3, 0x03C2(r4) # get selected icon # get icon ID's UI ID -mulli r3, r3, 28 -add r4, r3, r5 -lbz REG_ExternalID, 0x00DC (r4) # UI char id + mulli r3, r3, 28 + add r4, r3, r5 + lbz REG_ExternalID, 0x00DC (r4) # UI char id # Calculate Costume ID from costume Index -mulli r5, REG_CostumeID, 30 -add r4, REG_ExternalID, r5 + mulli r5, REG_CostumeID, 30 + add r4, REG_ExternalID, r5 # -mr r3,REG_PlayerID -mr r5,REG_isNull -branchl r12, 0x8025D5AC # CSS_UpdateCharCostume? + mr r3,REG_PlayerID + mr r5,REG_isNull + branchl r12, 0x8025D5AC # CSS_UpdateCharCostume? EXIT: restore diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index f69d86a6..50f48df5 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -7216,75 +7216,6 @@ C21A40C8 0000002B 80010104 38210100 7C0803A6 7F23CB78 60000000 00000000 -C2005694 0000000B -7C0802A6 90010004 -9421FF00 BE810008 -3BE00000 3BC30060 -83A2014C 4800001C -887E0000 2C030021 -40820008 9BBE0000 -3BFF0001 3BDE0024 -2C1F0006 4180FFE4 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C20056BC 00000003 -3D808025 618CD5AC -7D8903A6 4E800420 -4E800020 00000000 -C2005690 00000018 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -48000075 7FA802A6 -7FC3F378 3D808022 -618C519C 7D8903A6 -4E800421 7C7E1B78 -80620178 80630028 -80630010 1C9E0004 -7C83202E 7FE3FB78 -C03D0000 C05D0004 -3D80803A 618C6B98 -7D8903A6 4E800421 -7C641B78 7FE3FB78 -C03D0008 C05D000C -3D80803A 618C7548 -7D8903A6 4E800421 -48000018 4E800021 -42A00000 C1200000 -3F19999A 3F19999A -38600001 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C20056B8 00000002 -80620000 4E800020 -60000000 00000000 -C2005698 00000002 -80620150 4E800020 -60000000 00000000 -C200569C 00000002 -8062014C 4E800020 -60000000 00000000 -C200561C 00000012 -7C0802A6 90010004 -9421FF00 BE810008 -3CA08048 8BC59D30 -8BE59D33 83A200D4 -38800000 1CA40018 -7CBD2A14 88C50001 -7C06F000 4082000C -80650010 48000010 -38840001 2C04002C -4081FFDC 38800000 -1CA40018 7CA32A14 -88C50000 7C06F800 -4082000C 8865000C -48000010 38840001 -2C0600FF 4082FFDC -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 C20056A8 00000005 2C030037 41820018 81820060 818C0004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index e3d134a6..6a1036a0 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -7216,75 +7216,6 @@ C21A40C8 0000002B 80010104 38210100 7C0803A6 7F23CB78 60000000 00000000 -C2005694 0000000B -7C0802A6 90010004 -9421FF00 BE810008 -3BE00000 3BC30060 -83A2014C 4800001C -887E0000 2C030021 -40820008 9BBE0000 -3BFF0001 3BDE0024 -2C1F0006 4180FFE4 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C20056BC 00000003 -3D808025 618CD5AC -7D8903A6 4E800420 -4E800020 00000000 -C2005690 00000018 -7C0802A6 90010004 -9421FF00 BE810008 -7C7F1B78 7C9E2378 -48000075 7FA802A6 -7FC3F378 3D808022 -618C519C 7D8903A6 -4E800421 7C7E1B78 -80620178 80630028 -80630010 1C9E0004 -7C83202E 7FE3FB78 -C03D0000 C05D0004 -3D80803A 618C6B98 -7D8903A6 4E800421 -7C641B78 7FE3FB78 -C03D0008 C05D000C -3D80803A 618C7548 -7D8903A6 4E800421 -48000018 4E800021 -42A00000 C1200000 -3F19999A 3F19999A -38600001 BA810008 -80010104 38210100 -7C0803A6 4E800020 -60000000 00000000 -C20056B8 00000002 -80620000 4E800020 -60000000 00000000 -C2005698 00000002 -80620150 4E800020 -60000000 00000000 -C200569C 00000002 -8062014C 4E800020 -60000000 00000000 -C200561C 00000012 -7C0802A6 90010004 -9421FF00 BE810008 -3CA08048 8BC59D30 -8BE59D33 83A200D4 -38800000 1CA40018 -7CBD2A14 88C50001 -7C06F000 4082000C -80650010 48000010 -38840001 2C04002C -4081FFDC 38800000 -1CA40018 7CA32A14 -88C50000 7C06F800 -4082000C 8865000C -48000010 38840001 -2C0600FF 4082FFDC -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 C20056A8 00000005 2C030037 41820018 81820060 818C0004 From 62b83d463e8a5f2d4f6850658a61ff41181f24ae Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Thu, 3 Mar 2022 18:45:30 -0500 Subject: [PATCH 078/217] remove slippi's compatibility hooks now using m-ex's hooks --- Output/Netplay/GALE01r2.ini | 17 ----------------- Output/Netplay/GALJ01r2.ini | 17 ----------------- netplay.json | 6 ------ 3 files changed, 40 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 50f48df5..953ed514 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -8321,23 +8321,6 @@ BA810008 80010104 3D808039 618C4B04 7D8903A6 4E800420 60000000 00000000 -C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 -C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm -2C030001 41820018 -3C60803B 6063B3C0 -1C840010 7C6320AE -48000018 3C60803B -6063B6B0 1C840003 -7C6320AE 48000004 -4E800020 00000000 -C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm -2C030037 41820018 -3D808043 618C37C4 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm 7C7D1B78 3BC00000 60000000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 6a1036a0..ab45569a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -8321,23 +8321,6 @@ BA810008 80010104 3D808039 618C4B04 7D8903A6 4E800420 60000000 00000000 -C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 -C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm -2C030001 41820018 -3C60803B 6063B3C0 -1C840010 7C6320AE -48000018 3C60803B -6063B6B0 1C840003 -7C6320AE 48000004 -4E800020 00000000 -C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm -2C030037 41820018 -3D808043 618C37C4 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm 7C7D1B78 3BC00000 60000000 00000000 diff --git a/netplay.json b/netplay.json index 9e447d10..40a980f0 100644 --- a/netplay.json +++ b/netplay.json @@ -345,12 +345,6 @@ "sourceFile": "Binary/m-ex.bin", "annotation": "m-ex codeset" }, - { - "type": "injectFolder", - "sourceFolder": "Common/CompatibilityHooks", - "isRecursive": true, - "annotation": "Functions that can be externally modified" - }, { "type": "injectFolder", "sourceFolder": "Common/NanaDeterminism", From 12dd5d50befde433b78fd7334988827998c99f6a Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 4 Mar 2022 17:17:45 -0500 Subject: [PATCH 079/217] pass additional data to report exi handler --- Online/Core/InitOnlinePlay.asm | 34 +- Online/Online.s | 41 +- Online/Slippi Online Scene/main.asm | 27 +- Output/Netplay/GALE01r2.ini | 596 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 596 ++++++++++++++-------------- 5 files changed, 665 insertions(+), 629 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 5ae287e3..762a30f0 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -128,7 +128,7 @@ bne SKIP_TIEBREAK_OVERWRITE # For ranked, in the case of a tiebreak, overwrite stock count and timer loadwz r5, 0x803dad40 # Load minor scene data array ptr lwz r5, 0x88(r5) # Load game prep minor scene data -lbz r3, 0x5(r5) # Load is_tiebreak +lbz r3, GPDO_TIEBREAK_GAME_NUM(r5) # Load is_tiebreak cmpwi r3, 0 beq SKIP_TIEBREAK_OVERWRITE # If not a tiebreak, do nothing @@ -143,6 +143,10 @@ stb r3, 0x62 + 0x24 * 3(REG_GAME_INFO_START) SKIP_TIEBREAK_OVERWRITE: +# Test code to force the timer to 15 seconds +# li r3, 15 +# stw r3, 0x10(REG_GAME_INFO_START) + # For teams, overwrite the colors in the game info block with the proper color for the given team ID lbz r3, OFST_R13_ONLINE_MODE(r13) cmpwi r3, ONLINE_MODE_TEAMS @@ -257,7 +261,7 @@ blr ################################################################################ # Routine: HandleGameCompleted # ------------------------------------------------------------------------------ -# Description: Function called when game if confirmed over (no more rollbacks) +# Description: Function called when game is confirmed over (no more rollbacks) ################################################################################ FN_HandleGameCompleted: blrl @@ -266,19 +270,18 @@ blrl .set REG_RGB_ADDR, 30 .set REG_RGPB_ADDR, 29 .set REG_ODB_ADDRESS, 28 +.set REG_GPD_ADDR, 27 backup lwz REG_ODB_ADDRESS, OFST_R13_ODB_ADDR(r13) # data buffer address +loadwz r5, 0x803dad40 # Load minor scene data array ptr +lwz REG_GPD_ADDR, 0x88(r5) # Load game prep minor scene data + ################################################################################ # Report game results for unranked ################################################################################ -# Ensure that this is an unranked game -lbz r3, OFST_R13_ONLINE_MODE(r13) -cmpwi r3, ONLINE_MODE_UNRANKED -bne REPORT_GAME_EXIT - # Prepare buffer for EXI transfer li r3, RGB_SIZE branchl r12, HSD_MemAlloc @@ -288,20 +291,29 @@ mr REG_RGB_ADDR, r3 li r3, CONST_SlippiCmdReportMatch stb r3, RGB_COMMAND(REG_RGB_ADDR) +lbz r3, OFST_R13_ONLINE_MODE(r13) +stw r3, RGB_ONLINE_MODE(REG_RGB_ADDR) + lwz r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) stw r3, RGB_FRAME_LENGTH(REG_RGB_ADDR) # Store frame length +lbz r3, GPDO_CUR_GAME(REG_GPD_ADDR) +stw r3, RGB_GAME_INDEX(REG_RGB_ADDR) + +lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD_ADDR) +stw r3, RGB_TIEBREAKER_INDEX(REG_RGB_ADDR) + PLAYER_LOOP_INIT: li REG_IDX, 0 addi REG_RGPB_ADDR, REG_RGB_ADDR, RGB_P1_RGPB PLAYER_LOOP: mr r3, REG_IDX -branchl r12, 0x80031724 +branchl r12, PlayerBlock_LoadStaticBlock # Store isActive -li r4, 1 -stb r4, RGPB_IS_ACTIVE(REG_RGPB_ADDR) +lwz r4, 0x8(r3) +stb r4, RGPB_SLOT_TYPE(REG_RGPB_ADDR) # Store stocks remaining lbz r4, 0x8E(r3) @@ -316,7 +328,7 @@ addi REG_IDX, REG_IDX, 1 addi REG_RGPB_ADDR, REG_RGPB_ADDR, RGPB_SIZE PLAYER_LOOP_CHECK: -cmpwi REG_IDX, 2 +cmpwi REG_IDX, 4 blt PLAYER_LOOP # Execute match reporting diff --git a/Online/Online.s b/Online/Online.s index 1c682592..ec3f8402 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -401,16 +401,47 @@ ################################################################################ # Define report game buffer offsets and length ################################################################################ -.set RGPB_IS_ACTIVE, 0 # bool, is player active -.set RGPB_STOCKS_REMAINING, RGPB_IS_ACTIVE + 1 # byte +.set RGPB_SLOT_TYPE, 0 # u8, 0 = Human, 1 = CPU, 2 = Demo, 3 = Empty +.set RGPB_STOCKS_REMAINING, RGPB_SLOT_TYPE + 1 # byte .set RGPB_DAMAGE_DONE, RGPB_STOCKS_REMAINING + 1 # float .set RGPB_SIZE, RGPB_DAMAGE_DONE + 4 .set RGB_COMMAND, 0 # byte -.set RGB_FRAME_LENGTH, RGB_COMMAND + 1 # s32, number of frames in game -.set RGB_P1_RGPB, RGB_FRAME_LENGTH + 4 # RGPB_SIZE +.set RGB_ONLINE_MODE, RGB_COMMAND + 1 # u8 +.set RGB_FRAME_LENGTH, RGB_ONLINE_MODE + 1 # u32, number of frames in game +.set RGB_GAME_INDEX, RGB_FRAME_LENGTH + 4 # u32, 1-indexed +.set RGB_TIEBREAKER_INDEX, RGB_GAME_INDEX + 4 # u32, 1-indexed, 0 = not tiebreak +.set RGB_P1_RGPB, RGB_TIEBREAKER_INDEX + 4 # RGPB_SIZE .set RGB_P2_RGPB, RGB_P1_RGPB + RGPB_SIZE # RGPB_SIZE -.set RGB_SIZE, RGB_P2_RGPB + RGPB_SIZE +.set RGB_P3_RGPB, RGB_P2_RGPB + RGPB_SIZE # RGPB_SIZE +.set RGB_P4_RGPB, RGB_P3_RGPB + RGPB_SIZE # RGPB_SIZE +.set RGB_SIZE, RGB_P4_RGPB + RGPB_SIZE + +################################################################################ +# Define game prep data and include macro to create static data +################################################################################ +.set GPDO_MAX_GAMES, 0 # u8 +.set GPDO_CUR_GAME, GPDO_MAX_GAMES + 1 # u8 +.set GPDO_SCORE_BY_PLAYER, GPDO_CUR_GAME + 1 # u8[2] +.set GPDO_PREV_WINNER, GPDO_SCORE_BY_PLAYER + 2 * 1 # u8 +.set GPDO_TIEBREAK_GAME_NUM, GPDO_PREV_WINNER + 1 # u8 +.set GAME_PREP_MAX_RESULT_COUNT, 9 +.set GPDO_GAME_RESULTS, GPDO_TIEBREAK_GAME_NUM + 1 # u8[GAME_PREP_MAX_RESULT_COUNT] +.set GPDO_LAST_STAGE_WIN_BY_PLAYER, GPDO_GAME_RESULTS + GAME_PREP_MAX_RESULT_COUNT # u16[2] +.set GPDO_SIZE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 + +# Warning: When making changes, ensure the offsets above are synced with below + +.macro createGamePrepStaticBlock +.byte 0x0 # GPDO_MAX_GAMES, max games +.byte 0x0 # GPDO_CUR_GAME, current game +.fill 2, 1, 0 # GPDO_SCORE_BY_PLAYER +.byte 0x0 # GPDO_PREV_WINNER, previous winner +.byte 0x0 # GPDO_TIEBREAK_GAME_NUM +.fill GAME_PREP_MAX_RESULT_COUNT, 1, 0 # GPDO_GAME_RESULTS, Take space for 9 bytes +.fill 2, 2, 0 # GPDO_LAST_STAGE_WIN_BY_PLAYER +.align 2 +.endm ################################################################################ # slpCSS Symbol Structure diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index aca9fc06..f641003e 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -335,23 +335,7 @@ blrl GamePrepData_BLRL: blrl GamePrepData: -.set GPDO_MAX_GAMES, 0 -.byte 0x0 # max games -.set GPDO_CUR_GAME, GPDO_MAX_GAMES + 1 -.byte 0x0 # current game -.set GPDO_SCORE_BY_PLAYER, GPDO_CUR_GAME + 1 -.fill 2, 1, 0 -.set GPDO_PREV_WINNER, GPDO_SCORE_BY_PLAYER + 2 * 1 -.byte 0x0 # previous winner -.set GPDO_IS_TIEBREAK, GPDO_PREV_WINNER + 1 -.byte 0x0 # Referenced directly in InitOnlinePlay.asm, if moved, must change reference -.set GPDO_GAME_RESULTS, GPDO_IS_TIEBREAK + 1 -.set MAX_RESULT_COUNT, 9 -.fill MAX_RESULT_COUNT, 1, 0 # Take space for 9 bytes -.set GPDO_LAST_STAGE_WIN_BY_PLAYER, GPDO_GAME_RESULTS + MAX_RESULT_COUNT -.fill 2, 2, 0 -.set GPDO_SIZE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 -.align 2 +createGamePrepStaticBlock #region CSSScenePrep CSSScenePrep: @@ -594,8 +578,9 @@ bge VSSceneDecide_SkipTieHandler # If winner is not -1, it is not a tie bl GamePrepData_BLRL mflr r6 -li r3, 1 -stb r3, GPDO_IS_TIEBREAK(r6) +lbz r3, GPDO_TIEBREAK_GAME_NUM(r6) +addi r3, r3, 1 +stb r3, GPDO_TIEBREAK_GAME_NUM(r6) # Go to the game prep scene, with is tiebreak set to true, it will start a new game b VSSceneDecide_MoveToGamePrep @@ -636,7 +621,7 @@ addi r3, r3, 1 stb r3, GPDO_CUR_GAME(REG_GPD) li r3, 0 -stb r3, GPDO_IS_TIEBREAK(REG_GPD) +stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) VSSceneDecide_MoveToGamePrep: # Go back to game prep, there are more games @@ -1349,7 +1334,7 @@ backup lwz REG_GPD, 0x10(r3) # Grabs load data # Check if there was a tie last game and a tiebreak is needed -lbz r3, GPDO_IS_TIEBREAK(REG_GPD) +lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) cmpwi r3, 0 beq GamePrepSceneDecide_DisplaySplash diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 953ed514..d0205f5f 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1183,14 +1183,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 00000078 #Online/Core/InitOnlinePlay.asm +C216E748 0000007C #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 3860091C +40820398 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1272,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -480000EC 4E800021 +48000108 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1280,30 +1280,34 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 4E800020 4E800021 7C0802A6 90010004 9421FF50 BE810008 -838DB61C 886DAFA0 -2C030001 4082008C -38600011 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BD 987E0000 -807C000B 907E0001 -3BE00000 3BBE0005 -7FE3FB78 3D808003 -618C1724 7D8903A6 -4E800421 38800001 -989D0000 8883008E -989D0001 80830D28 -909D0002 3BFF0001 -3BBD0006 2C1F0002 -4180FFC8 7FC3F378 -38800011 38A00001 -3D808000 618C55F0 +838DB61C 3CA0803D +60A5AD40 80A50000 +83650088 38600026 +3D808037 618CF1E4 7D8903A6 4E800421 +7C7E1B78 386000BD +987E0000 886DAFA0 +907E0001 807C000B +907E0002 887B0001 +907E0006 887B0005 +907E000A 3BE00000 +3BBE000E 7FE3FB78 +3D808003 618C1724 +7D8903A6 4E800421 +80830008 989D0000 +8883008E 989D0001 +80830D28 909D0002 +3BFF0001 3BBD0006 +2C1F0004 4180FFC8 +7FC3F378 38800026 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +60000000 00000000 C216E904 0000004C #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 @@ -4712,7 +4716,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E90 80830000 +48000E94 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4777,10 +4781,10 @@ BE810008 38600012 00000000 00000000 05000000 00000000 00000000 04030000 -48000595 480008D1 +48000599 480008D5 20000000 80490880 804D68D0 05030000 -48000BE1 48000C11 +48000BE5 48000C15 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4828,7 +4832,7 @@ BE810008 38600012 4182001C 2C030000 40820000 886DAFCA 2C030000 41820020 -48000004 4800076D +48000004 48000771 3C808047 60849D30 38600005 98640005 48000018 3C808047 @@ -4856,7 +4860,7 @@ BE810008 3D80801B 7D8903A6 4E800421 7C7E1B78 887E0001 889E0002 7C032000 -4082001C 4800068D +4082001C 48000691 3C808047 60849D30 38600005 98640005 4800001C 38600000 @@ -4873,315 +4877,315 @@ BE810008 3D80801B 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 2C030000 -40820104 480006F1 +40820108 480006F5 7C7C1B78 2C1C0000 -40800018 4BFFFD25 -7CC802A6 38600001 -98660005 48000068 -4BFFFD11 7F6802A6 -9B9B0004 889B0001 -38840005 7F9B21AE -387C0002 7C9B18AE -38A40001 7CBB19AE -1C9C0002 3884000F -A07F026A 7C7B232E -889B0000 38840001 -38600002 7C841B96 -7C052000 4080002C -887B0001 38630001 -987B0001 38600000 -987B0005 3C808047 -60849D30 38600006 -98640005 48000078 -38600001 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BA 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -3D808037 618CF1B0 +4080001C 4BFFFD25 +7CC802A6 88660005 +38630001 98660005 +48000068 4BFFFD0D +7F6802A6 9B9B0004 +889B0001 38840005 +7F9B21AE 387C0002 +7C9B18AE 38A40001 +7CBB19AE 1C9C0002 +3884000F A07F026A +7C7B232E 889B0000 +38840001 38600002 +7C841B96 7C052000 +4080002C 887B0001 +38630001 987B0001 +38600000 987B0005 +3C808047 60849D30 +38600006 98640005 +48000078 38600001 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7E1B78 386000BA +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 +7FC3F378 3D808037 +618CF1B0 7D8903A6 +4E800421 3C808047 +60849D30 38600001 +98640005 48000014 3C808047 60849D30 38600001 98640005 -48000014 3C808047 -60849D30 38600001 -98640005 887F0003 -480006E5 986DAFC9 +887F0003 480006E5 +986DAFC9 886DAFA0 +2C030003 40820020 +887F0003 38800001 +2C030000 40820008 +38800000 988DAFC9 +4800003C 3A800000 +3AA00000 7E83A378 +480006A9 2C030000 +41820008 3AB50001 +3A940001 2C140004 +4180FFE4 2C150001 +4182000C 38600000 +986DAFC9 3E808047 +62949DA4 887F0003 +48000671 2C030000 +41820018 38600001 +98740000 38600000 +9874005D 48000014 +38600000 98740000 +38600001 9874005D 886DAFA0 2C030003 -40820020 887F0003 -38800001 2C030000 -40820008 38800000 -988DAFC9 4800003C -3A800000 3AA00000 -7E83A378 480006A9 -2C030000 41820008 -3AB50001 3A940001 -2C140004 4180FFE4 -2C150001 4182000C -38600000 986DAFC9 -3E808047 62949DA4 -887F0003 48000671 -2C030000 41820018 -38600001 98740000 -38600000 9874005D -48000014 38600000 -98740000 38600001 -9874005D 886DAFA0 -2C030003 4182000C -2C030000 4082000C -38600000 98740004 -38600000 986DAFCA -38600004 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BC 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -38800004 38A00000 -3D808000 618C55F0 +4182000C 2C030000 +4082000C 38600000 +98740004 38600000 +986DAFCA 38600004 +3D808037 618CF1E4 7D8903A6 4E800421 -3C80804D 807E0000 -90645F90 7FC3F378 -3D808037 618CF1B0 +7C7E1B78 386000BC +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7FE3FB78 3D808037 +7FC3F378 38800004 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 3C80804D +807E0000 90645F90 +7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 01780101 -01FF2121 FF2121EE -0000EE00 7C0802A6 -90010004 9421FF50 -BE810008 38600000 -3D808000 618C5610 +4E800421 7FE3FB78 +3D808037 618CF1B0 7D8903A6 4E800421 -7C7E1B78 83ED8840 -3BFF0598 886DAFA0 -2C030003 40820048 -3BA00000 1CBD0024 -38650069 7C7F18AE -38630001 38850060 -7C9F20AE 3D808000 -618C56B0 7D8903A6 -4E800421 1C9D0024 -38840063 7C7F21AE -3BBD0001 2C1D0004 -4180FFC4 3C608049 -60630888 4BFFFF65 -7C8802A6 38A00010 -3D808000 618C31F4 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +01780101 01FF2121 +FF2121EE 0000EE00 +7C0802A6 90010004 +9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +83ED8840 3BFF0598 +886DAFA0 2C030003 +40820048 3BA00000 +1CBD0024 38650069 +7C7F18AE 38630001 +38850060 7C9F20AE +3D808000 618C56B0 7D8903A6 4E800421 -3C808049 60840888 -887F0060 98640005 -887F0063 9864000B -887F0084 98640008 -887F0087 9864000E -38600000 9864FFFF -9864FFFB 887E0264 -2C030000 418200F4 -887E0003 1C630024 -386302C5 7F7E18AE -38600002 98640002 -38600001 9864FFFB -98640006 98640007 -98640009 9864000A -9864000C 9864000D -9864000F 98640010 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -40820030 1CBD0024 -38A50060 7CBF28AE -38DC0005 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000B -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840003 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -41820030 1CBD0024 -38A50060 7CBF28AE -38DC0008 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000E -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840004 -3C808043 60842078 -887F0060 90640014 -887F0063 98640018 -887F0084 9064001C -887F0087 98640020 +1C9D0024 38840063 +7C7F21AE 3BBD0001 +2C1D0004 4180FFC4 +3C608049 60630888 +4BFFFF65 7C8802A6 +38A00010 3D808000 +618C31F4 7D8903A6 +4E800421 3C808049 +60840888 887F0060 +98640005 887F0063 +9864000B 887F0084 +98640008 887F0087 +9864000E 38600000 +9864FFFF 9864FFFB 887E0264 2C030000 -41820024 887F00A8 -90640024 887F00AB -98640028 887F00CC -9064002C 887F00CF -98640030 A07F000E -9064000C 3D808001 -618C8254 7D8903A6 -4E800421 386000C7 -3D808001 618C8C2C -7D8903A6 4E800421 -38600004 3D808001 -618C7700 7D8903A6 -4E800421 3860001C -3D808002 618C6F2C +418200F4 887E0003 +1C630024 386302C5 +7F7E18AE 38600002 +98640002 38600001 +9864FFFB 98640006 +98640007 98640009 +9864000A 9864000C +9864000D 9864000F +98640010 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 40820030 +1CBD0024 38A50060 +7CBF28AE 38DC0005 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000B 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840003 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 41820030 +1CBD0024 38A50060 +7CBF28AE 38DC0008 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000E 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840004 3C808043 +60842078 887F0060 +90640014 887F0063 +98640018 887F0084 +9064001C 887F0087 +98640020 887E0264 +2C030000 41820024 +887F00A8 90640024 +887F00AB 98640028 +887F00CC 9064002C +887F00CF 98640030 +A07F000E 9064000C +3D808001 618C8254 +7D8903A6 4E800421 +386000C7 3D808001 +618C8C2C 7D8903A6 +4E800421 38600004 +3D808001 618C7700 +7D8903A6 4E800421 +3860001C 3D808002 +618C6F2C 7D8903A6 +4E800421 3A800000 +1C140024 7FF5FB78 +7EB50214 3D808000 +618C569C 7D8903A6 +4E800421 88950060 +7C840774 7C041800 +41820028 38600000 +3D808000 618C56A0 7D8903A6 4E800421 -3A800000 1C140024 -7FF5FB78 7EB50214 -3D808000 618C569C +3D808000 618C56A8 7D8903A6 4E800421 -88950060 7C840774 -7C041800 41820028 -38600000 3D808000 +3A940001 2C140006 +3AB50024 4180FFB0 +A07F000E 3D808022 +618C519C 7D8903A6 +4E800421 7C641B78 +38600001 3D808000 618C56A0 7D8903A6 4E800421 3D808000 618C56A8 7D8903A6 -4E800421 3A940001 -2C140006 3AB50024 -4180FFB0 A07F000E -3D808022 618C519C -7D8903A6 4E800421 -7C641B78 38600001 -3D808000 618C56A0 -7D8903A6 4E800421 -3D808000 618C56A8 -7D8903A6 4E800421 -3D808002 618C7168 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C808047 -60849D30 38600003 -98640005 BA810008 +4E800421 3D808002 +618C7168 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7F1B78 -83CD8840 3BDE0598 -7FC3F378 389F025C -38A00138 3D808000 -618C31F4 7D8903A6 -4E800421 7FC3F378 -3D808000 618C5694 -7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F02BC 98830000 -889F02BF 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F02E0 -98640002 38602121 -B0640003 3C808049 -60840880 887F02E3 -98640016 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 +3C808047 60849D30 +38600003 98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3FE08047 -63FF9DA4 887F0004 -2C030001 41820010 -2C030002 4182007C -48000000 38600000 -3D808003 618C3BD8 -7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C3BD8 -7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 +BE810008 38600000 +3D808000 618C5610 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 +7C7F1B78 83CD8840 +3BDE0598 7FC3F378 +389F025C 38A00138 +3D808000 618C31F4 7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 +7FC3F378 3D808000 +618C5694 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F02BC +98830000 889F02BF +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F02E0 98640002 +38602121 B0640003 +3C808049 60840880 +887F02E3 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3FE08047 63FF9DA4 +887F0004 2C030001 +41820010 2C030002 +4182007C 48000000 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 83E30010 -887F0005 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFCA9 3C808047 -60849D30 38600005 -98640005 BA810008 +BE810008 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFCA9 +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index ab45569a..a7c6590c 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1183,14 +1183,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 00000078 #Online/Core/InitOnlinePlay.asm +C216E748 0000007C #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082037C 3860091C +40820398 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1272,7 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -480000EC 4E800021 +48000108 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1280,30 +1280,34 @@ C216E748 00000078 #Online/Core/InitOnlinePlay.asm 4E800020 4E800021 7C0802A6 90010004 9421FF50 BE810008 -838DB61C 886DAFA0 -2C030001 4082008C -38600011 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BD 987E0000 -807C000B 907E0001 -3BE00000 3BBE0005 -7FE3FB78 3D808003 -618C1724 7D8903A6 -4E800421 38800001 -989D0000 8883008E -989D0001 80830D28 -909D0002 3BFF0001 -3BBD0006 2C1F0002 -4180FFC8 7FC3F378 -38800011 38A00001 -3D808000 618C55F0 +838DB61C 3CA0803D +60A5AD40 80A50000 +83650088 38600026 +3D808037 618CF1E4 7D8903A6 4E800421 +7C7E1B78 386000BD +987E0000 886DAFA0 +907E0001 807C000B +907E0002 887B0001 +907E0006 887B0005 +907E000A 3BE00000 +3BBE000E 7FE3FB78 +3D808003 618C1724 +7D8903A6 4E800421 +80830008 989D0000 +8883008E 989D0001 +80830D28 909D0002 +3BFF0001 3BBD0006 +2C1F0004 4180FFC8 +7FC3F378 38800026 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +60000000 00000000 C216E904 0000004C #Online/Core/InitPause.asm 3C608048 80639D30 5463443E 2C030208 @@ -4712,7 +4716,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E90 80830000 +48000E94 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4777,10 +4781,10 @@ BE810008 38600012 00000000 00000000 05000000 00000000 00000000 04030000 -48000595 480008D1 +48000599 480008D5 20000000 80490880 804D68D0 05030000 -48000BE1 48000C11 +48000BE5 48000C15 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4828,7 +4832,7 @@ BE810008 38600012 4182001C 2C030000 40820000 886DAFCA 2C030000 41820020 -48000004 4800076D +48000004 48000771 3C808047 60849D30 38600005 98640005 48000018 3C808047 @@ -4856,7 +4860,7 @@ BE810008 3D80801B 7D8903A6 4E800421 7C7E1B78 887E0001 889E0002 7C032000 -4082001C 4800068D +4082001C 48000691 3C808047 60849D30 38600005 98640005 4800001C 38600000 @@ -4873,315 +4877,315 @@ BE810008 3D80801B 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 2C030000 -40820104 480006F1 +40820108 480006F5 7C7C1B78 2C1C0000 -40800018 4BFFFD25 -7CC802A6 38600001 -98660005 48000068 -4BFFFD11 7F6802A6 -9B9B0004 889B0001 -38840005 7F9B21AE -387C0002 7C9B18AE -38A40001 7CBB19AE -1C9C0002 3884000F -A07F026A 7C7B232E -889B0000 38840001 -38600002 7C841B96 -7C052000 4080002C -887B0001 38630001 -987B0001 38600000 -987B0005 3C808047 -60849D30 38600006 -98640005 48000078 -38600001 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BA 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -3D808037 618CF1B0 +4080001C 4BFFFD25 +7CC802A6 88660005 +38630001 98660005 +48000068 4BFFFD0D +7F6802A6 9B9B0004 +889B0001 38840005 +7F9B21AE 387C0002 +7C9B18AE 38A40001 +7CBB19AE 1C9C0002 +3884000F A07F026A +7C7B232E 889B0000 +38840001 38600002 +7C841B96 7C052000 +4080002C 887B0001 +38630001 987B0001 +38600000 987B0005 +3C808047 60849D30 +38600006 98640005 +48000078 38600001 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7E1B78 386000BA +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 +7FC3F378 3D808037 +618CF1B0 7D8903A6 +4E800421 3C808047 +60849D30 38600001 +98640005 48000014 3C808047 60849D30 38600001 98640005 -48000014 3C808047 -60849D30 38600001 -98640005 887F0003 -480006E5 986DAFC9 +887F0003 480006E5 +986DAFC9 886DAFA0 +2C030003 40820020 +887F0003 38800001 +2C030000 40820008 +38800000 988DAFC9 +4800003C 3A800000 +3AA00000 7E83A378 +480006A9 2C030000 +41820008 3AB50001 +3A940001 2C140004 +4180FFE4 2C150001 +4182000C 38600000 +986DAFC9 3E808047 +62949DA4 887F0003 +48000671 2C030000 +41820018 38600001 +98740000 38600000 +9874005D 48000014 +38600000 98740000 +38600001 9874005D 886DAFA0 2C030003 -40820020 887F0003 -38800001 2C030000 -40820008 38800000 -988DAFC9 4800003C -3A800000 3AA00000 -7E83A378 480006A9 -2C030000 41820008 -3AB50001 3A940001 -2C140004 4180FFE4 -2C150001 4182000C -38600000 986DAFC9 -3E808047 62949DA4 -887F0003 48000671 -2C030000 41820018 -38600001 98740000 -38600000 9874005D -48000014 38600000 -98740000 38600001 -9874005D 886DAFA0 -2C030003 4182000C -2C030000 4082000C -38600000 98740004 -38600000 986DAFCA -38600004 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BC 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -38800004 38A00000 -3D808000 618C55F0 +4182000C 2C030000 +4082000C 38600000 +98740004 38600000 +986DAFCA 38600004 +3D808037 618CF1E4 7D8903A6 4E800421 -3C80804D 807E0000 -90645F90 7FC3F378 -3D808037 618CF1B0 +7C7E1B78 386000BC +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7FE3FB78 3D808037 +7FC3F378 38800004 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 3C80804D +807E0000 90645F90 +7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 01780101 -01FF2121 FF2121EE -0000EE00 7C0802A6 -90010004 9421FF50 -BE810008 38600000 -3D808000 618C5610 +4E800421 7FE3FB78 +3D808037 618CF1B0 7D8903A6 4E800421 -7C7E1B78 83ED8840 -3BFF0598 886DAFA0 -2C030003 40820048 -3BA00000 1CBD0024 -38650069 7C7F18AE -38630001 38850060 -7C9F20AE 3D808000 -618C56B0 7D8903A6 -4E800421 1C9D0024 -38840063 7C7F21AE -3BBD0001 2C1D0004 -4180FFC4 3C608049 -60630888 4BFFFF65 -7C8802A6 38A00010 -3D808000 618C31F4 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +01780101 01FF2121 +FF2121EE 0000EE00 +7C0802A6 90010004 +9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +83ED8840 3BFF0598 +886DAFA0 2C030003 +40820048 3BA00000 +1CBD0024 38650069 +7C7F18AE 38630001 +38850060 7C9F20AE +3D808000 618C56B0 7D8903A6 4E800421 -3C808049 60840888 -887F0060 98640005 -887F0063 9864000B -887F0084 98640008 -887F0087 9864000E -38600000 9864FFFF -9864FFFB 887E0264 -2C030000 418200F4 -887E0003 1C630024 -386302C5 7F7E18AE -38600002 98640002 -38600001 9864FFFB -98640006 98640007 -98640009 9864000A -9864000C 9864000D -9864000F 98640010 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -40820030 1CBD0024 -38A50060 7CBF28AE -38DC0005 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000B -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840003 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -41820030 1CBD0024 -38A50060 7CBF28AE -38DC0008 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000E -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840004 -3C808043 60842078 -887F0060 90640014 -887F0063 98640018 -887F0084 9064001C -887F0087 98640020 +1C9D0024 38840063 +7C7F21AE 3BBD0001 +2C1D0004 4180FFC4 +3C608049 60630888 +4BFFFF65 7C8802A6 +38A00010 3D808000 +618C31F4 7D8903A6 +4E800421 3C808049 +60840888 887F0060 +98640005 887F0063 +9864000B 887F0084 +98640008 887F0087 +9864000E 38600000 +9864FFFF 9864FFFB 887E0264 2C030000 -41820024 887F00A8 -90640024 887F00AB -98640028 887F00CC -9064002C 887F00CF -98640030 A07F000E -9064000C 3D808001 -618C8254 7D8903A6 -4E800421 386000C7 -3D808001 618C8C2C -7D8903A6 4E800421 -38600004 3D808001 -618C7700 7D8903A6 -4E800421 3860001C -3D808002 618C6F2C +418200F4 887E0003 +1C630024 386302C5 +7F7E18AE 38600002 +98640002 38600001 +9864FFFB 98640006 +98640007 98640009 +9864000A 9864000C +9864000D 9864000F +98640010 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 40820030 +1CBD0024 38A50060 +7CBF28AE 38DC0005 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000B 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840003 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 41820030 +1CBD0024 38A50060 +7CBF28AE 38DC0008 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000E 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840004 3C808043 +60842078 887F0060 +90640014 887F0063 +98640018 887F0084 +9064001C 887F0087 +98640020 887E0264 +2C030000 41820024 +887F00A8 90640024 +887F00AB 98640028 +887F00CC 9064002C +887F00CF 98640030 +A07F000E 9064000C +3D808001 618C8254 +7D8903A6 4E800421 +386000C7 3D808001 +618C8C2C 7D8903A6 +4E800421 38600004 +3D808001 618C7700 +7D8903A6 4E800421 +3860001C 3D808002 +618C6F2C 7D8903A6 +4E800421 3A800000 +1C140024 7FF5FB78 +7EB50214 3D808000 +618C569C 7D8903A6 +4E800421 88950060 +7C840774 7C041800 +41820028 38600000 +3D808000 618C56A0 7D8903A6 4E800421 -3A800000 1C140024 -7FF5FB78 7EB50214 -3D808000 618C569C +3D808000 618C56A8 7D8903A6 4E800421 -88950060 7C840774 -7C041800 41820028 -38600000 3D808000 +3A940001 2C140006 +3AB50024 4180FFB0 +A07F000E 3D808022 +618C519C 7D8903A6 +4E800421 7C641B78 +38600001 3D808000 618C56A0 7D8903A6 4E800421 3D808000 618C56A8 7D8903A6 -4E800421 3A940001 -2C140006 3AB50024 -4180FFB0 A07F000E -3D808022 618C519C -7D8903A6 4E800421 -7C641B78 38600001 -3D808000 618C56A0 -7D8903A6 4E800421 -3D808000 618C56A8 -7D8903A6 4E800421 -3D808002 618C7168 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C808047 -60849D30 38600003 -98640005 BA810008 +4E800421 3D808002 +618C7168 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7F1B78 -83CD8840 3BDE0598 -7FC3F378 389F025C -38A00138 3D808000 -618C31F4 7D8903A6 -4E800421 7FC3F378 -3D808000 618C5694 -7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F02BC 98830000 -889F02BF 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F02E0 -98640002 38602121 -B0640003 3C808049 -60840880 887F02E3 -98640016 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 +3C808047 60849D30 +38600003 98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3FE08047 -63FF9DA4 887F0004 -2C030001 41820010 -2C030002 4182007C -48000000 38600000 -3D808003 618C3BD8 -7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C3BD8 -7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 +BE810008 38600000 +3D808000 618C5610 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 +7C7F1B78 83CD8840 +3BDE0598 7FC3F378 +389F025C 38A00138 +3D808000 618C31F4 7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 +7FC3F378 3D808000 +618C5694 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F02BC +98830000 889F02BF +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F02E0 98640002 +38602121 B0640003 +3C808049 60840880 +887F02E3 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3FE08047 63FF9DA4 +887F0004 2C030001 +41820010 2C030002 +4182007C 48000000 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 83E30010 -887F0005 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFCA9 3C808047 -60849D30 38600005 -98640005 BA810008 +BE810008 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFCA9 +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 From 4318437a7e5f4346546950773c3b8ebcb483a0fa Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 4 Mar 2022 19:06:12 -0500 Subject: [PATCH 080/217] fix bug writing online mode when reporting --- Online/Core/InitOnlinePlay.asm | 2 +- Output/Netplay/GALE01r2.ini | 2 +- Output/Netplay/GALJ01r2.ini | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 762a30f0..8f4a55a7 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -292,7 +292,7 @@ li r3, CONST_SlippiCmdReportMatch stb r3, RGB_COMMAND(REG_RGB_ADDR) lbz r3, OFST_R13_ONLINE_MODE(r13) -stw r3, RGB_ONLINE_MODE(REG_RGB_ADDR) +stb r3, RGB_ONLINE_MODE(REG_RGB_ADDR) lwz r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) stw r3, RGB_FRAME_LENGTH(REG_RGB_ADDR) # Store frame length diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index d0205f5f..469a6c61 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1287,7 +1287,7 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 886DAFA0 -907E0001 807C000B +987E0001 807C000B 907E0002 887B0001 907E0006 887B0005 907E000A 3BE00000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a7c6590c..76cd03c0 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1287,7 +1287,7 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 886DAFA0 -907E0001 807C000B +987E0001 807C000B 907E0002 887B0001 907E0006 887B0005 907E000A 3BE00000 From 84ae35865652ca676024b9d54de142deb7103bfb Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 6 Mar 2022 17:48:51 -0500 Subject: [PATCH 081/217] fix crash on tiebreak --- Online/Slippi Online Scene/main.asm | 17 +++++++++++++++-- Output/Netplay/GALE01r2.ini | 29 ++++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 29 ++++++++++++++++------------- 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index f641003e..8c3786be 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -421,6 +421,8 @@ li r3, 3 stb r3, GPDO_MAX_GAMES(REG_GAME_PREP_DATA) li r3, 1 stb r3, GPDO_CUR_GAME(REG_GAME_PREP_DATA) +li r3, 0 +stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GAME_PREP_DATA) # Set next scene as game prep load r4, 0x80479d30 @@ -632,8 +634,6 @@ b VSSceneDecide_ModeHandlerEnd VSSceneDecide_RankedSetOver: # Disconnect from opponent -# TODO: Figure out where to report result? It is likely someone rages and exits client by -# TODO: this point. Or someone just kills the client early even after winning. # Prepare buffer for EXI transfer li r3, 1 branchl r12, HSD_MemAlloc @@ -1320,9 +1320,22 @@ blr #endregion GamePrepScenePrep: +.set REG_GPD, 31 + backup + +lwz REG_GPD, 0x10(r3) # Grabs load data + +# Check if this is a tiebreak. If it is a tiebreak, we don't want to invalidate since the same +# characters will be loaded +lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) +cmpwi r3, 0 +bne SKIP_PRELOAD_INVALIDATE + # Invalidate pre-load cache otherwise changing one character mid-set crashes branchl r12, 0x800174bc +SKIP_PRELOAD_INVALIDATE: + restore blr diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 469a6c61..6c24459b 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4705,7 +4705,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E0 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E3 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4716,7 +4716,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E94 80830000 +48000EAC 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4772,19 +4772,19 @@ BE810008 38600012 480000B1 48000125 08000000 80497758 80497758 01030000 -48000225 48000255 +4800022D 4800025D 09000000 80480668 80480668 02030000 -801B1588 480002ED +801B1588 480002F5 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000599 480008D5 +480005A1 480008DD 20000000 80490880 804D68D0 05030000 -48000BE5 48000C15 +48000BED 48000C2D 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4812,18 +4812,19 @@ BE810008 38600012 618CAAD0 7D8903A6 4E800421 809E0014 88840003 2C040002 -40820008 480000CC +40820008 480000D4 886DAFA0 2C030000 41820020 2C030001 41820014 2C030002 -41820054 2C030003 -4182004C 48000078 +4182005C 2C030003 +41820054 48000080 4BFFFF11 7F6802A6 7F63DB78 38800013 3D808000 618CC160 7D8903A6 4E800421 38600003 987B0000 38600001 987B0001 +38600000 987B0005 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 @@ -4879,10 +4880,10 @@ BE810008 3D80801B 886DAFA0 2C030000 40820108 480006F5 7C7C1B78 2C1C0000 -4080001C 4BFFFD25 +4080001C 4BFFFD1D 7CC802A6 88660005 38630001 98660005 -48000068 4BFFFD0D +48000068 4BFFFD05 7F6802A6 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 @@ -5166,7 +5167,9 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3D808001 +BE810008 83E30010 +887F0005 2C030000 +40820014 3D808001 618C74BC 7D8903A6 4E800421 BA810008 800100B4 382100B0 @@ -5177,7 +5180,7 @@ BE810008 3D808001 2C030000 41820018 3C808047 60849D30 38600003 98640005 -48000018 4BFFFCA9 +48000018 4BFFFC99 3C808047 60849D30 38600005 98640005 BA810008 800100B4 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 76cd03c0..81596e6c 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4705,7 +4705,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E0 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E3 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4716,7 +4716,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000E94 80830000 +48000EAC 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4772,19 +4772,19 @@ BE810008 38600012 480000B1 48000125 08000000 80497758 80497758 01030000 -48000225 48000255 +4800022D 4800025D 09000000 80480668 80480668 02030000 -801B1588 480002ED +801B1588 480002F5 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -48000599 480008D5 +480005A1 480008DD 20000000 80490880 804D68D0 05030000 -48000BE5 48000C15 +48000BED 48000C2D 50000000 48000019 48000015 FF000000 4E800021 81940000 @@ -4812,18 +4812,19 @@ BE810008 38600012 618CAAD0 7D8903A6 4E800421 809E0014 88840003 2C040002 -40820008 480000CC +40820008 480000D4 886DAFA0 2C030000 41820020 2C030001 41820014 2C030002 -41820054 2C030003 -4182004C 48000078 +4182005C 2C030003 +41820054 48000080 4BFFFF11 7F6802A6 7F63DB78 38800013 3D808000 618CC160 7D8903A6 4E800421 38600003 987B0000 38600001 987B0001 +38600000 987B0005 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 @@ -4879,10 +4880,10 @@ BE810008 3D80801B 886DAFA0 2C030000 40820108 480006F5 7C7C1B78 2C1C0000 -4080001C 4BFFFD25 +4080001C 4BFFFD1D 7CC802A6 88660005 38630001 98660005 -48000068 4BFFFD0D +48000068 4BFFFD05 7F6802A6 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 @@ -5166,7 +5167,9 @@ BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 3D808001 +BE810008 83E30010 +887F0005 2C030000 +40820014 3D808001 618C74BC 7D8903A6 4E800421 BA810008 800100B4 382100B0 @@ -5177,7 +5180,7 @@ BE810008 3D808001 2C030000 41820018 3C808047 60849D30 38600003 98640005 -48000018 4BFFFCA9 +48000018 4BFFFC99 3C808047 60849D30 38600005 98640005 BA810008 800100B4 From ea67193841c317368a544ef246120631bfa78fb1 Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Wed, 16 Mar 2022 01:09:28 -0400 Subject: [PATCH 082/217] HUD: move player tag injection to HUD init function will work outside of VS match minor --- Online/Menus/InGame/InitInGame.asm | 2 +- Output/Netplay/GALE01r2.ini | 2 +- Output/Netplay/GALJ01r2.ini | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Online/Menus/InGame/InitInGame.asm b/Online/Menus/InGame/InitInGame.asm index 56d25e62..67a0cc88 100644 --- a/Online/Menus/InGame/InitInGame.asm +++ b/Online/Menus/InGame/InitInGame.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 0x8016e9b4 +# Address: 0x802f6690 ################################################################################ .include "Common/Common.s" diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ff849ad8..97b469d6 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -3844,7 +3844,7 @@ C23786A4 00000009 #Online/Menus/Hacks/VsSplashRumbleHack.asm 618C86AC 7D8903A6 4E800420 28000000 60000000 00000000 -C216E9B4 000000B3 #Online/Menus/InGame/InitInGame.asm +C22F6690 000000B3 #Online/Menus/InGame/InitInGame.asm 3C608048 80639D30 5463443E 2C030208 40820580 480000A8 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index ad818250..60fc5fab 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -3844,7 +3844,7 @@ C23786A4 00000009 #Online/Menus/Hacks/VsSplashRumbleHack.asm 618C86AC 7D8903A6 4E800420 28000000 60000000 00000000 -C216E9B4 000000B3 #Online/Menus/InGame/InitInGame.asm +C22F6690 000000B3 #Online/Menus/InGame/InitInGame.asm 3C608048 80639D30 5463443E 2C030208 40820580 480000A8 From 0e7a3cb633e0d8f42569b24fb6f393e233efa462 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 23 Mar 2022 19:03:54 -0400 Subject: [PATCH 083/217] add banned color variables --- Online/Online.s | 8 ++- Online/Slippi Online Scene/main.asm | 1 + Output/Console/GALE01r2.ini | 64 +++++++++++++-------- Output/Console/g_core.bin | Bin 5040 -> 5184 bytes Output/Console/g_core_porta.bin | Bin 5040 -> 5184 bytes Output/Netplay/GALE01r2.ini | 85 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 85 ++++++++++++++-------------- 7 files changed, 135 insertions(+), 108 deletions(-) diff --git a/Online/Online.s b/Online/Online.s index ec3f8402..536950d3 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -428,7 +428,10 @@ .set GAME_PREP_MAX_RESULT_COUNT, 9 .set GPDO_GAME_RESULTS, GPDO_TIEBREAK_GAME_NUM + 1 # u8[GAME_PREP_MAX_RESULT_COUNT] .set GPDO_LAST_STAGE_WIN_BY_PLAYER, GPDO_GAME_RESULTS + GAME_PREP_MAX_RESULT_COUNT # u16[2] -.set GPDO_SIZE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 +.set GPDO_COLOR_BAN_ACTIVE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 # bool +.set GPDO_COLOR_BAN_CHAR, GPDO_COLOR_BAN_ACTIVE + 1 # u8 +.set GPDO_COLOR_BAN_COLOR, GPDO_COLOR_BAN_CHAR + 1 # u8 +.set GPDO_SIZE, GPDO_COLOR_BAN_COLOR + 1 # Warning: When making changes, ensure the offsets above are synced with below @@ -440,6 +443,9 @@ .byte 0x0 # GPDO_TIEBREAK_GAME_NUM .fill GAME_PREP_MAX_RESULT_COUNT, 1, 0 # GPDO_GAME_RESULTS, Take space for 9 bytes .fill 2, 2, 0 # GPDO_LAST_STAGE_WIN_BY_PLAYER +.byte 0x0 # GPDO_COLOR_BAN_ACTIVE +.byte 0x0 # GPDO_COLOR_BAN_CHAR +.byte 0x0 # GPDO_COLOR_BAN_COLOR .align 2 .endm diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 8c3786be..e969d505 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -423,6 +423,7 @@ li r3, 1 stb r3, GPDO_CUR_GAME(REG_GAME_PREP_DATA) li r3, 0 stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GAME_PREP_DATA) +stb r3, GPDO_COLOR_BAN_ACTIVE(REG_GAME_PREP_DATA) # Set next scene as game prep load r4, 0x80479d30 diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index b0e3c67b..55ded684 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -67,11 +67,11 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 3C608048 80639D30 5463443E 2C030208 806DB654 4082003C -80ADB61C 8885000D +80ADB61C 88850010 2C040000 4082002C -8885000C 2C040000 -40820020 808507B4 -3884FF85 80E507BD +8885000F 2C040000 +40820020 80850907 +3884FF85 80E50910 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -97,7 +97,7 @@ C216D884 0000001C #Recording/SendGameEnd.asm 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 -806DB61C 8863000C +806DB61C 8863000F 2C030000 41820050 83B80000 38600039 987D0000 9B5D0001 @@ -112,19 +112,19 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000EB #Recording/SendGameInfo.asm +C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820718 +2C030000 418207A0 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600706 3D808037 +38600726 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -136,11 +136,11 @@ C216E74C 000000EB #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 38600248 +987E0002 386002BD B07E0003 38600037 987E0005 3860003F B07E0006 38600038 -987E0008 3860004C +987E0008 38600050 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A @@ -154,7 +154,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030A 60630000 +3C60030C 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -214,7 +214,7 @@ B07E0015 3860003D 5463443E B07E01C0 3C608048 80639D30 5463443E 2C030208 -4082011C 38600000 +40820190 38600000 3D808000 618C5610 7D8903A6 4E800421 7C791B78 3A800000 @@ -233,7 +233,7 @@ B07E0015 3860003D 4E800421 3A940001 2C140004 4180FFA0 3A800000 3ABF0060 -3AFE023E 3B5900EF +3AFE023E 3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 @@ -246,14 +246,31 @@ B07E0015 3860003D 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 -4180FFA0 7F23CB78 -3D808037 618CF1B0 +4180FFA0 3A800000 +3ABF0060 3AFE0266 +3B5900F7 1C74001D +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74001D 7C83D214 +7F03C378 38A0001D +3D808000 618C31F4 7D8903A6 4E800421 -4800001C 387E01C2 -388000A4 3D808000 +4800001C 7F03C378 +3880001D 3D808000 618CC160 7D8903A6 -4E800421 7FC3F378 -38800266 38A00001 +4E800421 3A940001 +2C140004 4180FFA0 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 4800001C +387E01C2 38800118 +3D808000 618CC160 +7D8903A6 4E800421 +3D808000 618CADF4 +7D8903A6 4E800421 +987E02DA 7FC3F378 +388002DB 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600205 3D808037 @@ -348,14 +365,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 3C608017 60000000 00000000 -C206DA34 00000035 #Recording/SendGamePostFrame.asm +C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820168 +2C030000 41820170 887F221F 546306F7 -4082015C 8B7F000C +40820164 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -397,7 +414,8 @@ B07D0030 887F1968 807F0090 907D0041 807F00EC 907D0045 807F195C 907D0049 -838DB650 3B9C004D +807F0014 907D004D +838DB650 3B9C0051 938DB650 BA810008 800100B4 382100B0 7C0803A6 8001001C diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 70cc3bb351076539579f792aa8736da3deafd048..f92b28af0d6528001061b72171e77e84add88a91 100644 GIT binary patch delta 252 zcmdm>en4Zxaz;e~9To-#hb9J{j#dVKC|jYSm6P3~<$r6#Q%-@&Cm7E&@=u<@RL=Nk zvH-I>HY3mG7?%5tj1wl?u+3&XKluh*iilMM z1B2Cmh6JmBOlj7U4Bur+7-T2kVUy;St!cg_QqO$2!eRkX*NjWa!d?MCLa(GVXXqa}lG(mHG%?0( b*5USHen4Zxaz;e~9To-#hb9J{j#dVKC|jYSm6P3~<$r6#Q%-@&Cm7E&@=u<@RL=Nk zvH-I>HY3mG7?%5tj1wl?u+3&XKluh*iilMM z1B2Cmh6JmBOlj7U4Bur+7-T2kVUy;St!cg_QqO$2!eRkX*NjWa!d?MCLa(GVXXqa}lG(mHG%?0( b*5USH Date: Sun, 3 Apr 2022 03:19:05 -0400 Subject: [PATCH 084/217] online tag display: avoid injection conflict --- Online/Menus/InGame/InitInGame.asm | 3 ++- Output/Netplay/GALE01r2.ini | 5 +++-- Output/Netplay/GALJ01r2.ini | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Online/Menus/InGame/InitInGame.asm b/Online/Menus/InGame/InitInGame.asm index 67a0cc88..01a1c0d7 100644 --- a/Online/Menus/InGame/InitInGame.asm +++ b/Online/Menus/InGame/InitInGame.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 0x802f6690 +# Address: 0x802f6694 ################################################################################ .include "Common/Common.s" @@ -458,3 +458,4 @@ restore EXIT: lwz r0, 0x001C (sp) +lwz r31, 0x0014 (sp) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 97b469d6..18bd9c24 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -3844,7 +3844,7 @@ C23786A4 00000009 #Online/Menus/Hacks/VsSplashRumbleHack.asm 618C86AC 7D8903A6 4E800420 28000000 60000000 00000000 -C22F6690 000000B3 #Online/Menus/InGame/InitInGame.asm +C22F6694 000000B4 #Online/Menus/InGame/InitInGame.asm 3C608048 80639D30 5463443E 2C030208 40820580 480000A8 @@ -4023,7 +4023,8 @@ EC2100B2 D036002C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -8001001C 00000000 +8001001C 83E10014 +60000000 00000000 043A69C0 4800003C #Online/Menus/InGame/ParseNumbersBetter.asm C225B8A4 00000006 #Online/Menus/SSS/DisableLRSTART.asm 3C608048 80639D30 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 60fc5fab..8da22d17 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -3844,7 +3844,7 @@ C23786A4 00000009 #Online/Menus/Hacks/VsSplashRumbleHack.asm 618C86AC 7D8903A6 4E800420 28000000 60000000 00000000 -C22F6690 000000B3 #Online/Menus/InGame/InitInGame.asm +C22F6694 000000B4 #Online/Menus/InGame/InitInGame.asm 3C608048 80639D30 5463443E 2C030208 40820580 480000A8 @@ -4023,7 +4023,8 @@ EC2100B2 D036002C 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -8001001C 00000000 +8001001C 83E10014 +60000000 00000000 043A69C0 4800003C #Online/Menus/InGame/ParseNumbersBetter.asm C225B8A4 00000006 #Online/Menus/SSS/DisableLRSTART.asm 3C608048 80639D30 From 870daecae9d25b5b1c714913c94260924e2d7bc7 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sun, 3 Apr 2022 00:22:42 -0700 Subject: [PATCH 085/217] chore: build codeset --- Output/Console/GALE01r2.ini | 56 +++++++++++++++++++++----------- Output/Console/g_core.bin | Bin 5040 -> 5184 bytes Output/Console/g_core_porta.bin | Bin 5040 -> 5184 bytes 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index b0e3c67b..15e0082f 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -70,8 +70,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 8885000D 2C040000 4082002C 8885000C 2C040000 -40820020 808507B4 -3884FF85 80E507BD +40820020 80850904 +3884FF85 80E5090D 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -112,19 +112,19 @@ C216D884 0000001C #Recording/SendGameEnd.asm 800100B4 382100B0 7C0803A6 819F2514 60000000 00000000 -C216E74C 000000EB #Recording/SendGameInfo.asm +C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820718 +2C030000 418207A0 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600706 3D808037 +38600726 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -136,11 +136,11 @@ C216E74C 000000EB #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 38600248 +987E0002 386002BD B07E0003 38600037 987E0005 3860003F B07E0006 38600038 -987E0008 3860004C +987E0008 38600050 B07E0009 38600039 987E000B 38600002 B07E000C 3860003A @@ -154,7 +154,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030A 60630000 +3C60030C 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -214,7 +214,7 @@ B07E0015 3860003D 5463443E B07E01C0 3C608048 80639D30 5463443E 2C030208 -4082011C 38600000 +40820190 38600000 3D808000 618C5610 7D8903A6 4E800421 7C791B78 3A800000 @@ -246,14 +246,31 @@ B07E0015 3860003D 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 -4180FFA0 7F23CB78 -3D808037 618CF1B0 +4180FFA0 3A800000 +3ABF0060 3AFE0266 +3B590117 1C74001D +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74001D 7C83D214 +7F03C378 38A0001D +3D808000 618C31F4 7D8903A6 4E800421 -4800001C 387E01C2 -388000A4 3D808000 +4800001C 7F03C378 +3880001D 3D808000 618CC160 7D8903A6 -4E800421 7FC3F378 -38800266 38A00001 +4E800421 3A940001 +2C140004 4180FFA0 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 4800001C +387E01C2 38800118 +3D808000 618CC160 +7D8903A6 4E800421 +3D808000 618CADF4 +7D8903A6 4E800421 +987E02DA 7FC3F378 +388002DB 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600205 3D808037 @@ -348,14 +365,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 3C608017 60000000 00000000 -C206DA34 00000035 #Recording/SendGamePostFrame.asm +C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820168 +2C030000 41820170 887F221F 546306F7 -4082015C 8B7F000C +40820164 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -397,7 +414,8 @@ B07D0030 887F1968 807F0090 907D0041 807F00EC 907D0045 807F195C 907D0049 -838DB650 3B9C004D +807F0014 907D004D +838DB650 3B9C0051 938DB650 BA810008 800100B4 382100B0 7C0803A6 8001001C diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 70cc3bb351076539579f792aa8736da3deafd048..30494c2a9b01e3361c6659c69da05ae5b40c0e78 100644 GIT binary patch delta 218 zcmdm>en4ZxK1ME17K@hutqo5(c{iV6bZ2DzGg*LHopHfr3ua?RwaGcm$&7m^UtpGJ z44C|ZIh&DZa}3LUM#c$?ZP*w^tQr^?toAb`Sp8#4vyNmGmnmV8oqUH)npd`_`I1OI z^Wh4M1wfGttkR6KlNH#l^cW><8yXlAdk!Ylb}}#XYhY1?@YjBU@n_UA-KszQxx%7> z>GtFcOk$h6*q<^nnoTa?Qs*t`s8^B?NoM=*(8QRsc?p*fqd-GFgUEzh2H)o1Z2{JE M7y>u{;NHOw0K{cVBLDyZ delta 134 zcmV;10D1qwD6l86z5xmcv^a$Sg@EM;y|c&xM*#urlMn+Z0T`1w12X{zlWYTH0Z5b3 z10MlQlkfv;0SdER1m6Jx9HTr20h6!?9s&TQlfV!Z1UP^KW|PnY7PArven4ZxK1ME17K@hutqo5(c{iV6bZ2DzGg*LHopHfr3ua?RwaGcm$&7m^UtpGJ z44C|ZIh&DZa}3LUM#c$?ZP*w^tQr^?toAb`Sp8#4vyNmGmnmV8oqUH)npd`_`I1OI z^Wh4M1wfGttkR6KlNH#l^cW><8yXlAdk!Ylb}}#XYhY1?@YjBU@n_UA-KszQxx%7> z>GtFcOk$h6*q<^nnoTa?Qs*t`s8^B?NoM=*(8QRsc?p*fqd-GFgUEzh2H)o1Z2{JE M7y>u{;NHOw0K{cVBLDyZ delta 134 zcmV;10D1qwD6l86z5xmcv^a$Sg@EM;y|c&xM*#urlMn+Z0T`1w12X{zlWYTH0Z5b3 z10MlQlkfv;0SdER1m6Jx9HTr20h6!?9s&TQlfV!Z1UP^KW|PnY7PArv Date: Mon, 18 Apr 2022 17:05:11 -0400 Subject: [PATCH 086/217] send winner idx with result --- Online/Core/InitOnlinePlay.asm | 30 ++- Online/Online.s | 7 +- Online/Slippi Online Scene/main.asm | 10 +- Output/Netplay/GALE01r2.ini | 273 +++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 273 +++++++++++++++------------- 5 files changed, 331 insertions(+), 262 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 8f4a55a7..0db951fd 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -271,6 +271,7 @@ blrl .set REG_RGPB_ADDR, 29 .set REG_ODB_ADDRESS, 28 .set REG_GPD_ADDR, 27 +.set REG_GAME_END_STRUCT_ADDR, 26 backup @@ -279,8 +280,28 @@ lwz REG_ODB_ADDRESS, OFST_R13_ODB_ADDR(r13) # data buffer address loadwz r5, 0x803dad40 # Load minor scene data array ptr lwz REG_GPD_ADDR, 0x88(r5) # Load game prep minor scene data +load REG_GAME_END_STRUCT_ADDR, 0x80479da4 + ################################################################################ -# Report game results for unranked +# Initialize the MatchEndData early. Normally his happens on scene transition +# around 0x8016ea1c but we need it earlier (now) to determine the result of +# the match +################################################################################ +mr r3, REG_GAME_END_STRUCT_ADDR # dest +load r4, 0x8046b8ec # source +li r5, 8824 # size +branchl r12, memcpy + +load r4, 0x8046b6a0 +mr r3, REG_GAME_END_STRUCT_ADDR +lbz r0, 0x24D0(r4) +stb r0, 0x6(r3) +lbz r0, 0x0008(r4) +stb r0, 0x4(r3) +branchl r12, 0x80166378 # CreateMatchEndData (struct @ 80479da4) + +################################################################################ +# Report game results ################################################################################ # Prepare buffer for EXI transfer li r3, RGB_SIZE @@ -294,7 +315,7 @@ stb r3, RGB_COMMAND(REG_RGB_ADDR) lbz r3, OFST_R13_ONLINE_MODE(r13) stb r3, RGB_ONLINE_MODE(REG_RGB_ADDR) -lwz r3, ODB_GAME_END_FRAME(REG_ODB_ADDRESS) +branchl r12, 0x801a4ba8 # MenuController_LoadTimer1 stw r3, RGB_FRAME_LENGTH(REG_RGB_ADDR) # Store frame length lbz r3, GPDO_CUR_GAME(REG_GPD_ADDR) @@ -303,6 +324,11 @@ stw r3, RGB_GAME_INDEX(REG_RGB_ADDR) lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD_ADDR) stw r3, RGB_TIEBREAKER_INDEX(REG_RGB_ADDR) +lwz r3, GPDO_FN_COMPUTE_RANKED_WINNER(REG_GPD_ADDR) +mtctr r3 +bctrl +stb r3, RGB_WINNER_IDX(REG_RGB_ADDR) + PLAYER_LOOP_INIT: li REG_IDX, 0 addi REG_RGPB_ADDR, REG_RGB_ADDR, RGB_P1_RGPB diff --git a/Online/Online.s b/Online/Online.s index 536950d3..1d363a9a 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -411,7 +411,8 @@ .set RGB_FRAME_LENGTH, RGB_ONLINE_MODE + 1 # u32, number of frames in game .set RGB_GAME_INDEX, RGB_FRAME_LENGTH + 4 # u32, 1-indexed .set RGB_TIEBREAKER_INDEX, RGB_GAME_INDEX + 4 # u32, 1-indexed, 0 = not tiebreak -.set RGB_P1_RGPB, RGB_TIEBREAKER_INDEX + 4 # RGPB_SIZE +.set RGB_WINNER_IDX, RGB_TIEBREAKER_INDEX + 4 # s8 +.set RGB_P1_RGPB, RGB_WINNER_IDX + 1 # RGPB_SIZE .set RGB_P2_RGPB, RGB_P1_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P3_RGPB, RGB_P2_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P4_RGPB, RGB_P3_RGPB + RGPB_SIZE # RGPB_SIZE @@ -431,7 +432,8 @@ .set GPDO_COLOR_BAN_ACTIVE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 # bool .set GPDO_COLOR_BAN_CHAR, GPDO_COLOR_BAN_ACTIVE + 1 # u8 .set GPDO_COLOR_BAN_COLOR, GPDO_COLOR_BAN_CHAR + 1 # u8 -.set GPDO_SIZE, GPDO_COLOR_BAN_COLOR + 1 +.set GPDO_FN_COMPUTE_RANKED_WINNER, GPDO_COLOR_BAN_COLOR + 1 # u32 +.set GPDO_SIZE, GPDO_FN_COMPUTE_RANKED_WINNER + 4 # Warning: When making changes, ensure the offsets above are synced with below @@ -446,6 +448,7 @@ .byte 0x0 # GPDO_COLOR_BAN_ACTIVE .byte 0x0 # GPDO_COLOR_BAN_CHAR .byte 0x0 # GPDO_COLOR_BAN_COLOR +.long 0x0 # GPDO_FN_COMPUTE_RANKED_WINNER .align 2 .endm diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index e969d505..55e072f0 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -425,6 +425,10 @@ li r3, 0 stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GAME_PREP_DATA) stb r3, GPDO_COLOR_BAN_ACTIVE(REG_GAME_PREP_DATA) +bl SinglesDetermineWinner_BLRL +mflr r3 +stw r3, GPDO_FN_COMPUTE_RANKED_WINNER(REG_GAME_PREP_DATA) + # Set next scene as game prep load r4, 0x80479d30 li r3, 0x06 @@ -1156,6 +1160,8 @@ blr # Output: # r3: winnderIndex # Index of the winner, -1 if tie ################################################################################ +SinglesDetermineWinner_BLRL: +blrl .set REG_MATCH_END, 31 .set REG_MATCH_END_P1, 30 .set REG_MATCH_END_P2, 29 @@ -1175,8 +1181,8 @@ beq SinglesDetermineWinner_HANDLE_TIMEOUT cmpwi r3, 2 beq SinglesDetermineWinner_HANDLE_COMPLETION -# We can only handle GAME and TIME atm. For LRAS (or something else?), stall -b 0 +# We can only handle GAME and TIME atm. For LRAS (or something else?), return a tie +b SinglesDetermineWinner_TIE SinglesDetermineWinner_HANDLE_TIMEOUT: li r3, 0 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index a0bba72e..ea3296a3 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1183,14 +1183,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000007C #Online/Core/InitOnlinePlay.asm +C216E748 0000008A #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820398 3860091C +40820408 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1272,7 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000108 4E800021 +48000178 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1282,16 +1282,30 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 838DB61C 3CA0803D 60A5AD40 80A50000 -83650088 38600026 -3D808037 618CF1E4 +83650088 3F408047 +635A9DA4 7F43D378 +3C808046 6084B8EC +38A02278 3D808000 +618C31F4 7D8903A6 +4E800421 3C808046 +6084B6A0 7F43D378 +880424D0 98030006 +88040008 98030004 +3D808016 618C6378 +7D8903A6 4E800421 +38600027 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BD 987E0000 +886DAFA0 987E0001 +3D80801A 618C4BA8 7D8903A6 4E800421 -7C7E1B78 386000BD -987E0000 886DAFA0 -987E0001 807C000B 907E0002 887B0001 907E0006 887B0005 -907E000A 3BE00000 -3BBE000E 7FE3FB78 +907E000A 807B0016 +7C6903A6 4E800421 +987E000E 3BE00000 +3BBE000F 7FE3FB78 3D808003 618C1724 7D8903A6 4E800421 80830008 989D0000 @@ -1299,7 +1313,7 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 80830D28 909D0002 3BFF0001 3BBD0006 2C1F0004 4180FFC8 -7FC3F378 38800026 +7FC3F378 38800027 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 @@ -4705,7 +4719,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E4 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E7 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4716,7 +4730,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000EB4 80830000 +48000EC8 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4769,63 +4783,65 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -480000B5 48000129 +480000B9 4800012D 08000000 80497758 80497758 01030000 -48000235 48000265 +48000245 48000275 09000000 80480668 80480668 02030000 -801B1588 480002FD +801B1588 4800030D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -480005A9 480008E5 +480005B9 480008F5 20000000 80490880 804D68D0 05030000 -48000BF5 48000C35 +48000C09 48000C49 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 00000000 00000000 00000000 00000000 00000000 -00000000 7C0802A6 -90010004 9421FF50 -BE810008 808D8840 -3BE40530 3D80801A -618C427C 7D8903A6 -4E800421 88BF0002 -3880000E 88FF0003 -38C00000 891F0004 -895F0006 39200000 -3D80801B 618C06B0 -7D8903A6 4E800421 -3D808001 618C74BC -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7E1B78 -3D80801B 618CAAD0 +00000000 00000000 +7C0802A6 90010004 +9421FF50 BE810008 +808D8840 3BE40530 +3D80801A 618C427C +7D8903A6 4E800421 +88BF0002 3880000E +88FF0003 38C00000 +891F0004 895F0006 +39200000 3D80801B +618C06B0 7D8903A6 +4E800421 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 3D80801B +618CAAD0 7D8903A6 +4E800421 809E0014 +88840003 2C040002 +40820008 480000E4 +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +4182006C 2C030003 +41820064 48000090 +4BFFFF09 7F6802A6 +7F63DB78 3880001A +3D808000 618CC160 7D8903A6 4E800421 -809E0014 88840003 -2C040002 40820008 -480000D8 886DAFA0 -2C030000 41820020 -2C030001 41820014 -2C030002 41820060 -2C030003 41820058 -48000084 4BFFFF0D -7F6802A6 7F63DB78 -38800016 3D808000 -618CC160 7D8903A6 -4E800421 38600003 -987B0000 38600001 -987B0001 38600000 -987B0005 987B0013 +38600003 987B0000 +38600001 987B0001 +38600000 987B0005 +987B0013 480008AD +7C6802A6 907B0016 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 @@ -4879,12 +4895,12 @@ BE810008 3D80801B 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 2C030000 -40820108 480006F5 +40820108 480006F9 7C7C1B78 2C1C0000 -4080001C 4BFFFD15 +4080001C 4BFFFD05 7CC802A6 88660005 38630001 98660005 -48000068 4BFFFCFD +48000068 4BFFFCED 7F6802A6 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 @@ -4914,7 +4930,7 @@ BE810008 3D80801B 98640005 48000014 3C808047 60849D30 38600001 98640005 -887F0003 480006E5 +887F0003 480006E9 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -4922,14 +4938,14 @@ BE810008 3D80801B 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -480006A9 2C030000 +480006AD 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -48000671 2C030000 +48000675 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5102,94 +5118,95 @@ BE810008 38600000 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3FE08047 63FF9DA4 -887F0004 2C030001 -41820010 2C030002 -4182007C 48000000 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 3FE08047 +63FF9DA4 887F0004 +2C030001 41820010 +2C030002 4182007C +480000C4 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 +7C7B1B78 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 +7D8903A6 4E800421 +7C7B1B78 38600001 +3D808003 618C42B4 +7D8903A6 4E800421 +7C1B1800 41800048 +4181004C 48000050 +38600000 3D808003 618C3BD8 7D8903A6 4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA810008 +40820024 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +83E30010 887F0005 +2C030000 40820014 +3D808001 618C74BC +7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 83E30010 887F0005 2C030000 -40820014 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFC95 3C808047 +60849D30 38600005 +98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -83E30010 887F0005 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFC99 -3C808047 60849D30 -38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 56f872d0..29e91da9 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1183,14 +1183,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000007C #Online/Core/InitOnlinePlay.asm +C216E748 0000008A #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820398 3860091C +40820408 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1272,7 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000108 4E800021 +48000178 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1282,16 +1282,30 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 838DB61C 3CA0803D 60A5AD40 80A50000 -83650088 38600026 -3D808037 618CF1E4 +83650088 3F408047 +635A9DA4 7F43D378 +3C808046 6084B8EC +38A02278 3D808000 +618C31F4 7D8903A6 +4E800421 3C808046 +6084B6A0 7F43D378 +880424D0 98030006 +88040008 98030004 +3D808016 618C6378 +7D8903A6 4E800421 +38600027 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BD 987E0000 +886DAFA0 987E0001 +3D80801A 618C4BA8 7D8903A6 4E800421 -7C7E1B78 386000BD -987E0000 886DAFA0 -987E0001 807C000B 907E0002 887B0001 907E0006 887B0005 -907E000A 3BE00000 -3BBE000E 7FE3FB78 +907E000A 807B0016 +7C6903A6 4E800421 +987E000E 3BE00000 +3BBE000F 7FE3FB78 3D808003 618C1724 7D8903A6 4E800421 80830008 989D0000 @@ -1299,7 +1313,7 @@ C216E748 0000007C #Online/Core/InitOnlinePlay.asm 80830D28 909D0002 3BFF0001 3BBD0006 2C1F0004 4180FFC8 -7FC3F378 38800026 +7FC3F378 38800027 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 @@ -4705,7 +4719,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E4 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E7 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4716,7 +4730,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001AD 7C8802A6 4800002D -48000EB4 80830000 +48000EC8 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4769,63 +4783,65 @@ BE810008 38600012 800100B4 382100B0 7C0803A6 4E800020 4E800021 00030000 -480000B5 48000129 +480000B9 4800012D 08000000 80497758 80497758 01030000 -48000235 48000265 +48000245 48000275 09000000 80480668 80480668 02030000 -801B1588 480002FD +801B1588 4800030D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 04030000 -480005A9 480008E5 +480005B9 480008F5 20000000 80490880 804D68D0 05030000 -48000BF5 48000C35 +48000C09 48000C49 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 00000000 00000000 00000000 00000000 00000000 -00000000 7C0802A6 -90010004 9421FF50 -BE810008 808D8840 -3BE40530 3D80801A -618C427C 7D8903A6 -4E800421 88BF0002 -3880000E 88FF0003 -38C00000 891F0004 -895F0006 39200000 -3D80801B 618C06B0 -7D8903A6 4E800421 -3D808001 618C74BC -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7E1B78 -3D80801B 618CAAD0 +00000000 00000000 +7C0802A6 90010004 +9421FF50 BE810008 +808D8840 3BE40530 +3D80801A 618C427C +7D8903A6 4E800421 +88BF0002 3880000E +88FF0003 38C00000 +891F0004 895F0006 +39200000 3D80801B +618C06B0 7D8903A6 +4E800421 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 3D80801B +618CAAD0 7D8903A6 +4E800421 809E0014 +88840003 2C040002 +40820008 480000E4 +886DAFA0 2C030000 +41820020 2C030001 +41820014 2C030002 +4182006C 2C030003 +41820064 48000090 +4BFFFF09 7F6802A6 +7F63DB78 3880001A +3D808000 618CC160 7D8903A6 4E800421 -809E0014 88840003 -2C040002 40820008 -480000D8 886DAFA0 -2C030000 41820020 -2C030001 41820014 -2C030002 41820060 -2C030003 41820058 -48000084 4BFFFF0D -7F6802A6 7F63DB78 -38800016 3D808000 -618CC160 7D8903A6 -4E800421 38600003 -987B0000 38600001 -987B0001 38600000 -987B0005 987B0013 +38600003 987B0000 +38600001 987B0001 +38600000 987B0005 +987B0013 480008AD +7C6802A6 907B0016 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 @@ -4879,12 +4895,12 @@ BE810008 3D80801B 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 2C030000 -40820108 480006F5 +40820108 480006F9 7C7C1B78 2C1C0000 -4080001C 4BFFFD15 +4080001C 4BFFFD05 7CC802A6 88660005 38630001 98660005 -48000068 4BFFFCFD +48000068 4BFFFCED 7F6802A6 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 @@ -4914,7 +4930,7 @@ BE810008 3D80801B 98640005 48000014 3C808047 60849D30 38600001 98640005 -887F0003 480006E5 +887F0003 480006E9 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -4922,14 +4938,14 @@ BE810008 3D80801B 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -480006A9 2C030000 +480006AD 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -48000671 2C030000 +48000675 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5102,94 +5118,95 @@ BE810008 38600000 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3FE08047 63FF9DA4 -887F0004 2C030001 -41820010 2C030002 -4182007C 48000000 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 3FE08047 +63FF9DA4 887F0004 +2C030001 41820010 +2C030002 4182007C +480000C4 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 +7C7B1B78 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 +7D8903A6 4E800421 +7C7B1B78 38600001 +3D808003 618C42B4 +7D8903A6 4E800421 +7C1B1800 41800048 +4181004C 48000050 +38600000 3D808003 618C3BD8 7D8903A6 4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA810008 +40820024 38600001 +3D808003 618C3BD8 +7D8903A6 4E800421 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +83E30010 887F0005 +2C030000 40820014 +3D808001 618C74BC +7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 83E30010 887F0005 2C030000 -40820014 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFC95 3C808047 +60849D30 38600005 +98640005 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -83E30010 887F0005 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFC99 -3C808047 60849D30 -38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 From 8ee8c21129b5315ea6e05f1222422c3661387187 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Thu, 19 May 2022 03:04:19 -0400 Subject: [PATCH 087/217] Send Player Placements + Team as part of Game End --- Recording/Recording.s | 2 +- Recording/SendGameEnd.asm | 66 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/Recording/Recording.s b/Recording/Recording.s index 8393a0c1..7407d696 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -21,7 +21,7 @@ .set GAME_POST_FRAME_PAYLOAD_LENGTH, 80 # byte count .set GAME_ITEM_INFO_PAYLOAD_LENGTH, 42 # byte count .set GAME_FRAME_BOOKEND_PAYLOAD_LENGTH, 8 # byte count -.set GAME_END_PAYLOAD_LENGTH, 2 # byte count +.set GAME_END_PAYLOAD_LENGTH, 6 # byte count .set SPLIT_MESSAGE_PAYLOAD_LENGTH, 516 # byte count .set SPLIT_MESSAGE_INTERNAL_DATA_LEN, 512 diff --git a/Recording/SendGameEnd.asm b/Recording/SendGameEnd.asm index 6b3a34a6..2b79c2d7 100644 --- a/Recording/SendGameEnd.asm +++ b/Recording/SendGameEnd.asm @@ -16,6 +16,11 @@ .set REG_SceneThinkStruct,25 .set REG_RDB,24 +# TODO: confirm that these are safe to use under this context +.set REG_MatchEndStruct,23 +.set REG_MatchEndPlayerStruct,22 +.set REG_PlayerSlot,21 + backup # check if VS Mode @@ -72,6 +77,32 @@ NoLRAStart: StoreLRAStarter: stb r3,0x2(REG_Buffer) +# What this is going to do is add an array of team+placements for each port. +# T1P1T2P2T3P3T4P4 T=Team ID, P = Placement +PlayerPlacements: + +PlayerPlacementsLoopInit: +li PlayerSlot, 1 # Start at slot 1 +PlayerPlacementsLoopStart: + # find player placement for this slot + mr r3, PlayerSlot + bl FN_GetPlayerPlacement + + # format data + slwi r4, r4, 0x4 # move team to the left => TX + add r3, r4, r3 # add team and placement together => TP + + # write placement result to buffer + addi r4, PlayerSlot, 0x2 # offset from LRAStarter based on current slot + stbx r3, r4, REG_Buffer # Write placement to buffer + +PlayerPlacementsLoopCheck: + addi PlayerSlot,PlayerSlot,0x1 + cmpwi r3,4 + ble PlayerPlacementsLoopStart +PlayerPlacementsLoopEnd: +PlayerPlacementsEnd: + #------------- Transfer Buffer ------------ mr r3,REG_Buffer li r4,GAME_END_PAYLOAD_LENGTH+1 @@ -82,6 +113,41 @@ StoreLRAStarter: li r3, 1 stb r3, RDB_GAME_END_SENT(REG_RDB) #logf LOG_LEVEL_NOTICE, "Wrote game end sent" + b Injection_Exit + +################################################################################ +# Function: FN_GetPlayerPlacement +################################################################################ +# Determines the player standing in last match for a given player slot +# TODO: move to a static fn (maybe?) +# Inputs: +# r3: Player slot (starting at 1) +# Outputs: +# r3: Player placement +# r4: Player team +################################################################################ +FN_GetPlayerPlacement: +backup + +mr REG_PlayerSlot,r3 +load REG_MatchEndStruct,0x80479da4 +mulli REG_MatchEndPlayerStruct,REG_PlayerSlot,0xA8 +add REG_MatchEndPlayerStruct,REG_MatchEndPlayerStruct,REG_MatchEndStruct + +#Check if last game data exists (is this necessary?) + lbz r3,0x4(REG_MatchEndStruct) + cmpwi r3,0x0 + beq FN_GetPlayerPlacementReturn + +#Check if player partook in last game + lbz r3,0x5D(REG_MatchEndPlayerStruct) # offset to player standing + lbz r4,0x5F(REG_MatchEndPlayerStruct) # offset to player team id (if any) + b FN_GetPlayerPlacementReturn + +FN_GetPlayerPlacementReturn: +restore +blr + Injection_Exit: restore From cb45dd9da99ca969543d08c7bef1ff7748f68550 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Thu, 19 May 2022 03:14:06 -0400 Subject: [PATCH 088/217] Mark players that are not playing --- Recording/SendGameEnd.asm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Recording/SendGameEnd.asm b/Recording/SendGameEnd.asm index 2b79c2d7..7835cc44 100644 --- a/Recording/SendGameEnd.asm +++ b/Recording/SendGameEnd.asm @@ -139,11 +139,19 @@ add REG_MatchEndPlayerStruct,REG_MatchEndPlayerStruct,REG_MatchEndStruct cmpwi r3,0x0 beq FN_GetPlayerPlacementReturn + lbz r3,0x58(REG_MatchEndPlayerStruct) + cmpwi r3,3 + beq FN_GetPlayerPlacementPlayerMissing + #Check if player partook in last game lbz r3,0x5D(REG_MatchEndPlayerStruct) # offset to player standing lbz r4,0x5F(REG_MatchEndPlayerStruct) # offset to player team id (if any) b FN_GetPlayerPlacementReturn +FN_GetPlayerPlacementPlayerMissing: + li r3,-1 + li r4,-1 + FN_GetPlayerPlacementReturn: restore blr From 38307b0eb41ccca9b7f049bc9ab899939d0260d9 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 20 May 2022 17:23:41 -0400 Subject: [PATCH 089/217] send game info block when reporting a game --- Online/Core/InitOnlinePlay.asm | 6 ++++++ Online/Online.s | 3 ++- Output/Netplay/GALE01r2.ini | 14 +++++++++----- Output/Netplay/GALJ01r2.ini | 14 +++++++++----- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 0db951fd..fb38128d 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -357,6 +357,12 @@ PLAYER_LOOP_CHECK: cmpwi REG_IDX, 4 blt PLAYER_LOOP +# Copy over game info +addi r3, REG_RGB_ADDR, RGB_GAME_INFO_BLOCK # Destination +load r4, 0x80480530 # Game info block source +li r5, MATCH_STRUCT_LEN +branchl r12, memcpy + # Execute match reporting mr r3, REG_RGB_ADDR li r4, RGB_SIZE diff --git a/Online/Online.s b/Online/Online.s index 1d363a9a..e48aa6a4 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -416,7 +416,8 @@ .set RGB_P2_RGPB, RGB_P1_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P3_RGPB, RGB_P2_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P4_RGPB, RGB_P3_RGPB + RGPB_SIZE # RGPB_SIZE -.set RGB_SIZE, RGB_P4_RGPB + RGPB_SIZE +.set RGB_GAME_INFO_BLOCK, RGB_P4_RGPB + RGPB_SIZE # MATCH_STRUCT_LEN +.set RGB_SIZE, RGB_GAME_INFO_BLOCK + MATCH_STRUCT_LEN ################################################################################ # Define game prep data and include macro to create static data diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ea3296a3..4eb2e9d6 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1183,14 +1183,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000008A #Online/Core/InitOnlinePlay.asm +C216E748 0000008E #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820408 3860091C +40820428 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1272,7 @@ C216E748 0000008A #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000178 4E800021 +48000198 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1293,7 +1293,7 @@ C216E748 0000008A #Online/Core/InitOnlinePlay.asm 88040008 98030004 3D808016 618C6378 7D8903A6 4E800421 -38600027 3D808037 +3860015F 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 @@ -1313,7 +1313,11 @@ C216E748 0000008A #Online/Core/InitOnlinePlay.asm 80830D28 909D0002 3BFF0001 3BBD0006 2C1F0004 4180FFC8 -7FC3F378 38800027 +387E0027 3C808048 +60840530 38A00138 +3D808000 618C31F4 +7D8903A6 4E800421 +7FC3F378 3880015F 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 29e91da9..749877eb 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1183,14 +1183,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000008A #Online/Core/InitOnlinePlay.asm +C216E748 0000008E #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820408 3860091C +40820428 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1272,7 @@ C216E748 0000008A #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000178 4E800021 +48000198 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1293,7 +1293,7 @@ C216E748 0000008A #Online/Core/InitOnlinePlay.asm 88040008 98030004 3D808016 618C6378 7D8903A6 4E800421 -38600027 3D808037 +3860015F 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 @@ -1313,7 +1313,11 @@ C216E748 0000008A #Online/Core/InitOnlinePlay.asm 80830D28 909D0002 3BFF0001 3BBD0006 2C1F0004 4180FFC8 -7FC3F378 38800027 +387E0027 3C808048 +60840530 38A00138 +3D808000 618C31F4 +7D8903A6 4E800421 +7FC3F378 3880015F 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 From 4c34b38c961a7c6317f457d2660a1ea5b39f4144 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Mon, 23 May 2022 01:35:14 -0400 Subject: [PATCH 090/217] Initialize Match End Struct before trying to access info + Use proper indexes to find player standings + Fix wrong REGs being used + Use proper offset to find player standing + Return -1 if no match end data --- Output/Netplay/GALE01r2.ini | 60 ++++++++++++++++++++++++++----------- Output/Netplay/GALJ01r2.ini | 60 ++++++++++++++++++++++++++----------- Recording/SendGameEnd.asm | 25 +++++++++++----- 3 files changed, 104 insertions(+), 41 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 18bd9c24..64d461d5 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -597,35 +597,61 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 800100B4 382100B0 7C0803A6 8001001C 60000000 00000000 -C216D884 0000001C #Recording/SendGameEnd.asm +C216D884 00000036 #Recording/SendGameEnd.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 41820174 3F208046 6339B6A0 8B590008 2C1A0000 -4182008C 830DB64C +41820160 830DB64C 88780004 2C030000 -4082007C 3C608048 +40820150 3C608048 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 806DB61C 8863000C -2C030000 41820050 +2C030000 41820124 83B80000 38600039 987D0000 9B5D0001 2C1A0007 4082000C 88790001 48000008 3860FFFF 987D0002 -7FA3EB78 38800003 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 38600001 -98780004 BA810008 +7C0802A6 90010004 +9421FF50 BE810008 +3EE08047 62F79DA4 +7EE3BB78 3D808016 +618C6378 7D8903A6 +4E800421 BA810008 800100B4 382100B0 -7C0803A6 819F2514 -60000000 00000000 +7C0803A6 3AA00000 +7EA3AB78 48000051 +2C03FFFF 4182000C +54842036 7C641A14 +38950003 7C64E9AE +3AB50001 2C150003 +4081FFD8 7FA3EB78 +38800007 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38600001 98780004 +48000068 7C0802A6 +90010004 9421FF50 +BE810008 7C751B78 +3EE08047 62F79DA4 +1ED500A8 7ED6BA14 +88770004 2C030000 +4182001C 88760058 +2C030003 41820010 +8876005E 8896005F +4800000C 3860FFFF +3880FFFF BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +BA810008 800100B4 +382100B0 7C0803A6 +819F2514 00000000 C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -638,7 +664,7 @@ C216E74C 000000FC #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600726 3D808037 +3860072A 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -656,7 +682,7 @@ B07E0003 38600037 B07E0006 38600038 987E0008 38600050 B07E0009 38600039 -987E000B 38600002 +987E000B 38600006 B07E000C 3860003A 987E000E 3860000C B07E000F 3860003B @@ -2735,15 +2761,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C761B78 38600004 +7C791B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38760000 +7C781B78 38790000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38760000 48000261 +38790000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8da22d17..198d0727 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -597,35 +597,61 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 800100B4 382100B0 7C0803A6 8001001C 60000000 00000000 -C216D884 0000001C #Recording/SendGameEnd.asm +C216D884 00000036 #Recording/SendGameEnd.asm 7C0802A6 90010004 9421FF50 BE810008 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 41820174 3F208046 6339B6A0 8B590008 2C1A0000 -4182008C 830DB64C +41820160 830DB64C 88780004 2C030000 -4082007C 3C608048 +40820150 3C608048 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 806DB61C 8863000C -2C030000 41820050 +2C030000 41820124 83B80000 38600039 987D0000 9B5D0001 2C1A0007 4082000C 88790001 48000008 3860FFFF 987D0002 -7FA3EB78 38800003 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 38600001 -98780004 BA810008 +7C0802A6 90010004 +9421FF50 BE810008 +3EE08047 62F79DA4 +7EE3BB78 3D808016 +618C6378 7D8903A6 +4E800421 BA810008 800100B4 382100B0 -7C0803A6 819F2514 -60000000 00000000 +7C0803A6 3AA00000 +7EA3AB78 48000051 +2C03FFFF 4182000C +54842036 7C641A14 +38950003 7C64E9AE +3AB50001 2C150003 +4081FFD8 7FA3EB78 +38800007 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38600001 98780004 +48000068 7C0802A6 +90010004 9421FF50 +BE810008 7C751B78 +3EE08047 62F79DA4 +1ED500A8 7ED6BA14 +88770004 2C030000 +4182001C 88760058 +2C030003 41820010 +8876005E 8896005F +4800000C 3860FFFF +3880FFFF BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +BA810008 800100B4 +382100B0 7C0803A6 +819F2514 00000000 C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -638,7 +664,7 @@ C216E74C 000000FC #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600726 3D808037 +3860072A 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -656,7 +682,7 @@ B07E0003 38600037 B07E0006 38600038 987E0008 38600050 B07E0009 38600039 -987E000B 38600002 +987E000B 38600006 B07E000C 3860003A 987E000E 3860000C B07E000F 3860003B @@ -2735,15 +2761,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C761B78 38600004 +7C791B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38760000 +7C781B78 38790000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38760000 48000261 +38790000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 diff --git a/Recording/SendGameEnd.asm b/Recording/SendGameEnd.asm index 7835cc44..093b468d 100644 --- a/Recording/SendGameEnd.asm +++ b/Recording/SendGameEnd.asm @@ -80,25 +80,36 @@ StoreLRAStarter: # What this is going to do is add an array of team+placements for each port. # T1P1T2P2T3P3T4P4 T=Team ID, P = Placement PlayerPlacements: + +# initialize match end struct +backup +load REG_MatchEndStruct,0x80479da4 +mr r3, REG_MatchEndStruct +branchl r12, 0x80166378 #(create match end data)(r3 = 80479da4) +restore PlayerPlacementsLoopInit: -li PlayerSlot, 1 # Start at slot 1 +li REG_PlayerSlot, 0 # Start at slot 1 PlayerPlacementsLoopStart: # find player placement for this slot - mr r3, PlayerSlot + mr r3, REG_PlayerSlot bl FN_GetPlayerPlacement + + cmpwi r3, -1 + beq PlayerPlacementsLoopSkipFormat # format data slwi r4, r4, 0x4 # move team to the left => TX add r3, r4, r3 # add team and placement together => TP + PlayerPlacementsLoopSkipFormat: # write placement result to buffer - addi r4, PlayerSlot, 0x2 # offset from LRAStarter based on current slot + addi r4, REG_PlayerSlot, 0x3 # offset from LRAStarter based on current slot stbx r3, r4, REG_Buffer # Write placement to buffer PlayerPlacementsLoopCheck: - addi PlayerSlot,PlayerSlot,0x1 - cmpwi r3,4 + addi REG_PlayerSlot,REG_PlayerSlot,0x1 + cmpwi REG_PlayerSlot,3 ble PlayerPlacementsLoopStart PlayerPlacementsLoopEnd: PlayerPlacementsEnd: @@ -137,14 +148,14 @@ add REG_MatchEndPlayerStruct,REG_MatchEndPlayerStruct,REG_MatchEndStruct #Check if last game data exists (is this necessary?) lbz r3,0x4(REG_MatchEndStruct) cmpwi r3,0x0 - beq FN_GetPlayerPlacementReturn + beq FN_GetPlayerPlacementPlayerMissing lbz r3,0x58(REG_MatchEndPlayerStruct) cmpwi r3,3 beq FN_GetPlayerPlacementPlayerMissing #Check if player partook in last game - lbz r3,0x5D(REG_MatchEndPlayerStruct) # offset to player standing + lbz r3,0x5E(REG_MatchEndPlayerStruct) # offset to player standing lbz r4,0x5F(REG_MatchEndPlayerStruct) # offset to player team id (if any) b FN_GetPlayerPlacementReturn From 5ccf75500f1cbeb5ce29ae28f6caf01f0a6169d2 Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Tue, 28 Jun 2022 18:11:25 -0400 Subject: [PATCH 091/217] move "determine winner" callback to MajorSceneLoad callback wasnt initialized during unranked matches --- Online/Slippi Online Scene/main.asm | 11 +- Output/Netplay/GALE01r2.ini | 167 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 167 ++++++++++++++-------------- 3 files changed, 175 insertions(+), 170 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 55e072f0..5adbefbd 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -153,6 +153,13 @@ load r4, 0x8045abf0 lbz r3, -0x5108(r13) # player index stb r3, 0x6(r4) +# Set the callback to determine winner at the end of the match +bl GamePrepData_BLRL +mflr r4 +bl SinglesDetermineWinner_BLRL +mflr r3 +stw r3, GPDO_FN_COMPUTE_RANKED_WINNER(r4) + ################################################################################ # Set up Zelda to select Sheik as default ################################################################################ @@ -425,10 +432,6 @@ li r3, 0 stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GAME_PREP_DATA) stb r3, GPDO_COLOR_BAN_ACTIVE(REG_GAME_PREP_DATA) -bl SinglesDetermineWinner_BLRL -mflr r3 -stw r3, GPDO_FN_COMPUTE_RANKED_WINNER(REG_GAME_PREP_DATA) - # Set next scene as game prep load r4, 0x80479d30 li r3, 0x06 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 4eb2e9d6..f1ea8cd0 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4723,18 +4723,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E7 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E8 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 4800026D +6084DC1C 48000281 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 -38600008 480001AD +38600008 480001C1 7C8802A6 4800002D -48000EC8 80830000 +48000ED0 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4744,7 +4744,7 @@ BE810008 3C80803E 7C7F1B78 7C9E2378 3C80803D 6084AD30 48000091 7C6802A6 -90640004 48000115 +90640004 48000129 7C6802A6 90640008 38600001 98640000 3C60803D 6063ACA4 @@ -4765,87 +4765,88 @@ BE810008 3C80803E 90010004 9421FF50 BE810008 3C808045 6084ABF0 886DAEF8 -98640006 3D808000 -618C56B8 7D8903A6 -4E800421 7C741B78 -3D808000 618C5698 -7D8903A6 4E800421 -7C751B78 3AC00000 -48000024 887400DD -2C030012 40820010 -38600013 987400DD -48000014 3AD60001 -3A94001C 7C16A800 -4180FFDC BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 38600012 -3C80803F 60840CC8 -98640001 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 00030000 -480000B9 4800012D -08000000 80497758 -80497758 01030000 -48000245 48000275 -09000000 80480668 -80480668 02030000 -801B1588 4800030D -02000000 80480530 -80479D98 03030000 +98640006 48000159 +7C8802A6 48000B25 +7C6802A6 90640016 +3D808000 618C56B8 +7D8903A6 4E800421 +7C741B78 3D808000 +618C5698 7D8903A6 +4E800421 7C751B78 +3AC00000 48000024 +887400DD 2C030012 +40820010 38600013 +987400DD 48000014 +3AD60001 3A94001C +7C16A800 4180FFDC +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +38600012 3C80803F +60840CC8 98640001 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00030000 480000B9 +4800012D 08000000 +80497758 80497758 +01030000 48000239 +48000269 09000000 +80480668 80480668 +02030000 801B1588 +48000301 02000000 +80480530 80479D98 +03030000 00000000 +00000000 05000000 00000000 00000000 -05000000 00000000 -00000000 04030000 -480005B9 480008F5 -20000000 80490880 -804D68D0 05030000 -48000C09 48000C49 -50000000 48000019 -48000015 FF000000 -4E800021 81940000 -4E800021 00000000 +04030000 480005AD +480008E9 20000000 +80490880 804D68D0 +05030000 48000BFD +48000C3D 50000000 +48000019 48000015 +FF000000 4E800021 +81940000 4E800021 00000000 00000000 00000000 00000000 00000000 00000000 -7C0802A6 90010004 -9421FF50 BE810008 -808D8840 3BE40530 -3D80801A 618C427C -7D8903A6 4E800421 -88BF0002 3880000E -88FF0003 38C00000 -891F0004 895F0006 -39200000 3D80801B -618C06B0 7D8903A6 -4E800421 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7E1B78 3D80801B -618CAAD0 7D8903A6 -4E800421 809E0014 -88840003 2C040002 -40820008 480000E4 -886DAFA0 2C030000 -41820020 2C030001 -41820014 2C030002 -4182006C 2C030003 -41820064 48000090 -4BFFFF09 7F6802A6 -7F63DB78 3880001A -3D808000 618CC160 +00000000 7C0802A6 +90010004 9421FF50 +BE810008 808D8840 +3BE40530 3D80801A +618C427C 7D8903A6 +4E800421 88BF0002 +3880000E 88FF0003 +38C00000 891F0004 +895F0006 39200000 +3D80801B 618C06B0 7D8903A6 4E800421 -38600003 987B0000 -38600001 987B0001 -38600000 987B0005 -987B0013 480008AD -7C6802A6 907B0016 +3D808001 618C74BC +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7E1B78 +3D80801B 618CAAD0 +7D8903A6 4E800421 +809E0014 88840003 +2C040002 40820008 +480000D8 886DAFA0 +2C030000 41820020 +2C030001 41820014 +2C030002 41820060 +2C030003 41820058 +48000084 4BFFFF09 +7F6802A6 7F63DB78 +3880001A 3D808000 +618CC160 7D8903A6 +4E800421 38600003 +987B0000 38600001 +987B0001 38600000 +987B0005 987B0013 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 @@ -4901,10 +4902,10 @@ BE810008 3D80801B 886DAFA0 2C030000 40820108 480006F9 7C7C1B78 2C1C0000 -4080001C 4BFFFD05 +4080001C 4BFFFD11 7CC802A6 88660005 38630001 98660005 -48000068 4BFFFCED +48000068 4BFFFCF9 7F6802A6 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 749877eb..69bff45a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4723,18 +4723,18 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E7 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E8 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E -6084DC1C 4800026D +6084DC1C 48000281 7C6802A6 38630000 90640008 38600000 986DAFA3 986DAFC8 986DAFEC 986DAFE0 -38600008 480001AD +38600008 480001C1 7C8802A6 4800002D -48000EC8 80830000 +48000ED0 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4744,7 +4744,7 @@ BE810008 3C80803E 7C7F1B78 7C9E2378 3C80803D 6084AD30 48000091 7C6802A6 -90640004 48000115 +90640004 48000129 7C6802A6 90640008 38600001 98640000 3C60803D 6063ACA4 @@ -4765,87 +4765,88 @@ BE810008 3C80803E 90010004 9421FF50 BE810008 3C808045 6084ABF0 886DAEF8 -98640006 3D808000 -618C56B8 7D8903A6 -4E800421 7C741B78 -3D808000 618C5698 -7D8903A6 4E800421 -7C751B78 3AC00000 -48000024 887400DD -2C030012 40820010 -38600013 987400DD -48000014 3AD60001 -3A94001C 7C16A800 -4180FFDC BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 38600012 -3C80803F 60840CC8 -98640001 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 00030000 -480000B9 4800012D -08000000 80497758 -80497758 01030000 -48000245 48000275 -09000000 80480668 -80480668 02030000 -801B1588 4800030D -02000000 80480530 -80479D98 03030000 +98640006 48000159 +7C8802A6 48000B25 +7C6802A6 90640016 +3D808000 618C56B8 +7D8903A6 4E800421 +7C741B78 3D808000 +618C5698 7D8903A6 +4E800421 7C751B78 +3AC00000 48000024 +887400DD 2C030012 +40820010 38600013 +987400DD 48000014 +3AD60001 3A94001C +7C16A800 4180FFDC +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +38600012 3C80803F +60840CC8 98640001 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00030000 480000B9 +4800012D 08000000 +80497758 80497758 +01030000 48000239 +48000269 09000000 +80480668 80480668 +02030000 801B1588 +48000301 02000000 +80480530 80479D98 +03030000 00000000 +00000000 05000000 00000000 00000000 -05000000 00000000 -00000000 04030000 -480005B9 480008F5 -20000000 80490880 -804D68D0 05030000 -48000C09 48000C49 -50000000 48000019 -48000015 FF000000 -4E800021 81940000 -4E800021 00000000 +04030000 480005AD +480008E9 20000000 +80490880 804D68D0 +05030000 48000BFD +48000C3D 50000000 +48000019 48000015 +FF000000 4E800021 +81940000 4E800021 00000000 00000000 00000000 00000000 00000000 00000000 -7C0802A6 90010004 -9421FF50 BE810008 -808D8840 3BE40530 -3D80801A 618C427C -7D8903A6 4E800421 -88BF0002 3880000E -88FF0003 38C00000 -891F0004 895F0006 -39200000 3D80801B -618C06B0 7D8903A6 -4E800421 3D808001 -618C74BC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7E1B78 3D80801B -618CAAD0 7D8903A6 -4E800421 809E0014 -88840003 2C040002 -40820008 480000E4 -886DAFA0 2C030000 -41820020 2C030001 -41820014 2C030002 -4182006C 2C030003 -41820064 48000090 -4BFFFF09 7F6802A6 -7F63DB78 3880001A -3D808000 618CC160 +00000000 7C0802A6 +90010004 9421FF50 +BE810008 808D8840 +3BE40530 3D80801A +618C427C 7D8903A6 +4E800421 88BF0002 +3880000E 88FF0003 +38C00000 891F0004 +895F0006 39200000 +3D80801B 618C06B0 7D8903A6 4E800421 -38600003 987B0000 -38600001 987B0001 -38600000 987B0005 -987B0013 480008AD -7C6802A6 907B0016 +3D808001 618C74BC +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7E1B78 +3D80801B 618CAAD0 +7D8903A6 4E800421 +809E0014 88840003 +2C040002 40820008 +480000D8 886DAFA0 +2C030000 41820020 +2C030001 41820014 +2C030002 41820060 +2C030003 41820058 +48000084 4BFFFF09 +7F6802A6 7F63DB78 +3880001A 3D808000 +618CC160 7D8903A6 +4E800421 38600003 +987B0000 38600001 +987B0001 38600000 +987B0005 987B0013 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 @@ -4901,10 +4902,10 @@ BE810008 3D80801B 886DAFA0 2C030000 40820108 480006F9 7C7C1B78 2C1C0000 -4080001C 4BFFFD05 +4080001C 4BFFFD11 7CC802A6 88660005 38630001 98660005 -48000068 4BFFFCED +48000068 4BFFFCF9 7F6802A6 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 From f2e5965574bc3477c7b890bdc7d14806f72fdd57 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 3 Jul 2022 22:17:55 -0400 Subject: [PATCH 092/217] add debugging code that adds ~134 alarms per frame --- Debugging/CreateFrequentAlarm.asm | 81 +++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Debugging/CreateFrequentAlarm.asm diff --git a/Debugging/CreateFrequentAlarm.asm b/Debugging/CreateFrequentAlarm.asm new file mode 100644 index 00000000..7804cf2d --- /dev/null +++ b/Debugging/CreateFrequentAlarm.asm @@ -0,0 +1,81 @@ +################################################################################ +# Address: 0x80019ba4 +################################################################################ + +.include "Common/Common.s" + +b CODE_START + +STATIC_MEMORY_TABLE_BLRL: +blrl +.long 5000 # Period of the alarm +.fill 0x28, 1, 0 # Alarm struct is 0x28 long (I think) + +ALARM_HANDLER: +blrl +# Backup +mflr r0 +stw r0, 0x4(r1) +stwu r1,-0xB0(r1) # make space for 12 registers +stmw r14,0x8(r1) + +# Overwrite volatile registers +li r3, 0xFF +li r4, 0xFF +li r5, 0xFF +li r6, 0xFF +li r7, 0xFF +li r8, 0xFF +li r9, 0xFF +li r10, 0xFF +li r11, 0xFF +li r12, 0xFF + +# Overwrite non-volatile registers +li r14, 0xFF +li r15, 0xFF +li r16, 0xFF +li r17, 0xFF +li r18, 0xFF +li r19, 0xFF +li r20, 0xFF +li r21, 0xFF +li r22, 0xFF +li r23, 0xFF +li r24, 0xFF +li r25, 0xFF +li r26, 0xFF +li r27, 0xFF +li r28, 0xFF +li r29, 0xFF +li r30, 0xFF +li r31, 0xFF + +# Restore +lmw r14,0x8(r1) +lwz r0, 0xB4(r1) +addi r1,r1,0xB0 # release the space +mtlr r0 +blr + +CODE_START: + +bl STATIC_MEMORY_TABLE_BLRL +mflr r3 +addi r3, r3, 0x4 +branchl r12, 0x8034376c # OSCreateAlarm + +bl STATIC_MEMORY_TABLE_BLRL +mflr r3 +addi r3, r3, 0x4 +li r4, 0 +li r5, 0 +lwz r6, -0x4(r3) +li r7, 0 +lwz r8, -0x4(r3) +bl ALARM_HANDLER +mflr r9 +branchl r12, 0x80343a30 # OSSetPeriodicAlarm + +# replaced code line +lmw r27, 0x0034 (sp) \ No newline at end of file From e92038891dcd1d514283c0861d951d587d9c4232 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 3 Jul 2022 22:20:33 -0400 Subject: [PATCH 093/217] update codeset --- Output/Console/GALE01r2.ini | 14 +++++++------- Output/Console/g_core.bin | Bin 5184 -> 5184 bytes Output/Console/g_core_porta.bin | Bin 5184 -> 5184 bytes 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 15e0082f..55ded684 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -67,11 +67,11 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 3C608048 80639D30 5463443E 2C030208 806DB654 4082003C -80ADB61C 8885000D +80ADB61C 88850010 2C040000 4082002C -8885000C 2C040000 -40820020 80850904 -3884FF85 80E5090D +8885000F 2C040000 +40820020 80850907 +3884FF85 80E50910 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -97,7 +97,7 @@ C216D884 0000001C #Recording/SendGameEnd.asm 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 -806DB61C 8863000C +806DB61C 8863000F 2C030000 41820050 83B80000 38600039 987D0000 9B5D0001 @@ -233,7 +233,7 @@ B07E0015 3860003D 4E800421 3A940001 2C140004 4180FFA0 3A800000 3ABF0060 -3AFE023E 3B5900EF +3AFE023E 3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 @@ -248,7 +248,7 @@ B07E0015 3860003D 3A940001 2C140004 4180FFA0 3A800000 3ABF0060 3AFE0266 -3B590117 1C74001D +3B5900F7 1C74001D 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 40820028 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 30494c2a9b01e3361c6659c69da05ae5b40c0e78..f92b28af0d6528001061b72171e77e84add88a91 100644 GIT binary patch delta 74 zcmX@0aX@3kaz;e~9To-#hb9J{j#dVKC|jYSm6P3~<$r6#Q%-@&Cm7E&@^7BOWY5BS aUZ#YBYjOa)^yKes!AuO_H~X-E;Q;_3EEbsn delta 74 zcmX@0aX@3kaz;g79To-#hb9J{j#dU9C|jYSm6OGy<$r6#Q%>H=Cm7E&@@$^LWY5C- aUZ#YBYjOa)^yKes!Ay+en|;{7@BjcB^A*bg diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index e2644325660221dd2cf322de6c7e7aaf249eb563..5d0c76f3a513cc06377a23e88fed700b3cefb722 100644 GIT binary patch delta 74 zcmX@0aX@3kaz;e~9To-#hb9J{j#dVKC|jYSm6P3~<$r6#Q%-@&Cm7E&@^7BOWY5BS aUZ#YBYjOa)^yKes!AuO_H~X-E;Q;_3EEbsn delta 74 zcmX@0aX@3kaz;g79To-#hb9J{j#dU9C|jYSm6OGy<$r6#Q%>H=Cm7E&@@$^LWY5C- aUZ#YBYjOa)^yKes!Ay+en|;{7@BjcB^A*bg From 50a66b4b92161c418a697e41a3c8d200218c3e26 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 13 Jul 2022 12:27:59 -0400 Subject: [PATCH 094/217] add text outputs for console codes --- Output/Console/g_gameplay_both.txt | 149 ++++++++++ Output/Console/g_gameplay_lgl.txt | 112 ++++++++ Output/Console/g_gameplay_wobbling.txt | 36 +++ Output/Console/g_lag_pd.txt | 8 + Output/Console/g_lag_pdhalfvb.txt | 62 ++++ Output/Console/g_mods_friendlies.txt | 333 ++++++++++++++++++++++ Output/Console/g_mods_stealth.txt | 172 +++++++++++ Output/Console/g_mods_tournament.txt | 263 +++++++++++++++++ Output/Console/g_pal.txt | 259 +++++++++++++++++ Output/Console/g_safety.txt | 13 + Output/Console/g_screen_wide.txt | 27 ++ Output/Console/g_screen_wide_shutters.txt | 58 ++++ Output/Console/g_stages_all.txt | 30 ++ Output/Console/g_stages_stadium.txt | 25 ++ Output/Console/g_ucf.txt | 135 +++++++++ Output/Console/g_ucf_stealth.txt | 108 +++++++ console_PAL.json | 3 + console_UCF.json | 3 + console_UCF_stealth.json | 3 + console_gameplay_both.json | 3 + console_gameplay_lgl.json | 3 + console_gameplay_wobbling.json | 3 + console_lag_pd.json | 3 + console_lag_pdhalfvb.json | 3 + console_mods_friendlies.json | 3 + console_mods_stealth.json | 3 + console_mods_tournament.json | 3 + console_safety.json | 3 + console_screen_wide.json | 3 + console_screen_wide_shutters.json | 3 + console_stages_all.json | 3 + console_stages_stadium.json | 3 + 32 files changed, 1838 insertions(+) create mode 100644 Output/Console/g_gameplay_both.txt create mode 100644 Output/Console/g_gameplay_lgl.txt create mode 100644 Output/Console/g_gameplay_wobbling.txt create mode 100644 Output/Console/g_lag_pd.txt create mode 100644 Output/Console/g_lag_pdhalfvb.txt create mode 100644 Output/Console/g_mods_friendlies.txt create mode 100644 Output/Console/g_mods_stealth.txt create mode 100644 Output/Console/g_mods_tournament.txt create mode 100644 Output/Console/g_pal.txt create mode 100644 Output/Console/g_safety.txt create mode 100644 Output/Console/g_screen_wide.txt create mode 100644 Output/Console/g_screen_wide_shutters.txt create mode 100644 Output/Console/g_stages_all.txt create mode 100644 Output/Console/g_stages_stadium.txt create mode 100644 Output/Console/g_ucf.txt create mode 100644 Output/Console/g_ucf_stealth.txt diff --git a/Output/Console/g_gameplay_both.txt b/Output/Console/g_gameplay_both.txt new file mode 100644 index 00000000..431cfb5a --- /dev/null +++ b/Output/Console/g_gameplay_both.txt @@ -0,0 +1,149 @@ +$Ledge Grab Limit [UnclePunch] +*Enforces ledge grab limit +C21A5E90 00000002 #Ledge Grab Limit +386000B4 907F0010 +7FE3FB78 00000000 +0416EBD8 60000000 +041B0498 60000000 +041B05CC 38000000 +041B05C8 38C00001 +C2165C48 00000066 +7C0802A6 90010004 +9421FF00 BC610008 +7C7F1B78 887F0004 +2C030001 408202F8 +3BC10080 3BA00000 +38600000 907E0000 +907E0004 1C7D00A8 +7C83FA14 88640058 +2C030003 41820028 +8864005D 2C030000 +4082001C 887E0000 +38630001 987E0000 +389E0001 3863FFFF +7FA321AE 3BBD0001 +2C1D0006 4180FFC0 +887E0000 2C030001 +40810118 3BA00000 +387E0001 7C63E8AE +3D808003 618C42B4 +7D8903A6 4E800421 +7C7C1B78 3B600000 +7C1BE800 4182002C +387E0001 7C63D8AE +3D808003 618C42B4 +7D8903A6 4E800421 +7C03E000 4080000C +7F7DDB78 4BFFFFB4 +3B7B0001 887E0000 +7C1B1800 4180FFC4 +4800000C 3BBD0001 +4BFFFF98 3B600000 +387E0001 7C83D8AE +1C6400A8 7C63FA14 +38BE0001 7CA5E8AE +7C042800 4182000C +38800001 48000008 +38800000 9883005D +9883005E 3B7B0001 +887E0000 7C1B1800 +4180FFC0 3B600000 +387E0001 7F43D8AE +387E0001 7C63E8AE +7C1A1800 41820034 +7F43D378 3D808003 +618C42B4 7D8903A6 +4E800421 7C03E000 +40820018 1C7A00A8 +7C63FA14 38800000 +9883005D 9883005E +3B7B0001 887E0000 +7C1B1800 4180FFAC +807F0008 3880003C +7C6323D6 7C8323D6 +38600000 3D808032 +618C2DA0 7D8903A6 +4E800421 48000151 +7C6802A6 C0430000 +EC2100B2 FC20081E +D8210080 83A10084 +3B800000 3B600000 +1C7C00A8 7C83FA14 +88640058 2C030003 +41820030 8864005D +2C030000 40820024 +7F83E378 3D808004 +618C0AF0 7D8903A6 +4E800421 7C03E800 +40810008 3B7B0001 +3B9C0001 2C1C0006 +4180FFB8 2C1B0001 +418100E4 2C1B0000 +418200DC 3B800000 +1C7C00A8 7C83FA14 +88640058 2C030003 +4182004C 8864005D +2C030000 41820010 +2C030001 41820008 +48000034 7F83E378 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C03E800 41810018 +1C7C00A8 7C83FA14 +38600000 9864005D +9864005E 3B9C0001 +2C1C0006 4180FF9C +3B800000 1C7C00A8 +7C83FA14 88640058 +2C030003 41820040 +8864005D 2C030000 +40820034 7F83E378 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C03E800 40810018 +1C7C00A8 7C83FA14 +38600001 9864005D +9864005E 3B9C0001 +2C1C0006 4180FFA8 +4800000C 4E800021 +40B6DABA B8610008 +80010104 38210100 +7C0803A6 8803000F +60000000 00000000 + +$Disable Wobbling [UnclePunch] +*Break out of grab after three Nana hits +C20DA9DC 00000003 #Disable wobbling +38600000 987C2350 +3860FFFF B07C2352 +7F43D378 00000000 +C208F090 0000001D +807B0010 2C0300DF +418000D4 2C0300E4 +418100CC 807B1A58 +2C030000 418200C0 +8063002C 88832222 +5484077B 418200B0 +8863000C 38800001 +3D808003 618C418C +7D8903A6 4E800421 +2C030000 41820090 +809B1868 7C032000 +41820034 A0A40000 +2C050006 40820078 +80A4002C 80850518 +7C032000 40820068 +A0650DA8 A09B2352 +7C032000 41820058 +48000018 80A3002C +A0652088 A09B2352 +7C032000 41820040 +B07B2352 887B2350 +38630001 987B2350 +2C030003 41800028 +807B1A58 3D80800D +618CA698 7D8903A6 +4E800421 3D808008 +618CF0C8 7D8903A6 +4E800420 801B0010 +60000000 00000000 diff --git a/Output/Console/g_gameplay_lgl.txt b/Output/Console/g_gameplay_lgl.txt new file mode 100644 index 00000000..ff57b198 --- /dev/null +++ b/Output/Console/g_gameplay_lgl.txt @@ -0,0 +1,112 @@ +$Ledge Grab Limit [UnclePunch] +*Enforces ledge grab limit +C21A5E90 00000002 #Ledge Grab Limit +386000B4 907F0010 +7FE3FB78 00000000 +0416EBD8 60000000 +041B0498 60000000 +041B05CC 38000000 +041B05C8 38C00001 +C2165C48 00000066 +7C0802A6 90010004 +9421FF00 BC610008 +7C7F1B78 887F0004 +2C030001 408202F8 +3BC10080 3BA00000 +38600000 907E0000 +907E0004 1C7D00A8 +7C83FA14 88640058 +2C030003 41820028 +8864005D 2C030000 +4082001C 887E0000 +38630001 987E0000 +389E0001 3863FFFF +7FA321AE 3BBD0001 +2C1D0006 4180FFC0 +887E0000 2C030001 +40810118 3BA00000 +387E0001 7C63E8AE +3D808003 618C42B4 +7D8903A6 4E800421 +7C7C1B78 3B600000 +7C1BE800 4182002C +387E0001 7C63D8AE +3D808003 618C42B4 +7D8903A6 4E800421 +7C03E000 4080000C +7F7DDB78 4BFFFFB4 +3B7B0001 887E0000 +7C1B1800 4180FFC4 +4800000C 3BBD0001 +4BFFFF98 3B600000 +387E0001 7C83D8AE +1C6400A8 7C63FA14 +38BE0001 7CA5E8AE +7C042800 4182000C +38800001 48000008 +38800000 9883005D +9883005E 3B7B0001 +887E0000 7C1B1800 +4180FFC0 3B600000 +387E0001 7F43D8AE +387E0001 7C63E8AE +7C1A1800 41820034 +7F43D378 3D808003 +618C42B4 7D8903A6 +4E800421 7C03E000 +40820018 1C7A00A8 +7C63FA14 38800000 +9883005D 9883005E +3B7B0001 887E0000 +7C1B1800 4180FFAC +807F0008 3880003C +7C6323D6 7C8323D6 +38600000 3D808032 +618C2DA0 7D8903A6 +4E800421 48000151 +7C6802A6 C0430000 +EC2100B2 FC20081E +D8210080 83A10084 +3B800000 3B600000 +1C7C00A8 7C83FA14 +88640058 2C030003 +41820030 8864005D +2C030000 40820024 +7F83E378 3D808004 +618C0AF0 7D8903A6 +4E800421 7C03E800 +40810008 3B7B0001 +3B9C0001 2C1C0006 +4180FFB8 2C1B0001 +418100E4 2C1B0000 +418200DC 3B800000 +1C7C00A8 7C83FA14 +88640058 2C030003 +4182004C 8864005D +2C030000 41820010 +2C030001 41820008 +48000034 7F83E378 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C03E800 41810018 +1C7C00A8 7C83FA14 +38600000 9864005D +9864005E 3B9C0001 +2C1C0006 4180FF9C +3B800000 1C7C00A8 +7C83FA14 88640058 +2C030003 41820040 +8864005D 2C030000 +40820034 7F83E378 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C03E800 40810018 +1C7C00A8 7C83FA14 +38600001 9864005D +9864005E 3B9C0001 +2C1C0006 4180FFA8 +4800000C 4E800021 +40B6DABA B8610008 +80010104 38210100 +7C0803A6 8803000F +60000000 00000000 diff --git a/Output/Console/g_gameplay_wobbling.txt b/Output/Console/g_gameplay_wobbling.txt new file mode 100644 index 00000000..fd54f942 --- /dev/null +++ b/Output/Console/g_gameplay_wobbling.txt @@ -0,0 +1,36 @@ +$Disable Wobbling [UnclePunch] +*Break out of grab after three Nana hits +C20DA9DC 00000003 #Disable wobbling +38600000 987C2350 +3860FFFF B07C2352 +7F43D378 00000000 +C208F090 0000001D +807B0010 2C0300DF +418000D4 2C0300E4 +418100CC 807B1A58 +2C030000 418200C0 +8063002C 88832222 +5484077B 418200B0 +8863000C 38800001 +3D808003 618C418C +7D8903A6 4E800421 +2C030000 41820090 +809B1868 7C032000 +41820034 A0A40000 +2C050006 40820078 +80A4002C 80850518 +7C032000 40820068 +A0650DA8 A09B2352 +7C032000 41820058 +48000018 80A3002C +A0652088 A09B2352 +7C032000 41820040 +B07B2352 887B2350 +38630001 987B2350 +2C030003 41800028 +807B1A58 3D80800D +618CA698 7D8903A6 +4E800421 3D808008 +618CF0C8 7D8903A6 +4E800420 801B0010 +60000000 00000000 diff --git a/Output/Console/g_lag_pd.txt b/Output/Console/g_lag_pd.txt new file mode 100644 index 00000000..79cfd3ef --- /dev/null +++ b/Output/Console/g_lag_pd.txt @@ -0,0 +1,8 @@ +$Polling Drift Fix [Dan Salvato] +*Removes polling drift phenomenon causing variable input lag +C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] +901C0000 3D808001 +618C95FC 7D8903A6 +4E800421 00000000 +041A4DB4 60000000 +04019860 4BFFFD9D diff --git a/Output/Console/g_lag_pdhalfvb.txt b/Output/Console/g_lag_pdhalfvb.txt new file mode 100644 index 00000000..f7b348c3 --- /dev/null +++ b/Output/Console/g_lag_pdhalfvb.txt @@ -0,0 +1,62 @@ +$Polling Drift + Half Visual Buffer Fixes [tauKhan, UnclePunch] +*Removes polling drift phenomenon causing variable input lag +*Prevents visual buffer from accruing 1/2 frame of lag +C21A4D98 00000007 #Polling Drift Fix + Half Visual Buffer [tauKhan] +8062A6F4 2C030001 +40820028 8062A6F0 +2C030002 4182001C +386DBD88 3D808034 +618CBA14 7D8803A6 +4E800021 4BFFFFD4 +60000000 00000000 +C21A5050 0000000B +8062A6F4 2C030001 +40820044 8062A6F0 +2C030002 40820038 +4800001C 8062A6F0 +2C030002 41820028 +8062A6F4 2C030001 +4082001C 386DBD88 +3D808034 618CBA14 +7D8803A6 4E800021 +4BFFFFD4 38600000 +60000000 00000000 +C21A4BEC 00000015 +4800007D 7C0802A6 +90010004 9421FFF8 +386DBD88 8082A6F0 +38840001 9082A6F0 +2C040001 40820014 +3D808001 618C95FC +7D8803A6 4E800021 +8082A6F0 2C040002 +40820014 3D808034 +618CBB00 7D8803A6 +4E800021 38600001 +9062A6F4 38604000 +38635624 3C808043 +B0642A42 8001000C +38210008 7C0803A6 +4E800020 7C6802A6 +3D808034 618CE894 +7D8803A6 4E800021 +3C608048 3C80801A +380446F4 38800000 +60000000 00000000 +04158268 C82280A0 +C234EB60 00000007 +8062A6F0 2C030001 +4080001C 38600000 +9062A6F4 3C608043 +38804000 388455FC +B0832A42 38600000 +9062A6F0 386DBD88 +60000000 00000000 +04397878 4800020C +C21A4570 00000006 #External/Lag Reduction/Force HD/480pDeflickerOff.asm +3C608046 6063B0F0 +38800001 90830008 +38600000 3D808015 +618CF588 7D8903A6 +4E800421 38600000 +60000000 00000000 diff --git a/Output/Console/g_mods_friendlies.txt b/Output/Console/g_mods_friendlies.txt new file mode 100644 index 00000000..d9cbcf8f --- /dev/null +++ b/Output/Console/g_mods_friendlies.txt @@ -0,0 +1,333 @@ +$Full friendlies codes [Achilles, UnclePunch] +*Friendlies mods to improve fair competition and speed up sessions +C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808016 618CB41C +7D8903A6 4E800421 +2C030000 40820480 +2C1C0005 40800478 +3C608048 80639D30 +5463443E 2C03021C +41820464 3C608048 +80639D30 5463443E +2C03010F 41820450 +887F24D0 2C030001 +41820054 3B200000 +3B400000 7F43D378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820010 +7C1CD000 41820014 +3B390001 3B5A0001 +2C1A0004 4081FFD0 +7F83E378 7F24CB78 +88BF24D0 48000115 +480003F4 3B400000 +3B000000 3B200000 +7F23CB78 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820024 7F23CB78 +3D808003 618C3370 +7D8903A6 4E800421 +7C03D000 40820008 +3B180001 3B390001 +2C190004 4180FFBC +2C180001 41820398 +2C180002 41810390 +3B5A0001 2C1A0003 +4180FF98 3B200000 +3B410080 3B000000 +3AC00000 3AE00000 +7EE3BB78 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820028 7EE3BB78 +3D808003 618C3370 +7D8903A6 4E800421 +7C03C800 4082000C +7EF8D1AE 3B180001 +3AF70001 2C170004 +4180FFB8 3B390001 +2C190003 4180FFA4 +3B200000 7C79D0AE +7C03E000 41820010 +3B390001 2C190004 +4180FFEC 7F83E378 +7F24CB78 88BF24D0 +48000009 480002E8 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 48000121 +7F8802A6 80CD9348 +38A00000 807C0000 +2C03FFFF 4182005C +7C033000 4182000C +3B9C0044 4BFFFFE8 +3B9C0004 1C7D0020 +7F9C1A14 1C7E0008 +7F9C1A14 38810080 +C03C0000 D0240000 +C03C0004 D0240004 +38600000 90640008 +7FE3FB78 3D808003 +618C2768 7D8903A6 +4E800421 48000054 +2C1D0001 4182000C +7FC3F378 48000014 +4800023D 7C6802A6 +7C63F0AE 48000004 +38810080 3D808022 +618C4E64 7D8903A6 +4E800421 7FE3FB78 +38810080 3D808003 +618C2768 7D8903A6 +4E800421 48000004 +7FE3FB78 38810080 +3D808003 618C26CC +7D8903A6 4E800421 +C0210080 C002A8E8 +FC010040 4081000C +C022A8F8 48000008 +C022A8CC 7FE3FB78 +3D808003 618C3094 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00000020 C2700000 +41200000 42700000 +41200000 C1A00000 +41200000 41A00000 +41200000 C2700000 +41200000 C1A00000 +41200000 42700000 +41200000 41A00000 +41200000 0000001F +C21B3333 420CCCCD +421B3333 420CCCCD +00000000 41000000 +00000000 4279999A +C21B3333 420CCCCD +C21B3333 40A00000 +421B3333 420CCCCD +421B3333 40A00000 +00000008 C2280000 +41D4CCCD 42280000 +41E00000 00000000 +423B999A 00000000 +409CCCCD C2280000 +41D4CCCD C2280000 +40A00000 42280000 +41E00000 42280000 +40A00000 0000001C +C23A6666 4214CCCD +423D999A 42153333 +00000000 40E00000 +00000000 426A0000 +C23A6666 4214CCCD +C23A6666 40A00000 +423D999A 42153333 +423D999A 40A00000 +00000002 C2250000 +41A80000 42250000 +41D80000 00000000 +40A80000 00000000 +42400000 C2250000 +41A80000 C2250000 +40A00000 42250000 +41D80000 42250000 +40A00000 00000003 +C2200000 42000000 +42200000 42000000 +428C0000 40E00000 +C28C0000 40E00000 +C2200000 42000000 +C2200000 40A00000 +42200000 42000000 +42200000 40A00000 +FFFFFFFF 4E800021 +00030102 BA810008 +800100B4 382100B0 +7C0803A6 881F24D0 +60000000 00000000 +C22FCCD8 0000000D #External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm +3C608046 6063B6A0 +886324D0 2C030001 +41820050 887F0000 +3D808003 618C4110 +7D8903A6 4E800421 +8083002C 80640004 +2C030010 40820010 +80640010 2C0300EC +41820010 8864221E +54630631 41820014 +3D80802F 618CCCC8 +7D8903A6 4E800420 +281E0000 00000000 +04261B1C 60000000 #External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm +04261B30 60000000 #External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm +042605FC 38C00003 #External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm +044DC47C C0200000 #External/CSS Player Hands Default to HMN Button/Change Default Hand Position.asm +C2261A6C 00000005 #External/CSS Player Hands Default to HMN Button/Fix A Button Buffer When Exiting Name Entry.asm +88BF0005 2C050002 +40820014 3D808026 +618C1B6C 7D8903A6 +4E800420 1C130024 +60000000 00000000 +C2266CE0 0000000C #External/Disable FoD During Doubles/Disable FoD During Doubles.asm +80CD8840 38C61CB0 +80A60018 3C60E700 +606300B0 7C632A79 +41820010 2C030020 +41820008 48000034 +806DB610 88630018 +2C030001 41820014 +38600001 50652EB4 +90A60018 48000014 +38600000 50652EB4 +90A60018 48000004 +38600001 00000000 +C22608D8 0000001D #External/Toggle Rumble From CSS/Toggle Rumble From CSS.asm +887F0007 2C030000 +40820090 889F0004 +7C972378 800D8840 +7C602214 88A31CC0 +57800739 40820010 +5780077B 4082003C +480000AC 28050001 +418200A4 7EE3BB78 +38800000 38A0000E +38C00000 38ED9950 +3D808037 618C8430 +7D8903A6 4E800421 +38800001 48000010 +28050000 41820070 +38800000 7EE3BB78 +3D808015 618CED4C +7D8903A6 4E800421 +38800001 989F0007 +3C80C040 909F0014 +C03F0014 C0428E0C +C01F000C EC01002A +D01F000C FC600850 +FC030840 41810008 +EC6300B2 D07F0014 +4180001C C0828258 +FC032040 41810010 +38800000 909F0014 +989F0007 889F0004 +60000000 00000000 +C2259B84 00000008 #External/Stage Striking/Random_Stage_Fix.asm +5460063F 41820038 +1C9E001C 38040008 +7C1F00AE 2C000000 +40820024 3800001D +7C0903A6 38600000 +389F0000 90640004 +3884001C 4200FFF8 +2C030000 00000000 +C2259C40 0000001F #External/Stage Striking/Stage_Striking.asm +39600000 3D408045 +614AC388 38600000 +3C80803F 608406D0 +28000013 4082000C +39600001 48000010 +28000000 408200C0 +48000034 2C03001D +408000B4 2C0B0002 +4182004C 1CA3001C +7CA52214 88C5000A +80AA0000 7CA53430 +54A507FF 40820088 +4800002C 806DB600 +5460056B 4082001C +546006F7 40820008 +48000074 39600002 +38600000 4BFFFFB0 +886DB60E 2C03001D +4080005C 1CA3001C +7CA52214 38C00000 +2C0B0002 40820008 +38C00002 98C50008 +80A50000 2C030016 +41800008 80A50010 +3CC04400 2C0B0002 +40820008 38C00000 +90C50038 38C0001E +98CDB60E 2C0B0000 +4182000C 38630001 +4BFFFF4C 28000000 +60000000 00000000 +C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm +3BA00000 7FA3EB78 +3D80801A 618C3680 +7D8903A6 4E800421 +548005EF 4182000C +548005AD 40820014 +3BBD0001 2C1D0004 +4180FFD4 4800000C +3B600002 48000008 +3B600000 3BA00000 +60000000 00000000 +C2265220 00000028 #Common/Winners Names are Gold on CSS/Change Name Color.asm +7FA3EB78 48000039 +2C030000 4182012C +807B0000 38800000 +3CA0FFD7 60A50000 +90A10100 38A10100 +3D80803A 618C74F0 +7D8903A6 4E800421 +48000100 7C0802A6 +90010004 9421FF50 +BE810008 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +880DB655 00000000 +C216EA30 00000004 #Common/Winners Names are Gold on CSS/Remember Who LRA Started.asm +981E0010 2C000007 +40820014 3C808046 +6084B6A0 88840001 +989E000C 00000000 +C216EBAC 0000000C #Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm +3C608047 60639D30 +88630000 2C030002 +40820040 3C60803D +6063DA00 3D80801A +618C5F00 7D8903A6 +4E800421 3C60803D +6063DA00 808D8840 +38840590 38A00001 +3D80801A 618C5F64 +7D8903A6 4E800421 +8001001C 83E10014 +60000000 00000000 diff --git a/Output/Console/g_mods_stealth.txt b/Output/Console/g_mods_stealth.txt new file mode 100644 index 00000000..fc4aa34e --- /dev/null +++ b/Output/Console/g_mods_stealth.txt @@ -0,0 +1,172 @@ +$Stealth tournament codes [Achilles, UnclePunch] +*Tournament mods to improve fair competition +C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808016 618CB41C +7D8903A6 4E800421 +2C030000 40820480 +2C1C0005 40800478 +3C608048 80639D30 +5463443E 2C03021C +41820464 3C608048 +80639D30 5463443E +2C03010F 41820450 +887F24D0 2C030001 +41820054 3B200000 +3B400000 7F43D378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820010 +7C1CD000 41820014 +3B390001 3B5A0001 +2C1A0004 4081FFD0 +7F83E378 7F24CB78 +88BF24D0 48000115 +480003F4 3B400000 +3B000000 3B200000 +7F23CB78 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820024 7F23CB78 +3D808003 618C3370 +7D8903A6 4E800421 +7C03D000 40820008 +3B180001 3B390001 +2C190004 4180FFBC +2C180001 41820398 +2C180002 41810390 +3B5A0001 2C1A0003 +4180FF98 3B200000 +3B410080 3B000000 +3AC00000 3AE00000 +7EE3BB78 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820028 7EE3BB78 +3D808003 618C3370 +7D8903A6 4E800421 +7C03C800 4082000C +7EF8D1AE 3B180001 +3AF70001 2C170004 +4180FFB8 3B390001 +2C190003 4180FFA4 +3B200000 7C79D0AE +7C03E000 41820010 +3B390001 2C190004 +4180FFEC 7F83E378 +7F24CB78 88BF24D0 +48000009 480002E8 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 48000121 +7F8802A6 80CD9348 +38A00000 807C0000 +2C03FFFF 4182005C +7C033000 4182000C +3B9C0044 4BFFFFE8 +3B9C0004 1C7D0020 +7F9C1A14 1C7E0008 +7F9C1A14 38810080 +C03C0000 D0240000 +C03C0004 D0240004 +38600000 90640008 +7FE3FB78 3D808003 +618C2768 7D8903A6 +4E800421 48000054 +2C1D0001 4182000C +7FC3F378 48000014 +4800023D 7C6802A6 +7C63F0AE 48000004 +38810080 3D808022 +618C4E64 7D8903A6 +4E800421 7FE3FB78 +38810080 3D808003 +618C2768 7D8903A6 +4E800421 48000004 +7FE3FB78 38810080 +3D808003 618C26CC +7D8903A6 4E800421 +C0210080 C002A8E8 +FC010040 4081000C +C022A8F8 48000008 +C022A8CC 7FE3FB78 +3D808003 618C3094 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00000020 C2700000 +41200000 42700000 +41200000 C1A00000 +41200000 41A00000 +41200000 C2700000 +41200000 C1A00000 +41200000 42700000 +41200000 41A00000 +41200000 0000001F +C21B3333 420CCCCD +421B3333 420CCCCD +00000000 41000000 +00000000 4279999A +C21B3333 420CCCCD +C21B3333 40A00000 +421B3333 420CCCCD +421B3333 40A00000 +00000008 C2280000 +41D4CCCD 42280000 +41E00000 00000000 +423B999A 00000000 +409CCCCD C2280000 +41D4CCCD C2280000 +40A00000 42280000 +41E00000 42280000 +40A00000 0000001C +C23A6666 4214CCCD +423D999A 42153333 +00000000 40E00000 +00000000 426A0000 +C23A6666 4214CCCD +C23A6666 40A00000 +423D999A 42153333 +423D999A 40A00000 +00000002 C2250000 +41A80000 42250000 +41D80000 00000000 +40A80000 00000000 +42400000 C2250000 +41A80000 C2250000 +40A00000 42250000 +41D80000 42250000 +40A00000 00000003 +C2200000 42000000 +42200000 42000000 +428C0000 40E00000 +C28C0000 40E00000 +C2200000 42000000 +C2200000 40A00000 +42200000 42000000 +42200000 40A00000 +FFFFFFFF 4E800021 +00030102 BA810008 +800100B4 382100B0 +7C0803A6 881F24D0 +60000000 00000000 +C22FCCD8 0000000D #External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm +3C608046 6063B6A0 +886324D0 2C030001 +41820050 887F0000 +3D808003 618C4110 +7D8903A6 4E800421 +8083002C 80640004 +2C030010 40820010 +80640010 2C0300EC +41820010 8864221E +54630631 41820014 +3D80802F 618CCCC8 +7D8903A6 4E800420 +281E0000 00000000 +04261B1C 60000000 #External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm +04261B30 60000000 #External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm +042605FC 38C00003 #External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm diff --git a/Output/Console/g_mods_tournament.txt b/Output/Console/g_mods_tournament.txt new file mode 100644 index 00000000..49ae5a64 --- /dev/null +++ b/Output/Console/g_mods_tournament.txt @@ -0,0 +1,263 @@ +$Full tournament codes [Achilles, UnclePunch] +*Tournament mods to improve fair competition +C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm +7C0802A6 90010004 +9421FF50 BE810008 +3D808016 618CB41C +7D8903A6 4E800421 +2C030000 40820480 +2C1C0005 40800478 +3C608048 80639D30 +5463443E 2C03021C +41820464 3C608048 +80639D30 5463443E +2C03010F 41820450 +887F24D0 2C030001 +41820054 3B200000 +3B400000 7F43D378 +3D808003 618C241C +7D8903A6 4E800421 +2C030003 41820010 +7C1CD000 41820014 +3B390001 3B5A0001 +2C1A0004 4081FFD0 +7F83E378 7F24CB78 +88BF24D0 48000115 +480003F4 3B400000 +3B000000 3B200000 +7F23CB78 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820024 7F23CB78 +3D808003 618C3370 +7D8903A6 4E800421 +7C03D000 40820008 +3B180001 3B390001 +2C190004 4180FFBC +2C180001 41820398 +2C180002 41810390 +3B5A0001 2C1A0003 +4180FF98 3B200000 +3B410080 3B000000 +3AC00000 3AE00000 +7EE3BB78 3D808003 +618C241C 7D8903A6 +4E800421 2C030003 +41820028 7EE3BB78 +3D808003 618C3370 +7D8903A6 4E800421 +7C03C800 4082000C +7EF8D1AE 3B180001 +3AF70001 2C170004 +4180FFB8 3B390001 +2C190003 4180FFA4 +3B200000 7C79D0AE +7C03E000 41820010 +3B390001 2C190004 +4180FFEC 7F83E378 +7F24CB78 88BF24D0 +48000009 480002E8 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 7C9E2378 +7CBD2B78 48000121 +7F8802A6 80CD9348 +38A00000 807C0000 +2C03FFFF 4182005C +7C033000 4182000C +3B9C0044 4BFFFFE8 +3B9C0004 1C7D0020 +7F9C1A14 1C7E0008 +7F9C1A14 38810080 +C03C0000 D0240000 +C03C0004 D0240004 +38600000 90640008 +7FE3FB78 3D808003 +618C2768 7D8903A6 +4E800421 48000054 +2C1D0001 4182000C +7FC3F378 48000014 +4800023D 7C6802A6 +7C63F0AE 48000004 +38810080 3D808022 +618C4E64 7D8903A6 +4E800421 7FE3FB78 +38810080 3D808003 +618C2768 7D8903A6 +4E800421 48000004 +7FE3FB78 38810080 +3D808003 618C26CC +7D8903A6 4E800421 +C0210080 C002A8E8 +FC010040 4081000C +C022A8F8 48000008 +C022A8CC 7FE3FB78 +3D808003 618C3094 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00000020 C2700000 +41200000 42700000 +41200000 C1A00000 +41200000 41A00000 +41200000 C2700000 +41200000 C1A00000 +41200000 42700000 +41200000 41A00000 +41200000 0000001F +C21B3333 420CCCCD +421B3333 420CCCCD +00000000 41000000 +00000000 4279999A +C21B3333 420CCCCD +C21B3333 40A00000 +421B3333 420CCCCD +421B3333 40A00000 +00000008 C2280000 +41D4CCCD 42280000 +41E00000 00000000 +423B999A 00000000 +409CCCCD C2280000 +41D4CCCD C2280000 +40A00000 42280000 +41E00000 42280000 +40A00000 0000001C +C23A6666 4214CCCD +423D999A 42153333 +00000000 40E00000 +00000000 426A0000 +C23A6666 4214CCCD +C23A6666 40A00000 +423D999A 42153333 +423D999A 40A00000 +00000002 C2250000 +41A80000 42250000 +41D80000 00000000 +40A80000 00000000 +42400000 C2250000 +41A80000 C2250000 +40A00000 42250000 +41D80000 42250000 +40A00000 00000003 +C2200000 42000000 +42200000 42000000 +428C0000 40E00000 +C28C0000 40E00000 +C2200000 42000000 +C2200000 40A00000 +42200000 42000000 +42200000 40A00000 +FFFFFFFF 4E800021 +00030102 BA810008 +800100B4 382100B0 +7C0803A6 881F24D0 +60000000 00000000 +C22FCCD8 0000000D #External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm +3C608046 6063B6A0 +886324D0 2C030001 +41820050 887F0000 +3D808003 618C4110 +7D8903A6 4E800421 +8083002C 80640004 +2C030010 40820010 +80640010 2C0300EC +41820010 8864221E +54630631 41820014 +3D80802F 618CCCC8 +7D8903A6 4E800420 +281E0000 00000000 +04261B1C 60000000 #External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm +04261B30 60000000 #External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm +042605FC 38C00003 #External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm +044DC47C C0200000 #External/CSS Player Hands Default to HMN Button/Change Default Hand Position.asm +C2261A6C 00000005 #External/CSS Player Hands Default to HMN Button/Fix A Button Buffer When Exiting Name Entry.asm +88BF0005 2C050002 +40820014 3D808026 +618C1B6C 7D8903A6 +4E800420 1C130024 +60000000 00000000 +C2266CE0 0000000C #External/Disable FoD During Doubles/Disable FoD During Doubles.asm +80CD8840 38C61CB0 +80A60018 3C60E700 +606300B0 7C632A79 +41820010 2C030020 +41820008 48000034 +806DB610 88630018 +2C030001 41820014 +38600001 50652EB4 +90A60018 48000014 +38600000 50652EB4 +90A60018 48000004 +38600001 00000000 +C22608D8 0000001D #External/Toggle Rumble From CSS/Toggle Rumble From CSS.asm +887F0007 2C030000 +40820090 889F0004 +7C972378 800D8840 +7C602214 88A31CC0 +57800739 40820010 +5780077B 4082003C +480000AC 28050001 +418200A4 7EE3BB78 +38800000 38A0000E +38C00000 38ED9950 +3D808037 618C8430 +7D8903A6 4E800421 +38800001 48000010 +28050000 41820070 +38800000 7EE3BB78 +3D808015 618CED4C +7D8903A6 4E800421 +38800001 989F0007 +3C80C040 909F0014 +C03F0014 C0428E0C +C01F000C EC01002A +D01F000C FC600850 +FC030840 41810008 +EC6300B2 D07F0014 +4180001C C0828258 +FC032040 41810010 +38800000 909F0014 +989F0007 889F0004 +60000000 00000000 +C2259B84 00000008 #External/Stage Striking/Random_Stage_Fix.asm +5460063F 41820038 +1C9E001C 38040008 +7C1F00AE 2C000000 +40820024 3800001D +7C0903A6 38600000 +389F0000 90640004 +3884001C 4200FFF8 +2C030000 00000000 +C2259C40 0000001F #External/Stage Striking/Stage_Striking.asm +39600000 3D408045 +614AC388 38600000 +3C80803F 608406D0 +28000013 4082000C +39600001 48000010 +28000000 408200C0 +48000034 2C03001D +408000B4 2C0B0002 +4182004C 1CA3001C +7CA52214 88C5000A +80AA0000 7CA53430 +54A507FF 40820088 +4800002C 806DB600 +5460056B 4082001C +546006F7 40820008 +48000074 39600002 +38600000 4BFFFFB0 +886DB60E 2C03001D +4080005C 1CA3001C +7CA52214 38C00000 +2C0B0002 40820008 +38C00002 98C50008 +80A50000 2C030016 +41800008 80A50010 +3CC04400 2C0B0002 +40820008 38C00000 +90C50038 38C0001E +98CDB60E 2C0B0000 +4182000C 38630001 +4BFFFF4C 28000000 +60000000 00000000 diff --git a/Output/Console/g_pal.txt b/Output/Console/g_pal.txt new file mode 100644 index 00000000..f3c1ca61 --- /dev/null +++ b/Output/Console/g_pal.txt @@ -0,0 +1,259 @@ +$PAL Toggle [UnclePunch] +*Includes all character balances, Samus Cannot Bomb Jump Out of Zair, Remove Extender, DK Keeps Charge When Hit During Up B, Detection Bubbles Do Not Skip Hurtbox Collision Check, Freeze Glitch Fix, PAL Stock Icons and PAL CSS Indicator +C2068F30 0000009B #External/PAL/Core/Character DAT Patcher.asm +7C0802A6 90010004 +9421FF50 BE810008 +83FE010C 83FF0008 +3BFFFFE0 807D0000 +2C03001B 4080049C +48000071 480000A9 +480000B9 48000151 +48000179 48000179 +48000229 48000239 +48000281 480002F9 +48000311 48000311 +48000311 48000311 +48000321 48000321 +48000389 48000389 +48000391 48000391 +480003A9 480003A9 +480003B9 480003B9 +480003C9 480003C9 +480003C9 48000429 +7C8802A6 1C630004 +7C841A14 80A40000 +54A501BA 7CA42A14 +80650000 80850004 +2C0300FF 41820014 +7C63FA14 90830000 +38A50008 4BFFFFE4 +480003F0 00003344 +3F547AE1 00003360 +42C40000 000000FF +0000379C 42920000 +00003908 40000000 +0000390C 40866666 +00003910 3DEA0EA1 +00003928 41A00000 +00003C04 2C01480C +00004720 1B968013 +00004734 1B968013 +0000473C 04000009 +00004A40 2C006811 +00004A4C 281B0013 +00004A50 0D00010B +00004A54 2C806811 +00004A60 281B0013 +00004A64 0D00010B +00004B24 2C00680D +00004B30 0F104013 +00004B38 2C80380D +00004B44 0F104013 +000000FF 0000380C +00000007 00004EF8 +2C003803 00004F08 +0F80000B 00004F0C +2C802003 00004F1C +0F80000B 000000FF +000000FF 00004D10 +3FC00000 00004D70 +42940000 00004DD4 +41900000 00004DE0 +41900000 000083AC +2C000009 000083B8 +348C8011 00008400 +348C8011 00008430 +0500008B 00008438 +041A0500 00008444 +0500008B 000084DC +05780578 000085B8 +1000010B 000085C0 +03E801F4 000085CC +1000010B 000085D4 +038403E8 000085E0 +1000010B 00008818 +0B00010B 0000882C +0B00010B 000088F8 +041A0BB8 0000893C +041A0BB8 00008980 +041A0BB8 000089E0 +04FEF704 000000FF +000036CC 42EC0000 +000037C4 0C000000 +000000FF 00003468 +3F666666 000039D8 +440C0000 00003A44 +B4990011 00003A48 +1B8C008F 00003A58 +B4990011 00003A5C +1B8C008F 00003A6C +B4990011 00003A70 +1B8C008F 00003B30 +440C0000 000000FF +000045C8 2C015010 +000045D4 2D198013 +000045DC 2C80B010 +000045E8 2D198013 +000049C4 2C00680A +000049D0 281B8013 +000049D8 2C80780A +000049E4 281B8013 +000049F0 2C006808 +000049FC 231B8013 +00004A04 2C807808 +00004A10 231B8013 +00005C98 1E0C8080 +00005CF4 B4800C90 +00005D08 B4800C90 +000000FF 00003A1C +B4940013 00003A64 +2C000015 00003A70 +B4928013 000000FF +000000FF 000000FF +000000FF 0000647C +B49A4017 00006480 +64001097 000000FF +000000FF 000033E4 +42DE0000 00004528 +2C013011 00004534 +B4988013 0000453C +2C813011 00004548 +B4988013 00004550 +2D002011 0000455C +B4988013 000045F8 +2C01300F 00004608 +0F00010B 0000460C +2C81280F 0000461C +0F00010B 00004AEC +2C007003 00004B00 +2C803803 000000FF +000000FF 0000485C +2C00000F 000000FF +000000FF 000037B0 +3F59999A 000037CC +42AA0000 00005520 +87118013 000000FF +000000FF 00003B8C +440C0000 00003D0C +440C0000 000000FF +000000FF 000050E4 +B4990013 000050F8 +B4990013 000000FF +000000FF 000000FF +00004EB0 02BCFF38 +00004EBC 14000123 +00004EC4 038401F4 +00004ED0 14000123 +00004ED8 044C04B0 +00004EE4 14000123 +0000505C 2C006815 +0000506C 14080123 +00005070 2C806015 +00005080 14080123 +00005084 2D002015 +00005094 14080123 +000000FF 000000FF +BA810008 800100B4 +382100B0 7C0803A6 +3C60803C 00000000 +C22F9A3C 00000007 #External/PAL/Core/PAL Stock Icons.asm +48000021 7C8802A6 +80640000 907D002C +907D0030 80640004 +907D003C 48000010 +4E800021 3F59999A +C1A80000 801D0014 +60000000 00000000 +C210FC44 00000002 #External/PAL/Core/Additional/DK_AerialUpB.asm +3C008011 60000074 +60000000 00000000 +C210FB64 00000002 #External/PAL/Core/Additional/DK_GroundedUpB.asm +3C008011 60000074 +60000000 00000000 +040796E0 60000000 #External/PAL/Core/Additional/DetectionHitboxes.asm +041239A8 60000000 #External/PAL/Core/Additional/ICs_FreezeGlitch.asm +043CE4D4 00240464 #External/PAL/Core/Additional/Samus_BombJump.asm +042B7E54 48000088 #External/PAL/Core/Additional/Samus_Extender1.asm +042B808C 48000084 #External/PAL/Core/Additional/Samus_Extender2.asm +C2266978 00000050 #External/PAL/Indicators/PAL CSS Indicator.asm +7D8802A6 48000031 +7C8802A6 7D8803A6 +3D800035 618C6A60 +7C6C1850 38A00238 +3D808000 618C31F4 +7D8903A6 4E800421 +48000244 4E800021 +00000000 00006FFF +00007FF1 00007FF0 +00007FF0 00007FF0 +00007FFF 00007FF1 +00000000 FFC40002 +17FF3006 00EF800B +00EF801F 04FF404F +FFF7009F 110000EF +00000000 FFF8000D +FEFD000F FBFF300F +F6DF700F F3BFC00F +E07FF10F B14FF60F +00000000 F6000000 +F7000000 F7000000 +F7000000 F7000000 +F7000000 F7000000 +04FF9888 00CFB888 +009FC888 006FD888 +004FE888 002FF888 +000FF888 002FF888 +88888888 88888888 +88888888 88888888 +88888888 88888888 +88888888 88888888 +88888888 88888888 +8888888E 888888DF +88888CFF 8888AFF7 +8889FFA0 888FFC00 +8DFFB100 EFF60000 +FF400000 F3000000 +40000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +88888888 88888888 +88888888 88888888 +88888888 88888888 +88888888 88888888 +8888EF40 8888DF60 +8888CF90 8888BFC0 +88889FF4 88888DF9 +88888BFE 888888EF +00007FF0 00007FF0 +00006FD0 00000000 +00000000 00000000 +30000000 90000000 +000003FF 000008FF +00000BFB 00000000 +00000000 00000000 +00000000 00000000 +EFFFFB0F 200AFF1F +0004FF4D 00000000 +00000000 00000000 +00000000 00000000 +F7000000 F7111100 +FFFFFB00 00000000 +00000000 00000000 +00000000 00000000 +004FE888 006FD888 +009FC888 00CFB888 +04FF9888 09FD8888 +3EFB8888 387F0718 +60000000 00000000 +044DEC14 01000000 #External/PAL/Toggle/PALToggleEnable.asm diff --git a/Output/Console/g_safety.txt b/Output/Console/g_safety.txt new file mode 100644 index 00000000..bdaedd41 --- /dev/null +++ b/Output/Console/g_safety.txt @@ -0,0 +1,13 @@ +$Tournament safety codes [Fizzi] +*Codes to ensure integrity of tournament matches +C222F958 00000004 #External/FixedDamageRatio/SkipInputHandling.asm +2C050003 40820014 +3D808022 618CFB68 +7D8903A6 4E800420 +28050005 00000000 +C2167F40 00000005 #External/PreventPauseSoftLocks/ForcePauseOn.asm +881E0002 2C000001 +40820018 881E0004 +2C000004 4181000C +881E000A 48000008 +38000001 00000000 diff --git a/Output/Console/g_screen_wide.txt b/Output/Console/g_screen_wide.txt new file mode 100644 index 00000000..1fbdaceb --- /dev/null +++ b/Output/Console/g_screen_wide.txt @@ -0,0 +1,27 @@ +$Optional: Widescreen 16:9 [Dan Salvato, mirrorbender, Achilles1515, UnclePunch] +*16:9 codes +*Will not cause desyncs when playing online +043BB05C 3EB00000 #External/Widescreen/Fix Screen Flash.asm +C236A4A8 00000007 #External/Widescreen/Overwrite CObj Values.asm +38600001 986DAFE0 +C03F0034 4800001D +7C6802A6 C0430000 +C0630004 EC2100B2 +EC211824 48000010 +4E800021 43A00000 +435B0000 00000000 +044DDB58 3E4CCCCD #External/Widescreen/Adjust Offscreen Scissor/Adjust Bubble Zoom.asm +04086B24 60000000 #External/Widescreen/Adjust Offscreen Scissor/Draw High Poly Models.asm +04030C7C 38000064 #External/Widescreen/Adjust Offscreen Scissor/Left Camera Bound.asm +04030C88 3800021C #External/Widescreen/Adjust Offscreen Scissor/Right Camera Bound.asm +044DDB30 3F666666 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 1.asm +044DDB34 BF666666 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 2.asm +044DDB2C C3660000 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Negative Vertical Bound.asm +044DDB28 43660000 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Positive Vertical Bound.asm +044DDB4C 3D916873 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Widen Bubble Region.asm +C22FCFC4 00000004 #External/Widescreen/Nametag Fixes/Adjust Nametag Background X Scale.asm +48000011 7C6802A6 +C0030000 4800000C +4E800021 40DC7AE1 +60000000 00000000 +044DDB84 3E89FEFA #External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm diff --git a/Output/Console/g_screen_wide_shutters.txt b/Output/Console/g_screen_wide_shutters.txt new file mode 100644 index 00000000..baca399b --- /dev/null +++ b/Output/Console/g_screen_wide_shutters.txt @@ -0,0 +1,58 @@ +$Optional: 16:9 -> 73:60 [Dan Salvato, mirrorbender, Achilles1515, UnclePunch, Fizzi] +*Set Aspect Ratio to "Force 16:9" in Graphics +043BB05C 3EB00000 #External/Widescreen/Fix Screen Flash.asm +C236A4A8 00000007 #External/Widescreen/Overwrite CObj Values.asm +38600001 986DAFE0 +C03F0034 4800001D +7C6802A6 C0430000 +C0630004 EC2100B2 +EC211824 48000010 +4E800021 43A00000 +435B0000 00000000 +044DDB58 3E4CCCCD #External/Widescreen/Adjust Offscreen Scissor/Adjust Bubble Zoom.asm +04086B24 60000000 #External/Widescreen/Adjust Offscreen Scissor/Draw High Poly Models.asm +04030C7C 38000064 #External/Widescreen/Adjust Offscreen Scissor/Left Camera Bound.asm +04030C88 3800021C #External/Widescreen/Adjust Offscreen Scissor/Right Camera Bound.asm +044DDB30 3F666666 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 1.asm +044DDB34 BF666666 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 2.asm +044DDB2C C3660000 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Negative Vertical Bound.asm +044DDB28 43660000 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Positive Vertical Bound.asm +044DDB4C 3D916873 #External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Widen Bubble Region.asm +C22FCFC4 00000004 #External/Widescreen/Nametag Fixes/Adjust Nametag Background X Scale.asm +48000011 7C6802A6 +C0030000 4800000C +4E800021 40DC7AE1 +60000000 00000000 +044DDB84 3E89FEFA #External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm +C2302784 0000001F #External/WidescreenShutters/Add Shutters.asm +480000E0 4E800021 +42E40000 447A0000 +000000FF 7C0802A6 +90010004 9421FF50 +BE810008 3B800014 +3BA0FFE7 2C030000 +4182000C 3B800015 +3BA00231 4BFFFFC9 +7FE802A6 38600020 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C681B78 7F83E378 +7FA4EB78 38A0FFE7 +38C00001 38E00001 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0008 3D808030 +618C2B90 7D8903A6 +4E800421 C03F0000 +D03E0008 C03F0004 +D03E000C BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +93EDB77C 38600000 +4BFFFF2D 38600001 +4BFFFF25 00000000 diff --git a/Output/Console/g_stages_all.txt b/Output/Console/g_stages_all.txt new file mode 100644 index 00000000..a025655a --- /dev/null +++ b/Output/Console/g_stages_all.txt @@ -0,0 +1,30 @@ +$Frozen Stages [UnclePunch, Fizzi] +*Disables all stage transformations +C225A530 00000014 #External/Frozen All/Blink SSS/EditColor.asm +886DB60E 7C03F000 +41820090 806DB5F4 +80630020 3C800006 +6084F1E8 7CC32214 +2C1E0012 41820044 +2C1E001A 4182003C +2C1E0006 41820034 +2C1E0019 4182002C +38600080 98660001 +98660021 38600000 +98660015 98660035 +38600033 98660017 +98660037 48000024 +38600000 98660001 +98660021 38600080 +98660015 98660017 +98660035 98660037 +806DB8D4 8063002C +38800009 90830000 +9BCDB60E 00000000 +C225B718 00000002 #External/Frozen All/Blink SSS/SavePointer.asm +906DB8D4 7C771B78 +60000000 00000000 +043E67E0 00000000 #External/Frozen All/Core/1.asm +0421AAE4 60000000 #External/Frozen All/Core/2.asm +041D1548 60000000 #External/Frozen All/Core/3.asm +041E3348 60000000 #External/Frozen All/Core/4.asm diff --git a/Output/Console/g_stages_stadium.txt b/Output/Console/g_stages_stadium.txt new file mode 100644 index 00000000..12c03a18 --- /dev/null +++ b/Output/Console/g_stages_stadium.txt @@ -0,0 +1,25 @@ +$Frozen Stadium [UnclePunch, Fizzi] +*Disables Pokemon Stadium transformations +041D45FC 480009DC #External/Frozen PS/Core/FreezePokemon.asm +C225A530 00000011 #External/Frozen PS/PSBlinkBlue/PSEditColor.asm +886DB60E 7C03F000 +41820078 806DB5F4 +80630020 3C800006 +6084F1E8 7CC32214 +2C1E0012 4182002C +38600080 98660001 +98660021 38600000 +98660015 98660035 +38600033 98660017 +98660037 48000024 +38600000 98660001 +98660021 38600080 +98660015 98660017 +98660035 98660037 +806DB8D4 8063002C +38800009 90830000 +9BCDB60E 00000000 +C225B718 00000002 #External/Frozen PS/PSBlinkBlue/SavePointer.asm +906DB8D4 7C771B78 +60000000 00000000 +044DEC1C 01000000 #External/Frozen PS/Toggle/FrzPkmToggleEnable.asm diff --git a/Output/Console/g_ucf.txt b/Output/Console/g_ucf.txt new file mode 100644 index 00000000..8f319414 --- /dev/null +++ b/Output/Console/g_ucf.txt @@ -0,0 +1,135 @@ +$UCF Slippi [Dan Salvato, tauKhan, UnclePunch, Fizzi] +C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm +D01F002C 7C0802A6 +90010004 9421FF50 +BE810008 48000121 +7FC802A6 C03F0894 +C05E0000 FC011040 +40820118 808DAEB4 +C03F0620 FC200A10 +C044003C FC011040 +41800100 887F0670 +2C030002 408000F4 +887F221F 54600739 +408200E8 3C60804C +60631F78 8BA30001 +387DFFFE 889F0618 +4800008D 7C7C1B78 +7FA3EB78 889F0618 +4800007D 7C7C1850 +7C6319D6 2C0315F9 +408100B0 38000001 +901F2358 901F2340 +809F0004 2C04000A +40A20098 887F000C +38800001 3D808003 +618C418C 7D8903A6 +4E800421 2C030000 +41820078 8083002C +80841ECC C03F002C +D0240018 C05E0004 +FC011040 4181000C +38600080 48000008 +3860007F 98640006 +48000048 7C852378 +3863FFFF 2C030000 +40800008 38630005 +3C808046 6084B108 +1C630030 7C841A14 +1C65000C 7C841A14 +88640002 7C630774 +4E800020 4E800021 +40000000 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 83FE002C +480000DD 7FA802A6 +C03F063C 806DAEB4 +C0030314 FC010040 +408100E4 C03F0620 +48000071 D0210090 +C03F0624 48000065 +C0410090 EC4200B2 +EC210072 EC21102A +C05D000C FC011040 +418000B4 889F0670 +2C040003 408100A8 +C01D0010 C03F0624 +FC000840 40800098 +BA810008 800100B4 +382100B0 7C0803A6 +8061001C 83E10014 +38210018 38630008 +7C6803A6 4E800020 +FC000A10 C03D0000 +EC000072 C03D0004 +EC000828 FC00001E +D8010080 80610084 +38630002 3C004330 +C85D0014 6C638000 +90010080 90610084 +C8210080 EC011028 +C03D0000 EC200824 +4E800020 4E800021 +42A00000 37270000 +43300000 3F800000 +BF4CCCCD 43300000 +80000000 7FC3F378 +7FE4FB78 BA810008 +800100B4 382100B0 +7C0803A6 00000000 +C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm +7C0802A6 90010004 +9421FF50 BE810008 +2C030001 4082008C +C03F0628 FC200A10 +806DAEB4 C0430210 +FC011040 40800074 +3F80804C 639C1F78 +8BDC0001 387EFFFE +889F0618 48000029 +7C7D1B78 7FC3F378 +889F0618 48000019 +7C7D1850 7C6319D6 +388015F9 7C041800 +48000038 7C852378 +3863FFFF 2C030000 +40800008 38630005 +809C0008 1C630030 +7C841A14 1C65000C +7C841A14 88640002 +7C630774 4E800020 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C22662D0 0000001A #External/UCF 0.8/Indicator/UCF Text.asm +7C0802A6 90010004 +9421FF50 BE810008 +48000089 7FC802A6 +38600000 38800000 +3D80803A 618C6754 +7D8903A6 4E800421 +7C7F1B78 38800001 +989F0049 38800001 +989F004A C03E000C +D03F0024 D03F0028 +7FE3FB78 48000059 +7C8802A6 C03E0000 +C05E0004 3D80803A +618C6B98 7D8903A6 +4E800421 7C641B78 +7FE3FB78 C03E0008 +C05E0008 3D80803A +618C7548 7D8903A6 +4E800421 48000024 +4E800021 42180000 +C3898000 3EE66666 +3DCCCCCD 4E800021 +55434620 302E3800 +BA810008 800100B4 +382100B0 7C0803A6 +38980000 00000000 diff --git a/Output/Console/g_ucf_stealth.txt b/Output/Console/g_ucf_stealth.txt new file mode 100644 index 00000000..865db941 --- /dev/null +++ b/Output/Console/g_ucf_stealth.txt @@ -0,0 +1,108 @@ +$UCF Slippi [Dan Salvato, tauKhan, UnclePunch, Fizzi] +C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm +D01F002C 7C0802A6 +90010004 9421FF50 +BE810008 48000121 +7FC802A6 C03F0894 +C05E0000 FC011040 +40820118 808DAEB4 +C03F0620 FC200A10 +C044003C FC011040 +41800100 887F0670 +2C030002 408000F4 +887F221F 54600739 +408200E8 3C60804C +60631F78 8BA30001 +387DFFFE 889F0618 +4800008D 7C7C1B78 +7FA3EB78 889F0618 +4800007D 7C7C1850 +7C6319D6 2C0315F9 +408100B0 38000001 +901F2358 901F2340 +809F0004 2C04000A +40A20098 887F000C +38800001 3D808003 +618C418C 7D8903A6 +4E800421 2C030000 +41820078 8083002C +80841ECC C03F002C +D0240018 C05E0004 +FC011040 4181000C +38600080 48000008 +3860007F 98640006 +48000048 7C852378 +3863FFFF 2C030000 +40800008 38630005 +3C808046 6084B108 +1C630030 7C841A14 +1C65000C 7C841A14 +88640002 7C630774 +4E800020 4E800021 +40000000 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm +7C0802A6 90010004 +9421FF50 BE810008 +7C7E1B78 83FE002C +480000DD 7FA802A6 +C03F063C 806DAEB4 +C0030314 FC010040 +408100E4 C03F0620 +48000071 D0210090 +C03F0624 48000065 +C0410090 EC4200B2 +EC210072 EC21102A +C05D000C FC011040 +418000B4 889F0670 +2C040003 408100A8 +C01D0010 C03F0624 +FC000840 40800098 +BA810008 800100B4 +382100B0 7C0803A6 +8061001C 83E10014 +38210018 38630008 +7C6803A6 4E800020 +FC000A10 C03D0000 +EC000072 C03D0004 +EC000828 FC00001E +D8010080 80610084 +38630002 3C004330 +C85D0014 6C638000 +90010080 90610084 +C8210080 EC011028 +C03D0000 EC200824 +4E800020 4E800021 +42A00000 37270000 +43300000 3F800000 +BF4CCCCD 43300000 +80000000 7FC3F378 +7FE4FB78 BA810008 +800100B4 382100B0 +7C0803A6 00000000 +C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm +7C0802A6 90010004 +9421FF50 BE810008 +2C030001 4082008C +C03F0628 FC200A10 +806DAEB4 C0430210 +FC011040 40800074 +3F80804C 639C1F78 +8BDC0001 387EFFFE +889F0618 48000029 +7C7D1B78 7FC3F378 +889F0618 48000019 +7C7D1850 7C6319D6 +388015F9 7C041800 +48000038 7C852378 +3863FFFF 2C030000 +40800008 38630005 +809C0008 1C630030 +7C841A14 1C65000C +7C841A14 88640002 +7C630774 4E800020 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 diff --git a/console_PAL.json b/console_PAL.json index c409ffa5..04042a4f 100644 --- a/console_PAL.json +++ b/console_PAL.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_pal.bin" + }, + { + "file": "Output/Console/g_pal.txt" } ], "codes": [ diff --git a/console_UCF.json b/console_UCF.json index 4215d422..b0e3e1fa 100644 --- a/console_UCF.json +++ b/console_UCF.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_ucf.bin" + }, + { + "file": "Output/Console/g_ucf.txt" } ], "codes": [ diff --git a/console_UCF_stealth.json b/console_UCF_stealth.json index f2a99e55..b385b455 100644 --- a/console_UCF_stealth.json +++ b/console_UCF_stealth.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_ucf_stealth.bin" + }, + { + "file": "Output/Console/g_ucf_stealth.txt" } ], "codes": [ diff --git a/console_gameplay_both.json b/console_gameplay_both.json index cc877a78..b36bb797 100644 --- a/console_gameplay_both.json +++ b/console_gameplay_both.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_gameplay_both.bin" + }, + { + "file": "Output/Console/g_gameplay_both.txt" } ], "codes": [ diff --git a/console_gameplay_lgl.json b/console_gameplay_lgl.json index 6737cbf9..54890511 100644 --- a/console_gameplay_lgl.json +++ b/console_gameplay_lgl.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_gameplay_lgl.bin" + }, + { + "file": "Output/Console/g_gameplay_lgl.txt" } ], "codes": [ diff --git a/console_gameplay_wobbling.json b/console_gameplay_wobbling.json index 3c77b090..6e65d35a 100644 --- a/console_gameplay_wobbling.json +++ b/console_gameplay_wobbling.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_gameplay_wobbling.bin" + }, + { + "file": "Output/Console/g_gameplay_wobbling.txt" } ], "codes": [ diff --git a/console_lag_pd.json b/console_lag_pd.json index 4b76ead4..96593ff1 100644 --- a/console_lag_pd.json +++ b/console_lag_pd.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_lag_pd.bin" + }, + { + "file": "Output/Console/g_lag_pd.txt" } ], "codes": [ diff --git a/console_lag_pdhalfvb.json b/console_lag_pdhalfvb.json index 53e534d0..eb7c6106 100644 --- a/console_lag_pdhalfvb.json +++ b/console_lag_pdhalfvb.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_lag_pdhalfvb.bin" + }, + { + "file": "Output/Console/g_lag_pdhalfvb.txt" } ], "codes": [ diff --git a/console_mods_friendlies.json b/console_mods_friendlies.json index 8740d178..11fff4c4 100644 --- a/console_mods_friendlies.json +++ b/console_mods_friendlies.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_mods_friendlies.bin" + }, + { + "file": "Output/Console/g_mods_friendlies.txt" } ], "codes": [ diff --git a/console_mods_stealth.json b/console_mods_stealth.json index 375ce3e8..6c36b250 100644 --- a/console_mods_stealth.json +++ b/console_mods_stealth.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_mods_stealth.bin" + }, + { + "file": "Output/Console/g_mods_stealth.txt" } ], "codes": [ diff --git a/console_mods_tournament.json b/console_mods_tournament.json index bfd97d2e..0ef17037 100644 --- a/console_mods_tournament.json +++ b/console_mods_tournament.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_mods_tournament.bin" + }, + { + "file": "Output/Console/g_mods_tournament.txt" } ], "codes": [ diff --git a/console_safety.json b/console_safety.json index 84f24078..adac9233 100644 --- a/console_safety.json +++ b/console_safety.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_safety.bin" + }, + { + "file": "Output/Console/g_safety.txt" } ], "codes": [ diff --git a/console_screen_wide.json b/console_screen_wide.json index 13712441..7248815b 100644 --- a/console_screen_wide.json +++ b/console_screen_wide.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_screen_wide.bin" + }, + { + "file": "Output/Console/g_screen_wide.txt" } ], "codes": [ diff --git a/console_screen_wide_shutters.json b/console_screen_wide_shutters.json index 64688f3b..250eda6f 100644 --- a/console_screen_wide_shutters.json +++ b/console_screen_wide_shutters.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_screen_wide_shutters.bin" + }, + { + "file": "Output/Console/g_screen_wide_shutters.txt" } ], "codes": [ diff --git a/console_stages_all.json b/console_stages_all.json index dd9cf271..67a71943 100644 --- a/console_stages_all.json +++ b/console_stages_all.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_stages_all.bin" + }, + { + "file": "Output/Console/g_stages_all.txt" } ], "codes": [ diff --git a/console_stages_stadium.json b/console_stages_stadium.json index d1d4ffc2..ae1b7652 100644 --- a/console_stages_stadium.json +++ b/console_stages_stadium.json @@ -2,6 +2,9 @@ "outputFiles": [ { "file": "Output/Console/g_stages_stadium.bin" + }, + { + "file": "Output/Console/g_stages_stadium.txt" } ], "codes": [ From d645e8d26633691840ab0f2b97ce1bb178bc7fdb Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 17 Jul 2022 17:09:38 -0400 Subject: [PATCH 095/217] change build order for console_core this makes it so that the .ini has port B --- Output/Console/GALE01r2.ini | 16 ++++++++-------- build.bat | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 15e0082f..354a8ec0 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -566,28 +566,28 @@ C20055F0 0000002C #Common/EXITransferBuffer/EXITransferBuffer.asm 38600000 7C1E18AC 38630020 7C03E800 4180FFF4 7C0004AC -4C00012C 38600000 +4C00012C 38600001 38800000 3D808034 618C64C0 7D8903A6 -4E800421 38600000 +4E800421 38600001 3D808034 618C6D80 7D8903A6 4E800421 -38600000 38800000 +38600001 38800000 38A00005 3D808034 618C6688 7D8903A6 -4E800421 38600000 +4E800421 38600001 7FC4F378 7FA5EB78 7FE6FB78 38E00000 3D808034 618C5E60 7D8903A6 4E800421 -38600000 3D808034 +38600001 3D808034 618C5F4C 7D8903A6 -4E800421 38600000 +4E800421 38600001 3D808034 618C67B4 7D8903A6 4E800421 -38600000 3D808034 +38600001 3D808034 618C6E74 7D8903A6 -4E800421 38600000 +4E800421 38600001 3D808034 618C65CC 7D8903A6 4E800421 2C1F0000 40820020 diff --git a/build.bat b/build.bat index fb560a89..8b106485 100644 --- a/build.bat +++ b/build.bat @@ -7,14 +7,14 @@ echo Building playback.json... gecko build -c playback.json -defsym "STG_EXIIndex=1" echo. -echo Building console_core.json... -gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -echo. - echo Building console_core.json for Port A... gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" echo. +echo Building console_core.json... +gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" +echo. + set list=console_UCF.json set list=%list%;console_UCF_stealth.json set list=%list%;console_mods_stealth.json From b90fbe632d78ca897dc1c14bd34b4d9c219f8a5b Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 27 Jul 2022 16:02:12 -0400 Subject: [PATCH 096/217] modify backup/restore to 4-byte align when requesting an amount of space that wasn't 4-byte aligned, the old macros would crash on console. It's possible to trigger the crash a function had to be called after setting up the non-aligned stack frame. --- Common/Common.s | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 291348e6..860708bd 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -48,14 +48,25 @@ branchl r12, 0x8021b2d8 .macro backup space=0x78 mflr r0 stw r0, 0x4(r1) -stwu r1,-(BKP_FREE_SPACE_OFFSET + \space)(r1) # make space for 12 registers +# Stack allocation has to be 4-byte aligned otherwise it crashes on console +.if \space % 4 == 0 + stwu r1,-(BKP_FREE_SPACE_OFFSET + \space)(r1) # make space for 12 registers +.else + stwu r1,-(BKP_FREE_SPACE_OFFSET + \space + (4 - \space % 4))(r1) # make space for 12 registers +.endif stmw r20,0x8(r1) .endm .macro restore space=0x78 lmw r20,0x8(r1) -lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space)(r1) -addi r1,r1,BKP_FREE_SPACE_OFFSET + \space # release the space +# Stack allocation has to be 4-byte aligned otherwise it crashes on console +.if \space % 4 == 0 + lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space)(r1) + addi r1,r1,BKP_FREE_SPACE_OFFSET + \space # release the space +.else + lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space + (4 - \space % 4))(r1) + addi r1,r1,BKP_FREE_SPACE_OFFSET + \space + (4 - \space % 4) # release the space +.endif mtlr r0 .endm From 9956d5d7fea397bac8727dbd846578eef20ff974 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 27 Jul 2022 18:22:43 -0400 Subject: [PATCH 097/217] fix crash on ranked game end --- Online/Slippi Online Scene/main.asm | 6 + Output/Netplay/GALE01r2.ini | 663 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 663 ++++++++++++++-------------- 3 files changed, 670 insertions(+), 662 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 5adbefbd..d1e23c0e 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -424,6 +424,12 @@ mr r3, REG_GAME_PREP_DATA li r4, GPDO_SIZE branchl r12, Zero_AreaLength +# Set the callback to determine winner at the end of the match, +# we just zero'd it so we have to set it again +bl SinglesDetermineWinner_BLRL +mflr r3 +stw r3, GPDO_FN_COMPUTE_RANKED_WINNER(REG_GAME_PREP_DATA) + li r3, 3 stb r3, GPDO_MAX_GAMES(REG_GAME_PREP_DATA) li r3, 1 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index e0832e2e..d634267f 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4724,7 +4724,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E8 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E9 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4735,7 +4735,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000ED0 80830000 +48000EDC 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4767,7 +4767,7 @@ BE810008 3C80803E BE810008 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B25 +7C8802A6 48000B31 7C6802A6 90640016 3D808000 618C56B8 7D8903A6 4E800421 @@ -4793,20 +4793,20 @@ BA810008 800100B4 00030000 480000B9 4800012D 08000000 80497758 80497758 -01030000 48000239 -48000269 09000000 +01030000 48000245 +48000275 09000000 80480668 80480668 02030000 801B1588 -48000301 02000000 +4800030D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005AD -480008E9 20000000 +04030000 480005B9 +480008F5 20000000 80490880 804D68D0 -05030000 48000BFD -48000C3D 50000000 +05030000 48000C09 +48000C49 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4835,384 +4835,385 @@ BE810008 7C7E1B78 7D8903A6 4E800421 809E0014 88840003 2C040002 40820008 -480000D8 886DAFA0 +480000E4 886DAFA0 2C030000 41820020 2C030001 41820014 -2C030002 41820060 -2C030003 41820058 -48000084 4BFFFF09 +2C030002 4182006C +2C030003 41820064 +48000090 4BFFFF09 7F6802A6 7F63DB78 3880001A 3D808000 618CC160 7D8903A6 -4E800421 38600003 -987B0000 38600001 -987B0001 38600000 -987B0005 987B0013 -3C808047 60849D30 -38600006 98640005 -48000060 886DAFC9 -7C630774 2C03FFFF -41820024 2C030001 -4182001C 2C030000 -40820000 886DAFCA -2C030000 41820020 -48000004 48000771 -3C808047 60849D30 -38600005 98640005 -48000018 3C808047 -60849D30 38600002 -98640005 48000004 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B -618C1514 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 809F0014 -88840004 2C040000 -4082001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 -48000064 38600001 -986DAFCA 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0001 -889E0002 7C032000 -4082001C 48000691 +4E800421 480008C9 +7C6802A6 907B0016 +38600003 987B0000 +38600001 987B0001 +38600000 987B0005 +987B0013 3C808047 +60849D30 38600006 +98640005 48000060 +886DAFC9 7C630774 +2C03FFFF 41820024 +2C030001 4182001C +2C030000 40820000 +886DAFCA 2C030000 +41820020 48000004 +48000771 3C808047 +60849D30 38600005 +98640005 48000018 3C808047 60849D30 -38600005 98640005 -4800001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 +38600002 98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C15C8 +3D80801B 618C1514 7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +809F0014 88840004 +2C040000 4082001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000064 +38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7F1B78 -886DAFA0 2C030000 -40820108 480006F9 -7C7C1B78 2C1C0000 -4080001C 4BFFFD11 -7CC802A6 88660005 -38630001 98660005 -48000068 4BFFFCF9 -7F6802A6 9B9B0004 -889B0001 38840005 -7F9B21AE 387C0002 -7C9B18AE 38A40001 -7CBB19AE 1C9C0002 -3884000F A07F026A -7C7B232E 889B0000 -38840001 38600002 -7C841B96 7C052000 -4080002C 887B0001 -38630001 987B0001 -38600000 987B0005 -3C808047 60849D30 -38600006 98640005 -48000078 38600001 -3D808037 618CF1E4 +4E800421 7C7E1B78 +887E0001 889E0002 +7C032000 4082001C +48000691 3C808047 +60849D30 38600005 +98640005 4800001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000004 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3D80801B +618C15C8 7D8903A6 +4E800421 38600000 +3D808000 618C5610 7D8903A6 4E800421 -7C7E1B78 386000BA -987E0000 7FC3F378 -38800001 38A00001 -3D808000 618C55F0 +7C7F1B78 886DAFA0 +2C030000 40820108 +480006F9 7C7C1B78 +2C1C0000 4080001C +4BFFFD05 7CC802A6 +88660005 38630001 +98660005 48000068 +4BFFFCED 7F6802A6 +9B9B0004 889B0001 +38840005 7F9B21AE +387C0002 7C9B18AE +38A40001 7CBB19AE +1C9C0002 3884000F +A07F026A 7C7B232E +889B0000 38840001 +38600002 7C841B96 +7C052000 4080002C +887B0001 38630001 +987B0001 38600000 +987B0005 3C808047 +60849D30 38600006 +98640005 48000078 +38600001 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BA 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3D808037 618CF1B0 7D8903A6 4E800421 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 48000014 3C808047 60849D30 38600001 98640005 -887F0003 480006E9 -986DAFC9 886DAFA0 -2C030003 40820020 -887F0003 38800001 -2C030000 40820008 -38800000 988DAFC9 -4800003C 3A800000 -3AA00000 7E83A378 -480006AD 2C030000 -41820008 3AB50001 -3A940001 2C140004 -4180FFE4 2C150001 -4182000C 38600000 -986DAFC9 3E808047 -62949DA4 887F0003 -48000675 2C030000 -41820018 38600001 -98740000 38600000 -9874005D 48000014 -38600000 98740000 -38600001 9874005D +48000014 3C808047 +60849D30 38600001 +98640005 887F0003 +480006E9 986DAFC9 886DAFA0 2C030003 -4182000C 2C030000 -4082000C 38600000 -98740004 38600000 -986DAFCA 38600004 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C7E1B78 386000BC -987E0000 7FC3F378 -38800001 38A00001 +40820020 887F0003 +38800001 2C030000 +40820008 38800000 +988DAFC9 4800003C +3A800000 3AA00000 +7E83A378 480006AD +2C030000 41820008 +3AB50001 3A940001 +2C140004 4180FFE4 +2C150001 4182000C +38600000 986DAFC9 +3E808047 62949DA4 +887F0003 48000675 +2C030000 41820018 +38600001 98740000 +38600000 9874005D +48000014 38600000 +98740000 38600001 +9874005D 886DAFA0 +2C030003 4182000C +2C030000 4082000C +38600000 98740004 +38600000 986DAFCA +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BC 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +38800004 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -7FC3F378 38800004 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C80804D -807E0000 90645F90 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 7FE3FB78 +3C80804D 807E0000 +90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -01780101 01FF2121 -FF2121EE 0000EE00 -7C0802A6 90010004 -9421FF50 BE810008 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -83ED8840 3BFF0598 -886DAFA0 2C030003 -40820048 3BA00000 -1CBD0024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 -7D8903A6 4E800421 -1C9D0024 38840063 -7C7F21AE 3BBD0001 -2C1D0004 4180FFC4 -3C608049 60630888 -4BFFFF65 7C8802A6 -38A00010 3D808000 -618C31F4 7D8903A6 -4E800421 3C808049 -60840888 887F0060 -98640005 887F0063 -9864000B 887F0084 -98640008 887F0087 -9864000E 38600000 -9864FFFF 9864FFFB -887E0264 2C030000 -418200F4 887E0003 -1C630024 386302C5 -7F7E18AE 38600002 -98640002 38600001 -9864FFFB 98640006 -98640007 98640009 -9864000A 9864000C -9864000D 9864000F -98640010 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 40820030 -1CBD0024 38A50060 -7CBF28AE 38DC0005 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000B 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840003 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 41820030 -1CBD0024 38A50060 -7CBF28AE 38DC0008 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000E 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840004 3C808043 -60842078 887F0060 -90640014 887F0063 -98640018 887F0084 -9064001C 887F0087 -98640020 887E0264 -2C030000 41820024 -887F00A8 90640024 -887F00AB 98640028 -887F00CC 9064002C -887F00CF 98640030 -A07F000E 9064000C -3D808001 618C8254 -7D8903A6 4E800421 -386000C7 3D808001 -618C8C2C 7D8903A6 -4E800421 38600004 -3D808001 618C7700 -7D8903A6 4E800421 -3860001C 3D808002 -618C6F2C 7D8903A6 -4E800421 3A800000 -1C140024 7FF5FB78 -7EB50214 3D808000 -618C569C 7D8903A6 -4E800421 88950060 -7C840774 7C041800 -41820028 38600000 -3D808000 618C56A0 -7D8903A6 4E800421 -3D808000 618C56A8 -7D8903A6 4E800421 -3A940001 2C140006 -3AB50024 4180FFB0 -A07F000E 3D808022 -618C519C 7D8903A6 -4E800421 7C641B78 -38600001 3D808000 -618C56A0 7D8903A6 -4E800421 3D808000 -618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3C808047 60849D30 -38600003 98640005 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 +4E800021 01780101 +01FF2121 FF2121EE +0000EE00 7C0802A6 90010004 9421FF50 BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 -7C7F1B78 83CD8840 -3BDE0598 7FC3F378 -389F025C 38A00138 +7C7E1B78 83ED8840 +3BFF0598 886DAFA0 +2C030003 40820048 +3BA00000 1CBD0024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C9D0024 +38840063 7C7F21AE +3BBD0001 2C1D0004 +4180FFC4 3C608049 +60630888 4BFFFF65 +7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 -7FC3F378 3D808000 -618C5694 7D8903A6 -4E800421 3D808017 -618CEB30 7D8903A6 -4E800421 889F02BC -98830000 889F02BF -98830001 38800000 -98830002 38800003 -98830005 38800078 -98830004 3C80803D -6084DEC8 8084000C -887F02E0 98640002 -38602121 B0640003 -3C808049 60840880 -887F02E3 98640016 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 3FE08047 -63FF9DA4 887F0004 -2C030001 41820010 -2C030002 4182007C -480000C4 38600000 -3D808003 618C3BD8 +3C808049 60840888 +887F0060 98640005 +887F0063 9864000B +887F0084 98640008 +887F0087 9864000E +38600000 9864FFFF +9864FFFB 887E0264 +2C030000 418200F4 +887E0003 1C630024 +386302C5 7F7E18AE +38600002 98640002 +38600001 9864FFFB +98640006 98640007 +98640009 9864000A +9864000C 9864000D +9864000F 98640010 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +40820030 1CBD0024 +38A50060 7CBF28AE +38DC0005 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000B +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840003 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +41820030 1CBD0024 +38A50060 7CBF28AE +38DC0008 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000E +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840004 +3C808043 60842078 +887F0060 90640014 +887F0063 98640018 +887F0084 9064001C +887F0087 98640020 +887E0264 2C030000 +41820024 887F00A8 +90640024 887F00AB +98640028 887F00CC +9064002C 887F00CF +98640030 A07F000E +9064000C 3D808001 +618C8254 7D8903A6 +4E800421 386000C7 +3D808001 618C8C2C +7D8903A6 4E800421 +38600004 3D808001 +618C7700 7D8903A6 +4E800421 3860001C +3D808002 618C6F2C 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C3BD8 +3A800000 1C140024 +7FF5FB78 7EB50214 +3D808000 618C569C 7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 +88950060 7C840774 +7C041800 41820028 +38600000 3D808000 +618C56A0 7D8903A6 +4E800421 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140006 3AB50024 +4180FFB0 A07F000E +3D808022 618C519C 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 +7C641B78 38600001 +3D808000 618C56A0 7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 -3D808003 618C3BD8 +3D808000 618C56A8 +7D8903A6 4E800421 +3D808002 618C7168 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 7C7D1B78 +BE810008 3C808047 +60849D30 38600003 +98640005 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7F1B78 +83CD8840 3BDE0598 +7FC3F378 389F025C +38A00138 3D808000 +618C31F4 7D8903A6 +4E800421 7FC3F378 +3D808000 618C5694 +7D8903A6 4E800421 +3D808017 618CEB30 +7D8903A6 4E800421 +889F02BC 98830000 +889F02BF 98830001 +38800000 98830002 +38800003 98830005 +38800078 98830004 +3C80803D 6084DEC8 +8084000C 887F02E0 +98640002 38602121 +B0640003 3C808049 +60840880 887F02E3 +98640016 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 +887F0004 2C030001 +41820010 2C030002 +4182007C 480000C4 +38600000 3D808003 +618C3BD8 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -83E30010 887F0005 -2C030000 40820014 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 83E30010 887F0005 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFC95 3C808047 -60849D30 38600005 -98640005 BA810008 +40820014 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFC95 +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index eb182f01..cf4553a3 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4724,7 +4724,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E8 #Online/Slippi Online Scene/main.asm +C21A45B8 000001E9 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4735,7 +4735,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000ED0 80830000 +48000EDC 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4767,7 +4767,7 @@ BE810008 3C80803E BE810008 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B25 +7C8802A6 48000B31 7C6802A6 90640016 3D808000 618C56B8 7D8903A6 4E800421 @@ -4793,20 +4793,20 @@ BA810008 800100B4 00030000 480000B9 4800012D 08000000 80497758 80497758 -01030000 48000239 -48000269 09000000 +01030000 48000245 +48000275 09000000 80480668 80480668 02030000 801B1588 -48000301 02000000 +4800030D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005AD -480008E9 20000000 +04030000 480005B9 +480008F5 20000000 80490880 804D68D0 -05030000 48000BFD -48000C3D 50000000 +05030000 48000C09 +48000C49 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4835,384 +4835,385 @@ BE810008 7C7E1B78 7D8903A6 4E800421 809E0014 88840003 2C040002 40820008 -480000D8 886DAFA0 +480000E4 886DAFA0 2C030000 41820020 2C030001 41820014 -2C030002 41820060 -2C030003 41820058 -48000084 4BFFFF09 +2C030002 4182006C +2C030003 41820064 +48000090 4BFFFF09 7F6802A6 7F63DB78 3880001A 3D808000 618CC160 7D8903A6 -4E800421 38600003 -987B0000 38600001 -987B0001 38600000 -987B0005 987B0013 -3C808047 60849D30 -38600006 98640005 -48000060 886DAFC9 -7C630774 2C03FFFF -41820024 2C030001 -4182001C 2C030000 -40820000 886DAFCA -2C030000 41820020 -48000004 48000771 -3C808047 60849D30 -38600005 98640005 -48000018 3C808047 -60849D30 38600002 -98640005 48000004 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B -618C1514 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 809F0014 -88840004 2C040000 -4082001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 -48000064 38600001 -986DAFCA 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0001 -889E0002 7C032000 -4082001C 48000691 +4E800421 480008C9 +7C6802A6 907B0016 +38600003 987B0000 +38600001 987B0001 +38600000 987B0005 +987B0013 3C808047 +60849D30 38600006 +98640005 48000060 +886DAFC9 7C630774 +2C03FFFF 41820024 +2C030001 4182001C +2C030000 40820000 +886DAFCA 2C030000 +41820020 48000004 +48000771 3C808047 +60849D30 38600005 +98640005 48000018 3C808047 60849D30 -38600005 98640005 -4800001C 38600000 -3D80801A 618C42A0 -7D8903A6 4E800421 +38600002 98640005 48000004 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -3D80801B 618C15C8 +3D80801B 618C1514 7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +809F0014 88840004 +2C040000 4082001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000064 +38600001 986DAFCA 38600000 3D808000 618C5610 7D8903A6 -4E800421 7C7F1B78 -886DAFA0 2C030000 -40820108 480006F9 -7C7C1B78 2C1C0000 -4080001C 4BFFFD11 -7CC802A6 88660005 -38630001 98660005 -48000068 4BFFFCF9 -7F6802A6 9B9B0004 -889B0001 38840005 -7F9B21AE 387C0002 -7C9B18AE 38A40001 -7CBB19AE 1C9C0002 -3884000F A07F026A -7C7B232E 889B0000 -38840001 38600002 -7C841B96 7C052000 -4080002C 887B0001 -38630001 987B0001 -38600000 987B0005 -3C808047 60849D30 -38600006 98640005 -48000078 38600001 -3D808037 618CF1E4 +4E800421 7C7E1B78 +887E0001 889E0002 +7C032000 4082001C +48000691 3C808047 +60849D30 38600005 +98640005 4800001C +38600000 3D80801A +618C42A0 7D8903A6 +4E800421 48000004 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3D80801B +618C15C8 7D8903A6 +4E800421 38600000 +3D808000 618C5610 7D8903A6 4E800421 -7C7E1B78 386000BA -987E0000 7FC3F378 -38800001 38A00001 -3D808000 618C55F0 +7C7F1B78 886DAFA0 +2C030000 40820108 +480006F9 7C7C1B78 +2C1C0000 4080001C +4BFFFD05 7CC802A6 +88660005 38630001 +98660005 48000068 +4BFFFCED 7F6802A6 +9B9B0004 889B0001 +38840005 7F9B21AE +387C0002 7C9B18AE +38A40001 7CBB19AE +1C9C0002 3884000F +A07F026A 7C7B232E +889B0000 38840001 +38600002 7C841B96 +7C052000 4080002C +887B0001 38630001 +987B0001 38600000 +987B0005 3C808047 +60849D30 38600006 +98640005 48000078 +38600001 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BA 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3D808037 618CF1B0 7D8903A6 4E800421 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 48000014 3C808047 60849D30 38600001 98640005 -887F0003 480006E9 -986DAFC9 886DAFA0 -2C030003 40820020 -887F0003 38800001 -2C030000 40820008 -38800000 988DAFC9 -4800003C 3A800000 -3AA00000 7E83A378 -480006AD 2C030000 -41820008 3AB50001 -3A940001 2C140004 -4180FFE4 2C150001 -4182000C 38600000 -986DAFC9 3E808047 -62949DA4 887F0003 -48000675 2C030000 -41820018 38600001 -98740000 38600000 -9874005D 48000014 -38600000 98740000 -38600001 9874005D +48000014 3C808047 +60849D30 38600001 +98640005 887F0003 +480006E9 986DAFC9 886DAFA0 2C030003 -4182000C 2C030000 -4082000C 38600000 -98740004 38600000 -986DAFCA 38600004 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C7E1B78 386000BC -987E0000 7FC3F378 -38800001 38A00001 +40820020 887F0003 +38800001 2C030000 +40820008 38800000 +988DAFC9 4800003C +3A800000 3AA00000 +7E83A378 480006AD +2C030000 41820008 +3AB50001 3A940001 +2C140004 4180FFE4 +2C150001 4182000C +38600000 986DAFC9 +3E808047 62949DA4 +887F0003 48000675 +2C030000 41820018 +38600001 98740000 +38600000 9874005D +48000014 38600000 +98740000 38600001 +9874005D 886DAFA0 +2C030003 4182000C +2C030000 4082000C +38600000 98740004 +38600000 986DAFCA +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BC 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +38800004 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -7FC3F378 38800004 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C80804D -807E0000 90645F90 -7FC3F378 3D808037 -618CF1B0 7D8903A6 -4E800421 7FE3FB78 +3C80804D 807E0000 +90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -01780101 01FF2121 -FF2121EE 0000EE00 -7C0802A6 90010004 -9421FF50 BE810008 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -83ED8840 3BFF0598 -886DAFA0 2C030003 -40820048 3BA00000 -1CBD0024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 -7D8903A6 4E800421 -1C9D0024 38840063 -7C7F21AE 3BBD0001 -2C1D0004 4180FFC4 -3C608049 60630888 -4BFFFF65 7C8802A6 -38A00010 3D808000 -618C31F4 7D8903A6 -4E800421 3C808049 -60840888 887F0060 -98640005 887F0063 -9864000B 887F0084 -98640008 887F0087 -9864000E 38600000 -9864FFFF 9864FFFB -887E0264 2C030000 -418200F4 887E0003 -1C630024 386302C5 -7F7E18AE 38600002 -98640002 38600001 -9864FFFB 98640006 -98640007 98640009 -9864000A 9864000C -9864000D 9864000F -98640010 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 40820030 -1CBD0024 38A50060 -7CBF28AE 38DC0005 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000B 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840003 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 41820030 -1CBD0024 38A50060 -7CBF28AE 38DC0008 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000E 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840004 3C808043 -60842078 887F0060 -90640014 887F0063 -98640018 887F0084 -9064001C 887F0087 -98640020 887E0264 -2C030000 41820024 -887F00A8 90640024 -887F00AB 98640028 -887F00CC 9064002C -887F00CF 98640030 -A07F000E 9064000C -3D808001 618C8254 -7D8903A6 4E800421 -386000C7 3D808001 -618C8C2C 7D8903A6 -4E800421 38600004 -3D808001 618C7700 -7D8903A6 4E800421 -3860001C 3D808002 -618C6F2C 7D8903A6 -4E800421 3A800000 -1C140024 7FF5FB78 -7EB50214 3D808000 -618C569C 7D8903A6 -4E800421 88950060 -7C840774 7C041800 -41820028 38600000 -3D808000 618C56A0 -7D8903A6 4E800421 -3D808000 618C56A8 -7D8903A6 4E800421 -3A940001 2C140006 -3AB50024 4180FFB0 -A07F000E 3D808022 -618C519C 7D8903A6 -4E800421 7C641B78 -38600001 3D808000 -618C56A0 7D8903A6 -4E800421 3D808000 -618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3C808047 60849D30 -38600003 98640005 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 +4E800021 01780101 +01FF2121 FF2121EE +0000EE00 7C0802A6 90010004 9421FF50 BE810008 38600000 3D808000 618C5610 7D8903A6 4E800421 -7C7F1B78 83CD8840 -3BDE0598 7FC3F378 -389F025C 38A00138 +7C7E1B78 83ED8840 +3BFF0598 886DAFA0 +2C030003 40820048 +3BA00000 1CBD0024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C9D0024 +38840063 7C7F21AE +3BBD0001 2C1D0004 +4180FFC4 3C608049 +60630888 4BFFFF65 +7C8802A6 38A00010 3D808000 618C31F4 7D8903A6 4E800421 -7FC3F378 3D808000 -618C5694 7D8903A6 -4E800421 3D808017 -618CEB30 7D8903A6 -4E800421 889F02BC -98830000 889F02BF -98830001 38800000 -98830002 38800003 -98830005 38800078 -98830004 3C80803D -6084DEC8 8084000C -887F02E0 98640002 -38602121 B0640003 -3C808049 60840880 -887F02E3 98640016 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 3FE08047 -63FF9DA4 887F0004 -2C030001 41820010 -2C030002 4182007C -480000C4 38600000 -3D808003 618C3BD8 +3C808049 60840888 +887F0060 98640005 +887F0063 9864000B +887F0084 98640008 +887F0087 9864000E +38600000 9864FFFF +9864FFFB 887E0264 +2C030000 418200F4 +887E0003 1C630024 +386302C5 7F7E18AE +38600002 98640002 +38600001 9864FFFB +98640006 98640007 +98640009 9864000A +9864000C 9864000D +9864000F 98640010 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +40820030 1CBD0024 +38A50060 7CBF28AE +38DC0005 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000B +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840003 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +41820030 1CBD0024 +38A50060 7CBF28AE +38DC0008 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000E +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840004 +3C808043 60842078 +887F0060 90640014 +887F0063 98640018 +887F0084 9064001C +887F0087 98640020 +887E0264 2C030000 +41820024 887F00A8 +90640024 887F00AB +98640028 887F00CC +9064002C 887F00CF +98640030 A07F000E +9064000C 3D808001 +618C8254 7D8903A6 +4E800421 386000C7 +3D808001 618C8C2C +7D8903A6 4E800421 +38600004 3D808001 +618C7700 7D8903A6 +4E800421 3860001C +3D808002 618C6F2C 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C3BD8 +3A800000 1C140024 +7FF5FB78 7EB50214 +3D808000 618C569C 7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 +88950060 7C840774 +7C041800 41820028 +38600000 3D808000 +618C56A0 7D8903A6 +4E800421 3D808000 +618C56A8 7D8903A6 +4E800421 3A940001 +2C140006 3AB50024 +4180FFB0 A07F000E +3D808022 618C519C 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 +7C641B78 38600001 +3D808000 618C56A0 7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 -3D808003 618C3BD8 +3D808000 618C56A8 +7D8903A6 4E800421 +3D808002 618C7168 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 7C7D1B78 +BE810008 3C808047 +60849D30 38600003 +98640005 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7F1B78 +83CD8840 3BDE0598 +7FC3F378 389F025C +38A00138 3D808000 +618C31F4 7D8903A6 +4E800421 7FC3F378 +3D808000 618C5694 +7D8903A6 4E800421 +3D808017 618CEB30 +7D8903A6 4E800421 +889F02BC 98830000 +889F02BF 98830001 +38800000 98830002 +38800003 98830005 +38800078 98830004 +3C80803D 6084DEC8 +8084000C 887F02E0 +98640002 38602121 +B0640003 3C808049 +60840880 887F02E3 +98640016 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 +887F0004 2C030001 +41820010 2C030002 +4182007C 480000C4 +38600000 3D808003 +618C3BD8 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA810008 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -83E30010 887F0005 -2C030000 40820014 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 83E30010 887F0005 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFC95 3C808047 -60849D30 38600005 -98640005 BA810008 +40820014 3D808001 +618C74BC 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +83E30010 887F0005 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFC95 +3C808047 60849D30 +38600005 98640005 BA810008 800100B4 382100B0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA810008 +800100B4 382100B0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 From 335a77dc9997fd9a126df14090146738d4981cbb Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Wed, 27 Jul 2022 17:09:09 -0700 Subject: [PATCH 098/217] chore: update Makefile to match build.bat --- Makefile | 94 ++++++++++++++++++++------------------------------------ 1 file changed, 33 insertions(+), 61 deletions(-) diff --git a/Makefile b/Makefile index a98e1511..05339b7b 100644 --- a/Makefile +++ b/Makefile @@ -3,29 +3,37 @@ # netplay.json and playback.json also build versions of GALJ01r2.ini for NTSC-J NETPLAY_INI := Output/Netplay/GALE01r2.ini PLAYBACK_INI := Output/Playback/GALE01r2.ini -ONLINE_INI := Output/Online/online.txt +ONLINE_INI := Output/Online/online.txt # GCT output for Nintendont -C_DIR := Output/Console -CONSOLE_CORE := $(C_DIR)/g_core.bin -CONSOLE_CORE_PORTA := $(C_DIR)/g_core_porta.bin -CONSOLE_UCF := $(C_DIR)/g_ucf.bin -CONSOLE_UCF_STEALTH := $(C_DIR)/g_ucf_stealth.bin -CONSOLE_TOGGLES := $(C_DIR)/g_toggles.bin -CONSOLE_MODS_STEALTH := $(C_DIR)/g_mods_stealth.bin -CONSOLE_MODS_TOURNAMENT := $(C_DIR)/g_mods_tournament.bin -CONSOLE_MODS_FRIENDLIES := $(C_DIR)/g_mods_friendlies.bin -CONSOLE_PAL := $(C_DIR)/g_pal.bin -CONSOLE_FROZEN := $(C_DIR)/g_frozen.bin -CONSOLE_LAG_PD := $(C_DIR)/g_lag_pd.bin -CONSOLE_LAG_PDHALFVB := $(C_DIR)/g_lag_pdhalfvb.bin -CONSOLE := $(CONSOLE_CORE) \ - $(CONSOLE_CORE_PORTA) $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ - $(CONSOLE_TOGGLES) $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) \ - $(CONSOLE_MODS_FRIENDLIES) $(CONSOLE_PAL) $(CONSOLE_FROZEN) \ - $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) - -ALL_TARGETS := $(ONLINE_INI) $(NETPLAY_INI) $(PLAYBACK_INI) $(CONSOLE) +# to add a new json just create a new var with the json name +# and then add it to the CONSOLE list +CONSOLE_CORE := core +CONSOLE_CORE_PORTA := core_porta +CONSOLE_UCF := console_UCF.json +CONSOLE_UCF_STEALTH := console_UCF_stealth.json +CONSOLE_MODS_STEALTH := console_mods_stealth.json +CONSOLE_MODS_TOURNAMENT := console_mods_tournament.json +CONSOLE_MODS_FRIENDLIES := console_mods_friendlies.json +CONSOLE_PAL := console_PAL.json +CONSOLE_FROZEN_PS := console_stages_stadium.json +CONSOLE_FROZEN_ALL := console_stages_all.json +CONSOLE_GAMEPLAY_LGL := console_gameplay_lgl.json +CONSOLE_GAMEPLAY_WOBBLE := console_gameplay_wobbling.json +CONSOLE_GAMEPLAY_BOTH := console_gameplay_both.json +CONSOLE_LAG_PD := console_lag_pd.json +CONSOLE_LAG_PDHALFVB := console_lag_pdhalfvb.json +CONSOLE_SCREEN_WIDE := console_screen_wide.json +CONSOLE_SCREEN_SHUTTERS := console_screen_wide_shutters.json +CONSOLE_SAFETY := console_safety.json +CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ + $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) $(CONSOLE_MODS_FRIENDLIES) \ + $(CONSOLE_PAL) $(CONSOLE_FROZEN_PS) $(CONSOLE_FROZEN_ALL) $(CONSOLE_GAMEPLAY_LGL) \ + $(CONSOLE_GAMEPLAY_WOBBLE) $(CONSOLE_GAMEPLAY_BOTH) $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) \ + $(CONSOLE_SCREEN_WIDE) $(CONSOLE_SCREEN_SHUTTERS) $(CONSOLE_SAFETY) + +ALL_TARGETS := $(ONLINE_INI) $(NETPLAY_INI) $(PLAYBACK_INI) \ + $(CONSOLE_CORE_PORTA) $(CONSOLE_CORE) $(CONSOLE) .PHONY: $(ALL_TARGETS) clean all: $(ALL_TARGETS) @@ -33,51 +41,15 @@ all: $(ALL_TARGETS) # Targets for binaries to-be-included in the Slippi Nintendont tree $(CONSOLE_CORE): console_core.json - gecko build -defsym "STG_EXIIndex=1" -o "$(CONSOLE_CORE)" -c $< + gecko build -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -c $< @echo "" $(CONSOLE_CORE_PORTA): console_core.json - gecko build -defsym "STG_EXIIndex=0" -o "$(CONSOLE_CORE_PORTA)" -c $< - @echo "" - -$(CONSOLE_TOGGLES): console_ControllerFixPlayerToggles.json - gecko build -c $< - @echo "" - -$(CONSOLE_UCF): console_UCF.json - gecko build -c $< - @echo "" - -$(CONSOLE_UCF_STEALTH): console_UCF_stealth.json - gecko build -c $< - @echo "" - -$(CONSOLE_MODS_STEALTH): console_mods_stealth.json - gecko build -c $< - @echo "" - -$(CONSOLE_MODS_TOURNAMENT): console_mods_tournament.json - gecko build -c $< - @echo "" - -$(CONSOLE_MODS_FRIENDLIES): console_mods_friendlies.json - gecko build -c $< - @echo "" - -$(CONSOLE_PAL): console_PAL.json - gecko build -c $< - @echo "" - -$(CONSOLE_FROZEN): console_frozen.json - gecko build -c $< - @echo "" - -$(CONSOLE_LAG_PD): console_lag_pd.json - gecko build -c $< + gecko build -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" -c $< @echo "" -$(CONSOLE_LAG_PDHALFVB): console_lag_pdhalfvb.json - gecko build -c $< +$(CONSOLE): + gecko build -c $@ @echo "" # ----------------------------------------------------------------------------- From 4edbfc83631a3d2ffe2ad98182b1e05303bc8650 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Wed, 27 Jul 2022 17:15:48 -0700 Subject: [PATCH 099/217] chore: fix Makefile spacing --- Makefile | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 05339b7b..d177bd48 100644 --- a/Makefile +++ b/Makefile @@ -3,30 +3,30 @@ # netplay.json and playback.json also build versions of GALJ01r2.ini for NTSC-J NETPLAY_INI := Output/Netplay/GALE01r2.ini PLAYBACK_INI := Output/Playback/GALE01r2.ini -ONLINE_INI := Output/Online/online.txt +ONLINE_INI := Output/Online/online.txt # GCT output for Nintendont # to add a new json just create a new var with the json name # and then add it to the CONSOLE list -CONSOLE_CORE := core -CONSOLE_CORE_PORTA := core_porta -CONSOLE_UCF := console_UCF.json -CONSOLE_UCF_STEALTH := console_UCF_stealth.json -CONSOLE_MODS_STEALTH := console_mods_stealth.json -CONSOLE_MODS_TOURNAMENT := console_mods_tournament.json -CONSOLE_MODS_FRIENDLIES := console_mods_friendlies.json -CONSOLE_PAL := console_PAL.json -CONSOLE_FROZEN_PS := console_stages_stadium.json -CONSOLE_FROZEN_ALL := console_stages_all.json -CONSOLE_GAMEPLAY_LGL := console_gameplay_lgl.json +CONSOLE_CORE := core +CONSOLE_CORE_PORTA := core_porta +CONSOLE_UCF := console_UCF.json +CONSOLE_UCF_STEALTH := console_UCF_stealth.json +CONSOLE_MODS_STEALTH := console_mods_stealth.json +CONSOLE_MODS_TOURNAMENT := console_mods_tournament.json +CONSOLE_MODS_FRIENDLIES := console_mods_friendlies.json +CONSOLE_PAL := console_PAL.json +CONSOLE_FROZEN_PS := console_stages_stadium.json +CONSOLE_FROZEN_ALL := console_stages_all.json +CONSOLE_GAMEPLAY_LGL := console_gameplay_lgl.json CONSOLE_GAMEPLAY_WOBBLE := console_gameplay_wobbling.json -CONSOLE_GAMEPLAY_BOTH := console_gameplay_both.json -CONSOLE_LAG_PD := console_lag_pd.json -CONSOLE_LAG_PDHALFVB := console_lag_pdhalfvb.json -CONSOLE_SCREEN_WIDE := console_screen_wide.json +CONSOLE_GAMEPLAY_BOTH := console_gameplay_both.json +CONSOLE_LAG_PD := console_lag_pd.json +CONSOLE_LAG_PDHALFVB := console_lag_pdhalfvb.json +CONSOLE_SCREEN_WIDE := console_screen_wide.json CONSOLE_SCREEN_SHUTTERS := console_screen_wide_shutters.json -CONSOLE_SAFETY := console_safety.json -CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ +CONSOLE_SAFETY := console_safety.json +CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) $(CONSOLE_MODS_FRIENDLIES) \ $(CONSOLE_PAL) $(CONSOLE_FROZEN_PS) $(CONSOLE_FROZEN_ALL) $(CONSOLE_GAMEPLAY_LGL) \ $(CONSOLE_GAMEPLAY_WOBBLE) $(CONSOLE_GAMEPLAY_BOTH) $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) \ From fed9c8a3dd6c49a1ad79fdab5ac323bffaf5f47b Mon Sep 17 00:00:00 2001 From: Ownasaurus Date: Wed, 27 Jul 2022 21:10:44 -0400 Subject: [PATCH 100/217] update build.sh to match build.bat (#96) --- Output/Netplay/GALE01r2.ini | 6 +++--- Output/Netplay/GALJ01r2.ini | 6 +++--- build.sh | 18 ++++++++++++------ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 18bd9c24..8a649188 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2735,15 +2735,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C761B78 38600004 +7C791B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38760000 +7C781B78 38790000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38760000 48000261 +38790000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8da22d17..cdae4289 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2735,15 +2735,15 @@ BE810008 4BFFFDFD 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 -7C761B78 38600004 +7C791B78 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C781B78 38760000 +7C781B78 38790000 38800004 3CA08037 60A5F1B0 38D80000 3D808039 618C0B68 7D8903A6 4E800421 -38760000 48000261 +38790000 48000261 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 diff --git a/build.sh b/build.sh index 99ecbf5b..b0ada603 100755 --- a/build.sh +++ b/build.sh @@ -3,25 +3,31 @@ source ./build-netplay.sh source ./build-playback.sh -echo Building console_core.json... -gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -echo "" - echo Building console_core.json for Port A... gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" echo "" +echo Building console_core.json... +gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" +echo "" + list=( "console_UCF.json" "console_UCF_stealth.json" - "console_ControllerFixPlayerToggles.json" "console_mods_stealth.json" "console_mods_tournament.json" "console_mods_friendlies.json" "console_PAL.json" - "console_frozen.json" + "console_stages_stadium.json" + "console_stages_all.json" + "console_gameplay_lgl.json" + "console_gameplay_wobbling.json" + "console_gameplay_both.json" "console_lag_pd.json" "console_lag_pdhalfvb.json" + "console_screen_wide.json" + "console_screen_wide_shutters.json" + "console_safety.json" ) for file in "${list[@]}" From 713aa1f772568a4dc6ee4f12ffec27976a43030e Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 27 Jul 2022 22:54:58 -0400 Subject: [PATCH 101/217] use unique symbol name to match assembler output the older assembler used in the gecko download for windows seems to use the last set symbol value instead of the most recently set value. By using unique names, we avoid this issue --- Online/Menus/CSS/LoadCSSText.asm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index a5468f97..0b034006 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -241,7 +241,10 @@ blrl # FN_InitUserDisplay ################################################################################ # Queue up per-frame CSS text update function ################################################################################ -.set REG_GOBJ, REG_VARIOUS_1 +# Using REG_GOBJ_1 because REG_GOBJ is set to that later in the file. A newer assembler seems +# to be using the last value in the file instead of the most recent... so this will make the +# outputs match +.set REG_GOBJ_1, REG_VARIOUS_1 .set REG_USERDATA, REG_VARIOUS_2 # Create GObj (input values stolen from CSS_BigFunc... GObj) @@ -249,7 +252,7 @@ li r3, 0x4 li r4, 0x5 li r5, 0x80 branchl r12, GObj_Create -mr REG_GOBJ, r3 +mr REG_GOBJ_1, r3 # Alloc userdata li r3, TEXTGOBJDATA_SIZE @@ -257,14 +260,14 @@ branchl r12,HSD_MemAlloc mr REG_USERDATA, r3 # Add userdata -addi r3, REG_GOBJ,0 +addi r3, REG_GOBJ_1,0 li r4, 4 load r5, HSD_Free addi r6, REG_USERDATA, 0 branchl r12, GObj_AddUserData # Schedule Function -addi r3, REG_GOBJ,0 +addi r3, REG_GOBJ_1,0 bl CSS_ONLINE_TEXT_THINK mflr r4 # Function to Run li r5, 4 # Priority. 4 runs after CSS_LoadButtonInputs (3) From 0710e70288e2707906637ac6258466ec6f3e5ab2 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Wed, 27 Jul 2022 19:57:43 -0700 Subject: [PATCH 102/217] ci: add build check (#97) --- .github/workflows/build_check.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/build_check.yml diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml new file mode 100644 index 00000000..0cbaecc9 --- /dev/null +++ b/.github/workflows/build_check.yml @@ -0,0 +1,29 @@ +name: Build Check + +on: + push: + paths-ignore: + - "**.md" + branches: + - "**" + pull_request: + paths-ignore: + - "**.md" + branches: + - "**" + +jobs: + ubuntu64: + name: "Build Check" + runs-on: ubuntu-18.04 + steps: + - name: "Checkout" + uses: actions/checkout@v2 + with: + submodules: recursive + - name: "Build" + if: success() + working-directory: ${{ github.workspace }} + run: | + sudo docker run --volume=${PWD}:/work --workdir=/work nikhilnarayana/devkitpro-slippi make + - uses: numtide/clean-git-action@v1 From 7fed7bdf9eab825d5e841b7dcfac40630f0be555 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 1 Aug 2022 18:32:43 -0400 Subject: [PATCH 103/217] add match abandon logic --- Online/Core/CustomizeMessageLRAS.asm | 17 +- Online/Core/InitOnlinePlay.asm | 13 ++ Online/Core/StartEngineLoop.asm | 25 +++ Online/Online.s | 4 +- Online/Slippi Online Scene/main.asm | 36 +++- Output/Netplay/GALE01r2.ini | 254 +++++++++++++++------------ Output/Netplay/GALJ01r2.ini | 254 +++++++++++++++------------ 7 files changed, 357 insertions(+), 246 deletions(-) diff --git a/Online/Core/CustomizeMessageLRAS.asm b/Online/Core/CustomizeMessageLRAS.asm index cc5e24f6..8a9b9508 100644 --- a/Online/Core/CustomizeMessageLRAS.asm +++ b/Online/Core/CustomizeMessageLRAS.asm @@ -28,16 +28,27 @@ lbz r10, 0x1(REG_MATCH_INFO) # It's safe to change r3 now cause we are exiting the function ################################################################################ +# If this happens in ranked, it's a disconnect, don't play sound as error sound will have played +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +bne CHECK_LRAS + +# If ranked, play error sound. For some reason the one in StartEngineLoop doesn't play +li r3, 3 +b PLAY_SOUND + +CHECK_LRAS: # Fetch the index of the local player lwz r11, OFST_R13_ODB_ADDR(r13) # data buffer address lbz r3, ODB_LOCAL_PLAYER_INDEX(r11) cmpw r3, r10 # Compare local player index to index of pauser -beq SKIP_PLAY_PAUSE_SOUND +beq SKIP_PLAY_SOUND # Play SFX -li r3, 5 +li r3, 5 +PLAY_SOUND: branchl r12, SFX_Menu_CommonSound -SKIP_PLAY_PAUSE_SOUND: +SKIP_PLAY_SOUND: # branch r12, 0x802f70fc # Failure # branch r12, 0x802f7110 # Game! diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index fb38128d..492d194c 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -329,6 +329,19 @@ mtctr r3 bctrl stb r3, RGB_WINNER_IDX(REG_RGB_ADDR) +# Output the game end method and lras initiator +load r4, 0x8046b6a0 +lbz r3, 0x8(r4) +stb r3, RGB_GAME_END_METHOD(REG_RGB_ADDR) +cmpwi r3, 0x7 +bne NO_LRAS +lbz r3, 0x1(r4) +b STORE_LRAS_INITIATOR +NO_LRAS: +li r3, -1 +STORE_LRAS_INITIATOR: +stb r3, RGB_LRAS_INITIATOR(REG_RGB_ADDR) + PLAYER_LOOP_INIT: li REG_IDX, 0 addi REG_RGPB_ADDR, REG_RGB_ADDR, RGB_P1_RGPB diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 0dfdabc4..a8f76db2 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -134,6 +134,31 @@ branchl r12, Text_ChangeTextColor li r3, 1 stb r3, ODB_IS_DISCONNECT_STATE_DISPLAYED(REG_ODB_ADDRESS) +# Check if we should end game (ranked mode), could maybe check if pause is fully off instead +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +bne DISPLAY_DISCONNECT_END + +# ASM Notes. Match struct at 0x8046b6a0 has info about the game. The early values seem to be control +# values. Here are notes on offsets: +# 0x0 (u8): Control byte. 0 during game, 1 during GAME!, 3 to transition to next scene +# 0x1 (u8): Stores index of last person that paused +# 0x8 (u8): Stores type of game exit, instructs which text to show on GAME! screen? +# 0x30 (u8): Counter that counts up during GAME! screen until it is greater than timeout +# 0x24D5 (u8): Max time to stay on GAME! screen + +# Write values which will cause line at 0x8016d2c8 to detect game has ended +load r3, 0x8046b6a0 # Some static match state struct +lbz r4, ODB_ONLINE_PLAYER_INDEX(REG_ODB_ADDRESS) +stb r4, 0x1(r3) # Write "pauser" index +li r4, 0x7 +stb r4, 0x8(r3) # Write that the game is exiting as an LRAS +li r4, 0x37 # Default value for this is 0x6e +stb r4, 0x24D5(r3) # Overwrite the GAME! think max time to make it shorter + +# Hide HUD +# branchl r12, 0x802f3394 # Pause_HideHUD + DISPLAY_DISCONNECT_END: ################################################################################ diff --git a/Online/Online.s b/Online/Online.s index e48aa6a4..5a9d3df5 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -412,7 +412,9 @@ .set RGB_GAME_INDEX, RGB_FRAME_LENGTH + 4 # u32, 1-indexed .set RGB_TIEBREAKER_INDEX, RGB_GAME_INDEX + 4 # u32, 1-indexed, 0 = not tiebreak .set RGB_WINNER_IDX, RGB_TIEBREAKER_INDEX + 4 # s8 -.set RGB_P1_RGPB, RGB_WINNER_IDX + 1 # RGPB_SIZE +.set RGB_GAME_END_METHOD, RGB_WINNER_IDX + 1 # u8 +.set RGB_LRAS_INITIATOR, RGB_GAME_END_METHOD + 1 # s8 +.set RGB_P1_RGPB, RGB_LRAS_INITIATOR + 1 # RGPB_SIZE .set RGB_P2_RGPB, RGB_P1_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P3_RGPB, RGB_P2_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P4_RGPB, RGB_P3_RGPB + RGPB_SIZE # RGPB_SIZE diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index d1e23c0e..6185ed6e 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -584,6 +584,11 @@ lbz r3, OFST_R13_ONLINE_MODE(r13) cmpwi r3, ONLINE_MODE_RANKED bne VSSceneDecide_SkipRankedHandler +# If connection is not active, just go back to CSS +lbz r3, MSRB_CONNECTION_STATE(REG_MSRB_ADDR) +cmpwi r3, MM_STATE_IDLE +beq VSSceneDecide_SkipRankedHandler + # Get the winner of last game bl SinglesDetermineWinner mr REG_WINNER_IDX, r3 @@ -666,13 +671,9 @@ branchl r12, FN_EXITransferBuffer mr r3, REG_TXB_ADDR branchl r12, HSD_Free -# Return to CSS since ranked set is over -load r4, 0x80479d30 -li r3, 0x01 -stb r3, 0x5(r4) -b VSSceneDecide_ModeHandlerEnd -VSSceneDecide_SkipRankedHandler: +# Allow to return to CSS since ranked set is over +VSSceneDecide_SkipRankedHandler: # Go back to CSS load r4, 0x80479d30 li r3, 0x01 @@ -1320,7 +1321,7 @@ CheckIfWonLastGame_CheckForTeams: CheckIfWonLastGame_FFA: #Check If Player Won lbz r3,0x5D(MatchEndPlayerStruct) - #if so return 1, if not return 0 + # . if so return 1, if not return 0 cmpwi r3,0 beq CheckIfWonLastGame_Won b CheckIfWonLastGame_DidNotWin @@ -1342,7 +1343,7 @@ backup lwz REG_GPD, 0x10(r3) # Grabs load data -# Check if this is a tiebreak. If it is a tiebreak, we don't want to invalidate since the same +# Check if this is a tiebreak. If it is a tiebreak, we dont want to invalidate since the same # characters will be loaded lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) cmpwi r3, 0 @@ -1357,9 +1358,28 @@ blr GamePrepSceneDecide: .set REG_GPD, 31 +.set REG_MSRB_ADDR, 30 backup +# Get match state info +li r3, 0 +branchl r12, FN_LoadMatchState +mr REG_MSRB_ADDR, r3 + +# If connection is active, do the normal execution +lbz r3, MSRB_CONNECTION_STATE(REG_MSRB_ADDR) +cmpwi r3, MM_STATE_CONNECTION_SUCCESS +beq GamePrepSceneDecide_ExecNormal + +# Here we have disconnected from opponent, go back to CSS +# Go back to CSS +load r4, 0x80479d30 +li r3, 0x01 +stb r3, 0x5(r4) +b GamePrepSceneDecide_RestoreAndExit + +GamePrepSceneDecide_ExecNormal: lwz REG_GPD, 0x10(r3) # Grabs load data # Check if there was a tie last game and a tiebreak is needed diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index d634267f..7902a747 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1114,19 +1114,22 @@ C05F00B4 FC020840 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C22F7094 0000000C #Online/Core/CustomizeMessageLRAS.asm +C22F7094 0000000F #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 54E7443E 2C070208 -40820048 88E30008 -2C070007 4082003C -89430001 816DB61C -886B0000 7C035000 -41820018 38600005 -3D808002 618C4030 -7D8903A6 4E800421 -3D80802F 618C7120 -7D8903A6 4E800420 -8903000B 00000000 +4082005C 88E30008 +2C070007 40820050 +89430001 886DAFA0 +2C030000 4082000C +38600003 48000018 +816DB61C 886B0000 +7C035000 41820018 +38600005 3D808002 +618C4030 7D8903A6 +4E800421 3D80802F +618C7120 7D8903A6 +4E800420 8903000B +60000000 00000000 C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 @@ -1183,14 +1186,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000008E #Online/Core/InitOnlinePlay.asm +C216E748 00000093 #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820428 3860091C +40820450 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1275,7 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000198 4E800021 +480001C0 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1293,7 +1296,7 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 88040008 98030004 3D808016 618C6378 7D8903A6 4E800421 -3860015F 3D808037 +38600161 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 @@ -1304,8 +1307,13 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 907E0006 887B0005 907E000A 807B0016 7C6903A6 4E800421 -987E000E 3BE00000 -3BBE000F 7FE3FB78 +987E000E 3C808046 +6084B6A0 88640008 +987E000F 2C030007 +4082000C 88640001 +48000008 3860FFFF +987E0010 3BE00000 +3BBE0011 7FE3FB78 3D808003 618C1724 7D8903A6 4E800421 80830008 989D0000 @@ -1313,11 +1321,11 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 80830D28 909D0002 3BFF0001 3BBD0006 2C1F0004 4180FFC8 -387E0027 3C808048 +387E0029 3C808048 60840530 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -7FC3F378 3880015F +7FC3F378 38800161 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 @@ -1529,7 +1537,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000061 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1542,16 +1550,16 @@ C21A4DE4 00000061 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820294 3C608047 +408202C0 3C608047 60639D64 80630000 -2C030000 40820280 +2C030000 408202AC 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 887E0011 2C030000 -408200D0 887E0010 -2C030000 418200C4 +408200FC 887E0010 +2C030000 418200F0 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 @@ -1576,57 +1584,63 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987E0011 -887E08FD 2C030000 -418200B0 887E0902 -2C030000 41820094 -807E0903 7C1F1800 -41820024 41800094 -807E039E 809E0903 +886DAFA0 2C030000 +40820024 3C608046 +6063B6A0 889E0001 +98830001 38800007 +98830008 38800037 +988324D5 887E08FD +2C030000 418200B0 +887E0902 2C030000 +41820094 807E0903 +7C1F1800 41820024 +41800094 807E039E +809E0903 80BE03A2 +3D808000 618C560C +7D8903A6 4E800421 +3D808001 618C9894 +7D8903A6 4E800421 +3CA0804C 60A51F78 +88850002 7C832051 +4080000C 88650000 +7C841A14 98850002 +38600000 98650003 +3FE08048 83FF9D60 +807E038B 907E0003 +38600000 987E038A +987E039B 987E039C +987E039D 987E00DE +987E0902 3D808001 +618C95FC 7D8903A6 +4E800421 807E0914 +7C1F1800 4181000C +7FE3FB78 48000004 +809E0907 7C032000 +40810008 907E0907 +887E038A 2C030000 +4182002C 807E0907 +7C1F1800 40810020 +807E039E 7FE4FB78 80BE03A2 3D808000 -618C560C 7D8903A6 -4E800421 3D808001 -618C9894 7D8903A6 -4E800421 3CA0804C -60A51F78 88850002 -7C832051 4080000C -88650000 7C841A14 -98850002 38600000 -98650003 3FE08048 -83FF9D60 807E038B -907E0003 38600000 -987E038A 987E039B -987E039C 987E039D -987E00DE 987E0902 -3D808001 618C95FC +618C5608 7D8903A6 +4E800421 887E000F +2C030001 41820058 +3C608046 6063B6A0 +88630008 2C030000 +40820010 38600000 +907E000B 48000038 +807E000B 2C030000 +40820008 93FE000B +807E000B 7C63F850 +2C030007 40810018 +38600001 987E000F +807E08F9 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C 7D8903A6 4E800421 -807E0914 7C1F1800 -4181000C 7FE3FB78 -48000004 809E0907 -7C032000 40810008 -907E0907 887E038A -2C030000 4182002C -807E0907 7C1F1800 -40810020 807E039E -7FE4FB78 80BE03A2 -3D808000 618C5608 -7D8903A6 4E800421 -887E000F 2C030001 -41820058 3C608046 -6063B6A0 88630008 -2C030000 40820010 -38600000 907E000B -48000038 807E000B -2C030000 40820008 -93FE000B 807E000B -7C63F850 2C030007 -40810018 38600001 -987E000F 807E08F9 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -4724,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E9 #Online/Slippi Online Scene/main.asm +C21A45B8 000001EF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4735,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000EDC 80830000 +48000F0C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4767,7 +4781,7 @@ BE810008 3C80803E BE810008 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B31 +7C8802A6 48000B29 7C6802A6 90640016 3D808000 618C56B8 7D8903A6 4E800421 @@ -4802,11 +4816,11 @@ BA810008 800100B4 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005B9 -480008F5 20000000 +04030000 480005B1 +480008ED 20000000 80490880 804D68D0 -05030000 48000C09 -48000C49 50000000 +05030000 48000C01 +48000C41 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4844,7 +4858,7 @@ BE810008 7C7E1B78 7F6802A6 7F63DB78 3880001A 3D808000 618CC160 7D8903A6 -4E800421 480008C9 +4E800421 480008C1 7C6802A6 907B0016 38600003 987B0000 38600001 987B0001 @@ -4858,7 +4872,7 @@ BE810008 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000771 3C808047 +48000769 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -4886,7 +4900,7 @@ BE810008 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000691 3C808047 +48000689 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -4902,40 +4916,39 @@ BE810008 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 40820108 -480006F9 7C7C1B78 -2C1C0000 4080001C -4BFFFD05 7CC802A6 -88660005 38630001 -98660005 48000068 -4BFFFCED 7F6802A6 -9B9B0004 889B0001 -38840005 7F9B21AE -387C0002 7C9B18AE -38A40001 7CBB19AE -1C9C0002 3884000F -A07F026A 7C7B232E -889B0000 38840001 -38600002 7C841B96 -7C052000 4080002C -887B0001 38630001 -987B0001 38600000 -987B0005 3C808047 -60849D30 38600006 -98640005 48000078 -38600001 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BA 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 +2C030000 40820100 +887F0000 2C030000 +418200F4 480006E5 +7C7C1B78 2C1C0000 +4080001C 4BFFFCF9 +7CC802A6 88660005 +38630001 98660005 +48000068 4BFFFCE1 +7F6802A6 9B9B0004 +889B0001 38840005 +7F9B21AE 387C0002 +7C9B18AE 38A40001 +7CBB19AE 1C9C0002 +3884000F A07F026A +7C7B232E 889B0000 +38840001 38600002 +7C841B96 7C052000 +4080002C 887B0001 +38630001 987B0001 +38600000 987B0005 3C808047 60849D30 -38600001 98640005 -48000014 3C808047 +38600006 98640005 +48000064 38600001 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7E1B78 386000BA +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FC3F378 3D808037 +618CF1B0 7D8903A6 +4E800421 3C808047 60849D30 38600001 98640005 887F0003 480006E9 986DAFC9 @@ -5201,11 +5214,18 @@ BE810008 83E30010 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +887E0000 2C030004 +41820018 3C808047 +60849D30 38600001 +98640005 4800003C 83E30010 887F0005 2C030000 41820018 3C808047 60849D30 38600003 98640005 -48000018 4BFFFC95 +48000018 4BFFFC5D 3C808047 60849D30 38600005 98640005 BA810008 800100B4 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index cf4553a3..826267cb 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1114,19 +1114,22 @@ C05F00B4 FC020840 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C22F7094 0000000C #Online/Core/CustomizeMessageLRAS.asm +C22F7094 0000000F #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 54E7443E 2C070208 -40820048 88E30008 -2C070007 4082003C -89430001 816DB61C -886B0000 7C035000 -41820018 38600005 -3D808002 618C4030 -7D8903A6 4E800421 -3D80802F 618C7120 -7D8903A6 4E800420 -8903000B 00000000 +4082005C 88E30008 +2C070007 40820050 +89430001 886DAFA0 +2C030000 4082000C +38600003 48000018 +816DB61C 886B0000 +7C035000 41820018 +38600005 3D808002 +618C4030 7D8903A6 +4E800421 3D80802F +618C7120 7D8903A6 +4E800420 8903000B +60000000 00000000 C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 3C608048 80639D30 5463443E 2C030208 @@ -1183,14 +1186,14 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000008E #Online/Core/InitOnlinePlay.asm +C216E748 00000093 #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820428 3860091C +40820450 3860091C 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 3880091C @@ -1272,7 +1275,7 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 7C8802A6 38A00000 3D808038 618CFD54 7D8903A6 4E800421 -48000198 4E800021 +480001C0 4E800021 3C608048 80639D60 5464803E 806DB61C 80630007 7C841A14 @@ -1293,7 +1296,7 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 88040008 98030004 3D808016 618C6378 7D8903A6 4E800421 -3860015F 3D808037 +38600161 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 386000BD 987E0000 @@ -1304,8 +1307,13 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 907E0006 887B0005 907E000A 807B0016 7C6903A6 4E800421 -987E000E 3BE00000 -3BBE000F 7FE3FB78 +987E000E 3C808046 +6084B6A0 88640008 +987E000F 2C030007 +4082000C 88640001 +48000008 3860FFFF +987E0010 3BE00000 +3BBE0011 7FE3FB78 3D808003 618C1724 7D8903A6 4E800421 80830008 989D0000 @@ -1313,11 +1321,11 @@ C216E748 0000008E #Online/Core/InitOnlinePlay.asm 80830D28 909D0002 3BFF0001 3BBD0006 2C1F0004 4180FFC8 -387E0027 3C808048 +387E0029 3C808048 60840530 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -7FC3F378 3880015F +7FC3F378 38800161 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 @@ -1529,7 +1537,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000061 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 48000030 4E800021 @@ -1542,16 +1550,16 @@ C21A4DE4 00000061 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820294 3C608047 +408202C0 3C608047 60639D64 80630000 -2C030000 40820280 +2C030000 408202AC 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 4E800421 7C791B78 887E0011 2C030000 -408200D0 887E0010 -2C030000 418200C4 +408200FC 887E0010 +2C030000 418200F0 38600003 3D808002 618C4030 7D8903A6 4E800421 4BFFFF51 @@ -1576,57 +1584,63 @@ C0570010 3D80803A 3D80803A 618C74F0 7D8903A6 4E800421 38600001 987E0011 -887E08FD 2C030000 -418200B0 887E0902 -2C030000 41820094 -807E0903 7C1F1800 -41820024 41800094 -807E039E 809E0903 +886DAFA0 2C030000 +40820024 3C608046 +6063B6A0 889E0001 +98830001 38800007 +98830008 38800037 +988324D5 887E08FD +2C030000 418200B0 +887E0902 2C030000 +41820094 807E0903 +7C1F1800 41820024 +41800094 807E039E +809E0903 80BE03A2 +3D808000 618C560C +7D8903A6 4E800421 +3D808001 618C9894 +7D8903A6 4E800421 +3CA0804C 60A51F78 +88850002 7C832051 +4080000C 88650000 +7C841A14 98850002 +38600000 98650003 +3FE08048 83FF9D60 +807E038B 907E0003 +38600000 987E038A +987E039B 987E039C +987E039D 987E00DE +987E0902 3D808001 +618C95FC 7D8903A6 +4E800421 807E0914 +7C1F1800 4181000C +7FE3FB78 48000004 +809E0907 7C032000 +40810008 907E0907 +887E038A 2C030000 +4182002C 807E0907 +7C1F1800 40810020 +807E039E 7FE4FB78 80BE03A2 3D808000 -618C560C 7D8903A6 -4E800421 3D808001 -618C9894 7D8903A6 -4E800421 3CA0804C -60A51F78 88850002 -7C832051 4080000C -88650000 7C841A14 -98850002 38600000 -98650003 3FE08048 -83FF9D60 807E038B -907E0003 38600000 -987E038A 987E039B -987E039C 987E039D -987E00DE 987E0902 -3D808001 618C95FC +618C5608 7D8903A6 +4E800421 887E000F +2C030001 41820058 +3C608046 6063B6A0 +88630008 2C030000 +40820010 38600000 +907E000B 48000038 +807E000B 2C030000 +40820008 93FE000B +807E000B 7C63F850 +2C030007 40810018 +38600001 987E000F +807E08F9 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C 7D8903A6 4E800421 -807E0914 7C1F1800 -4181000C 7FE3FB78 -48000004 809E0907 -7C032000 40810008 -907E0907 887E038A -2C030000 4182002C -807E0907 7C1F1800 -40810020 807E039E -7FE4FB78 80BE03A2 -3D808000 618C5608 -7D8903A6 4E800421 -887E000F 2C030001 -41820058 3C608046 -6063B6A0 88630008 -2C030000 40820010 -38600000 907E000B -48000038 807E000B -2C030000 40820008 -93FE000B 807E000B -7C63F850 2C030007 -40810018 38600001 -987E000F 807E08F9 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 @@ -4724,7 +4738,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001E9 #Online/Slippi Online Scene/main.asm +C21A45B8 000001EF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4735,7 +4749,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000EDC 80830000 +48000F0C 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4767,7 +4781,7 @@ BE810008 3C80803E BE810008 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B31 +7C8802A6 48000B29 7C6802A6 90640016 3D808000 618C56B8 7D8903A6 4E800421 @@ -4802,11 +4816,11 @@ BA810008 800100B4 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005B9 -480008F5 20000000 +04030000 480005B1 +480008ED 20000000 80490880 804D68D0 -05030000 48000C09 -48000C49 50000000 +05030000 48000C01 +48000C41 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4844,7 +4858,7 @@ BE810008 7C7E1B78 7F6802A6 7F63DB78 3880001A 3D808000 618CC160 7D8903A6 -4E800421 480008C9 +4E800421 480008C1 7C6802A6 907B0016 38600003 987B0000 38600001 987B0001 @@ -4858,7 +4872,7 @@ BE810008 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000771 3C808047 +48000769 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -4886,7 +4900,7 @@ BE810008 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000691 3C808047 +48000689 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -4902,40 +4916,39 @@ BE810008 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 40820108 -480006F9 7C7C1B78 -2C1C0000 4080001C -4BFFFD05 7CC802A6 -88660005 38630001 -98660005 48000068 -4BFFFCED 7F6802A6 -9B9B0004 889B0001 -38840005 7F9B21AE -387C0002 7C9B18AE -38A40001 7CBB19AE -1C9C0002 3884000F -A07F026A 7C7B232E -889B0000 38840001 -38600002 7C841B96 -7C052000 4080002C -887B0001 38630001 -987B0001 38600000 -987B0005 3C808047 -60849D30 38600006 -98640005 48000078 -38600001 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BA 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 +2C030000 40820100 +887F0000 2C030000 +418200F4 480006E5 +7C7C1B78 2C1C0000 +4080001C 4BFFFCF9 +7CC802A6 88660005 +38630001 98660005 +48000068 4BFFFCE1 +7F6802A6 9B9B0004 +889B0001 38840005 +7F9B21AE 387C0002 +7C9B18AE 38A40001 +7CBB19AE 1C9C0002 +3884000F A07F026A +7C7B232E 889B0000 +38840001 38600002 +7C841B96 7C052000 +4080002C 887B0001 +38630001 987B0001 +38600000 987B0005 3C808047 60849D30 -38600001 98640005 -48000014 3C808047 +38600006 98640005 +48000064 38600001 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C7E1B78 386000BA +987E0000 7FC3F378 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7FC3F378 3D808037 +618CF1B0 7D8903A6 +4E800421 3C808047 60849D30 38600001 98640005 887F0003 480006E9 986DAFC9 @@ -5201,11 +5214,18 @@ BE810008 83E30010 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +887E0000 2C030004 +41820018 3C808047 +60849D30 38600001 +98640005 4800003C 83E30010 887F0005 2C030000 41820018 3C808047 60849D30 38600003 98640005 -48000018 4BFFFC95 +48000018 4BFFFC5D 3C808047 60849D30 38600005 98640005 BA810008 800100B4 From a350c06e837e386c819f82cce74b1e4e7c808fb8 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 1 Aug 2022 18:59:35 -0400 Subject: [PATCH 104/217] fix bug that caused crash on game start --- Online/Slippi Online Scene/main.asm | 4 ++-- Output/Netplay/GALE01r2.ini | 16 ++++++++-------- Output/Netplay/GALJ01r2.ini | 16 ++++++++-------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 6185ed6e..455ca007 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -1362,6 +1362,8 @@ GamePrepSceneDecide: backup +lwz REG_GPD, 0x10(r3) # Grabs load data + # Get match state info li r3, 0 branchl r12, FN_LoadMatchState @@ -1380,8 +1382,6 @@ stb r3, 0x5(r4) b GamePrepSceneDecide_RestoreAndExit GamePrepSceneDecide_ExecNormal: -lwz REG_GPD, 0x10(r3) # Grabs load data - # Check if there was a tie last game and a tiebreak is needed lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) cmpwi r3, 0 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 7902a747..b242e686 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5214,14 +5214,14 @@ BE810008 83E30010 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0000 2C030004 -41820018 3C808047 -60849D30 38600001 -98640005 4800003C -83E30010 887F0005 +83E30010 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0000 +2C030004 41820018 +3C808047 60849D30 +38600001 98640005 +48000038 887F0005 2C030000 41820018 3C808047 60849D30 38600003 98640005 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 826267cb..b11e3fbf 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5214,14 +5214,14 @@ BE810008 83E30010 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0000 2C030004 -41820018 3C808047 -60849D30 38600001 -98640005 4800003C -83E30010 887F0005 +83E30010 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0000 +2C030004 41820018 +3C808047 60849D30 +38600001 98640005 +48000038 887F0005 2C030000 41820018 3C808047 60849D30 38600003 98640005 From 7c803964a95818c0f15c39759675883a07444d8c Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 3 Aug 2022 20:10:56 -0400 Subject: [PATCH 105/217] add logic to write local checksums --- Common/Common.s | 25 +++++++++ Online/Core/StartEngineLoop.asm | 89 ++++++++++++++++++++++++++++++ Online/Online.s | 16 +++++- Output/Netplay/GALE01r2.ini | 95 ++++++++++++++++++++++----------- Output/Netplay/GALJ01r2.ini | 95 ++++++++++++++++++++++----------- 5 files changed, 255 insertions(+), 65 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 860708bd..e722493b 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -39,6 +39,31 @@ ori \reg, \reg, \address @l lbz \reg, 0(\reg) .endm +.macro incrementByteInBuf reg, reg_address, offset, limit +lbz \reg, \offset(\reg_address) +addi \reg, \reg, 1 +cmpwi \reg, \limit +blt 0f +li \reg, 0 +0: +stb \reg, \offset(\reg_address) +.endm + +# Compiled from the following: +# int func(int current, int change, int limit) { +# return (((current + change) % limit) + limit) % limit; +# } +.macro adjustCircularIndex reg, reg_current, reg_change, reg_limit, reg_temp=r0 +add \reg, \reg_current, \reg_change +divw \reg_temp, \reg, \reg_limit +mullw \reg_temp, \reg_temp, \reg_limit +subf \reg_temp, \reg_temp, \reg +add \reg, \reg_limit, \reg_temp +divw \reg_temp, \reg, \reg_limit +mullw \reg_temp, \reg_temp, \reg_limit +subf \reg, \reg_temp, \reg +.endm + .macro bp branchl r12, 0x8021b2d8 .endm diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index a8f76db2..778633c3 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -7,6 +7,7 @@ .set REG_FRAME_INDEX, 31 .set REG_ODB_ADDRESS, 30 +.set REG_DESYNC_ENTRY_ADDRESS, 29 .set REG_INPUTS_TO_PROCESS, 27 # From parent .set REG_INPUT_PROCESS_COUNTER, 26 # From parent .set REG_INTERRUPT_IDX, 25 @@ -37,6 +38,60 @@ blrl .string "DISCONNECTED" .align 2 +################################################################################ +# Computes checksum from game state +################################################################################ +.set REG_PLAYER_STATIC_ADDRESS, 31 +.set REG_CHECKSUM, 30 +.set REG_LAST_PLAYER_ADDRESS, 29 + +FN_COMPUTE_CHECKSUM: +backup + +load REG_PLAYER_STATIC_ADDRESS, 0x80453080 +load REG_LAST_PLAYER_ADDRESS, 0x80455C30 +li REG_CHECKSUM, 0 + +FN_COMPUTE_CHECKSUM_LOOP_START: +# The helper function will do nothing if the player entity obj's are zero, so missing players +# will be ignored correctly in the checksum +mr r3, REG_CHECKSUM +lwz r4, 0xB0(REG_PLAYER_STATIC_ADDRESS) # Get player entity obj (gobj?) +bl FN_COMPUTE_CHECKSUM_HELPER +lwz r4, 0xB4(REG_PLAYER_STATIC_ADDRESS) # Get secondary player entity obj (gobj?) (sheik/nana) +bl FN_COMPUTE_CHECKSUM_HELPER +mr REG_CHECKSUM, r3 +FN_COMPUTE_CHECKSUM_LOOP_CONTINUE: +addi REG_PLAYER_STATIC_ADDRESS, REG_PLAYER_STATIC_ADDRESS, 0xE90 +cmpw REG_PLAYER_STATIC_ADDRESS, REG_LAST_PLAYER_ADDRESS +ble FN_COMPUTE_CHECKSUM_LOOP_START # Loops until we have processed all 4 potential players + +mr r3, REG_CHECKSUM +restore +blr + +################################################################################ +# Helper function for computing checksum +# ------------------------------------------------------------------------------ +# Inputs: [r3] Checksum, [r4] PlayerEntityGobj +# ------------------------------------------------------------------------------ +# Output: Checksum +################################################################################ +FN_COMPUTE_CHECKSUM_HELPER: +cmpwi r4, 0 +beq FN_COMPUTE_CHECKSUM_HELPER_EXIT +lwz r5, 0x2C(r4) # Fetch char data +lwz r4, 0x10(r5) # ActionStateID +xor r3, r3, r4 +lwz r4, 0xB0(r5) # Position X +xor r3, r3, r4 +lwz r4, 0xB4(r5) # Position Y +xor r3, r3, r4 +lwz r4, 0x1830(r5) # Percent damage +xor r3, r3, r4 +FN_COMPUTE_CHECKSUM_HELPER_EXIT: +blr + CODE_START: # backup registers and sp backup @@ -277,6 +332,40 @@ ble SKIP_STABLE_FINALIZED_UPDATE stw r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) SKIP_STABLE_FINALIZED_UPDATE: +#################################################################################################### +# Write checksum for this frame, overwrite if there is an existing entry for this frame, +# we won't send any checksums to the opponent that are past the finalized frame +#################################################################################################### +# Start working towards fetching the entry where we are going to write +lwz r3, ODB_LOCAL_DESYNC_LAST_FRAME(REG_ODB_ADDRESS) +addi r3, r3, 1 +sub. r3, REG_FRAME_INDEX, r3 +lbz r4, ODB_LOCAL_DESYNC_WRITE_IDX(REG_ODB_ADDRESS) +blt SKIP_DESYNC_WRITE_IDX_ADJUST +# If we get here, this is a new frame we haven't seen yet, store that frame as the last frame +# and also increment the write index +incrementByteInBuf r6, REG_ODB_ADDRESS, ODB_LOCAL_DESYNC_WRITE_IDX, DESYNC_ENTRY_COUNT +stw REG_FRAME_INDEX, ODB_LOCAL_DESYNC_LAST_FRAME(REG_ODB_ADDRESS) +SKIP_DESYNC_WRITE_IDX_ADJUST: + +# Here r3 is equal to the offset from the write index where we want to write our checksum, r4 is +# equal to the current write index, let's fetch the address to that entry +li r5, DESYNC_ENTRY_COUNT +adjustCircularIndex r4, r4, r3, r5, r6 +# logf LOG_LEVEL_NOTICE, "Writing checksum for frame %d. Write idx: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 4" +mulli r4, r4, DESYNC_ENTRY_SIZE +addi r3, r4, ODB_LOCAL_DESYNC_ARR +add REG_DESYNC_ENTRY_ADDRESS, REG_ODB_ADDRESS, r3 + +# Write the frame +stw REG_FRAME_INDEX, DESYNC_ENTRY_FRAME(REG_DESYNC_ENTRY_ADDRESS) + +# Compute and write the checksum +bl FN_COMPUTE_CHECKSUM +stw r3, DESYNC_ENTRY_CHECKSUM(REG_DESYNC_ENTRY_ADDRESS) +# logf LOG_LEVEL_ERROR, "Checksum value: %08x", "mr r5, 3" +SKIP_TAKE_CHECKSUM: + ################################################################################ # Check if we should capture state. We need to do this after the rollback # logic because triggering RenewInputs might cause a new savestate request diff --git a/Online/Online.s b/Online/Online.s index 5a9d3df5..a3230ff8 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -190,6 +190,15 @@ .set SFXDB_FRAMES, SFXDB_WRITE_INDEX + 1 # SFXS_FRAME_SIZE * ROLLBACK_MAX_FRAME_COUNT .set SFXDB_SIZE, SFXDB_FRAMES + SFXS_FRAME_SIZE * ROLLBACK_MAX_FRAME_COUNT +################################################################################ +# Desync Detection +################################################################################ +.set DESYNC_ENTRY_FRAME, 0 # s32, frame of the checksum +.set DESYNC_ENTRY_CHECKSUM, DESYNC_ENTRY_FRAME + 4 # u32 +.set DESYNC_ENTRY_SIZE, DESYNC_ENTRY_CHECKSUM + 4 + +.set DESYNC_ENTRY_COUNT, ROLLBACK_MAX_FRAME_COUNT + 2 # Just add a couple to make sure there's no off-by-1 + ################################################################################ # Online Data Buffer Offsets ################################################################################ @@ -237,7 +246,12 @@ .set ODB_PAUSE_COUNTER, ODB_HUD_CANVAS + 4 # u32 .set ODB_FINALIZED_FRAME, ODB_PAUSE_COUNTER + 4 # u32 .set ODB_REST_STICK_CHANGE_COUNTER, ODB_FINALIZED_FRAME + 4 # u32 -.set ODB_SIZE, ODB_REST_STICK_CHANGE_COUNTER + 4 +.set ODB_LOCAL_DESYNC_LAST_FRAME, ODB_REST_STICK_CHANGE_COUNTER + 4 # u32 +.set ODB_LOCAL_DESYNC_WRITE_IDX, ODB_LOCAL_DESYNC_LAST_FRAME + 4 # u8 +.set ODB_LOCAL_DESYNC_ARR, ODB_LOCAL_DESYNC_WRITE_IDX + 1 # DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT +.set ODB_OPNT_DESYNC_WRITE_IDX, ODB_LOCAL_DESYNC_ARR + DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT # u8 +.set ODB_OPNT_DESYNC_ARR, ODB_OPNT_DESYNC_WRITE_IDX + 1 # DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT +.set ODB_SIZE, ODB_OPNT_DESYNC_ARR + DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT .set TXB_CMD, 0 # u8 .set TXB_FRAME, TXB_CMD + 1 # s32 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index e01269d5..17c29469 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1193,10 +1193,10 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 3860091C +40820450 386009B2 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 3880091C +7C7B1B78 388009B2 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1222,7 +1222,7 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 3860091C +93790005 386009B2 90790009 9359000D 3860010E 90790011 807B03A2 90790015 @@ -1537,10 +1537,10 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000086 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -48000030 4E800021 +480000C0 4E800021 00000000 3F800000 3FA66666 C2340000 3D8F5C29 FF0000FF @@ -1548,11 +1548,29 @@ C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm 43544544 00000000 7C0802A6 90010004 9421FF50 BE810008 +3FE08045 63FF3080 +3FA08045 63BD5C30 +3BC00000 7FC3F378 +809F00B0 48000035 +809F00B4 4800002D +7C7E1B78 3BFF0E90 +7C1FE800 4081FFE0 +7FC3F378 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +2C040000 41820028 +80A4002C 80850010 +7C632278 808500B0 +7C632278 808500B4 +7C632278 80851830 +7C632278 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408202C0 3C608047 +4082032C 3C608047 60639D64 80630000 -2C030000 408202AC +2C030000 40820318 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1562,7 +1580,7 @@ C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm 2C030000 418200F0 38600003 3D808002 618C4030 7D8903A6 -4E800421 4BFFFF51 +4E800421 4BFFFEC1 7EE802A6 38600002 809E090C 3D80803A 618C6754 7D8903A6 @@ -1617,30 +1635,43 @@ C0570010 3D80803A 7FE3FB78 48000004 809E0907 7C032000 40810008 907E0907 -887E038A 2C030000 -4182002C 807E0907 -7C1F1800 40810020 -807E039E 7FE4FB78 -80BE03A2 3D808000 -618C5608 7D8903A6 -4E800421 887E000F -2C030001 41820058 -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -907E000B 48000038 -807E000B 2C030000 -40820008 93FE000B -807E000B 7C63F850 -2C030007 40810018 -38600001 987E000F -807E08F9 7C6903A6 -4E800421 7F23CB78 -3D808034 618C738C -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -60000000 00000000 +807E091C 38630001 +7C63F851 889E0920 +41800020 88DE0920 +38C60001 2C060009 +41800008 38C00000 +98DE0920 93FE091C +38A00009 7C841A14 +7CC42BD6 7CC629D6 +7CC62050 7C853214 +7CC42BD6 7CC629D6 +7C862050 1C840008 +38640921 7FBE1A14 +93FD0000 4BFFFCD5 +907D0004 887E038A +2C030000 4182002C +807E0907 7C1F1800 +40810020 807E039E +7FE4FB78 80BE03A2 +3D808000 618C5608 +7D8903A6 4E800421 +887E000F 2C030001 +41820058 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 907E000B +48000038 807E000B +2C030000 40820008 +93FE000B 807E000B +7C63F850 2C030007 +40810018 38600001 +987E000F 807E08F9 +7C6903A6 4E800421 +7F23CB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 00000000 C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 77f0fb7f..92cba88e 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1193,10 +1193,10 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 3860091C +40820450 386009B2 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 3880091C +7C7B1B78 388009B2 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 @@ -1222,7 +1222,7 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 3860091C +93790005 386009B2 90790009 9359000D 3860010E 90790011 807B03A2 90790015 @@ -1537,10 +1537,10 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm +C21A4DE4 00000086 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -48000030 4E800021 +480000C0 4E800021 00000000 3F800000 3FA66666 C2340000 3D8F5C29 FF0000FF @@ -1548,11 +1548,29 @@ C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm 43544544 00000000 7C0802A6 90010004 9421FF50 BE810008 +3FE08045 63FF3080 +3FA08045 63BD5C30 +3BC00000 7FC3F378 +809F00B0 48000035 +809F00B4 4800002D +7C7E1B78 3BFF0E90 +7C1FE800 4081FFE0 +7FC3F378 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +2C040000 41820028 +80A4002C 80850010 +7C632278 808500B0 +7C632278 808500B4 +7C632278 80851830 +7C632278 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -408202C0 3C608047 +4082032C 3C608047 60639D64 80630000 -2C030000 408202AC +2C030000 40820318 83CDB61C 3FE08048 83FF9D60 3D808034 618C7364 7D8903A6 @@ -1562,7 +1580,7 @@ C21A4DE4 00000067 #Online/Core/StartEngineLoop.asm 2C030000 418200F0 38600003 3D808002 618C4030 7D8903A6 -4E800421 4BFFFF51 +4E800421 4BFFFEC1 7EE802A6 38600002 809E090C 3D80803A 618C6754 7D8903A6 @@ -1617,30 +1635,43 @@ C0570010 3D80803A 7FE3FB78 48000004 809E0907 7C032000 40810008 907E0907 -887E038A 2C030000 -4182002C 807E0907 -7C1F1800 40810020 -807E039E 7FE4FB78 -80BE03A2 3D808000 -618C5608 7D8903A6 -4E800421 887E000F -2C030001 41820058 -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -907E000B 48000038 -807E000B 2C030000 -40820008 93FE000B -807E000B 7C63F850 -2C030007 40810018 -38600001 987E000F -807E08F9 7C6903A6 -4E800421 7F23CB78 -3D808034 618C738C -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -60000000 00000000 +807E091C 38630001 +7C63F851 889E0920 +41800020 88DE0920 +38C60001 2C060009 +41800008 38C00000 +98DE0920 93FE091C +38A00009 7C841A14 +7CC42BD6 7CC629D6 +7CC62050 7C853214 +7CC42BD6 7CC629D6 +7C862050 1C840008 +38640921 7FBE1A14 +93FD0000 4BFFFCD5 +907D0004 887E038A +2C030000 4182002C +807E0907 7C1F1800 +40810020 807E039E +7FE4FB78 80BE03A2 +3D808000 618C5608 +7D8903A6 4E800421 +887E000F 2C030001 +41820058 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 907E000B +48000038 807E000B +2C030000 40820008 +93FE000B 807E000B +7C63F850 2C030007 +40810018 38600001 +987E000F 807E08F9 +7C6903A6 4E800421 +7F23CB78 3D808034 +618C738C 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 00000000 C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 From c67d70eec45ef3f94423a33729593c77dd748e43 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 9 Aug 2022 17:40:58 -0400 Subject: [PATCH 106/217] add functioning desync detection log --- Online/Core/StartEngineLoop.asm | 49 ++++- Online/Core/TriggerSendInput.asm | 21 +++ Online/Logging/LogInputOnCopy.asm | 2 +- Online/Online.s | 10 +- Output/Netplay/GALE01r2.ini | 292 +++++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 292 +++++++++++++++++------------- 6 files changed, 411 insertions(+), 255 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 778633c3..b52d3c12 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -8,6 +8,7 @@ .set REG_FRAME_INDEX, 31 .set REG_ODB_ADDRESS, 30 .set REG_DESYNC_ENTRY_ADDRESS, 29 +.set REG_REMOTE_RXB, 28 .set REG_INPUTS_TO_PROCESS, 27 # From parent .set REG_INPUT_PROCESS_COUNTER, 26 # From parent .set REG_INTERRUPT_IDX, 25 @@ -89,6 +90,7 @@ lwz r4, 0xB4(r5) # Position Y xor r3, r3, r4 lwz r4, 0x1830(r5) # Percent damage xor r3, r3, r4 +# logf LOG_LEVEL_INFO, "[SEL] Checksum Values: %08x | %08x | %08x | %08x", "lwz r8, 0x1830(r5)", "lwz r7, 0xB4(r5)", "lwz r6, 0xB0(r5)", "lwz r5, 0x10(r5)" FN_COMPUTE_CHECKSUM_HELPER_EXIT: blr @@ -115,6 +117,7 @@ bne EXIT # fetch data to use throughout function lwz REG_ODB_ADDRESS, OFST_R13_ODB_ADDR(r13) # data buffer address loadGlobalFrame REG_FRAME_INDEX +lwz REG_REMOTE_RXB, ODB_RXB_ADDR(REG_ODB_ADDRESS) branchl r12, OSDisableInterrupts mr REG_INTERRUPT_IDX, r3 @@ -363,9 +366,53 @@ stw REG_FRAME_INDEX, DESYNC_ENTRY_FRAME(REG_DESYNC_ENTRY_ADDRESS) # Compute and write the checksum bl FN_COMPUTE_CHECKSUM stw r3, DESYNC_ENTRY_CHECKSUM(REG_DESYNC_ENTRY_ADDRESS) -# logf LOG_LEVEL_ERROR, "Checksum value: %08x", "mr r5, 3" +# logf LOG_LEVEL_INFO, "Local checksum value %d: %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 3" SKIP_TAKE_CHECKSUM: +#################################################################################################### +# Check local checksums against the remote checksums to see if we have a desync +#################################################################################################### +li r12, 0 # Player index +CHECKSUM_CHECK_PLAYER_LOOP_START: +mulli r3, r12, DESYNC_ENTRY_SIZE +addi r3, r3, RXB_OPNT_DESYNC_ENTRY +add r11, REG_REMOTE_RXB, r3 # r11 now stores desync entry address for this remote player +lwz r10, DESYNC_ENTRY_FRAME(r11) # r10 now contains the desync entry frame +lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) +cmpw r10, r3 # If this checksum frame is greater than our stable finalized frame, skip for now +bgt CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE +cmpwi r10, UNFREEZE_INPUTS_FRAME +ble CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE + +# Now we loop through all of our local frames to find the entry that matches +li r9, 0 +FIND_CHECKSUM_LOOP_START: +mulli r3, r9, DESYNC_ENTRY_SIZE +addi r3, r3, ODB_LOCAL_DESYNC_ARR +add r8, REG_ODB_ADDRESS, r3 # r8 now contains the desync entry for our local player +lwz r3, DESYNC_ENTRY_FRAME(r8) +cmpw r10, r3 +bne FIND_CHECKSUM_LOOP_CONTINUE +# Here we have found the desync entry for the latest finalized frame +lwz r3, DESYNC_ENTRY_CHECKSUM(r8) +lwz r4, DESYNC_ENTRY_CHECKSUM(r11) +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Comparing Checksums. RemoteIdx: %d, Frame: %d, %08x vs %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 10", "mr r8, 3", "mr r9, 4" +cmpw r3, r4 +beq FIND_CHECKSUM_LOOP_EXIT +logf LOG_LEVEL_NOTICE, "Desync detected!" +b FIND_CHECKSUM_LOOP_EXIT +FIND_CHECKSUM_LOOP_CONTINUE: +addi r9, r9, 1 +cmpwi r9, DESYNC_ENTRY_COUNT +blt FIND_CHECKSUM_LOOP_START +FIND_CHECKSUM_LOOP_EXIT: + +CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE: +addi r12, r12, 1 +lbz r3, RXB_OPNT_COUNT(REG_REMOTE_RXB) +cmpw r12, r3 +blt CHECKSUM_CHECK_PLAYER_LOOP_START + ################################################################################ # Check if we should capture state. We need to do this after the rollback # logic because triggering RenewInputs might cause a new savestate request diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 56f3089e..be30b735 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -181,6 +181,27 @@ stw REG_FRAME_INDEX, TXB_FRAME(REG_TXB_ADDRESS) lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) stw r3, TXB_FINALIZED_FRAME(REG_TXB_ADDRESS) +# Start a for loop to iterate through the DESYNC_ENTRY_ARR values in order to find the checksum +# from the latest finalized frame to send to the opponent +lwz r12, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) +li r11, 0 +FIND_CHECKSUM_LOOP_START: +mulli r3, r11, DESYNC_ENTRY_SIZE +addi r3, r3, ODB_LOCAL_DESYNC_ARR +add r10, REG_ODB_ADDRESS, r3 +lwz r3, DESYNC_ENTRY_FRAME(r10) +cmpw r3, r12 +bne FIND_CHECKSUM_LOOP_CONTINUE +# Here we have found the desync entry for the latest finalized frame +lwz r3, DESYNC_ENTRY_CHECKSUM(r10) +stw r3, TXB_FINALIZED_FRAME_CHECKSUM(REG_TXB_ADDRESS) +b FIND_CHECKSUM_LOOP_EXIT +FIND_CHECKSUM_LOOP_CONTINUE: +addi r11, r11, 1 +cmpwi r11, DESYNC_ENTRY_COUNT +blt FIND_CHECKSUM_LOOP_START +FIND_CHECKSUM_LOOP_EXIT: + # Transfer delay amount lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) stb r3, TXB_DELAY(REG_TXB_ADDRESS) diff --git a/Online/Logging/LogInputOnCopy.asm b/Online/Logging/LogInputOnCopy.asm index 01310f75..cf6449f4 100644 --- a/Online/Logging/LogInputOnCopy.asm +++ b/Online/Logging/LogInputOnCopy.asm @@ -27,7 +27,7 @@ lbz r3, 0x0041(r26) extsb. r0, r3 beq EXIT -logf LOG_LEVEL_INFO, "Input detected with non-zero status: %d", "extsb r5, 3" +logf LOG_LEVEL_ERROR, "Input detected with non-zero status: %d", "extsb r5, 3" EXIT: # Re-loads overwritten data, must run right before extsb. r0, r3 diff --git a/Online/Online.s b/Online/Online.s index a3230ff8..e23f5093 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -249,20 +249,20 @@ .set ODB_LOCAL_DESYNC_LAST_FRAME, ODB_REST_STICK_CHANGE_COUNTER + 4 # u32 .set ODB_LOCAL_DESYNC_WRITE_IDX, ODB_LOCAL_DESYNC_LAST_FRAME + 4 # u8 .set ODB_LOCAL_DESYNC_ARR, ODB_LOCAL_DESYNC_WRITE_IDX + 1 # DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT -.set ODB_OPNT_DESYNC_WRITE_IDX, ODB_LOCAL_DESYNC_ARR + DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT # u8 -.set ODB_OPNT_DESYNC_ARR, ODB_OPNT_DESYNC_WRITE_IDX + 1 # DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT -.set ODB_SIZE, ODB_OPNT_DESYNC_ARR + DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT +.set ODB_SIZE, ODB_LOCAL_DESYNC_ARR + DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT .set TXB_CMD, 0 # u8 .set TXB_FRAME, TXB_CMD + 1 # s32 .set TXB_FINALIZED_FRAME, TXB_FRAME + 4 # s32 -.set TXB_DELAY, TXB_FINALIZED_FRAME + 4 # u8 TODO: Delay should be part of some init message or something at start of game +.set TXB_FINALIZED_FRAME_CHECKSUM, TXB_FINALIZED_FRAME + 4 # u32 +.set TXB_DELAY, TXB_FINALIZED_FRAME_CHECKSUM + 4 # u8 TODO: Delay should be part of some init message or something at start of game .set TXB_PAD, TXB_DELAY + 1 # PAD_REPORT_SIZE .set TXB_SIZE, TXB_PAD + PAD_REPORT_SIZE .set RXB_RESULT, 0 # u8 .set RXB_OPNT_COUNT, RXB_RESULT + 1 # u8 -.set RXB_OPNT_FRAME_NUMS, RXB_OPNT_COUNT + 1 # s32[3] +.set RXB_OPNT_DESYNC_ENTRY, RXB_OPNT_COUNT + 1 # DESYNC_ENTRY_SIZE[3] +.set RXB_OPNT_FRAME_NUMS, RXB_OPNT_DESYNC_ENTRY + DESYNC_ENTRY_SIZE*3 # s32[3] .set RXB_SMALLEST_LATEST_FRAME, RXB_OPNT_FRAME_NUMS + 4*3 # s32 .set RXB_OPNT_INPUTS, RXB_SMALLEST_LATEST_FRAME + 4 # PAD_REPORT_SIZE * RXB_INPUTS_COUNT * 3 .set RXB_SIZE, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * RXB_INPUTS_COUNT * 3 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 17c29469..a52b9ae4 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1193,22 +1193,22 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 386009B2 +40820450 38600969 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388009B2 +7C7B1B78 38800969 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 7C6802A6 907B08F9 -38600016 3D808037 +3860001A 3D808037 618CF1E4 7D8903A6 4E800421 907B00D5 -3860010E 3D808037 +38600126 3D808037 618CF1E4 7D8903A6 4E800421 907B00D9 -7C7A1B78 3880010E +7C7A1B78 38800126 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1222,9 +1222,9 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386009B2 +93790005 38600969 90790009 9359000D -3860010E 90790011 +38600126 90790011 807B03A2 90790015 3860009E 90790019 38600000 9079001D @@ -1537,7 +1537,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000086 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000AB #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 480000C0 4E800021 @@ -1568,118 +1568,155 @@ C21A4DE4 00000086 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082032C 3C608047 +40820450 3C608047 60639D64 80630000 -2C030000 40820318 +2C030000 4082043C 83CDB61C 3FE08048 -83FF9D60 3D808034 -618C7364 7D8903A6 -4E800421 7C791B78 -887E0011 2C030000 -408200FC 887E0010 -2C030000 418200F0 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 4BFFFEC1 -7EE802A6 38600002 -809E090C 3D80803A -618C6754 7D8903A6 -4E800421 7C781B78 -38800001 98980049 -38800001 9898004A -C0370000 D0380008 -C0370004 D0380024 -D0380028 C0370008 -C057000C 7F03C378 -38970018 3D80803A -618C6B98 7D8903A6 -4E800421 7F03C378 -38800000 C0370010 -C0570010 3D80803A -618C7548 7D8903A6 -4E800421 7F03C378 -38800000 38B70014 -3D80803A 618C74F0 +83FF9D60 839E00D9 +3D808034 618C7364 7D8903A6 4E800421 -38600001 987E0011 -886DAFA0 2C030000 -40820024 3C608046 -6063B6A0 889E0001 -98830001 38800007 -98830008 38800037 -988324D5 887E08FD -2C030000 418200B0 -887E0902 2C030000 -41820094 807E0903 -7C1F1800 41820024 -41800094 807E039E -809E0903 80BE03A2 -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E038B 907E0003 -38600000 987E038A -987E039B 987E039C -987E039D 987E00DE -987E0902 3D808001 -618C95FC 7D8903A6 -4E800421 807E0914 -7C1F1800 4181000C -7FE3FB78 48000004 -809E0907 7C032000 -40810008 907E0907 -807E091C 38630001 -7C63F851 889E0920 -41800020 88DE0920 -38C60001 2C060009 -41800008 38C00000 -98DE0920 93FE091C -38A00009 7C841A14 -7CC42BD6 7CC629D6 -7CC62050 7C853214 -7CC42BD6 7CC629D6 -7C862050 1C840008 -38640921 7FBE1A14 -93FD0000 4BFFFCD5 -907D0004 887E038A -2C030000 4182002C -807E0907 7C1F1800 -40810020 807E039E -7FE4FB78 80BE03A2 -3D808000 618C5608 -7D8903A6 4E800421 -887E000F 2C030001 -41820058 3C608046 -6063B6A0 88630008 -2C030000 40820010 -38600000 907E000B -48000038 807E000B -2C030000 40820008 -93FE000B 807E000B -7C63F850 2C030007 -40810018 38600001 -987E000F 807E08F9 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 -C2376A28 000000E9 #Online/Core/TriggerSendInput.asm +7C791B78 887E0011 +2C030000 408200FC +887E0010 2C030000 +418200F0 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +4BFFFEBD 7EE802A6 +38600002 809E090C +3D80803A 618C6754 +7D8903A6 4E800421 +7C781B78 38800001 +98980049 38800001 +9898004A C0370000 +D0380008 C0370004 +D0380024 D0380028 +C0370008 C057000C +7F03C378 38970018 +3D80803A 618C6B98 +7D8903A6 4E800421 +7F03C378 38800000 +C0370010 C0570010 +3D80803A 618C7548 +7D8903A6 4E800421 +7F03C378 38800000 +38B70014 3D80803A +618C74F0 7D8903A6 +4E800421 38600001 +987E0011 886DAFA0 +2C030000 40820024 +3C608046 6063B6A0 +889E0001 98830001 +38800007 98830008 +38800037 988324D5 +887E08FD 2C030000 +418200B0 887E0902 +2C030000 41820094 +807E0903 7C1F1800 +41820024 41800094 +807E039E 809E0903 +80BE03A2 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E038B +907E0003 38600000 +987E038A 987E039B +987E039C 987E039D +987E00DE 987E0902 +3D808001 618C95FC +7D8903A6 4E800421 +807E0914 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0907 +7C032000 40810008 +907E0907 807E091C +38630001 7C63F851 +889E0920 41800020 +88DE0920 38C60001 +2C060009 41800008 +38C00000 98DE0920 +93FE091C 38A00009 +7C841A14 7CC42BD6 +7CC629D6 7CC62050 +7C853214 7CC42BD6 +7CC629D6 7C862050 +1C840008 38640921 +7FBE1A14 93FD0000 +4BFFFCD1 907D0004 +39800000 1C6C0008 +38630002 7D7C1A14 +814B0000 807E0907 +7C0A1800 418100F4 +2C0A0054 408100EC +39200000 1C690008 +38630921 7D1E1A14 +80680000 7C0A1800 +408200C4 80680004 +808B0004 7C032000 +418200C0 4800001C +4E800021 44657379 +6E632064 65746563 +74656421 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +60000000 60000000 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +48000010 39290001 +2C090009 4180FF20 +398C0001 887C0001 +7C0C1800 4180FEE8 +887E038A 2C030000 +4182002C 807E0907 +7C1F1800 40810020 +807E039E 7FE4FB78 +80BE03A2 3D808000 +618C5608 7D8903A6 +4E800421 887E000F +2C030001 41820058 +3C608046 6063B6A0 +88630008 2C030000 +40820010 38600000 +907E000B 48000038 +807E000B 2C030000 +40820008 93FE000B +807E000B 7C63F850 +2C030007 40810018 +38600001 987E000F +807E08F9 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C2376A28 000000F0 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082070C 3C608047 +40820744 3C608047 60639D64 80630000 -2C030000 408206F8 +2C030000 40820730 836DB61C 833B00D5 831B00D9 82FB039E 835B0003 889B0002 @@ -1687,7 +1724,7 @@ C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DD 2C030000 41820010 887B00DE 2C030000 -41820638 887B001F +41820670 887B001F 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1714,16 +1751,23 @@ B0830000 4E800020 7D8903A6 4E800421 386000B0 98790000 93590001 807B0907 -90790005 887B001F -98790009 3879000A +90790005 819B0907 +39600000 1C6B0008 +38630921 7D5B1A14 +806A0000 7C036000 +40820010 806A0004 +90790009 48000010 +396B0001 2C0B0009 +4180FFD4 887B001F +9879000D 3879000E 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -7F23CB78 38800016 +7F23CB78 3880001A 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38780000 -3880010E 38A00000 +38800126 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B0012 @@ -1755,7 +1799,7 @@ B0830000 4E800020 41800008 38600000 987B00E3 887B0020 1C63000C 38630021 -7C7B1A14 3899000A +7C7B1A14 3899000E 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 889B001F @@ -1769,14 +1813,14 @@ B0830000 4E800020 48000264 3A800000 38D4039B 7C66D8AE 2C030001 4082016C -1CD40004 38C60002 +1CD40004 38C6001A 7C66C02E 1CD40004 38C6038F 7C86D82E 7EC41851 4180014C 80DB0907 7C043000 41810010 7C032000 418100AC 48000134 -1C76000C 38630012 +1C76000C 3863002A 1CD40054 7C633214 38D4018C 7C86D8AE 1C84000C 38840192 @@ -1826,7 +1870,7 @@ BA810008 800100B4 39600001 3A940001 2C140003 4180FFC4 92BB038B 92BB0914 -80D8000E 7C153000 +80D80026 7C153000 40810008 90DB0914 2C1C0000 4082FF54 3A800000 38D4039B @@ -1846,7 +1890,7 @@ BA810008 800100B4 3AA00000 3B800001 887B0000 7C151800 40820008 3AB50001 -1CD40004 38C60002 +1CD40004 38C6001A 7C66C02E 7C7A1850 2C030000 408000D8 887B001F 38800054 @@ -1857,7 +1901,7 @@ BA810008 800100B4 7EC6D8AE 1C76000C 38630192 1CB400A8 7C632A14 1CD40054 -38C60012 7C7B1A14 +38C6002A 7C7B1A14 7C983214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 @@ -1876,7 +1920,7 @@ BA810008 800100B4 41820010 935B038B 38600001 987B038A 38600000 1C63000C -38A30012 1CD40054 +38A3002A 1CD40054 7CA53214 1C75000C 386300DC 7C611A14 7C982A14 38A0000C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 92cba88e..6dbe3f62 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1193,22 +1193,22 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 386009B2 +40820450 38600969 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388009B2 +7C7B1B78 38800969 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 7C6802A6 907B08F9 -38600016 3D808037 +3860001A 3D808037 618CF1E4 7D8903A6 4E800421 907B00D5 -3860010E 3D808037 +38600126 3D808037 618CF1E4 7D8903A6 4E800421 907B00D9 -7C7A1B78 3880010E +7C7A1B78 38800126 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 @@ -1222,9 +1222,9 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386009B2 +93790005 38600969 90790009 9359000D -3860010E 90790011 +38600126 90790011 807B03A2 90790015 3860009E 90790019 38600000 9079001D @@ -1537,7 +1537,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 00000086 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000AB #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 480000C0 4E800021 @@ -1568,118 +1568,155 @@ C21A4DE4 00000086 #Online/Core/StartEngineLoop.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082032C 3C608047 +40820450 3C608047 60639D64 80630000 -2C030000 40820318 +2C030000 4082043C 83CDB61C 3FE08048 -83FF9D60 3D808034 -618C7364 7D8903A6 -4E800421 7C791B78 -887E0011 2C030000 -408200FC 887E0010 -2C030000 418200F0 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 4BFFFEC1 -7EE802A6 38600002 -809E090C 3D80803A -618C6754 7D8903A6 -4E800421 7C781B78 -38800001 98980049 -38800001 9898004A -C0370000 D0380008 -C0370004 D0380024 -D0380028 C0370008 -C057000C 7F03C378 -38970018 3D80803A -618C6B98 7D8903A6 -4E800421 7F03C378 -38800000 C0370010 -C0570010 3D80803A -618C7548 7D8903A6 -4E800421 7F03C378 -38800000 38B70014 -3D80803A 618C74F0 +83FF9D60 839E00D9 +3D808034 618C7364 7D8903A6 4E800421 -38600001 987E0011 -886DAFA0 2C030000 -40820024 3C608046 -6063B6A0 889E0001 -98830001 38800007 -98830008 38800037 -988324D5 887E08FD -2C030000 418200B0 -887E0902 2C030000 -41820094 807E0903 -7C1F1800 41820024 -41800094 807E039E -809E0903 80BE03A2 -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E038B 907E0003 -38600000 987E038A -987E039B 987E039C -987E039D 987E00DE -987E0902 3D808001 -618C95FC 7D8903A6 -4E800421 807E0914 -7C1F1800 4181000C -7FE3FB78 48000004 -809E0907 7C032000 -40810008 907E0907 -807E091C 38630001 -7C63F851 889E0920 -41800020 88DE0920 -38C60001 2C060009 -41800008 38C00000 -98DE0920 93FE091C -38A00009 7C841A14 -7CC42BD6 7CC629D6 -7CC62050 7C853214 -7CC42BD6 7CC629D6 -7C862050 1C840008 -38640921 7FBE1A14 -93FD0000 4BFFFCD5 -907D0004 887E038A -2C030000 4182002C -807E0907 7C1F1800 -40810020 807E039E -7FE4FB78 80BE03A2 -3D808000 618C5608 -7D8903A6 4E800421 -887E000F 2C030001 -41820058 3C608046 -6063B6A0 88630008 -2C030000 40820010 -38600000 907E000B -48000038 807E000B -2C030000 40820008 -93FE000B 807E000B -7C63F850 2C030007 -40810018 38600001 -987E000F 807E08F9 -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 00000000 -C2376A28 000000E9 #Online/Core/TriggerSendInput.asm +7C791B78 887E0011 +2C030000 408200FC +887E0010 2C030000 +418200F0 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +4BFFFEBD 7EE802A6 +38600002 809E090C +3D80803A 618C6754 +7D8903A6 4E800421 +7C781B78 38800001 +98980049 38800001 +9898004A C0370000 +D0380008 C0370004 +D0380024 D0380028 +C0370008 C057000C +7F03C378 38970018 +3D80803A 618C6B98 +7D8903A6 4E800421 +7F03C378 38800000 +C0370010 C0570010 +3D80803A 618C7548 +7D8903A6 4E800421 +7F03C378 38800000 +38B70014 3D80803A +618C74F0 7D8903A6 +4E800421 38600001 +987E0011 886DAFA0 +2C030000 40820024 +3C608046 6063B6A0 +889E0001 98830001 +38800007 98830008 +38800037 988324D5 +887E08FD 2C030000 +418200B0 887E0902 +2C030000 41820094 +807E0903 7C1F1800 +41820024 41800094 +807E039E 809E0903 +80BE03A2 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E038B +907E0003 38600000 +987E038A 987E039B +987E039C 987E039D +987E00DE 987E0902 +3D808001 618C95FC +7D8903A6 4E800421 +807E0914 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0907 +7C032000 40810008 +907E0907 807E091C +38630001 7C63F851 +889E0920 41800020 +88DE0920 38C60001 +2C060009 41800008 +38C00000 98DE0920 +93FE091C 38A00009 +7C841A14 7CC42BD6 +7CC629D6 7CC62050 +7C853214 7CC42BD6 +7CC629D6 7C862050 +1C840008 38640921 +7FBE1A14 93FD0000 +4BFFFCD1 907D0004 +39800000 1C6C0008 +38630002 7D7C1A14 +814B0000 807E0907 +7C0A1800 418100F4 +2C0A0054 408100EC +39200000 1C690008 +38630921 7D1E1A14 +80680000 7C0A1800 +408200C4 80680004 +808B0004 7C032000 +418200C0 4800001C +4E800021 44657379 +6E632064 65746563 +74656421 00000000 +7C0802A6 90010004 +9421FF00 BC610008 +60000000 60000000 +60000000 60000000 +60000000 60000000 +806DAFC4 38630003 +4BFFFFB9 7C8802A6 +4CC63242 3D808032 +618C3CF4 7D8903A6 +4E800421 806DAFC4 +388000D0 98830000 +38800000 98830001 +38800001 98830002 +38800080 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +B8610008 80010104 +38210100 7C0803A6 +48000010 39290001 +2C090009 4180FF20 +398C0001 887C0001 +7C0C1800 4180FEE8 +887E038A 2C030000 +4182002C 807E0907 +7C1F1800 40810020 +807E039E 7FE4FB78 +80BE03A2 3D808000 +618C5608 7D8903A6 +4E800421 887E000F +2C030001 41820058 +3C608046 6063B6A0 +88630008 2C030000 +40820010 38600000 +907E000B 48000038 +807E000B 2C030000 +40820008 93FE000B +807E000B 7C63F850 +2C030007 40810018 +38600001 987E000F +807E08F9 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 +C2376A28 000000F0 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -4082070C 3C608047 +40820744 3C608047 60639D64 80630000 -2C030000 408206F8 +2C030000 40820730 836DB61C 833B00D5 831B00D9 82FB039E 835B0003 889B0002 @@ -1687,7 +1724,7 @@ C2376A28 000000E9 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DD 2C030000 41820010 887B00DE 2C030000 -41820638 887B001F +41820670 887B001F 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1714,16 +1751,23 @@ B0830000 4E800020 7D8903A6 4E800421 386000B0 98790000 93590001 807B0907 -90790005 887B001F -98790009 3879000A +90790005 819B0907 +39600000 1C6B0008 +38630921 7D5B1A14 +806A0000 7C036000 +40820010 806A0004 +90790009 48000010 +396B0001 2C0B0009 +4180FFD4 887B001F +9879000D 3879000E 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -7F23CB78 38800016 +7F23CB78 3880001A 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38780000 -3880010E 38A00000 +38800126 38A00000 3D808000 618C55F0 7D8903A6 4E800421 38600000 987B0012 @@ -1755,7 +1799,7 @@ B0830000 4E800020 41800008 38600000 987B00E3 887B0020 1C63000C 38630021 -7C7B1A14 3899000A +7C7B1A14 3899000E 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 889B001F @@ -1769,14 +1813,14 @@ B0830000 4E800020 48000264 3A800000 38D4039B 7C66D8AE 2C030001 4082016C -1CD40004 38C60002 +1CD40004 38C6001A 7C66C02E 1CD40004 38C6038F 7C86D82E 7EC41851 4180014C 80DB0907 7C043000 41810010 7C032000 418100AC 48000134 -1C76000C 38630012 +1C76000C 3863002A 1CD40054 7C633214 38D4018C 7C86D8AE 1C84000C 38840192 @@ -1826,7 +1870,7 @@ BA810008 800100B4 39600001 3A940001 2C140003 4180FFC4 92BB038B 92BB0914 -80D8000E 7C153000 +80D80026 7C153000 40810008 90DB0914 2C1C0000 4082FF54 3A800000 38D4039B @@ -1846,7 +1890,7 @@ BA810008 800100B4 3AA00000 3B800001 887B0000 7C151800 40820008 3AB50001 -1CD40004 38C60002 +1CD40004 38C6001A 7C66C02E 7C7A1850 2C030000 408000D8 887B001F 38800054 @@ -1857,7 +1901,7 @@ BA810008 800100B4 7EC6D8AE 1C76000C 38630192 1CB400A8 7C632A14 1CD40054 -38C60012 7C7B1A14 +38C6002A 7C7B1A14 7C983214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 @@ -1876,7 +1920,7 @@ BA810008 800100B4 41820010 935B038B 38600001 987B038A 38600000 1C63000C -38A30012 1CD40054 +38A3002A 1CD40054 7CA53214 1C75000C 386300DC 7C611A14 7C982A14 38A0000C From b296cc5ad0c53cbf6269cd77b1b75174719c38c9 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 10 Aug 2022 17:02:51 -0400 Subject: [PATCH 107/217] add text display on desync detection --- Online/Core/StartEngineLoop.asm | 171 +++++---- Online/Menus/InGame/InitInGame.asm | 29 +- Online/Online.s | 11 +- Output/Netplay/GALE01r2.ini | 542 ++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 542 ++++++++++++++--------------- 5 files changed, 678 insertions(+), 617 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index b52d3c12..684c1f6e 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -12,8 +12,6 @@ .set REG_INPUTS_TO_PROCESS, 27 # From parent .set REG_INPUT_PROCESS_COUNTER, 26 # From parent .set REG_INTERRUPT_IDX, 25 -.set REG_TEXT_STRUCT, 24 -.set REG_DATA_ADDR, 23 # Replaced code branchl r12, HSD_PerfSetStartTime @@ -21,22 +19,30 @@ b CODE_START DATA_BLRL: blrl -.set DOFST_TEXT_BASE_Z, 0 -.float 0 -.set DOFST_TEXT_BASE_CANVAS_SCALING, DOFST_TEXT_BASE_Z + 4 -.float 1 - -.set DOFST_TEXT_X_POS, DOFST_TEXT_BASE_CANVAS_SCALING + 4 -.float 1.3 -.set DOFST_TEXT_Y_POS, DOFST_TEXT_X_POS + 4 -.float -45 -.set DOFST_TEXT_SIZE, DOFST_TEXT_Y_POS + 4 -.float 0.07 -.set DOFST_TEXT_COLOR, DOFST_TEXT_SIZE + 4 -.long 0xFF0000FF - -.set DOFST_TEXT_STRING, DOFST_TEXT_COLOR + 4 -.string "DISCONNECTED" +.set TEXT_ENTRY_X, 0 +.set TEXT_ENTRY_Y, TEXT_ENTRY_X + 4 +.set TEXT_ENTRY_SIZE, TEXT_ENTRY_Y + 4 +.set TEXT_ENTRY_COLOR, TEXT_ENTRY_SIZE + 4 +.set TEXT_ENTRY_STRING, TEXT_ENTRY_COLOR + 4 + +# Text entry for disconnect text +.set DOFST_DISCONNECT_TEXT_ENTRY, 0 +.float 1.3 # x-pos +.float -45 # y-pos +.float 0.07 # text size +.long 0xFF0000FF # text color +.string "DISCONNECTED" # text +.set DOFST_DISCONNECT_TEXT_ENTRY_SIZE, 16 + 13 + +# Text entry for desync text +.set DOFST_DESYNC_TEXT_ENTRY, DOFST_DISCONNECT_TEXT_ENTRY + DOFST_DISCONNECT_TEXT_ENTRY_SIZE +.float 1.3 # x-pos +.float -43 # y-pos +.float 0.05 # text size +.long 0xFFB800FF # text color +.string "DESYNC DETECTED" # text +.set DOFST_DISCONNECT_TEXT_ENTRY_SIZE, 16 + 16 + .align 2 ################################################################################ @@ -76,7 +82,7 @@ blr # ------------------------------------------------------------------------------ # Inputs: [r3] Checksum, [r4] PlayerEntityGobj # ------------------------------------------------------------------------------ -# Output: Checksum +# Output: [r3] Checksum ################################################################################ FN_COMPUTE_CHECKSUM_HELPER: cmpwi r4, 0 @@ -90,10 +96,58 @@ lwz r4, 0xB4(r5) # Position Y xor r3, r3, r4 lwz r4, 0x1830(r5) # Percent damage xor r3, r3, r4 -# logf LOG_LEVEL_INFO, "[SEL] Checksum Values: %08x | %08x | %08x | %08x", "lwz r8, 0x1830(r5)", "lwz r7, 0xB4(r5)", "lwz r6, 0xB0(r5)", "lwz r5, 0x10(r5)" +lwz r4, 0x8(r5) # Spawn #. Starts as 1 and 2 then after someone respawns they become 3 and so on +xor r3, r3, r4 +# logf LOG_LEVEL_INFO, "[SEL] Checksum Values: %08x | %08x | %08x | %08x | %08x", "lwz r9, 0x8(r5)", "lwz r8, 0x1830(r5)", "lwz r7, 0xB4(r5)", "lwz r6, 0xB0(r5)", "lwz r5, 0x10(r5)" FN_COMPUTE_CHECKSUM_HELPER_EXIT: blr +################################################################################ +# Creates a subtext +# ------------------------------------------------------------------------------ +# Inputs: [r3] TextStruct, [r4] DOFST for Text Entry +# ------------------------------------------------------------------------------ +# Output: [r3] SubtextId +################################################################################ +.set REG_TEXT_CONFIG_ADDR, 31 +.set REG_SUBTEXT_ID, 30 +.set REG_TEXT_STRUCT, 29 + +FN_CREATE_HUD_SUBTEXT: +backup + +mr REG_TEXT_STRUCT, r3 + +bl DATA_BLRL +mflr REG_TEXT_CONFIG_ADDR +add REG_TEXT_CONFIG_ADDR, REG_TEXT_CONFIG_ADDR, r4 + +# Initialize header +lfs f1, TEXT_ENTRY_X(REG_TEXT_CONFIG_ADDR) +lfs f2, TEXT_ENTRY_Y(REG_TEXT_CONFIG_ADDR) +mr r3, REG_TEXT_STRUCT +addi r4, REG_TEXT_CONFIG_ADDR, TEXT_ENTRY_STRING +branchl r12, Text_InitializeSubtext +mr REG_SUBTEXT_ID, r3 + +# Set header text size +mr r3, REG_TEXT_STRUCT +mr r4, REG_SUBTEXT_ID +lfs f1, TEXT_ENTRY_SIZE(REG_TEXT_CONFIG_ADDR) +lfs f2, TEXT_ENTRY_SIZE(REG_TEXT_CONFIG_ADDR) +branchl r12, Text_UpdateSubtextSize + +# Set text color +mr r3, REG_TEXT_STRUCT +mr r4, REG_SUBTEXT_ID +addi r5, REG_TEXT_CONFIG_ADDR, TEXT_ENTRY_COLOR +branchl r12, Text_ChangeTextColor + +mr r3, REG_SUBTEXT_ID + +restore +blr + CODE_START: # backup registers and sp backup @@ -140,52 +194,10 @@ beq DISPLAY_DISCONNECT_END # If not disconnected, do nothing li r3, 3 branchl r12, SFX_Menu_CommonSound -################################################################################ -# Start prepping text display -################################################################################ -bl DATA_BLRL -mflr REG_DATA_ADDR - -li r3, 2 -lwz r4, ODB_HUD_CANVAS(REG_ODB_ADDRESS) # HUD canvas used for names and delay (does not stretch in widescreen) -branchl r12, Text_CreateStruct -mr REG_TEXT_STRUCT, r3 - -# Set text kerning to close -li r4, 0x1 -stb r4, 0x49(REG_TEXT_STRUCT) -# Set text to align center -li r4, 0x1 -stb r4, 0x4A(REG_TEXT_STRUCT) - -# Store Base Z Offset -lfs f1, DOFST_TEXT_BASE_Z(REG_DATA_ADDR) #Z offset -stfs f1, 0x8(REG_TEXT_STRUCT) - -# Scale Canvas Down -lfs f1, DOFST_TEXT_BASE_CANVAS_SCALING(REG_DATA_ADDR) -stfs f1, 0x24(REG_TEXT_STRUCT) -stfs f1, 0x28(REG_TEXT_STRUCT) - -# Initialize header -lfs f1, DOFST_TEXT_X_POS(REG_DATA_ADDR) -lfs f2, DOFST_TEXT_Y_POS(REG_DATA_ADDR) -mr r3, REG_TEXT_STRUCT -addi r4, REG_DATA_ADDR, DOFST_TEXT_STRING -branchl r12, Text_InitializeSubtext - -# Set header text size -mr r3, REG_TEXT_STRUCT -li r4, 0 -lfs f1, DOFST_TEXT_SIZE(REG_DATA_ADDR) -lfs f2, DOFST_TEXT_SIZE(REG_DATA_ADDR) -branchl r12, Text_UpdateSubtextSize - -# Set text color -mr r3, REG_TEXT_STRUCT -li r4, 0 -addi r5, REG_DATA_ADDR, DOFST_TEXT_COLOR -branchl r12, Text_ChangeTextColor +# Create subtext +lwz r3, ODB_HUD_TEXT_STRUCT(REG_ODB_ADDRESS) +li r4, DOFST_DISCONNECT_TEXT_ENTRY +bl FN_CREATE_HUD_SUBTEXT # Indicate we have displayed disconnect message. Dont worry, we can't rollback # if disconnected so we dont have to worry about things getting reset @@ -372,6 +384,10 @@ SKIP_TAKE_CHECKSUM: #################################################################################################### # Check local checksums against the remote checksums to see if we have a desync #################################################################################################### +lbz r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne CHECKSUM_CHECK_PLAYER_LOOP_EXIT + li r12, 0 # Player index CHECKSUM_CHECK_PLAYER_LOOP_START: mulli r3, r12, DESYNC_ENTRY_SIZE @@ -379,6 +395,7 @@ addi r3, r3, RXB_OPNT_DESYNC_ENTRY add r11, REG_REMOTE_RXB, r3 # r11 now stores desync entry address for this remote player lwz r10, DESYNC_ENTRY_FRAME(r11) # r10 now contains the desync entry frame lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Checksum for Idx %d. StableFinalized: %d. Looking for %d -> %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 3", "mr r8, 10", "lwz r9, DESYNC_ENTRY_CHECKSUM(r11)" cmpw r10, r3 # If this checksum frame is greater than our stable finalized frame, skip for now bgt CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE cmpwi r10, UNFREEZE_INPUTS_FRAME @@ -399,8 +416,25 @@ lwz r4, DESYNC_ENTRY_CHECKSUM(r11) # logf LOG_LEVEL_ERROR, "[SEL] [%d] Comparing Checksums. RemoteIdx: %d, Frame: %d, %08x vs %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 10", "mr r8, 3", "mr r9, 4" cmpw r3, r4 beq FIND_CHECKSUM_LOOP_EXIT -logf LOG_LEVEL_NOTICE, "Desync detected!" -b FIND_CHECKSUM_LOOP_EXIT + +# Here we have detected a desync, It's okay that we're calling functions here and clobbering the +# volatile registers because we're about to exit the loops anyway + +# Play error sound +li r3, 3 +branchl r12, SFX_Menu_CommonSound + +# Create subtext +lwz r3, ODB_HUD_TEXT_STRUCT(REG_ODB_ADDRESS) +li r4, DOFST_DESYNC_TEXT_ENTRY +bl FN_CREATE_HUD_SUBTEXT + +# Indicate desync has been detected so we don't continue looking. It might be worth being able +# to clear the desync status display.. in the case we get a spurious value? Not sure yet +li r3, 1 +stb r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) + +b CHECKSUM_CHECK_PLAYER_LOOP_EXIT FIND_CHECKSUM_LOOP_CONTINUE: addi r9, r9, 1 cmpwi r9, DESYNC_ENTRY_COUNT @@ -412,6 +446,7 @@ addi r12, r12, 1 lbz r3, RXB_OPNT_COUNT(REG_REMOTE_RXB) cmpw r12, r3 blt CHECKSUM_CHECK_PLAYER_LOOP_START +CHECKSUM_CHECK_PLAYER_LOOP_EXIT: ################################################################################ # Check if we should capture state. We need to do this after the rollback diff --git a/Online/Menus/InGame/InitInGame.asm b/Online/Menus/InGame/InitInGame.asm index 01a1c0d7..5f92867e 100644 --- a/Online/Menus/InGame/InitInGame.asm +++ b/Online/Menus/InGame/InitInGame.asm @@ -20,9 +20,11 @@ blrl .float 0 .set DOFST_TEXT_BASE_CANVAS_SCALING, DOFST_TEXT_BASE_Z + 4 .float 0.1 +.set DOFST_TEXT_BASE_CANVAS_SCALING_1, DOFST_TEXT_BASE_CANVAS_SCALING + 4 +.float 1 # delay values -.set DOFST_TEXT_X_POS, DOFST_TEXT_BASE_CANVAS_SCALING + 4 +.set DOFST_TEXT_X_POS, DOFST_TEXT_BASE_CANVAS_SCALING_1 + 4 .float 270 .set DOFST_TEXT_Y_POS, DOFST_TEXT_X_POS + 4 .float 207 @@ -150,7 +152,6 @@ li r10, COBJ_GXPRI branchl r12, 0x803a611c mr REG_Canvas, r3 - .set REG_ODB_ADDRESS, 30 .set REG_TEXT_STRUCT, 29 .set REG_DATA_ADDR, 28 @@ -165,6 +166,30 @@ stw REG_Canvas, ODB_HUD_CANVAS(REG_ODB_ADDRESS) bl DATA_BLRL mflr REG_DATA_ADDR +# Create and store text struct that will be used for disconnect, desync, and other info texts +li r3, 2 +mr r4, REG_Canvas # HUD canvas used for names and delay (does not stretch in widescreen) +branchl r12, Text_CreateStruct +mr REG_TEXT_STRUCT, r3 + +# Set text kerning to close +li r4, 0x1 +stb r4, 0x49(REG_TEXT_STRUCT) +# Set text to align center +li r4, 0x1 +stb r4, 0x4A(REG_TEXT_STRUCT) + +# Store Base Z Offset +lfs f1, DOFST_TEXT_BASE_Z(REG_DATA_ADDR) #Z offset +stfs f1, 0x8(REG_TEXT_STRUCT) + +# Scale Canvas Down +lfs f1, DOFST_TEXT_BASE_CANVAS_SCALING_1(REG_DATA_ADDR) +stfs f1, 0x24(REG_TEXT_STRUCT) +stfs f1, 0x28(REG_TEXT_STRUCT) + +stw REG_TEXT_STRUCT, ODB_HUD_TEXT_STRUCT(REG_ODB_ADDRESS) + # Get player names li r3, 0 branchl r12, FN_LoadMatchState diff --git a/Online/Online.s b/Online/Online.s index e23f5093..5fcfb056 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -197,7 +197,10 @@ .set DESYNC_ENTRY_CHECKSUM, DESYNC_ENTRY_FRAME + 4 # u32 .set DESYNC_ENTRY_SIZE, DESYNC_ENTRY_CHECKSUM + 4 -.set DESYNC_ENTRY_COUNT, ROLLBACK_MAX_FRAME_COUNT + 2 # Just add a couple to make sure there's no off-by-1 +# I'm not exactly sure how many local entries we need to keep but our local entries will get +# compared with the opponents' last stabilized frame which with a lot of ping can come pretty late. +# My guess would be we could so 2 * ROLLBACK_MAX_FRAME_COUNT but 3 should definitely be safe +.set DESYNC_ENTRY_COUNT, ROLLBACK_MAX_FRAME_COUNT * 3 ################################################################################ # Online Data Buffer Offsets @@ -211,7 +214,8 @@ .set ODB_IS_GAME_OVER, ODB_GAME_END_FRAME + 4 # bool .set ODB_IS_DISCONNECTED, ODB_IS_GAME_OVER + 1 # bool .set ODB_IS_DISCONNECT_STATE_DISPLAYED, ODB_IS_DISCONNECTED + 1 # bool -.set ODB_IS_FRAME_ADVANCE, ODB_IS_DISCONNECT_STATE_DISPLAYED + 1 # bool +.set ODB_IS_DESYNC_STATE_DISPLAYED, ODB_IS_DISCONNECT_STATE_DISPLAYED + 1 # bool +.set ODB_IS_FRAME_ADVANCE, ODB_IS_DESYNC_STATE_DISPLAYED + 1 # bool .set ODB_LAST_LOCAL_INPUTS, ODB_IS_FRAME_ADVANCE + 1 # PAD_REPORT_SIZE .set ODB_DELAY_FRAMES, ODB_LAST_LOCAL_INPUTS + PAD_REPORT_SIZE # u8 .set ODB_DELAY_BUFFER_INDEX, ODB_DELAY_FRAMES + 1 # u8 @@ -243,7 +247,8 @@ .set ODB_STABLE_FINALIZED_FRAME, ODB_STABLE_SAVESTATE_FRAME + 4 # s32 .set ODB_SHOULD_FORCE_PAD_RENEW, ODB_STABLE_FINALIZED_FRAME + 4 # bool .set ODB_HUD_CANVAS, ODB_SHOULD_FORCE_PAD_RENEW + 1 # u32 -.set ODB_PAUSE_COUNTER, ODB_HUD_CANVAS + 4 # u32 +.set ODB_HUD_TEXT_STRUCT, ODB_HUD_CANVAS + 4 # u32 +.set ODB_PAUSE_COUNTER, ODB_HUD_TEXT_STRUCT + 4 # u32 .set ODB_FINALIZED_FRAME, ODB_PAUSE_COUNTER + 4 # u32 .set ODB_REST_STICK_CHANGE_COUNTER, ODB_FINALIZED_FRAME + 4 # u32 .set ODB_LOCAL_DESYNC_LAST_FRAME, ODB_REST_STICK_CHANGE_COUNTER + 4 # u32 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index a52b9ae4..09603cd2 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -584,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 88850010 2C040000 4082002C 8885000F 2C040000 -40820020 80850907 -3884FF85 80E50910 +40820020 80850908 +3884FF85 80E50915 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1140,15 +1140,15 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500DD 2C040000 +888500DE 2C040000 4182002C 3B600001 -888500DD 988508FD -808500DF 908508FE -888500DE 98850902 -8085038B 90850903 -48000028 8885090B +888500DE 988508FE +808500E0 908508FF +888500DF 98850903 +8085038C 90850904 +48000028 8885090C 2C040000 4182001C -38800000 9885090B +38800000 9885090C 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1165,7 +1165,7 @@ C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm 40820038 3C608047 60639D64 80630000 2C030000 40820024 -80ADB61C 88650012 +80ADB61C 88650013 2C030000 41820014 3D808001 618C95FC 7D8903A6 4E800421 @@ -1193,39 +1193,39 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 38600969 +40820450 386009CE 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 38800969 +7C7B1B78 388009CE 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 -7C6802A6 907B08F9 +7C6802A6 907B08FA 3860001A 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D5 +4E800421 907B00D6 38600126 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D9 +4E800421 907B00DA 7C7A1B78 38800126 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B039E 3860009E +933B039F 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B03A2 3880009E +907B03A3 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 38600969 +93790005 386009CE 90790009 9359000D 38600126 90790011 -807B03A2 90790015 +807B03A3 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1262,7 +1262,7 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 41800010 2C03000F 41810010 48000010 38600001 48000008 -3860000F 987B001F +3860000F 987B0020 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 @@ -1424,10 +1424,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF03A6 +83EDB61C 3BDF03A7 8B9E0000 3F008048 83189D60 3B18FFFF -82FF08F5 7C18B800 +82FF08F6 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1456,14 +1456,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F08F5 +4081001C 931F08F6 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F08FD +9B9E0000 8B7F08FE 2C1B0001 40820134 -807F08FE 7C181800 +807F08FF 7C181800 41800048 38600000 -987F00DD 987F08FD +987F00DE 987F08FE 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1505,8 +1505,8 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 80640910 -38630001 90640910 +808DB61C 80640915 +38630001 90640915 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1530,21 +1530,24 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 40820044 3C608047 60639D64 80630000 2C030000 40820030 -808DB61C 886400DD +808DB61C 886400DE 2C030000 41820020 -886400DE 2C030000 +886400DF 2C030000 40820014 3D808037 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000AB #Online/Core/StartEngineLoop.asm +C21A4DE4 000000A0 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -480000C0 4E800021 -00000000 3F800000 +48000178 4E800021 3FA66666 C2340000 3D8F5C29 FF0000FF 44495343 4F4E4E45 +43544544 003FA666 +66C22C00 003D4CCC +CDFFB800 FF444553 +594E4320 44455445 43544544 00000000 7C0802A6 90010004 9421FF50 BE810008 @@ -1558,63 +1561,64 @@ C21A4DE4 000000AB #Online/Core/StartEngineLoop.asm 7FC3F378 BA810008 800100B4 382100B0 7C0803A6 4E800020 -2C040000 41820028 +2C040000 41820030 80A4002C 80850010 7C632278 808500B0 7C632278 808500B4 7C632278 80851830 +7C632278 80850008 7C632278 4E800020 7C0802A6 90010004 9421FF50 BE810008 +7C7D1B78 4BFFFF11 +7FE802A6 7FFF2214 +C03F0000 C05F0004 +7FA3EB78 389F0010 +3D80803A 618C6B98 +7D8903A6 4E800421 +7C7E1B78 7FA3EB78 +7FC4F378 C03F0008 +C05F0008 3D80803A +618C7548 7D8903A6 +4E800421 7FA3EB78 +7FC4F378 38BF000C +3D80803A 618C74F0 +7D8903A6 4E800421 +7FC3F378 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 3C608047 +40820340 3C608047 60639D64 80630000 -2C030000 4082043C +2C030000 4082032C 83CDB61C 3FE08048 -83FF9D60 839E00D9 +83FF9D60 839E00DA 3D808034 618C7364 7D8903A6 4E800421 7C791B78 887E0011 -2C030000 408200FC +2C030000 40820064 887E0010 2C030000 -418200F0 38600003 +41820058 38600003 3D808002 618C4030 7D8903A6 4E800421 -4BFFFEBD 7EE802A6 -38600002 809E090C -3D80803A 618C6754 -7D8903A6 4E800421 -7C781B78 38800001 -98980049 38800001 -9898004A C0370000 -D0380008 C0370004 -D0380024 D0380028 -C0370008 C057000C -7F03C378 38970018 -3D80803A 618C6B98 -7D8903A6 4E800421 -7F03C378 38800000 -C0370010 C0570010 -3D80803A 618C7548 -7D8903A6 4E800421 -7F03C378 38800000 -38B70014 3D80803A -618C74F0 7D8903A6 -4E800421 38600001 +807E0911 38800000 +4BFFFED9 38600001 987E0011 886DAFA0 2C030000 40820024 3C608046 6063B6A0 889E0001 98830001 38800007 98830008 38800037 988324D5 -887E08FD 2C030000 -418200B0 887E0902 +887E08FE 2C030000 +418200B0 887E0903 2C030000 41820094 -807E0903 7C1F1800 +807E0904 7C1F1800 41820024 41800094 -807E039E 809E0903 -80BE03A2 3D808000 +807E039F 809E0904 +80BE03A3 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1624,72 +1628,57 @@ C0370010 C0570010 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E038B +83FF9D60 807E038C 907E0003 38600000 -987E038A 987E039B -987E039C 987E039D -987E00DE 987E0902 +987E038B 987E039C +987E039D 987E039E +987E00DF 987E0903 3D808001 618C95FC 7D8903A6 4E800421 -807E0914 7C1F1800 +807E0919 7C1F1800 4181000C 7FE3FB78 -48000004 809E0907 +48000004 809E0908 7C032000 40810008 -907E0907 807E091C +907E0908 807E0921 38630001 7C63F851 -889E0920 41800020 -88DE0920 38C60001 -2C060009 41800008 -38C00000 98DE0920 -93FE091C 38A00009 +889E0925 41800020 +88DE0925 38C60001 +2C060015 41800008 +38C00000 98DE0925 +93FE0921 38A00015 7C841A14 7CC42BD6 7CC629D6 7CC62050 7C853214 7CC42BD6 7CC629D6 7C862050 -1C840008 38640921 +1C840008 38640926 7FBE1A14 93FD0000 -4BFFFCD1 907D0004 -39800000 1C6C0008 -38630002 7D7C1A14 -814B0000 807E0907 -7C0A1800 418100F4 -2C0A0054 408100EC -39200000 1C690008 -38630921 7D1E1A14 -80680000 7C0A1800 -408200C4 80680004 -808B0004 7C032000 -418200C0 4800001C -4E800021 44657379 -6E632064 65746563 -74656421 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -60000000 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -48000010 39290001 -2C090009 4180FF20 +4BFFFCC9 907D0004 +887E0012 2C030000 +408200A0 39800000 +1C6C0008 38630002 +7D7C1A14 814B0000 +807E0908 7C0A1800 +41810070 2C0A0054 +40810068 39200000 +1C690008 38630926 +7D1E1A14 80680000 +7C0A1800 40820040 +80680004 808B0004 +7C032000 4182003C +38600003 3D808002 +618C4030 7D8903A6 +4E800421 807E0911 +3880001D 4BFFFCDD +38600001 987E0012 +48000020 39290001 +2C090015 4180FFA4 398C0001 887C0001 -7C0C1800 4180FEE8 -887E038A 2C030000 -4182002C 807E0907 +7C0C1800 4180FF6C +887E038B 2C030000 +4182002C 807E0908 7C1F1800 40810020 -807E039E 7FE4FB78 -80BE03A2 3D808000 +807E039F 7FE4FB78 +80BE03A3 3D808000 618C5608 7D8903A6 4E800421 887E000F 2C030001 41820058 @@ -1702,7 +1691,7 @@ B8610008 80010104 807E000B 7C63F850 2C030007 40810018 38600001 987E000F -807E08F9 7C6903A6 +807E08FA 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 @@ -1717,14 +1706,14 @@ C2376A28 000000F0 #Online/Core/TriggerSendInput.asm 40820744 3C608047 60639D64 80630000 2C030000 40820730 -836DB61C 833B00D5 -831B00D9 82FB039E +836DB61C 833B00D6 +831B00DA 82FB039F 835B0003 889B0002 1C84000C 386400DC -7FA11A14 887B00DD +7FA11A14 887B00DE 2C030000 41820010 -887B00DE 2C030000 -41820670 887B001F +887B00DF 2C030000 +41820670 887B0020 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1742,23 +1731,23 @@ B0830000 4E800020 387D0004 4BFFFFB9 887D000A 7C630774 2C03FFFD 40820020 -7FA3EB78 389B0013 +7FA3EB78 389B0014 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 387B0013 +4E800421 387B0014 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B0907 -90790005 819B0907 +93590001 807B0908 +90790005 819B0908 39600000 1C6B0008 -38630921 7D5B1A14 +38630926 7D5B1A14 806A0000 7C036000 40820010 806A0004 90790009 48000010 -396B0001 2C0B0009 -4180FFD4 887B001F +396B0001 2C0B0015 +4180FFD4 887B0020 9879000D 3879000E 7FA4EB78 38A0000C 3D808000 618C31F4 @@ -1770,7 +1759,7 @@ B0830000 4E800020 38800126 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -38600000 987B0012 +38600000 987B0013 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1781,49 +1770,49 @@ B0830000 4E800020 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 38600001 -987B0012 889B0020 -1C84000C 38840021 +987B0013 889B0021 +1C84000C 38840022 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00E3 1C63000C -386300E4 889B0000 +887B00E4 1C63000C +386300E5 889B0000 1C84000C 388400DC 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00E3 +4E800421 887B00E4 38630001 2C03000E 41800008 38600000 -987B00E3 887B0020 -1C63000C 38630021 +987B00E4 887B0021 +1C63000C 38630022 7C7B1A14 3899000E 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 889B001F -887B0020 38630001 +4E800421 889B0020 +887B0021 38630001 7C032000 41800008 -38600000 987B0020 -8B9B00DD 887B038A +38600000 987B0021 +8B9B00DE 887B038B 2C030000 40820018 -38600000 987B039B -987B039C 987B039D +38600000 987B039C +987B039D 987B039E 48000264 3A800000 -38D4039B 7C66D8AE +38D4039C 7C66D8AE 2C030001 4082016C 1CD40004 38C6001A 7C66C02E 1CD40004 -38C6038F 7C86D82E +38C60390 7C86D82E 7EC41851 4180014C -80DB0907 7C043000 +80DB0908 7C043000 41810010 7C032000 418100AC 48000134 1C76000C 3863002A 1CD40054 7C633214 -38D4018C 7C86D8AE -1C84000C 38840192 +38D4018D 7C86D8AE +1C84000C 38840193 1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1841,18 +1830,18 @@ B0830000 4E800020 2C04002A 4081FFE0 7C032000 40820054 4BFFFFD4 1CD40004 -38C6038F 7C66D82E +38C60390 7C66D82E 38630001 7C66D92E -38D4018C 7C66D8AE +38D4018D 7C66D8AE 38630001 2C03000E 41800008 3863FFF2 -7C66D9AE 38D4018C -7C66D8AE 38D4018F +7C66D9AE 38D4018D +7C66D8AE 38D40190 7C86D8AE 7C041800 4082FED0 48000044 3B800001 4800003C -38600001 987B00DD -987B00DE 935B00DF +38600001 987B00DE +987B00DF 935B00E0 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 @@ -1860,46 +1849,46 @@ BA810008 800100B4 7D8903A6 4E800420 3A940001 2C140003 4180FE80 39600000 -3A800000 82BB0907 -38D4039B 7C86D8AE +3A800000 82BB0908 +38D4039C 7C86D8AE 2C040001 40820028 -1CD40004 38C6038F +1CD40004 38C60390 7C86D82E 2C0B0000 4182000C 7C04A800 40800008 7C952378 39600001 3A940001 2C140003 4180FFC4 -92BB038B 92BB0914 +92BB038C 92BB0919 80D80026 7C153000 -40810008 90DB0914 +40810008 90DB0919 2C1C0000 4082FF54 -3A800000 38D4039B +3A800000 38D4039C 7C86D8AE 2C040001 -40820028 38D4018C -7C66D8AE 38D4018F +40820028 38D4018D +7C66D8AE 38D40190 7C86D8AE 7C041800 40820010 38600000 -38D4039B 7C66D9AE +38D4039C 7C66D9AE 3A940001 2C140003 4180FFC4 3A800000 -38D4039B 7C86D8AE +38D4039C 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B038A 3A800000 +987B038B 3A800000 3AA00000 3B800001 887B0000 7C151800 40820008 3AB50001 1CD40004 38C6001A 7C66C02E 7C7A1850 2C030000 408000D8 -887B001F 38800054 +887B0020 38800054 7C632050 7C1A1800 418000C0 887B000F 2C030001 418200B4 -3B800000 38D4018F +3B800000 38D40190 7EC6D8AE 1C76000C -38630192 1CB400A8 +38630193 1CB400A8 7C632A14 1CD40054 38C6002A 7C7B1A14 7C983214 38A0000C @@ -1907,18 +1896,18 @@ BA810008 800100B4 7D8903A6 4E800421 38760001 2C03000E 41800008 3863FFF2 -38D4018F 7C66D9AE -38D4018C 7C66D8AE -38D4018F 7C86D8AE -38D4039B 7C66D8AE +38D40190 7C66D9AE +38D4018D 7C66D8AE +38D40190 7C86D8AE +38D4039C 7C66D8AE 2C030001 4182003C -1CD40004 38C6038F +1CD40004 38C60390 7F46D92E 38600001 -38D4039B 7C66D9AE -38D4018C 7EC6D9AE -887B038A 2C030001 -41820010 935B038B -38600001 987B038A +38D4039C 7C66D9AE +38D4018D 7EC6D9AE +887B038B 2C030001 +41820010 935B038C +38600001 987B038B 38600000 1C63000C 38A3002A 1CD40054 7CA53214 1C75000C @@ -1929,17 +1918,17 @@ BA810008 800100B4 3A940001 3AB50001 2C140003 4180FEC4 2C1C0000 41820008 -935B0914 48000080 -807B00DF 7C1A1800 +935B0919 48000080 +807B00E0 7C1A1800 40810024 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 -4E800420 807B00DF +4E800420 807B00E0 7C7A1850 38630001 -889B00E3 7C632051 +889B00E4 7C632051 40800008 3863000E -1C63000C 388300E4 +1C63000C 388300E5 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C @@ -2095,12 +2084,12 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 3C608047 60639D64 80630000 2C030000 40820044 80ADB61C -38600000 98650012 +38600000 98650013 3C608037 60635E00 2C000003 40820028 -886500DD 2C030000 +886500DE 2C030000 4182001C 38600001 -9865090B 3D808001 +9865090C 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2119,11 +2108,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF03A6 8B9E0000 +3BDF03A7 8B9E0000 3C608048 80639D60 -809F08F5 7C032000 +809F08F6 7C032000 41810028 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2141,12 +2130,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A6 57DE043E +3BBF03A7 57DE043E 8B9D0000 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C032000 41810088 3C608048 80639D60 -809F08F5 7C632050 +809F08F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2171,12 +2160,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A6 57DE043E +3BBF03A7 57DE043E 8B9D0000 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C032000 41810088 3C608048 80639D60 -809F08F5 7C632050 +809F08F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2203,13 +2192,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF03A6 +83EDB61C 3BDF03A7 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F08F5 7C032000 +809F08F6 7C032000 41810070 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3958,62 +3947,71 @@ C23786A4 00000009 #Online/Menus/Hacks/VsSplashRumbleHack.asm 618C86AC 7D8903A6 4E800420 28000000 60000000 00000000 -C22F6694 000000B4 #Online/Menus/InGame/InitInGame.asm +C22F6694 000000BD #Online/Menus/InGame/InitInGame.asm 3C608048 80639D30 5463443E 2C030208 -40820580 480000A8 +408205C8 480000AC 4E800021 00000000 -3DCCCCCD 43870000 -434F0000 3EA8F5C3 -3EA8F5C3 000000FF -3F1EB852 3F466666 -C1C07AE1 3C6F34D7 -3F4CCCCD 41A51EB8 -00000000 3D75C28F -43160000 3F0A3D71 -00000000 44656C61 -793A2025 64660000 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 -880DB6CC 2C000001 -41820018 7FE3FB78 -3D808039 618C10D8 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C60804D -60636D5C 80630000 -3C80803F 608494D0 -3D808038 618C0358 -7D8903A6 4E800421 -80630004 80630000 -3D808036 618CA590 -7D8903A6 4E800421 -7C7E1B78 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -7C7D1B78 7FA3EB78 -888DC1AB 7FC5F378 -3D808039 618C0A70 -7D8903A6 4E800421 -7FA3EB78 4BFFFF25 -7C8802A6 38A00008 -3D808039 618C075C +3DCCCCCD 3F800000 +43870000 434F0000 +3EA8F5C3 3EA8F5C3 +000000FF 3F1EB852 +3F466666 C1C07AE1 +3C6F34D7 3F4CCCCD +41A51EB8 00000000 +3D75C28F 43160000 +3F0A3D71 00000000 +44656C61 793A2025 +64660000 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 880DB6CC +2C000001 41820018 +7FE3FB78 3D808039 +618C10D8 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3C60804D 60636D5C +80630000 3C80803F +608494D0 3D808038 +618C0358 7D8903A6 +4E800421 80630004 +80630000 3D808036 +618CA590 7D8903A6 +4E800421 7C7E1B78 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 7C7D1B78 +7FA3EB78 888DC1AB +7FC5F378 3D808039 +618C0A70 7D8903A6 +4E800421 7FA3EB78 +4BFFFF25 7C8802A6 +38A00008 3D808039 +618C075C 7D8903A6 +4E800421 3C600000 +60631000 907D0024 +38600002 7FA4EB78 +38A00009 38C0000D +38E00000 3900000C +39200050 39400008 +3D80803A 618C611C 7D8903A6 4E800421 -3C600000 60631000 -907D0024 38600002 -7FA4EB78 38A00009 -38C0000D 38E00000 -3900000C 39200050 -39400008 3D80803A -618C611C 7D8903A6 -4E800421 7C7F1B78 -83CDB61C 93FE090C -4BFFFE69 7F8802A6 +7C7F1B78 83CDB61C +93FE090D 4BFFFE65 +7F8802A6 38600002 +7FE4FB78 3D80803A +618C6754 7D8903A6 +4E800421 7C7D1B78 +38800001 989D0049 +38800001 989D004A +C03C0000 D03D0008 +C03C0008 D03D0024 +D03D0028 93BE0911 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7A1B78 @@ -4025,13 +4023,13 @@ BE810008 3C60804D 989D004A C03C0000 D03D0008 C03C0004 D03D0024 D03D0028 -C03C0008 C05C000C -7FA3EB78 389C0048 -88BE001F 3D80803A +C03C000C C05C0010 +7FA3EB78 389C004C +88BE0020 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 -38800000 C03C0010 -C05C0010 3D80803A +38800000 C03C0014 +C05C0014 3D80803A 618C7548 7D8903A6 4E800421 3A800000 3EA0804A 62B50FF0 @@ -4048,21 +4046,21 @@ C0230000 D0210070 7C7D1B78 38800001 989D0048 989D004A 989D004C 989D0049 -C03C0038 D03D0024 +C03C003C D03D0024 D03D0028 C0210070 -C05C002C EC21102A -D03D0000 C03C0030 -D03D0004 C03C0034 -D03D0008 C03C003C +C05C0030 EC21102A +D03D0000 C03C0034 +D03D0004 C03C0038 +D03D0008 C03C0040 D03D000C D03D0010 -4CC63242 C03C0044 -C05C0044 7FA3EB78 +4CC63242 C03C0048 +C05C0048 7FA3EB78 389A0034 1CB4001F 7C842A14 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 -38800000 C03C0040 -C05C0040 3D80803A +38800000 C03C0044 +C05C0044 3D80803A 618C7548 7D8903A6 4E800421 3860000E 3880000F 38A00000 @@ -4083,10 +4081,10 @@ C05C0040 3D80803A 4E800421 7E83A378 3D80802F 618C3424 7D8903A6 4E800421 -C0230000 C05C0020 +C0230000 C05C0024 EC21102A D0360038 -C03C0024 D036003C -C03C001C D0360030 +C03C0028 D036003C +C03C0020 D0360030 7EC3B378 38810080 38A00001 38C0FFFF 3D808001 618C1E24 @@ -4098,8 +4096,8 @@ C03C001C D0360030 80630004 80830014 60840001 90830014 80630004 80630008 -8063000C C03C0014 -D023000C 809C0018 +8063000C C03C0018 +D023000C 809C001C 90830004 3B200000 807D005C 38800000 3D80803A 618C6FEC @@ -4129,7 +4127,7 @@ D023000C 809C0018 3C004330 C84298A8 6F238000 90010080 90610084 C8210080 -EC211028 C05C0028 +EC211028 C05C002C EC2100B2 D036002C 3A940001 2C140006 4180FCF8 7F43D378 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 6dbe3f62..5311267e 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -584,8 +584,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 88850010 2C040000 4082002C 8885000F 2C040000 -40820020 80850907 -3884FF85 80E50910 +40820020 80850908 +3884FF85 80E50915 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 @@ -1140,15 +1140,15 @@ C21A4DB4 0000001A #Online/Core/ForceEngineOnRollback.asm 7D8903A6 4E800421 7C7A1B78 80ADB61C 2C1B0000 41810014 -888500DD 2C040000 +888500DE 2C040000 4182002C 3B600001 -888500DD 988508FD -808500DF 908508FE -888500DE 98850902 -8085038B 90850903 -48000028 8885090B +888500DE 988508FE +808500E0 908508FF +888500DF 98850903 +8085038C 90850904 +48000028 8885090C 2C040000 4182001C -38800000 9885090B +38800000 9885090C 3D808001 618C95FC 7D8903A6 4E800421 7F43D378 3D808034 @@ -1165,7 +1165,7 @@ C2019614 0000000C #Online/Core/ForceInputRefetchOnAdvance.asm 40820038 3C608047 60639D64 80630000 2C030000 40820024 -80ADB61C 88650012 +80ADB61C 88650013 2C030000 41820014 3D808001 618C95FC 7D8903A6 4E800421 @@ -1193,39 +1193,39 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 38600969 +40820450 386009CE 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 38800969 +7C7B1B78 388009CE 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 907B0003 48000281 -7C6802A6 907B08F9 +7C6802A6 907B08FA 3860001A 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D5 +4E800421 907B00D6 38600126 3D808037 618CF1E4 7D8903A6 -4E800421 907B00D9 +4E800421 907B00DA 7C7A1B78 38800126 3D808000 618CC160 7D8903A6 4E800421 38600021 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -933B039E 3860009E +933B039F 3860009E 3D808037 618CF1E4 7D8903A6 4E800421 -907B03A2 3880009E +907B03A3 3880009E 3D808000 618CC160 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 38600969 +93790005 386009CE 90790009 9359000D 38600126 90790011 -807B03A2 90790015 +807B03A3 90790015 3860009E 90790019 38600000 9079001D 38600000 3D808000 @@ -1262,7 +1262,7 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 41800010 2C03000F 41810010 48000010 38600001 48000008 -3860000F 987B001F +3860000F 987B0020 38A00000 3C60804C 606320BC 1C850044 7C632214 38800000 @@ -1424,10 +1424,10 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm BE810008 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 -83EDB61C 3BDF03A6 +83EDB61C 3BDF03A7 8B9E0000 3F008048 83189D60 3B18FFFF -82FF08F5 7C18B800 +82FF08F6 7C18B800 4181009C 7C78B850 38630001 8B9E0000 7F83E051 40800008 @@ -1456,14 +1456,14 @@ A0840001 7C032000 38800061 3D808000 618CC160 7D8903A6 4E800421 7C18B800 -4081001C 931F08F5 +4081001C 931F08F6 3B9C0001 2C1C0007 41800008 3B9CFFF9 -9B9E0000 8B7F08FD +9B9E0000 8B7F08FE 2C1B0001 40820134 -807F08FE 7C181800 +807F08FF 7C181800 41800048 38600000 -987F00DD 987F08FD +987F00DE 987F08FE 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 BA810008 @@ -1505,8 +1505,8 @@ BE810008 3D808003 800100B4 382100B0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm -808DB61C 80640910 -38630001 90640910 +808DB61C 80640915 +38630001 90640915 387F0000 00000000 C216CD08 0000000A #Online/Core/PreventPauseStranding.asm 3C608048 80639D30 @@ -1530,21 +1530,24 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 40820044 3C608047 60639D64 80630000 2C030000 40820030 -808DB61C 886400DD +808DB61C 886400DE 2C030000 41820020 -886400DE 2C030000 +886400DF 2C030000 40820014 3D808037 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000AB #Online/Core/StartEngineLoop.asm +C21A4DE4 000000A0 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -480000C0 4E800021 -00000000 3F800000 +48000178 4E800021 3FA66666 C2340000 3D8F5C29 FF0000FF 44495343 4F4E4E45 +43544544 003FA666 +66C22C00 003D4CCC +CDFFB800 FF444553 +594E4320 44455445 43544544 00000000 7C0802A6 90010004 9421FF50 BE810008 @@ -1558,63 +1561,64 @@ C21A4DE4 000000AB #Online/Core/StartEngineLoop.asm 7FC3F378 BA810008 800100B4 382100B0 7C0803A6 4E800020 -2C040000 41820028 +2C040000 41820030 80A4002C 80850010 7C632278 808500B0 7C632278 808500B4 7C632278 80851830 +7C632278 80850008 7C632278 4E800020 7C0802A6 90010004 9421FF50 BE810008 +7C7D1B78 4BFFFF11 +7FE802A6 7FFF2214 +C03F0000 C05F0004 +7FA3EB78 389F0010 +3D80803A 618C6B98 +7D8903A6 4E800421 +7C7E1B78 7FA3EB78 +7FC4F378 C03F0008 +C05F0008 3D80803A +618C7548 7D8903A6 +4E800421 7FA3EB78 +7FC4F378 38BF000C +3D80803A 618C74F0 +7D8903A6 4E800421 +7FC3F378 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 3C608047 +40820340 3C608047 60639D64 80630000 -2C030000 4082043C +2C030000 4082032C 83CDB61C 3FE08048 -83FF9D60 839E00D9 +83FF9D60 839E00DA 3D808034 618C7364 7D8903A6 4E800421 7C791B78 887E0011 -2C030000 408200FC +2C030000 40820064 887E0010 2C030000 -418200F0 38600003 +41820058 38600003 3D808002 618C4030 7D8903A6 4E800421 -4BFFFEBD 7EE802A6 -38600002 809E090C -3D80803A 618C6754 -7D8903A6 4E800421 -7C781B78 38800001 -98980049 38800001 -9898004A C0370000 -D0380008 C0370004 -D0380024 D0380028 -C0370008 C057000C -7F03C378 38970018 -3D80803A 618C6B98 -7D8903A6 4E800421 -7F03C378 38800000 -C0370010 C0570010 -3D80803A 618C7548 -7D8903A6 4E800421 -7F03C378 38800000 -38B70014 3D80803A -618C74F0 7D8903A6 -4E800421 38600001 +807E0911 38800000 +4BFFFED9 38600001 987E0011 886DAFA0 2C030000 40820024 3C608046 6063B6A0 889E0001 98830001 38800007 98830008 38800037 988324D5 -887E08FD 2C030000 -418200B0 887E0902 +887E08FE 2C030000 +418200B0 887E0903 2C030000 41820094 -807E0903 7C1F1800 +807E0904 7C1F1800 41820024 41800094 -807E039E 809E0903 -80BE03A2 3D808000 +807E039F 809E0904 +80BE03A3 3D808000 618C560C 7D8903A6 4E800421 3D808001 618C9894 7D8903A6 @@ -1624,72 +1628,57 @@ C0370010 C0570010 88650000 7C841A14 98850002 38600000 98650003 3FE08048 -83FF9D60 807E038B +83FF9D60 807E038C 907E0003 38600000 -987E038A 987E039B -987E039C 987E039D -987E00DE 987E0902 +987E038B 987E039C +987E039D 987E039E +987E00DF 987E0903 3D808001 618C95FC 7D8903A6 4E800421 -807E0914 7C1F1800 +807E0919 7C1F1800 4181000C 7FE3FB78 -48000004 809E0907 +48000004 809E0908 7C032000 40810008 -907E0907 807E091C +907E0908 807E0921 38630001 7C63F851 -889E0920 41800020 -88DE0920 38C60001 -2C060009 41800008 -38C00000 98DE0920 -93FE091C 38A00009 +889E0925 41800020 +88DE0925 38C60001 +2C060015 41800008 +38C00000 98DE0925 +93FE0921 38A00015 7C841A14 7CC42BD6 7CC629D6 7CC62050 7C853214 7CC42BD6 7CC629D6 7C862050 -1C840008 38640921 +1C840008 38640926 7FBE1A14 93FD0000 -4BFFFCD1 907D0004 -39800000 1C6C0008 -38630002 7D7C1A14 -814B0000 807E0907 -7C0A1800 418100F4 -2C0A0054 408100EC -39200000 1C690008 -38630921 7D1E1A14 -80680000 7C0A1800 -408200C4 80680004 -808B0004 7C032000 -418200C0 4800001C -4E800021 44657379 -6E632064 65746563 -74656421 00000000 -7C0802A6 90010004 -9421FF00 BC610008 -60000000 60000000 -60000000 60000000 -60000000 60000000 -806DAFC4 38630003 -4BFFFFB9 7C8802A6 -4CC63242 3D808032 -618C3CF4 7D8903A6 -4E800421 806DAFC4 -388000D0 98830000 -38800000 98830001 -38800001 98830002 -38800080 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -B8610008 80010104 -38210100 7C0803A6 -48000010 39290001 -2C090009 4180FF20 +4BFFFCC9 907D0004 +887E0012 2C030000 +408200A0 39800000 +1C6C0008 38630002 +7D7C1A14 814B0000 +807E0908 7C0A1800 +41810070 2C0A0054 +40810068 39200000 +1C690008 38630926 +7D1E1A14 80680000 +7C0A1800 40820040 +80680004 808B0004 +7C032000 4182003C +38600003 3D808002 +618C4030 7D8903A6 +4E800421 807E0911 +3880001D 4BFFFCDD +38600001 987E0012 +48000020 39290001 +2C090015 4180FFA4 398C0001 887C0001 -7C0C1800 4180FEE8 -887E038A 2C030000 -4182002C 807E0907 +7C0C1800 4180FF6C +887E038B 2C030000 +4182002C 807E0908 7C1F1800 40810020 -807E039E 7FE4FB78 -80BE03A2 3D808000 +807E039F 7FE4FB78 +80BE03A3 3D808000 618C5608 7D8903A6 4E800421 887E000F 2C030001 41820058 @@ -1702,7 +1691,7 @@ B8610008 80010104 807E000B 7C63F850 2C030007 40810018 38600001 987E000F -807E08F9 7C6903A6 +807E08FA 7C6903A6 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 @@ -1717,14 +1706,14 @@ C2376A28 000000F0 #Online/Core/TriggerSendInput.asm 40820744 3C608047 60639D64 80630000 2C030000 40820730 -836DB61C 833B00D5 -831B00D9 82FB039E +836DB61C 833B00D6 +831B00DA 82FB039F 835B0003 889B0002 1C84000C 386400DC -7FA11A14 887B00DD +7FA11A14 887B00DE 2C030000 41820010 -887B00DE 2C030000 -41820670 887B001F +887B00DF 2C030000 +41820670 887B0020 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1742,23 +1731,23 @@ B0830000 4E800020 387D0004 4BFFFFB9 887D000A 7C630774 2C03FFFD 40820020 -7FA3EB78 389B0013 +7FA3EB78 389B0014 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 387B0013 +4E800421 387B0014 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 386000B0 98790000 -93590001 807B0907 -90790005 819B0907 +93590001 807B0908 +90790005 819B0908 39600000 1C6B0008 -38630921 7D5B1A14 +38630926 7D5B1A14 806A0000 7C036000 40820010 806A0004 90790009 48000010 -396B0001 2C0B0009 -4180FFD4 887B001F +396B0001 2C0B0015 +4180FFD4 887B0020 9879000D 3879000E 7FA4EB78 38A0000C 3D808000 618C31F4 @@ -1770,7 +1759,7 @@ B0830000 4E800020 38800126 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -38600000 987B0012 +38600000 987B0013 88780000 2C030002 41820024 2C030003 41820010 2C030004 @@ -1781,49 +1770,49 @@ B0830000 4E800020 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 38600001 -987B0012 889B0020 -1C84000C 38840021 +987B0013 889B0021 +1C84000C 38840022 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 -887B00E3 1C63000C -386300E4 889B0000 +887B00E4 1C63000C +386300E5 889B0000 1C84000C 388400DC 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 887B00E3 +4E800421 887B00E4 38630001 2C03000E 41800008 38600000 -987B00E3 887B0020 -1C63000C 38630021 +987B00E4 887B0021 +1C63000C 38630022 7C7B1A14 3899000E 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 889B001F -887B0020 38630001 +4E800421 889B0020 +887B0021 38630001 7C032000 41800008 -38600000 987B0020 -8B9B00DD 887B038A +38600000 987B0021 +8B9B00DE 887B038B 2C030000 40820018 -38600000 987B039B -987B039C 987B039D +38600000 987B039C +987B039D 987B039E 48000264 3A800000 -38D4039B 7C66D8AE +38D4039C 7C66D8AE 2C030001 4082016C 1CD40004 38C6001A 7C66C02E 1CD40004 -38C6038F 7C86D82E +38C60390 7C86D82E 7EC41851 4180014C -80DB0907 7C043000 +80DB0908 7C043000 41810010 7C032000 418100AC 48000134 1C76000C 3863002A 1CD40054 7C633214 -38D4018C 7C86D8AE -1C84000C 38840192 +38D4018D 7C86D8AE +1C84000C 38840193 1CB400A8 7C842A14 7CD81A14 7CFB2214 88660000 88870000 @@ -1841,18 +1830,18 @@ B0830000 4E800020 2C04002A 4081FFE0 7C032000 40820054 4BFFFFD4 1CD40004 -38C6038F 7C66D82E +38C60390 7C66D82E 38630001 7C66D92E -38D4018C 7C66D8AE +38D4018D 7C66D8AE 38630001 2C03000E 41800008 3863FFF2 -7C66D9AE 38D4018C -7C66D8AE 38D4018F +7C66D9AE 38D4018D +7C66D8AE 38D40190 7C86D8AE 7C041800 4082FED0 48000044 3B800001 4800003C -38600001 987B00DD -987B00DE 935B00DF +38600001 987B00DE +987B00DF 935B00E0 3B5A0001 935B0003 BA810008 800100B4 382100B0 7C0803A6 @@ -1860,46 +1849,46 @@ BA810008 800100B4 7D8903A6 4E800420 3A940001 2C140003 4180FE80 39600000 -3A800000 82BB0907 -38D4039B 7C86D8AE +3A800000 82BB0908 +38D4039C 7C86D8AE 2C040001 40820028 -1CD40004 38C6038F +1CD40004 38C60390 7C86D82E 2C0B0000 4182000C 7C04A800 40800008 7C952378 39600001 3A940001 2C140003 4180FFC4 -92BB038B 92BB0914 +92BB038C 92BB0919 80D80026 7C153000 -40810008 90DB0914 +40810008 90DB0919 2C1C0000 4082FF54 -3A800000 38D4039B +3A800000 38D4039C 7C86D8AE 2C040001 -40820028 38D4018C -7C66D8AE 38D4018F +40820028 38D4018D +7C66D8AE 38D40190 7C86D8AE 7C041800 40820010 38600000 -38D4039B 7C66D9AE +38D4039C 7C66D9AE 3A940001 2C140003 4180FFC4 3A800000 -38D4039B 7C86D8AE +38D4039C 7C86D8AE 2C040001 41820018 3A940001 2C140003 4180FFE8 38600000 -987B038A 3A800000 +987B038B 3A800000 3AA00000 3B800001 887B0000 7C151800 40820008 3AB50001 1CD40004 38C6001A 7C66C02E 7C7A1850 2C030000 408000D8 -887B001F 38800054 +887B0020 38800054 7C632050 7C1A1800 418000C0 887B000F 2C030001 418200B4 -3B800000 38D4018F +3B800000 38D40190 7EC6D8AE 1C76000C -38630192 1CB400A8 +38630193 1CB400A8 7C632A14 1CD40054 38C6002A 7C7B1A14 7C983214 38A0000C @@ -1907,18 +1896,18 @@ BA810008 800100B4 7D8903A6 4E800421 38760001 2C03000E 41800008 3863FFF2 -38D4018F 7C66D9AE -38D4018C 7C66D8AE -38D4018F 7C86D8AE -38D4039B 7C66D8AE +38D40190 7C66D9AE +38D4018D 7C66D8AE +38D40190 7C86D8AE +38D4039C 7C66D8AE 2C030001 4182003C -1CD40004 38C6038F +1CD40004 38C60390 7F46D92E 38600001 -38D4039B 7C66D9AE -38D4018C 7EC6D9AE -887B038A 2C030001 -41820010 935B038B -38600001 987B038A +38D4039C 7C66D9AE +38D4018D 7EC6D9AE +887B038B 2C030001 +41820010 935B038C +38600001 987B038B 38600000 1C63000C 38A3002A 1CD40054 7CA53214 1C75000C @@ -1929,17 +1918,17 @@ BA810008 800100B4 3A940001 3AB50001 2C140003 4180FEC4 2C1C0000 41820008 -935B0914 48000080 -807B00DF 7C1A1800 +935B0919 48000080 +807B00E0 7C1A1800 40810024 BA810008 800100B4 382100B0 7C0803A6 3D808037 618C6CEC 7D8903A6 -4E800420 807B00DF +4E800420 807B00E0 7C7A1850 38630001 -889B00E3 7C632051 +889B00E4 7C632051 40800008 3863000E -1C63000C 388300E4 +1C63000C 388300E5 887B0000 1C63000C 386300DC 7C611A14 7C9B2214 38A0000C @@ -2095,12 +2084,12 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 3C608047 60639D64 80630000 2C030000 40820044 80ADB61C -38600000 98650012 +38600000 98650013 3C608037 60635E00 2C000003 40820028 -886500DD 2C030000 +886500DE 2C030000 4182001C 38600001 -9865090B 3D808001 +9865090C 3D808001 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 @@ -2119,11 +2108,11 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 40820090 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BDF03A6 8B9E0000 +3BDF03A7 8B9E0000 3C608048 80639D60 -809F08F5 7C032000 +809F08F6 7C032000 41810028 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -2141,12 +2130,12 @@ C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A6 57DE043E +3BBF03A7 57DE043E 8B9D0000 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C032000 41810088 3C608048 80639D60 -809F08F5 7C632050 +809F08F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2171,12 +2160,12 @@ C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 408200CC 7C0802A6 90010004 9421FF50 BE810008 83EDB61C -3BBF03A6 57DE043E +3BBF03A7 57DE043E 8B9D0000 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C032000 41810088 3C608048 80639D60 -809F08F5 7C632050 +809F08F6 7C632050 38630001 8B9D0000 7F83E051 40800008 3B9C0007 1C7C00C2 @@ -2203,13 +2192,13 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 2C030000 40820120 7C0802A6 90010004 9421FF50 BE810008 -83EDB61C 3BDF03A6 +83EDB61C 3BDF03A7 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 80639D60 -809F08F5 7C032000 +809F08F6 7C032000 41810070 3C608048 -80639D60 809F08F5 +80639D60 809F08F6 7C632050 38630001 8B9E0000 7F83E051 40800008 3B9C0007 @@ -3958,62 +3947,71 @@ C23786A4 00000009 #Online/Menus/Hacks/VsSplashRumbleHack.asm 618C86AC 7D8903A6 4E800420 28000000 60000000 00000000 -C22F6694 000000B4 #Online/Menus/InGame/InitInGame.asm +C22F6694 000000BD #Online/Menus/InGame/InitInGame.asm 3C608048 80639D30 5463443E 2C030208 -40820580 480000A8 +408205C8 480000AC 4E800021 00000000 -3DCCCCCD 43870000 -434F0000 3EA8F5C3 -3EA8F5C3 000000FF -3F1EB852 3F466666 -C1C07AE1 3C6F34D7 -3F4CCCCD 41A51EB8 -00000000 3D75C28F -43160000 3F0A3D71 -00000000 44656C61 -793A2025 64660000 -4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 -880DB6CC 2C000001 -41820018 7FE3FB78 -3D808039 618C10D8 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C60804D -60636D5C 80630000 -3C80803F 608494D0 -3D808038 618C0358 -7D8903A6 4E800421 -80630004 80630000 -3D808036 618CA590 -7D8903A6 4E800421 -7C7E1B78 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -7C7D1B78 7FA3EB78 -888DC1AB 7FC5F378 -3D808039 618C0A70 -7D8903A6 4E800421 -7FA3EB78 4BFFFF25 -7C8802A6 38A00008 -3D808039 618C075C +3DCCCCCD 3F800000 +43870000 434F0000 +3EA8F5C3 3EA8F5C3 +000000FF 3F1EB852 +3F466666 C1C07AE1 +3C6F34D7 3F4CCCCD +41A51EB8 00000000 +3D75C28F 43160000 +3F0A3D71 00000000 +44656C61 793A2025 +64660000 4E800021 +7C0802A6 90010004 +9421FF50 BE810008 +7C7F1B78 880DB6CC +2C000001 41820018 +7FE3FB78 3D808039 +618C10D8 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +3C60804D 60636D5C +80630000 3C80803F +608494D0 3D808038 +618C0358 7D8903A6 +4E800421 80630004 +80630000 3D808036 +618CA590 7D8903A6 +4E800421 7C7E1B78 +38600013 38800014 +38A00000 3D808039 +618C01F0 7D8903A6 +4E800421 7C7D1B78 +7FA3EB78 888DC1AB +7FC5F378 3D808039 +618C0A70 7D8903A6 +4E800421 7FA3EB78 +4BFFFF25 7C8802A6 +38A00008 3D808039 +618C075C 7D8903A6 +4E800421 3C600000 +60631000 907D0024 +38600002 7FA4EB78 +38A00009 38C0000D +38E00000 3900000C +39200050 39400008 +3D80803A 618C611C 7D8903A6 4E800421 -3C600000 60631000 -907D0024 38600002 -7FA4EB78 38A00009 -38C0000D 38E00000 -3900000C 39200050 -39400008 3D80803A -618C611C 7D8903A6 -4E800421 7C7F1B78 -83CDB61C 93FE090C -4BFFFE69 7F8802A6 +7C7F1B78 83CDB61C +93FE090D 4BFFFE65 +7F8802A6 38600002 +7FE4FB78 3D80803A +618C6754 7D8903A6 +4E800421 7C7D1B78 +38800001 989D0049 +38800001 989D004A +C03C0000 D03D0008 +C03C0008 D03D0024 +D03D0028 93BE0911 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7A1B78 @@ -4025,13 +4023,13 @@ BE810008 3C60804D 989D004A C03C0000 D03D0008 C03C0004 D03D0024 D03D0028 -C03C0008 C05C000C -7FA3EB78 389C0048 -88BE001F 3D80803A +C03C000C C05C0010 +7FA3EB78 389C004C +88BE0020 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 -38800000 C03C0010 -C05C0010 3D80803A +38800000 C03C0014 +C05C0014 3D80803A 618C7548 7D8903A6 4E800421 3A800000 3EA0804A 62B50FF0 @@ -4048,21 +4046,21 @@ C0230000 D0210070 7C7D1B78 38800001 989D0048 989D004A 989D004C 989D0049 -C03C0038 D03D0024 +C03C003C D03D0024 D03D0028 C0210070 -C05C002C EC21102A -D03D0000 C03C0030 -D03D0004 C03C0034 -D03D0008 C03C003C +C05C0030 EC21102A +D03D0000 C03C0034 +D03D0004 C03C0038 +D03D0008 C03C0040 D03D000C D03D0010 -4CC63242 C03C0044 -C05C0044 7FA3EB78 +4CC63242 C03C0048 +C05C0048 7FA3EB78 389A0034 1CB4001F 7C842A14 3D80803A 618C6B98 7D8903A6 4E800421 7FA3EB78 -38800000 C03C0040 -C05C0040 3D80803A +38800000 C03C0044 +C05C0044 3D80803A 618C7548 7D8903A6 4E800421 3860000E 3880000F 38A00000 @@ -4083,10 +4081,10 @@ C05C0040 3D80803A 4E800421 7E83A378 3D80802F 618C3424 7D8903A6 4E800421 -C0230000 C05C0020 +C0230000 C05C0024 EC21102A D0360038 -C03C0024 D036003C -C03C001C D0360030 +C03C0028 D036003C +C03C0020 D0360030 7EC3B378 38810080 38A00001 38C0FFFF 3D808001 618C1E24 @@ -4098,8 +4096,8 @@ C03C001C D0360030 80630004 80830014 60840001 90830014 80630004 80630008 -8063000C C03C0014 -D023000C 809C0018 +8063000C C03C0018 +D023000C 809C001C 90830004 3B200000 807D005C 38800000 3D80803A 618C6FEC @@ -4129,7 +4127,7 @@ D023000C 809C0018 3C004330 C84298A8 6F238000 90010080 90610084 C8210080 -EC211028 C05C0028 +EC211028 C05C002C EC2100B2 D036002C 3A940001 2C140006 4180FCF8 7F43D378 From 7ffc77550c808d46ffffdf2e5ecf994815d3f758 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 10 Aug 2022 17:15:23 -0400 Subject: [PATCH 108/217] build all codesets --- Output/Console/GALE01r2.ini | 4 ++-- Output/Console/g_core.bin | Bin 5184 -> 5184 bytes Output/Console/g_core_porta.bin | Bin 5184 -> 5184 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index dea15456..a589b958 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -70,8 +70,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 88850010 2C040000 4082002C 8885000F 2C040000 -40820020 80850907 -3884FF85 80E50910 +40820020 80850908 +3884FF85 80E50915 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index f92b28af0d6528001061b72171e77e84add88a91..16090968066ec837c16736dde0434c219c5e7d89 100644 GIT binary patch delta 22 ecmX@0aX@3kenw6Xi Date: Tue, 16 Aug 2022 18:59:56 -0400 Subject: [PATCH 109/217] remove ranked option --- Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm index dae0aa7a..aa126919 100644 --- a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +++ b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm @@ -48,6 +48,8 @@ beq RETURN_LOCKED b EXIT LOGGED_IN_STATE: +cmpwi r4, OPTION_RANKED_IDX +beq RETURN_LOCKED cmpwi r4, OPTION_LOGIN_IDX beq RETURN_LOCKED cmpwi r4, OPTION_UPDATE_IDX From 0afeef764cd538495321ef5f18728a3c4ab6abe6 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 16 Aug 2022 19:29:04 -0400 Subject: [PATCH 110/217] build codeset --- Output/Netplay/GALE01r2.ini | 19 ++++++++++--------- Output/Netplay/GALJ01r2.ini | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 09603cd2..6fcb10d4 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4166,18 +4166,19 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B0 +C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B8 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -4182004C 2C040000 -41820078 2C040001 -41820070 2C040002 -41820068 2C040003 -41820060 2C040005 -41820058 2C040006 -41820050 48000060 +41820054 2C040000 +41820080 2C040001 +41820078 2C040002 +41820070 2C040003 +41820068 2C040005 +41820060 2C040006 +41820058 48000068 +2C040000 4182004C 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 5311267e..7b27e48e 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4166,18 +4166,19 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B0 +C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B8 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -4182004C 2C040000 -41820078 2C040001 -41820070 2C040002 -41820068 2C040003 -41820060 2C040005 -41820058 2C040006 -41820050 48000060 +41820054 2C040000 +41820080 2C040001 +41820078 2C040002 +41820070 2C040003 +41820068 2C040005 +41820060 2C040006 +41820058 48000068 +2C040000 4182004C 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 From cc31046251eadad70a834c9187b3bc6025a38606 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Mon, 22 Aug 2022 23:08:54 -0400 Subject: [PATCH 111/217] Disable asm chat --- Online/Menus/CSS/HandleInputsOnCSS.asm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Online/Menus/CSS/HandleInputsOnCSS.asm b/Online/Menus/CSS/HandleInputsOnCSS.asm index 538fd260..f1a8bb9e 100644 --- a/Online/Menus/CSS/HandleInputsOnCSS.asm +++ b/Online/Menus/CSS/HandleInputsOnCSS.asm @@ -100,9 +100,8 @@ branchl r12, SFX_Menu_CommonSound SOUND_PLAY_END: - -# uncomment to debug the chat window -bl FN_CHECK_CHAT_INPUTS +# comment to disable chat +#bl FN_CHECK_CHAT_INPUTS ################################################################################ # Fork logic based on current connection state From 028c05e52951442ee57bc433443ae90ac8bbcce2 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Mon, 22 Aug 2022 23:35:18 -0400 Subject: [PATCH 112/217] Build codeset --- Output/Netplay/GALE01r2.ini | 610 ++++++++++++++++++------------------ Output/Netplay/GALJ01r2.ini | 610 ++++++++++++++++++------------------ 2 files changed, 610 insertions(+), 610 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 6fcb10d4..95e57ffe 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2268,7 +2268,7 @@ C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E -2C030008 40820B00 +2C030008 40820AFC 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2286,343 +2286,343 @@ BE810008 3C608048 38600000 48000008 38600003 3D808002 618C4030 7D8903A6 -4E800421 480004D1 -887A0000 2C030000 -40810020 2C030003 -4081008C 2C030004 -41820090 2C030005 -418201E8 48000A28 -88780014 2C030000 -40820A1C 576004E7 -41820A14 3C608048 -80639D60 2C030000 -41820A04 3860FFFF -986DAFC9 38600000 -986DAFCA 886DB657 -2C030000 418209E8 -886DAFA0 2C030000 -41820018 2C030001 -41820010 2C030002 -40800014 48000000 -3860FFFE 48000355 -480009BC 4800037D -480009B4 576006F7 -408203B9 480009A8 -3D80801A 618C3680 -7D8903A6 4E800421 -548006F7 41820024 -88780013 38630001 -98780013 2C030030 -40810014 9B980013 -48000381 48000970 -9B980013 887A0001 -2C030000 408200EC -576004E7 4082002C -886DAFA0 2C030002 -418000D8 886DAFC9 -2C030000 408200CC -886DAFCA 2C030001 -408200C0 48000004 +4E800421 887A0000 +2C030000 40810020 +2C030003 4081008C +2C030004 41820090 +2C030005 418201E8 +48000A28 88780014 +2C030000 40820A1C +576004E7 41820A14 +3C608048 80639D60 +2C030000 41820A04 +3860FFFF 986DAFC9 +38600000 986DAFCA 886DB657 2C030000 -418200B0 3C608048 -80639D60 2C030000 -418200A0 886DAFA0 +418209E8 886DAFA0 +2C030000 41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE -48000169 4800007C +48000355 480009BC +4800037D 480009B4 +576006F7 408203B9 +480009A8 3D80801A +618C3680 7D8903A6 +4E800421 548006F7 +41820024 88780013 +38630001 98780013 +2C030030 40810014 +9B980013 48000381 +48000970 9B980013 +887A0001 2C030000 +408200EC 576004E7 +4082002C 886DAFA0 +2C030002 418000D8 886DAFC9 2C030000 -4182001C 2C030001 -41820008 48000000 -3860FFFF 48000145 -48000058 886DAFCA -2C030000 41820018 -806D8840 38630598 -A063001E 48000125 -48000038 888DAFA0 -2C040003 38600000 -40820008 38600001 -808DB610 98640018 -38600001 986DB656 -480000F5 7C6802A6 -906DAFE8 48000878 -887A0001 889A0002 -7C632039 41820868 -BA810008 800100B4 -382100B0 7C0803A6 -3D808026 618C3264 -7D8903A6 4E800420 -576006F7 4082024D -4800083C 7C0802A6 -90010004 9421FF50 -BE810008 38600014 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000B4 -98790000 886DAFA0 -98790001 38F90002 -3CC0804A 60C60740 -38800000 38A00000 -7C66222E 7C672B2E -38840003 38A50002 -2C050012 4180FFEC -7F23CB78 38800014 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 38600009 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000B5 -98790000 808DB610 -886DAEF8 1C630024 -7C841A14 88640070 -98790002 88640073 -98790003 38600001 -98790004 886DAFA0 -2C030003 41820010 -38600000 98790001 -4800001C 3C608000 -60635614 80630000 -8863001A 3863FFFF -98790001 2C1FFFFE -41820014 2C1FFFFF -41820018 2C1F0000 -4080001C 38600000 -38800003 4800001C -38600000 38800000 -48000010 7FE3FB78 -38800001 48000004 -B0790005 98990007 -886DAFA0 98790008 -7F23CB78 38800009 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -8A98001A 4BFFFECD -4BFFFE1D BA810008 +408200CC 886DAFCA +2C030001 408200C0 +48000004 886DB657 +2C030000 418200B0 +3C608048 80639D60 +2C030000 418200A0 +886DAFA0 2C030001 +41820010 2C030002 +40800014 48000000 +3860FFFE 48000169 +4800007C 886DAFC9 +2C030000 4182001C +2C030001 41820008 +48000000 3860FFFF +48000145 48000058 +886DAFCA 2C030000 +41820018 806D8840 +38630598 A063001E +48000125 48000038 +888DAFA0 2C040003 +38600000 40820008 +38600001 808DB610 +98640018 38600001 +986DB656 480000F5 +7C6802A6 906DAFE8 +48000878 887A0001 +889A0002 7C632039 +41820868 BA810008 800100B4 382100B0 -7C0803A6 4E800020 +7C0803A6 3D808026 +618C3264 7D8903A6 +4E800420 576006F7 +4082024D 4800083C 7C0802A6 90010004 9421FF50 BE810008 -38600001 986DAFA3 -4BFFFFB5 7C6802A6 -906DAFE8 880DB650 -980DB659 38000004 -980DB656 BA810008 +38600014 3D808037 +618CF1E4 7D8903A6 +4E800421 7C791B78 +386000B4 98790000 +886DAFA0 98790001 +38F90002 3CC0804A +60C60740 38800000 +38A00000 7C66222E +7C672B2E 38840003 +38A50002 2C050012 +4180FFEC 7F23CB78 +38800014 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -38600001 3D808037 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +38600009 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -386000BA 98790000 -7F23CB78 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 +386000B5 98790000 +808DB610 886DAEF8 +1C630024 7C841A14 +88640070 98790002 +88640073 98790003 +38600001 98790004 +886DAFA0 2C030003 +41820010 38600000 +98790001 4800001C +3C608000 60635614 +80630000 8863001A +3863FFFF 98790001 +2C1FFFFE 41820014 +2C1FFFFF 41820018 +2C1F0000 4080001C +38600000 38800003 +4800001C 38600000 +38800000 48000010 +7FE3FB78 38800001 +48000004 B0790005 +98990007 886DAFA0 +98790008 7F23CB78 +38800009 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 8A98001A +4BFFFECD 4BFFFE1D BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 2C1B0200 -40820008 B3780015 -2C1B0001 4182001C -2C1B0002 41820014 -2C1B0008 4182000C -2C1B0004 4082001D -B3780015 88780014 -2C030000 4082000C -7F63DB78 480000B9 +BE810008 38600001 +986DAFA3 4BFFFFB5 +7C6802A6 906DAFE8 +880DB650 980DB659 +38000004 980DB656 BA810008 800100B4 382100B0 7C0803A6 -4E800020 7C6E1B78 -7C0802A6 90010004 -9421FF50 BE810008 -38600002 3D808037 -618CF1E4 7D8903A6 -4E800421 7C791B78 -386000BB 98790000 -7DC37378 98790001 -7F23CB78 38800002 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -386000B7 3880007F -38A00040 3D808002 -618C37A8 7D8903A6 -4E800421 7F63DB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C6E1B78 -7C0802A6 90010004 -9421FF50 BE810008 -48000419 7DE802A6 -38600002 3D808002 -618C4030 7D8903A6 -4E800421 7DC37378 -98780014 3860000B +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 38600001 3D808037 618CF1E4 7D8903A6 4E800421 -7C771B78 3880000B -3D808000 618CC160 -7D8903A6 4E800421 -7DC37378 98770000 -7F03C378 90770007 -38600004 38800005 -38A00080 3D808039 -618C01F0 7D8903A6 -4E800421 7C741B78 -80780004 80630000 -80630000 3D808037 -618C0E44 7D8903A6 -4E800421 7C751B78 -C02F0024 888DAFE0 -2C040000 41820008 -C02F0028 C04F002C -D0230038 D043003C -7E83A378 38800004 -7EA5AB78 3D808039 -618C0A70 7D8903A6 -4E800421 7E83A378 -3C808039 60841070 -38A00001 38C00080 -3D808039 618C069C +7C791B78 386000BA +98790000 7F23CB78 +38800001 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7E83A378 38800004 -3CA08037 60A5F1B0 -7EE6BB78 3D808039 -618C0B68 7D8903A6 -4E800421 7E83A378 -48000031 7C8802A6 -38A00004 3D808038 -618CFD54 7D8903A6 +7F23CB78 3D808037 +618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -4E800021 7C6E1B78 7C0802A6 90010004 9421FF50 BE810008 -820E002C 82EE0028 -8A300000 8A500002 -82700003 82B00007 -A2D50015 83550000 -38600000 B0750015 -88700001 2C030000 -40820234 2C130000 -40820194 38600090 -7C721B78 98700002 -48000261 7DE802A6 -7E238B78 3D808000 -618C56AC 7D8903A6 -4E800421 7C741B78 -38600000 38800000 -3D80803A 618C6754 +2C1B0200 40820008 +B3780015 2C1B0001 +4182001C 2C1B0002 +41820014 2C1B0008 +4182000C 2C1B0004 +4082001D B3780015 +88780014 2C030000 +4082000C 7F63DB78 +480000B9 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C6E1B78 7C0802A6 +90010004 9421FF50 +BE810008 38600002 +3D808037 618CF1E4 7D8903A6 4E800421 -7C731B78 92700003 -38600001 38800000 -C02F0000 C04F0004 -98730049 9893004A -D0330008 D0530024 -D0530028 C04F0008 -886DAFE0 2C030000 -41820008 C04F000C -388F0034 887A0000 -2C030004 41820008 -388F0038 7E639B78 -38A00000 38CF0030 -38EF003C 39140004 -C02F001C C06F0018 -3D808000 618C56B4 +7C791B78 386000BB +98790000 7DC37378 +98790001 7F23CB78 +38800002 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7C641B78 7C8A2378 -7C8B2378 386B0002 -C04F0020 3D808000 -618C55EC 7D8903A6 -4E800421 C06F0018 -EC63082A 2C0B0000 -4182001C 2C0B0001 -4182002C 2C0B0002 -4182001C 2C0B0003 -4182000C 38800008 -48000018 38800004 -48000010 38800002 -48000008 38800001 -7E238B78 3D808000 -618C56AC 7D8903A6 -4E800421 7C872378 -C04F0010 886DAFE0 -2C030000 41820008 -C04F0014 7E639B78 -388F0030 38A00000 -38CF0030 C02F001C -3D808000 618C56B4 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 386000B7 +3880007F 38A00040 +3D808002 618C37A8 7D8903A6 4E800421 -7C6B1B78 386A0004 -7C0B1800 4082FF48 -480000CC 88750018 -2C030000 41820010 -88700002 2C03008A -41810070 2C160200 -40820008 48000078 -2C160000 4182005C -88750018 2C030003 -4080003C 88750017 -2C030005 40800030 -38600000 98700002 -7E238B78 7EC4B378 -38A00004 7C632830 -7C632214 4BFFFBB1 -38600001 98700001 -4800005C 38600003 +7F63DB78 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C6E1B78 7C0802A6 +90010004 9421FF50 +BE810008 48000419 +7DE802A6 38600002 3D808002 618C4030 7D8903A6 4E800421 -2C120000 41820010 -3A52FFFF 9A500002 -48000034 38600000 -98750014 7DC37378 -3D808039 618C0228 +7DC37378 98780014 +3860000B 3D808037 +618CF1E4 7D8903A6 +4E800421 7C771B78 +3880000B 3D808000 +618CC160 7D8903A6 +4E800421 7DC37378 +98770000 7F03C378 +90770007 38600004 +38800005 38A00080 +3D808039 618C01F0 7D8903A6 4E800421 -7E639B78 3D80803A -618C5CC4 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 00000000 -3DCCCCCD C3960000 -C3E20000 C38E8000 -C3DA8000 429E0000 -3EE66666 41C80000 -C1A00000 C20C0000 -C1840000 FFFFFFFF -FFEA2FFF C9C387FF -43686174 3A202573 -00000000 BA810008 -800100B4 382100B0 -7C0803A6 3D808026 -618C3334 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +7C741B78 80780004 +80630000 80630000 +3D808037 618C0E44 +7D8903A6 4E800421 +7C751B78 C02F0024 +888DAFE0 2C040000 +41820008 C02F0028 +C04F002C D0230038 +D043003C 7E83A378 +38800004 7EA5AB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00001 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +38800004 3CA08037 +60A5F1B0 7EE6BB78 +3D808039 618C0B68 +7D8903A6 4E800421 +7E83A378 48000031 +7C8802A6 38A00004 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C6E1B78 7C0802A6 +90010004 9421FF50 +BE810008 820E002C +82EE0028 8A300000 +8A500002 82700003 +82B00007 A2D50015 +83550000 38600000 +B0750015 88700001 +2C030000 40820234 +2C130000 40820194 +38600090 7C721B78 +98700002 48000261 +7DE802A6 7E238B78 +3D808000 618C56AC +7D8903A6 4E800421 +7C741B78 38600000 +38800000 3D80803A +618C6754 7D8903A6 +4E800421 7C731B78 +92700003 38600001 +38800000 C02F0000 +C04F0004 98730049 +9893004A D0330008 +D0530024 D0530028 +C04F0008 886DAFE0 +2C030000 41820008 +C04F000C 388F0034 +887A0000 2C030004 +41820008 388F0038 +7E639B78 38A00000 +38CF0030 38EF003C +39140004 C02F001C +C06F0018 3D808000 +618C56B4 7D8903A6 +4E800421 7C641B78 +7C8A2378 7C8B2378 +386B0002 C04F0020 +3D808000 618C55EC +7D8903A6 4E800421 +C06F0018 EC63082A +2C0B0000 4182001C +2C0B0001 4182002C +2C0B0002 4182001C +2C0B0003 4182000C +38800008 48000018 +38800004 48000010 +38800002 48000008 +38800001 7E238B78 +3D808000 618C56AC +7D8903A6 4E800421 +7C872378 C04F0010 +886DAFE0 2C030000 +41820008 C04F0014 +7E639B78 388F0030 +38A00000 38CF0030 +C02F001C 3D808000 +618C56B4 7D8903A6 +4E800421 7C6B1B78 +386A0004 7C0B1800 +4082FF48 480000CC +88750018 2C030000 +41820010 88700002 +2C03008A 41810070 +2C160200 40820008 +48000078 2C160000 +4182005C 88750018 +2C030003 4080003C +88750017 2C030005 +40800030 38600000 +98700002 7E238B78 +7EC4B378 38A00004 +7C632830 7C632214 +4BFFFBB1 38600001 +98700001 4800005C +38600003 3D808002 +618C4030 7D8903A6 +4E800421 2C120000 +41820010 3A52FFFF +9A500002 48000034 +38600000 98750014 +7DC37378 3D808039 +618C0228 7D8903A6 +4E800421 7E639B78 +3D80803A 618C5CC4 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00000000 3DCCCCCD +C3960000 C3E20000 +C38E8000 C3DA8000 +429E0000 3EE66666 +41C80000 C1A00000 +C20C0000 C1840000 +FFFFFFFF FFEA2FFF +C9C387FF 43686174 +3A202573 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +3D808026 618C3334 +7D8903A6 4E800420 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C21A3F9C 00000005 #Online/Menus/CSS/IncreaseTextHeap.asm 3C608048 80639D30 5463443E 2C030008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7b27e48e..3fec78e5 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2268,7 +2268,7 @@ C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E -2C030008 40820B00 +2C030008 40820AFC 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2286,343 +2286,343 @@ BE810008 3C608048 38600000 48000008 38600003 3D808002 618C4030 7D8903A6 -4E800421 480004D1 -887A0000 2C030000 -40810020 2C030003 -4081008C 2C030004 -41820090 2C030005 -418201E8 48000A28 -88780014 2C030000 -40820A1C 576004E7 -41820A14 3C608048 -80639D60 2C030000 -41820A04 3860FFFF -986DAFC9 38600000 -986DAFCA 886DB657 -2C030000 418209E8 -886DAFA0 2C030000 -41820018 2C030001 -41820010 2C030002 -40800014 48000000 -3860FFFE 48000355 -480009BC 4800037D -480009B4 576006F7 -408203B9 480009A8 -3D80801A 618C3680 -7D8903A6 4E800421 -548006F7 41820024 -88780013 38630001 -98780013 2C030030 -40810014 9B980013 -48000381 48000970 -9B980013 887A0001 -2C030000 408200EC -576004E7 4082002C -886DAFA0 2C030002 -418000D8 886DAFC9 -2C030000 408200CC -886DAFCA 2C030001 -408200C0 48000004 +4E800421 887A0000 +2C030000 40810020 +2C030003 4081008C +2C030004 41820090 +2C030005 418201E8 +48000A28 88780014 +2C030000 40820A1C +576004E7 41820A14 +3C608048 80639D60 +2C030000 41820A04 +3860FFFF 986DAFC9 +38600000 986DAFCA 886DB657 2C030000 -418200B0 3C608048 -80639D60 2C030000 -418200A0 886DAFA0 +418209E8 886DAFA0 +2C030000 41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE -48000169 4800007C +48000355 480009BC +4800037D 480009B4 +576006F7 408203B9 +480009A8 3D80801A +618C3680 7D8903A6 +4E800421 548006F7 +41820024 88780013 +38630001 98780013 +2C030030 40810014 +9B980013 48000381 +48000970 9B980013 +887A0001 2C030000 +408200EC 576004E7 +4082002C 886DAFA0 +2C030002 418000D8 886DAFC9 2C030000 -4182001C 2C030001 -41820008 48000000 -3860FFFF 48000145 -48000058 886DAFCA -2C030000 41820018 -806D8840 38630598 -A063001E 48000125 -48000038 888DAFA0 -2C040003 38600000 -40820008 38600001 -808DB610 98640018 -38600001 986DB656 -480000F5 7C6802A6 -906DAFE8 48000878 -887A0001 889A0002 -7C632039 41820868 -BA810008 800100B4 -382100B0 7C0803A6 -3D808026 618C3264 -7D8903A6 4E800420 -576006F7 4082024D -4800083C 7C0802A6 -90010004 9421FF50 -BE810008 38600014 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000B4 -98790000 886DAFA0 -98790001 38F90002 -3CC0804A 60C60740 -38800000 38A00000 -7C66222E 7C672B2E -38840003 38A50002 -2C050012 4180FFEC -7F23CB78 38800014 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -7C7F1B78 38600009 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000B5 -98790000 808DB610 -886DAEF8 1C630024 -7C841A14 88640070 -98790002 88640073 -98790003 38600001 -98790004 886DAFA0 -2C030003 41820010 -38600000 98790001 -4800001C 3C608000 -60635614 80630000 -8863001A 3863FFFF -98790001 2C1FFFFE -41820014 2C1FFFFF -41820018 2C1F0000 -4080001C 38600000 -38800003 4800001C -38600000 38800000 -48000010 7FE3FB78 -38800001 48000004 -B0790005 98990007 -886DAFA0 98790008 -7F23CB78 38800009 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -8A98001A 4BFFFECD -4BFFFE1D BA810008 +408200CC 886DAFCA +2C030001 408200C0 +48000004 886DB657 +2C030000 418200B0 +3C608048 80639D60 +2C030000 418200A0 +886DAFA0 2C030001 +41820010 2C030002 +40800014 48000000 +3860FFFE 48000169 +4800007C 886DAFC9 +2C030000 4182001C +2C030001 41820008 +48000000 3860FFFF +48000145 48000058 +886DAFCA 2C030000 +41820018 806D8840 +38630598 A063001E +48000125 48000038 +888DAFA0 2C040003 +38600000 40820008 +38600001 808DB610 +98640018 38600001 +986DB656 480000F5 +7C6802A6 906DAFE8 +48000878 887A0001 +889A0002 7C632039 +41820868 BA810008 800100B4 382100B0 -7C0803A6 4E800020 +7C0803A6 3D808026 +618C3264 7D8903A6 +4E800420 576006F7 +4082024D 4800083C 7C0802A6 90010004 9421FF50 BE810008 -38600001 986DAFA3 -4BFFFFB5 7C6802A6 -906DAFE8 880DB650 -980DB659 38000004 -980DB656 BA810008 +38600014 3D808037 +618CF1E4 7D8903A6 +4E800421 7C791B78 +386000B4 98790000 +886DAFA0 98790001 +38F90002 3CC0804A +60C60740 38800000 +38A00000 7C66222E +7C672B2E 38840003 +38A50002 2C050012 +4180FFEC 7F23CB78 +38800014 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -38600001 3D808037 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 7C7F1B78 +38600009 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -386000BA 98790000 -7F23CB78 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 +386000B5 98790000 +808DB610 886DAEF8 +1C630024 7C841A14 +88640070 98790002 +88640073 98790003 +38600001 98790004 +886DAFA0 2C030003 +41820010 38600000 +98790001 4800001C +3C608000 60635614 +80630000 8863001A +3863FFFF 98790001 +2C1FFFFE 41820014 +2C1FFFFF 41820018 +2C1F0000 4080001C +38600000 38800003 +4800001C 38600000 +38800000 48000010 +7FE3FB78 38800001 +48000004 B0790005 +98990007 886DAFA0 +98790008 7F23CB78 +38800009 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 8A98001A +4BFFFECD 4BFFFE1D BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 -BE810008 2C1B0200 -40820008 B3780015 -2C1B0001 4182001C -2C1B0002 41820014 -2C1B0008 4182000C -2C1B0004 4082001D -B3780015 88780014 -2C030000 4082000C -7F63DB78 480000B9 +BE810008 38600001 +986DAFA3 4BFFFFB5 +7C6802A6 906DAFE8 +880DB650 980DB659 +38000004 980DB656 BA810008 800100B4 382100B0 7C0803A6 -4E800020 7C6E1B78 -7C0802A6 90010004 -9421FF50 BE810008 -38600002 3D808037 -618CF1E4 7D8903A6 -4E800421 7C791B78 -386000BB 98790000 -7DC37378 98790001 -7F23CB78 38800002 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7F23CB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -386000B7 3880007F -38A00040 3D808002 -618C37A8 7D8903A6 -4E800421 7F63DB78 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 7C6E1B78 -7C0802A6 90010004 -9421FF50 BE810008 -48000419 7DE802A6 -38600002 3D808002 -618C4030 7D8903A6 -4E800421 7DC37378 -98780014 3860000B +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 38600001 3D808037 618CF1E4 7D8903A6 4E800421 -7C771B78 3880000B -3D808000 618CC160 -7D8903A6 4E800421 -7DC37378 98770000 -7F03C378 90770007 -38600004 38800005 -38A00080 3D808039 -618C01F0 7D8903A6 -4E800421 7C741B78 -80780004 80630000 -80630000 3D808037 -618C0E44 7D8903A6 -4E800421 7C751B78 -C02F0024 888DAFE0 -2C040000 41820008 -C02F0028 C04F002C -D0230038 D043003C -7E83A378 38800004 -7EA5AB78 3D808039 -618C0A70 7D8903A6 -4E800421 7E83A378 -3C808039 60841070 -38A00001 38C00080 -3D808039 618C069C +7C791B78 386000BA +98790000 7F23CB78 +38800001 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7E83A378 38800004 -3CA08037 60A5F1B0 -7EE6BB78 3D808039 -618C0B68 7D8903A6 -4E800421 7E83A378 -48000031 7C8802A6 -38A00004 3D808038 -618CFD54 7D8903A6 +7F23CB78 3D808037 +618CF1B0 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 4E800020 -4E800021 7C6E1B78 7C0802A6 90010004 9421FF50 BE810008 -820E002C 82EE0028 -8A300000 8A500002 -82700003 82B00007 -A2D50015 83550000 -38600000 B0750015 -88700001 2C030000 -40820234 2C130000 -40820194 38600090 -7C721B78 98700002 -48000261 7DE802A6 -7E238B78 3D808000 -618C56AC 7D8903A6 -4E800421 7C741B78 -38600000 38800000 -3D80803A 618C6754 +2C1B0200 40820008 +B3780015 2C1B0001 +4182001C 2C1B0002 +41820014 2C1B0008 +4182000C 2C1B0004 +4082001D B3780015 +88780014 2C030000 +4082000C 7F63DB78 +480000B9 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C6E1B78 7C0802A6 +90010004 9421FF50 +BE810008 38600002 +3D808037 618CF1E4 7D8903A6 4E800421 -7C731B78 92700003 -38600001 38800000 -C02F0000 C04F0004 -98730049 9893004A -D0330008 D0530024 -D0530028 C04F0008 -886DAFE0 2C030000 -41820008 C04F000C -388F0034 887A0000 -2C030004 41820008 -388F0038 7E639B78 -38A00000 38CF0030 -38EF003C 39140004 -C02F001C C06F0018 -3D808000 618C56B4 +7C791B78 386000BB +98790000 7DC37378 +98790001 7F23CB78 +38800002 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7C641B78 7C8A2378 -7C8B2378 386B0002 -C04F0020 3D808000 -618C55EC 7D8903A6 -4E800421 C06F0018 -EC63082A 2C0B0000 -4182001C 2C0B0001 -4182002C 2C0B0002 -4182001C 2C0B0003 -4182000C 38800008 -48000018 38800004 -48000010 38800002 -48000008 38800001 -7E238B78 3D808000 -618C56AC 7D8903A6 -4E800421 7C872378 -C04F0010 886DAFE0 -2C030000 41820008 -C04F0014 7E639B78 -388F0030 38A00000 -38CF0030 C02F001C -3D808000 618C56B4 +7F23CB78 3D808037 +618CF1B0 7D8903A6 +4E800421 386000B7 +3880007F 38A00040 +3D808002 618C37A8 7D8903A6 4E800421 -7C6B1B78 386A0004 -7C0B1800 4082FF48 -480000CC 88750018 -2C030000 41820010 -88700002 2C03008A -41810070 2C160200 -40820008 48000078 -2C160000 4182005C -88750018 2C030003 -4080003C 88750017 -2C030005 40800030 -38600000 98700002 -7E238B78 7EC4B378 -38A00004 7C632830 -7C632214 4BFFFBB1 -38600001 98700001 -4800005C 38600003 +7F63DB78 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +7C6E1B78 7C0802A6 +90010004 9421FF50 +BE810008 48000419 +7DE802A6 38600002 3D808002 618C4030 7D8903A6 4E800421 -2C120000 41820010 -3A52FFFF 9A500002 -48000034 38600000 -98750014 7DC37378 -3D808039 618C0228 +7DC37378 98780014 +3860000B 3D808037 +618CF1E4 7D8903A6 +4E800421 7C771B78 +3880000B 3D808000 +618CC160 7D8903A6 +4E800421 7DC37378 +98770000 7F03C378 +90770007 38600004 +38800005 38A00080 +3D808039 618C01F0 7D8903A6 4E800421 -7E639B78 3D80803A -618C5CC4 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 00000000 -3DCCCCCD C3960000 -C3E20000 C38E8000 -C3DA8000 429E0000 -3EE66666 41C80000 -C1A00000 C20C0000 -C1840000 FFFFFFFF -FFEA2FFF C9C387FF -43686174 3A202573 -00000000 BA810008 -800100B4 382100B0 -7C0803A6 3D808026 -618C3334 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 -7C0803A6 00000000 +7C741B78 80780004 +80630000 80630000 +3D808037 618C0E44 +7D8903A6 4E800421 +7C751B78 C02F0024 +888DAFE0 2C040000 +41820008 C02F0028 +C04F002C D0230038 +D043003C 7E83A378 +38800004 7EA5AB78 +3D808039 618C0A70 +7D8903A6 4E800421 +7E83A378 3C808039 +60841070 38A00001 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 7E83A378 +38800004 3CA08037 +60A5F1B0 7EE6BB78 +3D808039 618C0B68 +7D8903A6 4E800421 +7E83A378 48000031 +7C8802A6 38A00004 +3D808038 618CFD54 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C6E1B78 7C0802A6 +90010004 9421FF50 +BE810008 820E002C +82EE0028 8A300000 +8A500002 82700003 +82B00007 A2D50015 +83550000 38600000 +B0750015 88700001 +2C030000 40820234 +2C130000 40820194 +38600090 7C721B78 +98700002 48000261 +7DE802A6 7E238B78 +3D808000 618C56AC +7D8903A6 4E800421 +7C741B78 38600000 +38800000 3D80803A +618C6754 7D8903A6 +4E800421 7C731B78 +92700003 38600001 +38800000 C02F0000 +C04F0004 98730049 +9893004A D0330008 +D0530024 D0530028 +C04F0008 886DAFE0 +2C030000 41820008 +C04F000C 388F0034 +887A0000 2C030004 +41820008 388F0038 +7E639B78 38A00000 +38CF0030 38EF003C +39140004 C02F001C +C06F0018 3D808000 +618C56B4 7D8903A6 +4E800421 7C641B78 +7C8A2378 7C8B2378 +386B0002 C04F0020 +3D808000 618C55EC +7D8903A6 4E800421 +C06F0018 EC63082A +2C0B0000 4182001C +2C0B0001 4182002C +2C0B0002 4182001C +2C0B0003 4182000C +38800008 48000018 +38800004 48000010 +38800002 48000008 +38800001 7E238B78 +3D808000 618C56AC +7D8903A6 4E800421 +7C872378 C04F0010 +886DAFE0 2C030000 +41820008 C04F0014 +7E639B78 388F0030 +38A00000 38CF0030 +C02F001C 3D808000 +618C56B4 7D8903A6 +4E800421 7C6B1B78 +386A0004 7C0B1800 +4082FF48 480000CC +88750018 2C030000 +41820010 88700002 +2C03008A 41810070 +2C160200 40820008 +48000078 2C160000 +4182005C 88750018 +2C030003 4080003C +88750017 2C030005 +40800030 38600000 +98700002 7E238B78 +7EC4B378 38A00004 +7C632830 7C632214 +4BFFFBB1 38600001 +98700001 4800005C +38600003 3D808002 +618C4030 7D8903A6 +4E800421 2C120000 +41820010 3A52FFFF +9A500002 48000034 +38600000 98750014 +7DC37378 3D808039 +618C0228 7D8903A6 +4E800421 7E639B78 +3D80803A 618C5CC4 +7D8903A6 4E800421 +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +00000000 3DCCCCCD +C3960000 C3E20000 +C38E8000 C3DA8000 +429E0000 3EE66666 +41C80000 C1A00000 +C20C0000 C1840000 +FFFFFFFF FFEA2FFF +C9C387FF 43686174 +3A202573 00000000 +BA810008 800100B4 +382100B0 7C0803A6 +3D808026 618C3334 +7D8903A6 4E800420 +BA810008 800100B4 +382100B0 7C0803A6 +60000000 00000000 C21A3F9C 00000005 #Online/Menus/CSS/IncreaseTextHeap.asm 3C608048 80639D30 5463443E 2C030008 From 3a363e372a35cbf4bb53c34b542c219faa3f7afd Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 25 Aug 2022 13:41:22 -0400 Subject: [PATCH 113/217] add desync recovery logic --- Online/Core/InitOnlinePlay.asm | 30 + Online/Core/StartEngineLoop.asm | 149 +++- Online/Core/TriggerSendInput.asm | 13 +- Online/Debugging/ForceDesyncAfterX.s | 26 + .../{Logging => Debugging}/LogInputOnCopy.asm | 0 Online/Online.s | 43 +- Online/Slippi Online Scene/main.asm | 18 +- Output/Netplay/GALE01r2.ini | 731 +++++++++--------- Output/Netplay/GALJ01r2.ini | 731 +++++++++--------- netplay.json | 2 +- 10 files changed, 991 insertions(+), 752 deletions(-) create mode 100644 Online/Debugging/ForceDesyncAfterX.s rename Online/{Logging => Debugging}/LogInputOnCopy.asm (100%) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 492d194c..0e3e971e 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -131,6 +131,9 @@ lwz r5, 0x88(r5) # Load game prep minor scene data lbz r3, GPDO_TIEBREAK_GAME_NUM(r5) # Load is_tiebreak cmpwi r3, 0 beq SKIP_TIEBREAK_OVERWRITE # If not a tiebreak, do nothing +lbz r3, GPDO_LAST_GAME_END_MODE(r5) +cmpwi r3, 0x7 +beq SKIP_TIEBREAK_OVERWRITE # If last game ended with exit, desync recovery values will be used (set by dolphin) li r3, 180 stw r3, 0x10(REG_GAME_INFO_START) @@ -329,6 +332,20 @@ mtctr r3 bctrl stb r3, RGB_WINNER_IDX(REG_RGB_ADDR) +# Change winner idx to -3 if disconnect detected, -2 if desync detected +lbz r3, ODB_IS_DISCONNECT_STATE_DISPLAYED(REG_ODB_ADDRESS) +cmpwi r3, 0 +li r4, -3 +bne OVERWRITE_WINNER_IDX +lbz r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) +cmpwi r3, 0 +li r4, -2 +bne OVERWRITE_WINNER_IDX +b SKIP_OVERWRITE_WINNER_IDX +OVERWRITE_WINNER_IDX: +stb r4, RGB_WINNER_IDX(REG_RGB_ADDR) +SKIP_OVERWRITE_WINNER_IDX: + # Output the game end method and lras initiator load r4, 0x8046b6a0 lbz r3, 0x8(r4) @@ -342,6 +359,10 @@ li r3, -1 STORE_LRAS_INITIATOR: stb r3, RGB_LRAS_INITIATOR(REG_RGB_ADDR) +# Write synced timer for desync recovery +lwz r4, ODB_DESYNC_RECOVERY_TIMER(REG_ODB_ADDRESS) +stw r4, RGB_SYNCED_TIMER(REG_RGB_ADDR) + PLAYER_LOOP_INIT: li REG_IDX, 0 addi REG_RGPB_ADDR, REG_RGB_ADDR, RGB_P1_RGPB @@ -362,6 +383,15 @@ stb r4, RGPB_STOCKS_REMAINING(REG_RGPB_ADDR) lwz r4, 0xC6C+188(r3) stw r4, RGPB_DAMAGE_DONE(REG_RGPB_ADDR) +# Write synced stocks and percents for desync recovery +mulli r5, REG_IDX, DFRE_SIZE +addi r4, r5, ODB_DESYNC_RECOVERY_FIGHTER_ARR + DFRE_STOCKS_REMAINING +lbzx r4, REG_ODB_ADDRESS, r4 +stb r4, RGPB_SYNCED_STOCKS(REG_RGPB_ADDR) +addi r4, r5, ODB_DESYNC_RECOVERY_FIGHTER_ARR + DFRE_PERCENT +lhzx r4, REG_ODB_ADDRESS, r4 +sth r4, RGPB_SYNCED_DAMAGE(REG_RGPB_ADDR) + PLAYER_LOOP_INC: addi REG_IDX, REG_IDX, 1 addi REG_RGPB_ADDR, REG_RGPB_ADDR, RGPB_SIZE diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 684c1f6e..ffef4dd0 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -12,6 +12,7 @@ .set REG_INPUTS_TO_PROCESS, 27 # From parent .set REG_INPUT_PROCESS_COUNTER, 26 # From parent .set REG_INTERRUPT_IDX, 25 +.set REG_LOOP_IDX, 24 # Replaced code branchl r12, HSD_PerfSetStartTime @@ -148,6 +149,37 @@ mr r3, REG_SUBTEXT_ID restore blr +################################################################################ +# End game if we are in ranked mode +################################################################################ +FN_END_GAME_IF_RANKED: +# Check if we should end game (ranked mode), could maybe check if pause is fully off instead +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +bne FN_END_GAME_IF_RANKED_EXIT + +# ASM Notes. Match struct at 0x8046b6a0 has info about the game. The early values seem to be control +# values. Here are notes on offsets: +# 0x0 (u8): Control byte. 0 during game, 1 during GAME!, 3 to transition to next scene +# 0x1 (u8): Stores index of last person that paused +# 0x8 (u8): Stores type of game exit, instructs which text to show on GAME! screen? +# 0x30 (u8): Counter that counts up during GAME! screen until it is greater than timeout +# 0x24D5 (u8): Max time to stay on GAME! screen + +lwz r12, OFST_R13_ODB_ADDR(r13) # data buffer address + +# Write values which will cause line at 0x8016d2c8 to detect game has ended +load r3, 0x8046b6a0 # Some static match state struct +lbz r4, ODB_ONLINE_PLAYER_INDEX(r12) +stb r4, 0x1(r3) # Write "pauser" index +li r4, 0x7 +stb r4, 0x8(r3) # Write that the game is exiting as an LRAS +li r4, 0x37 # Default value for this is 0x6e +stb r4, 0x24D5(r3) # Overwrite the GAME! think max time to make it shorter + +FN_END_GAME_IF_RANKED_EXIT: +blr + CODE_START: # backup registers and sp backup @@ -204,30 +236,8 @@ bl FN_CREATE_HUD_SUBTEXT li r3, 1 stb r3, ODB_IS_DISCONNECT_STATE_DISPLAYED(REG_ODB_ADDRESS) -# Check if we should end game (ranked mode), could maybe check if pause is fully off instead -lbz r3, OFST_R13_ONLINE_MODE(r13) -cmpwi r3, ONLINE_MODE_RANKED -bne DISPLAY_DISCONNECT_END - -# ASM Notes. Match struct at 0x8046b6a0 has info about the game. The early values seem to be control -# values. Here are notes on offsets: -# 0x0 (u8): Control byte. 0 during game, 1 during GAME!, 3 to transition to next scene -# 0x1 (u8): Stores index of last person that paused -# 0x8 (u8): Stores type of game exit, instructs which text to show on GAME! screen? -# 0x30 (u8): Counter that counts up during GAME! screen until it is greater than timeout -# 0x24D5 (u8): Max time to stay on GAME! screen - -# Write values which will cause line at 0x8016d2c8 to detect game has ended -load r3, 0x8046b6a0 # Some static match state struct -lbz r4, ODB_ONLINE_PLAYER_INDEX(REG_ODB_ADDRESS) -stb r4, 0x1(r3) # Write "pauser" index -li r4, 0x7 -stb r4, 0x8(r3) # Write that the game is exiting as an LRAS -li r4, 0x37 # Default value for this is 0x6e -stb r4, 0x24D5(r3) # Overwrite the GAME! think max time to make it shorter - -# Hide HUD -# branchl r12, 0x802f3394 # Pause_HideHUD +# This will terminate the game if we're in ranked mode +bl FN_END_GAME_IF_RANKED DISPLAY_DISCONNECT_END: @@ -368,34 +378,68 @@ SKIP_DESYNC_WRITE_IDX_ADJUST: li r5, DESYNC_ENTRY_COUNT adjustCircularIndex r4, r4, r3, r5, r6 # logf LOG_LEVEL_NOTICE, "Writing checksum for frame %d. Write idx: %d", "mr r5, REG_FRAME_INDEX", "mr r6, 4" -mulli r4, r4, DESYNC_ENTRY_SIZE +mulli r4, r4, DDLE_SIZE addi r3, r4, ODB_LOCAL_DESYNC_ARR add REG_DESYNC_ENTRY_ADDRESS, REG_ODB_ADDRESS, r3 # Write the frame -stw REG_FRAME_INDEX, DESYNC_ENTRY_FRAME(REG_DESYNC_ENTRY_ADDRESS) +stw REG_FRAME_INDEX, DDLE_FRAME(REG_DESYNC_ENTRY_ADDRESS) # Compute and write the checksum bl FN_COMPUTE_CHECKSUM -stw r3, DESYNC_ENTRY_CHECKSUM(REG_DESYNC_ENTRY_ADDRESS) +stw r3, DDLE_CHECKSUM(REG_DESYNC_ENTRY_ADDRESS) # logf LOG_LEVEL_INFO, "Local checksum value %d: %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 3" + +# Write timer +loadwz r3, 0x8046B6C8 # Seconds remaining +stw r3, DDLE_RECOVERY_TIMER(REG_DESYNC_ENTRY_ADDRESS) + +# Write player percents and stocks +li REG_LOOP_IDX, 0 + +DESYNC_RECOVERY_STORE_FIGHTER_LOOP_START: +mr r3, REG_LOOP_IDX +branchl r12, 0x800342b4 # PlayerBlock_LoadDamage +mulli r4, REG_LOOP_IDX, DFRE_SIZE +addi r4, r4, DDLE_RECOVERY_FIGHTER_ARR + DFRE_PERCENT +sthx r3, REG_DESYNC_ENTRY_ADDRESS, r4 + +mr r3, REG_LOOP_IDX +branchl r12, 0x80033bd8 # PlayerBlock_LoadStocksLeft +mulli r4, REG_LOOP_IDX, DFRE_SIZE +addi r4, r4, DDLE_RECOVERY_FIGHTER_ARR + DFRE_STOCKS_REMAINING +stbx r3, REG_DESYNC_ENTRY_ADDRESS, r4 + +addi REG_LOOP_IDX, REG_LOOP_IDX, 1 +cmpwi REG_LOOP_IDX, 4 +blt DESYNC_RECOVERY_STORE_FIGHTER_LOOP_START + SKIP_TAKE_CHECKSUM: #################################################################################################### # Check local checksums against the remote checksums to see if we have a desync #################################################################################################### +# If frame 0, we skip to where desync recovery state is written to ODB using the local state +# that was just written in the previous section. This is here in case inputs never come in +# from the opponent for some reason, we want to still do a desync recovery to something that isn't +# all zeroes +cmpwi REG_FRAME_INDEX, 0 +beq CHECKSUM_CHECK_PLAYER_LOOP_EXIT + +li REG_DESYNC_ENTRY_ADDRESS, 0 # Will be used to store latest confirmed frame + lbz r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) cmpwi r3, 0 -bne CHECKSUM_CHECK_PLAYER_LOOP_EXIT +bne DESYNC_CHECK_EXIT li r12, 0 # Player index CHECKSUM_CHECK_PLAYER_LOOP_START: -mulli r3, r12, DESYNC_ENTRY_SIZE +mulli r3, r12, DDRE_SIZE addi r3, r3, RXB_OPNT_DESYNC_ENTRY add r11, REG_REMOTE_RXB, r3 # r11 now stores desync entry address for this remote player -lwz r10, DESYNC_ENTRY_FRAME(r11) # r10 now contains the desync entry frame +lwz r10, DDRE_FRAME(r11) # r10 now contains the desync entry frame lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_ERROR, "[SEL] [%d] Checksum for Idx %d. StableFinalized: %d. Looking for %d -> %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 3", "mr r8, 10", "lwz r9, DESYNC_ENTRY_CHECKSUM(r11)" +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Checksum for Idx %d. StableFinalized: %d. Looking for %d -> %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 3", "mr r8, 10", "lwz r9, DDRE_CHECKSUM(r11)" cmpw r10, r3 # If this checksum frame is greater than our stable finalized frame, skip for now bgt CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE cmpwi r10, UNFREEZE_INPUTS_FRAME @@ -404,21 +448,34 @@ ble CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE # Now we loop through all of our local frames to find the entry that matches li r9, 0 FIND_CHECKSUM_LOOP_START: -mulli r3, r9, DESYNC_ENTRY_SIZE +mulli r3, r9, DDLE_SIZE addi r3, r3, ODB_LOCAL_DESYNC_ARR add r8, REG_ODB_ADDRESS, r3 # r8 now contains the desync entry for our local player -lwz r3, DESYNC_ENTRY_FRAME(r8) +lwz r3, DDLE_FRAME(r8) cmpw r10, r3 bne FIND_CHECKSUM_LOOP_CONTINUE + # Here we have found the desync entry for the latest finalized frame -lwz r3, DESYNC_ENTRY_CHECKSUM(r8) -lwz r4, DESYNC_ENTRY_CHECKSUM(r11) +# Store this desync entry if it is the first encountered +cmpwi REG_DESYNC_ENTRY_ADDRESS, 0 +beq CONFIRMED_SYNC_SET +lwz r3, DDLE_FRAME(r8) +cmpwi r10, r3 # If the current frame is later than the stored one, don't switch +bge SKIP_CONFIRMED_SYNC_SET +CONFIRMED_SYNC_SET: +mr REG_DESYNC_ENTRY_ADDRESS, r8 +SKIP_CONFIRMED_SYNC_SET: +# Compare remote and local checksums +lwz r3, DDLE_CHECKSUM(r8) +lwz r4, DDRE_CHECKSUM(r11) # logf LOG_LEVEL_ERROR, "[SEL] [%d] Comparing Checksums. RemoteIdx: %d, Frame: %d, %08x vs %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 10", "mr r8, 3", "mr r9, 4" + cmpw r3, r4 beq FIND_CHECKSUM_LOOP_EXIT # Here we have detected a desync, It's okay that we're calling functions here and clobbering the # volatile registers because we're about to exit the loops anyway +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Desync detected on frame %d", "mr r5, REG_FRAME_INDEX", "mr r6, 10" # Play error sound li r3, 3 @@ -434,7 +491,10 @@ bl FN_CREATE_HUD_SUBTEXT li r3, 1 stb r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) -b CHECKSUM_CHECK_PLAYER_LOOP_EXIT +# This will terminate the game if we're in ranked mode +bl FN_END_GAME_IF_RANKED + +b DESYNC_CHECK_EXIT FIND_CHECKSUM_LOOP_CONTINUE: addi r9, r9, 1 cmpwi r9, DESYNC_ENTRY_COUNT @@ -448,6 +508,23 @@ cmpw r12, r3 blt CHECKSUM_CHECK_PLAYER_LOOP_START CHECKSUM_CHECK_PLAYER_LOOP_EXIT: +# If we get here, we have not yet desynced, let's then keep track of the latest player damage +# and percent +cmpwi REG_DESYNC_ENTRY_ADDRESS, 0 +beq COPY_RECOVERY_VALUES_EXIT +lwz r3, DDLE_RECOVERY_TIMER(REG_DESYNC_ENTRY_ADDRESS) +stw r3, ODB_DESYNC_RECOVERY_TIMER(REG_ODB_ADDRESS) +addi r3, REG_ODB_ADDRESS, ODB_DESYNC_RECOVERY_FIGHTER_ARR +addi r4, REG_DESYNC_ENTRY_ADDRESS, DDLE_RECOVERY_FIGHTER_ARR +li r5, DFRE_SIZE * 4 +branchl r12, memcpy +# logf LOG_LEVEL_NOTICE, "[SEL] [%d] Stored Synced State from frame %d. Timer: %d", "mr r5, REG_FRAME_INDEX", "lwz r6, DDLE_FRAME(REG_DESYNC_ENTRY_ADDRESS)", "lwz r7, ODB_DESYNC_RECOVERY_TIMER(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_WARN, "[SEL] F1: %d (%d%%), F2: %d (%d%%)", "lbz r5, ODB_DESYNC_RECOVERY_FIGHTER_ARR+0*DFRE_SIZE+DFRE_STOCKS_REMAINING(REG_ODB_ADDRESS)", "lhz r6, ODB_DESYNC_RECOVERY_FIGHTER_ARR+0*DFRE_SIZE+DFRE_PERCENT(REG_ODB_ADDRESS)", "lbz r7, ODB_DESYNC_RECOVERY_FIGHTER_ARR+1*DFRE_SIZE+DFRE_STOCKS_REMAINING(REG_ODB_ADDRESS)", "lhz r8, ODB_DESYNC_RECOVERY_FIGHTER_ARR+1*DFRE_SIZE+DFRE_PERCENT(REG_ODB_ADDRESS)" +# logf LOG_LEVEL_WARN, "[SEL] F3: %d (%d%%), F4: %d (%d%%)", "lbz r5, ODB_DESYNC_RECOVERY_FIGHTER_ARR+2*DFRE_SIZE+DFRE_STOCKS_REMAINING(REG_ODB_ADDRESS)", "lhz r6, ODB_DESYNC_RECOVERY_FIGHTER_ARR+2*DFRE_SIZE+DFRE_PERCENT(REG_ODB_ADDRESS)", "lbz r7, ODB_DESYNC_RECOVERY_FIGHTER_ARR+3*DFRE_SIZE+DFRE_STOCKS_REMAINING(REG_ODB_ADDRESS)", "lhz r8, ODB_DESYNC_RECOVERY_FIGHTER_ARR+3*DFRE_SIZE+DFRE_PERCENT(REG_ODB_ADDRESS)" +COPY_RECOVERY_VALUES_EXIT: + +DESYNC_CHECK_EXIT: + ################################################################################ # Check if we should capture state. We need to do this after the rollback # logic because triggering RenewInputs might cause a new savestate request diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index be30b735..0a9592e5 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -186,14 +186,14 @@ stw r3, TXB_FINALIZED_FRAME(REG_TXB_ADDRESS) lwz r12, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) li r11, 0 FIND_CHECKSUM_LOOP_START: -mulli r3, r11, DESYNC_ENTRY_SIZE +mulli r3, r11, DDLE_SIZE addi r3, r3, ODB_LOCAL_DESYNC_ARR add r10, REG_ODB_ADDRESS, r3 -lwz r3, DESYNC_ENTRY_FRAME(r10) +lwz r3, DDLE_FRAME(r10) cmpw r3, r12 bne FIND_CHECKSUM_LOOP_CONTINUE # Here we have found the desync entry for the latest finalized frame -lwz r3, DESYNC_ENTRY_CHECKSUM(r10) +lwz r3, DDLE_CHECKSUM(r10) stw r3, TXB_FINALIZED_FRAME_CHECKSUM(REG_TXB_ADDRESS) b FIND_CHECKSUM_LOOP_EXIT FIND_CHECKSUM_LOOP_CONTINUE: @@ -262,6 +262,13 @@ stb r3, ODB_IS_DISCONNECTED(REG_ODB_ADDRESS) b RESP_RES_CONTINUE SKIP_INPUT: +# Don't stall the game if the game has already been confirmed to be over. I'm not sure why but +# sometimes the game end can stall and hopefully this will fix it. Logs look something like: +# Halting for one frame due to rollback limit (frame: 968 | latest: 0 | finalized: 967)... +lbz r3, ODB_IS_GAME_OVER(REG_ODB_ADDRESS) +cmpwi r3, 1 +beq RESP_RES_CONTINUE + # If we get here that means we are skipping this input. Skipping an input # will cause the global frame timer to not increment, allowing for the numbers # to sync up between players diff --git a/Online/Debugging/ForceDesyncAfterX.s b/Online/Debugging/ForceDesyncAfterX.s new file mode 100644 index 00000000..82d47c12 --- /dev/null +++ b/Online/Debugging/ForceDesyncAfterX.s @@ -0,0 +1,26 @@ +################################################################################ +# Address: 0x8006d378 # Right after damage to be applied is loaded into f31 +################################################################################ + +# This will force desyncs on hit after 15 seconds since the game started. Keeping this file +# as a .s prevents it from being included into the codeset + +.include "Common/Common.s" +.include "Online/Online.s" + +loadGlobalFrame r3 # Load current frame +cmpwi r3, 15 * 60 # Check for 15 seconds in +blt EXIT + +lwz r11, OFST_R13_ODB_ADDR(r13) # data buffer address +lbz r3, ODB_LOCAL_PLAYER_INDEX(r11) +cmpwi r3, 0 +bne EXIT # Only player 1 + +# Player 1 will see ALL damage applied as doubled +fadds f31, f31, f31 + +EXIT: +# Replaced codeline +mr r3, r30 +fmr f1, f31 diff --git a/Online/Logging/LogInputOnCopy.asm b/Online/Debugging/LogInputOnCopy.asm similarity index 100% rename from Online/Logging/LogInputOnCopy.asm rename to Online/Debugging/LogInputOnCopy.asm diff --git a/Online/Online.s b/Online/Online.s index 5fcfb056..98efbd5c 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -190,12 +190,28 @@ .set SFXDB_FRAMES, SFXDB_WRITE_INDEX + 1 # SFXS_FRAME_SIZE * ROLLBACK_MAX_FRAME_COUNT .set SFXDB_SIZE, SFXDB_FRAMES + SFXS_FRAME_SIZE * ROLLBACK_MAX_FRAME_COUNT +################################################################################ +# Desync Recovery +################################################################################ +# Desync Fighter Recovery Entry +.set DFRE_STOCKS_REMAINING, 0 # byte +.set DFRE_PERCENT, DFRE_STOCKS_REMAINING + 1 # u16 +.set DFRE_SIZE, DFRE_PERCENT + 2 + ################################################################################ # Desync Detection ################################################################################ -.set DESYNC_ENTRY_FRAME, 0 # s32, frame of the checksum -.set DESYNC_ENTRY_CHECKSUM, DESYNC_ENTRY_FRAME + 4 # u32 -.set DESYNC_ENTRY_SIZE, DESYNC_ENTRY_CHECKSUM + 4 +# Desync Detection Remote Entry +.set DDRE_FRAME, 0 # s32, frame of the checksum +.set DDRE_CHECKSUM, DDRE_FRAME + 4 # u32 +.set DDRE_SIZE, DDRE_CHECKSUM + 4 + +# Desync Detection Local Entry +.set DDLE_FRAME, 0 # s32, frame of the checksum +.set DDLE_CHECKSUM, DDLE_FRAME + 4 # u32 +.set DDLE_RECOVERY_TIMER, DDLE_CHECKSUM + 4 # u32. Seconds +.set DDLE_RECOVERY_FIGHTER_ARR, DDLE_RECOVERY_TIMER + 4 # DFRE_SIZE * 4 +.set DDLE_SIZE, DDLE_RECOVERY_FIGHTER_ARR + DFRE_SIZE * 4 # I'm not exactly sure how many local entries we need to keep but our local entries will get # compared with the opponents' last stabilized frame which with a lot of ping can come pretty late. @@ -253,8 +269,10 @@ .set ODB_REST_STICK_CHANGE_COUNTER, ODB_FINALIZED_FRAME + 4 # u32 .set ODB_LOCAL_DESYNC_LAST_FRAME, ODB_REST_STICK_CHANGE_COUNTER + 4 # u32 .set ODB_LOCAL_DESYNC_WRITE_IDX, ODB_LOCAL_DESYNC_LAST_FRAME + 4 # u8 -.set ODB_LOCAL_DESYNC_ARR, ODB_LOCAL_DESYNC_WRITE_IDX + 1 # DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT -.set ODB_SIZE, ODB_LOCAL_DESYNC_ARR + DESYNC_ENTRY_SIZE * DESYNC_ENTRY_COUNT +.set ODB_LOCAL_DESYNC_ARR, ODB_LOCAL_DESYNC_WRITE_IDX + 1 # DDLE_SIZE * DESYNC_ENTRY_COUNT +.set ODB_DESYNC_RECOVERY_TIMER, ODB_LOCAL_DESYNC_ARR + DDLE_SIZE * DESYNC_ENTRY_COUNT # u32 +.set ODB_DESYNC_RECOVERY_FIGHTER_ARR, ODB_DESYNC_RECOVERY_TIMER + 4 # DFRE_SIZE * 4 +.set ODB_SIZE, ODB_DESYNC_RECOVERY_FIGHTER_ARR + DFRE_SIZE * 4 .set TXB_CMD, 0 # u8 .set TXB_FRAME, TXB_CMD + 1 # s32 @@ -266,8 +284,8 @@ .set RXB_RESULT, 0 # u8 .set RXB_OPNT_COUNT, RXB_RESULT + 1 # u8 -.set RXB_OPNT_DESYNC_ENTRY, RXB_OPNT_COUNT + 1 # DESYNC_ENTRY_SIZE[3] -.set RXB_OPNT_FRAME_NUMS, RXB_OPNT_DESYNC_ENTRY + DESYNC_ENTRY_SIZE*3 # s32[3] +.set RXB_OPNT_DESYNC_ENTRY, RXB_OPNT_COUNT + 1 # DDRE_SIZE[3] +.set RXB_OPNT_FRAME_NUMS, RXB_OPNT_DESYNC_ENTRY + DDRE_SIZE*3 # s32[3] .set RXB_SMALLEST_LATEST_FRAME, RXB_OPNT_FRAME_NUMS + 4*3 # s32 .set RXB_OPNT_INPUTS, RXB_SMALLEST_LATEST_FRAME + 4 # PAD_REPORT_SIZE * RXB_INPUTS_COUNT * 3 .set RXB_SIZE, RXB_OPNT_INPUTS + PAD_REPORT_SIZE * RXB_INPUTS_COUNT * 3 @@ -423,7 +441,9 @@ .set RGPB_SLOT_TYPE, 0 # u8, 0 = Human, 1 = CPU, 2 = Demo, 3 = Empty .set RGPB_STOCKS_REMAINING, RGPB_SLOT_TYPE + 1 # byte .set RGPB_DAMAGE_DONE, RGPB_STOCKS_REMAINING + 1 # float -.set RGPB_SIZE, RGPB_DAMAGE_DONE + 4 +.set RGPB_SYNCED_STOCKS, RGPB_DAMAGE_DONE + 4 # byte. confirmed synced frame last stocks +.set RGPB_SYNCED_DAMAGE, RGPB_SYNCED_STOCKS + 1 # u16. confirmed synced frame last damage +.set RGPB_SIZE, RGPB_SYNCED_DAMAGE + 2 .set RGB_COMMAND, 0 # byte .set RGB_ONLINE_MODE, RGB_COMMAND + 1 # u8 @@ -433,7 +453,8 @@ .set RGB_WINNER_IDX, RGB_TIEBREAKER_INDEX + 4 # s8 .set RGB_GAME_END_METHOD, RGB_WINNER_IDX + 1 # u8 .set RGB_LRAS_INITIATOR, RGB_GAME_END_METHOD + 1 # s8 -.set RGB_P1_RGPB, RGB_LRAS_INITIATOR + 1 # RGPB_SIZE +.set RGB_SYNCED_TIMER, RGB_LRAS_INITIATOR + 1 # u32 +.set RGB_P1_RGPB, RGB_SYNCED_TIMER + 4 # RGPB_SIZE .set RGB_P2_RGPB, RGB_P1_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P3_RGPB, RGB_P2_RGPB + RGPB_SIZE # RGPB_SIZE .set RGB_P4_RGPB, RGB_P3_RGPB + RGPB_SIZE # RGPB_SIZE @@ -454,7 +475,8 @@ .set GPDO_COLOR_BAN_ACTIVE, GPDO_LAST_STAGE_WIN_BY_PLAYER + 2 * 2 # bool .set GPDO_COLOR_BAN_CHAR, GPDO_COLOR_BAN_ACTIVE + 1 # u8 .set GPDO_COLOR_BAN_COLOR, GPDO_COLOR_BAN_CHAR + 1 # u8 -.set GPDO_FN_COMPUTE_RANKED_WINNER, GPDO_COLOR_BAN_COLOR + 1 # u32 +.set GPDO_LAST_GAME_END_MODE, GPDO_COLOR_BAN_COLOR + 1 # u8 +.set GPDO_FN_COMPUTE_RANKED_WINNER, GPDO_LAST_GAME_END_MODE + 1 # u32 .set GPDO_SIZE, GPDO_FN_COMPUTE_RANKED_WINNER + 4 # Warning: When making changes, ensure the offsets above are synced with below @@ -470,6 +492,7 @@ .byte 0x0 # GPDO_COLOR_BAN_ACTIVE .byte 0x0 # GPDO_COLOR_BAN_CHAR .byte 0x0 # GPDO_COLOR_BAN_COLOR +.byte 0x0 # GPDO_LAST_GAME_END_MODE .long 0x0 # GPDO_FN_COMPUTE_RANKED_WINNER .align 2 .endm diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 455ca007..c9dc9593 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -589,6 +589,14 @@ lbz r3, MSRB_CONNECTION_STATE(REG_MSRB_ADDR) cmpwi r3, MM_STATE_IDLE beq VSSceneDecide_SkipRankedHandler +bl GamePrepData_BLRL +mflr REG_GPD + +# Store the result of the last game +load r4, 0x8046b6a0 +lbz r3, 0x8(r4) +stb r3, GPDO_LAST_GAME_END_MODE(REG_GPD) + # Get the winner of last game bl SinglesDetermineWinner mr REG_WINNER_IDX, r3 @@ -596,21 +604,15 @@ cmpwi REG_WINNER_IDX, 0 bge VSSceneDecide_SkipTieHandler # If winner is not -1, it is not a tie # Here we have a tie, we want to start a new one-stock, 3 min game -bl GamePrepData_BLRL -mflr r6 - -lbz r3, GPDO_TIEBREAK_GAME_NUM(r6) +lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) addi r3, r3, 1 -stb r3, GPDO_TIEBREAK_GAME_NUM(r6) +stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) # Go to the game prep scene, with is tiebreak set to true, it will start a new game b VSSceneDecide_MoveToGamePrep VSSceneDecide_SkipTieHandler: # Here we have a conclusive game. Increment game prep game count and scores -bl GamePrepData_BLRL -mflr REG_GPD - stb REG_WINNER_IDX, GPDO_PREV_WINNER(REG_GPD) # Store winner index # Set winner ID at game index diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 6fcb10d4..18939973 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1186,21 +1186,21 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 00000093 #Online/Core/InitOnlinePlay.asm +C216E748 0000009E #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 386009CE +408204A8 38600B2E 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388009CE +7C7B1B78 38800B2E 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 -907B0003 48000281 +907B0003 4800028D 7C6802A6 907B08FA 3860001A 3D808037 618CF1E4 7D8903A6 @@ -1222,7 +1222,7 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386009CE +93790005 38600B2E 90790009 9359000D 38600126 90790011 807B03A3 90790015 @@ -1240,92 +1240,103 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 -2C030000 4082003C +2C030000 40820048 3CA0803D 60A5AD40 80A50000 80A50088 88650005 2C030000 -41820020 386000B4 -907F0010 38600001 -987F0062 987F0086 -987F00AA 987F00CE -886DAFA0 2C030003 -40820048 3AE00000 -1CB70024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 -7D8903A6 4E800421 -1C970024 38840063 -7C7F21AE 3AF70001 -2C170004 4180FFC4 -88780009 2C030001 -41800010 2C03000F -41810010 48000010 -38600001 48000008 -3860000F 987B0020 -38A00000 3C60804C -606320BC 1C850044 -7C632214 38800000 -90830000 38A50001 -2C050004 4180FFE0 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +4182002C 88650016 +2C030007 41820020 +386000B4 907F0010 +38600001 987F0062 +987F0086 987F00AA +987F00CE 886DAFA0 +2C030003 40820048 +3AE00000 1CB70024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C970024 +38840063 7C7F21AE +3AF70001 2C170004 +4180FFC4 88780009 +2C030001 41800010 +2C03000F 41810010 +48000010 38600001 +48000008 3860000F +987B0020 38A00000 +3C60804C 606320BC +1C850044 7C632214 +38800000 90830000 +38A50001 2C050004 +4180FFE0 38600004 +38800007 38A00000 +3D808039 618C01F0 7D8903A6 4E800421 -480001C0 4E800021 -3C608048 80639D60 -5464803E 806DB61C -80630007 7C841A14 -3C60804D 90835F90 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -838DB61C 3CA0803D -60A5AD40 80A50000 -83650088 3F408047 -635A9DA4 7F43D378 -3C808046 6084B8EC -38A02278 3D808000 -618C31F4 7D8903A6 -4E800421 3C808046 -6084B6A0 7F43D378 -880424D0 98030006 -88040008 98030004 -3D808016 618C6378 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 4800020C +4E800021 3C608048 +80639D60 5464803E +806DB61C 80630007 +7C841A14 3C60804D +90835F90 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 838DB61C +3CA0803D 60A5AD40 +80A50000 83650088 +3F408047 635A9DA4 +7F43D378 3C808046 +6084B8EC 38A02278 +3D808000 618C31F4 7D8903A6 4E800421 -38600161 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BD 987E0000 -886DAFA0 987E0001 -3D80801A 618C4BA8 +3C808046 6084B6A0 +7F43D378 880424D0 +98030006 88040008 +98030004 3D808016 +618C6378 7D8903A6 +4E800421 38600171 +3D808037 618CF1E4 7D8903A6 4E800421 -907E0002 887B0001 -907E0006 887B0005 -907E000A 807B0016 -7C6903A6 4E800421 -987E000E 3C808046 -6084B6A0 88640008 -987E000F 2C030007 -4082000C 88640001 -48000008 3860FFFF -987E0010 3BE00000 -3BBE0011 7FE3FB78 -3D808003 618C1724 -7D8903A6 4E800421 -80830008 989D0000 -8883008E 989D0001 -80830D28 909D0002 -3BFF0001 3BBD0006 -2C1F0004 4180FFC8 -387E0029 3C808048 +7C7E1B78 386000BD +987E0000 886DAFA0 +987E0001 3D80801A +618C4BA8 7D8903A6 +4E800421 907E0002 +887B0001 907E0006 +887B0005 907E000A +807B0017 7C6903A6 +4E800421 987E000E +887C0011 2C030000 +3880FFFD 40820018 +887C0012 2C030000 +3880FFFE 40820008 +48000008 989E000E +3C808046 6084B6A0 +88640008 987E000F +2C030007 4082000C +88640001 48000008 +3860FFFF 987E0010 +809C0B1E 909E0011 +3BE00000 3BBE0015 +7FE3FB78 3D808003 +618C1724 7D8903A6 +4E800421 80830008 +989D0000 8883008E +989D0001 80830D28 +909D0002 1CBF0003 +38850B22 7C9C20AE +989D0006 38850B23 +7C9C222E B09D0007 +3BFF0001 3BBD0009 +2C1F0004 4180FFAC +387E0039 3C808048 60840530 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -7FC3F378 38800161 +7FC3F378 38800171 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 @@ -1537,10 +1548,10 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000A0 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000B8 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -48000178 4E800021 +480001AC 4E800021 3FA66666 C2340000 3D8F5C29 FF0000FF 44495343 4F4E4E45 @@ -1587,93 +1598,117 @@ C05F0008 3D80803A 7FC3F378 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3C608048 80639D30 -5463443E 2C030208 -40820340 3C608047 -60639D64 80630000 -2C030000 4082032C -83CDB61C 3FE08048 -83FF9D60 839E00DA -3D808034 618C7364 -7D8903A6 4E800421 -7C791B78 887E0011 -2C030000 40820064 -887E0010 2C030000 -41820058 38600003 -3D808002 618C4030 -7D8903A6 4E800421 -807E0911 38800000 -4BFFFED9 38600001 -987E0011 886DAFA0 -2C030000 40820024 +886DAFA0 2C030000 +40820028 818DB61C 3C608046 6063B6A0 -889E0001 98830001 +888C0001 98830001 38800007 98830008 38800037 988324D5 -887E08FE 2C030000 -418200B0 887E0903 -2C030000 41820094 -807E0904 7C1F1800 -41820024 41800094 -807E039F 809E0904 -80BE03A3 3D808000 -618C560C 7D8903A6 -4E800421 3D808001 -618C9894 7D8903A6 -4E800421 3CA0804C -60A51F78 88850002 -7C832051 4080000C -88650000 7C841A14 -98850002 38600000 -98650003 3FE08048 -83FF9D60 807E038C -907E0003 38600000 -987E038B 987E039C -987E039D 987E039E -987E00DF 987E0903 -3D808001 618C95FC -7D8903A6 4E800421 -807E0919 7C1F1800 -4181000C 7FE3FB78 -48000004 809E0908 -7C032000 40810008 -907E0908 807E0921 -38630001 7C63F851 -889E0925 41800020 -88DE0925 38C60001 -2C060015 41800008 -38C00000 98DE0925 -93FE0921 38A00015 -7C841A14 7CC42BD6 -7CC629D6 7CC62050 -7C853214 7CC42BD6 -7CC629D6 7C862050 -1C840008 38640926 -7FBE1A14 93FD0000 -4BFFFCC9 907D0004 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3C608048 +80639D30 5463443E +2C030208 408203CC +3C608047 60639D64 +80630000 2C030000 +408203B8 83CDB61C +3FE08048 83FF9D60 +839E00DA 3D808034 +618C7364 7D8903A6 +4E800421 7C791B78 +887E0011 2C030000 +4082003C 887E0010 +2C030000 41820030 +38600003 3D808002 +618C4030 7D8903A6 +4E800421 807E0911 +38800000 4BFFFEA5 +38600001 987E0011 +4BFFFF31 887E08FE +2C030000 418200B0 +887E0903 2C030000 +41820094 807E0904 +7C1F1800 41820024 +41800094 807E039F +809E0904 80BE03A3 +3D808000 618C560C +7D8903A6 4E800421 +3D808001 618C9894 +7D8903A6 4E800421 +3CA0804C 60A51F78 +88850002 7C832051 +4080000C 88650000 +7C841A14 98850002 +38600000 98650003 +3FE08048 83FF9D60 +807E038C 907E0003 +38600000 987E038B +987E039C 987E039D +987E039E 987E00DF +987E0903 3D808001 +618C95FC 7D8903A6 +4E800421 807E0919 +7C1F1800 4181000C +7FE3FB78 48000004 +809E0908 7C032000 +40810008 907E0908 +807E0921 38630001 +7C63F851 889E0925 +41800020 88DE0925 +38C60001 2C060015 +41800008 38C00000 +98DE0925 93FE0921 +38A00015 7C841A14 +7CC42BD6 7CC629D6 +7CC62050 7C853214 +7CC42BD6 7CC629D6 +7C862050 1C840018 +38640926 7FBE1A14 +93FD0000 4BFFFCBD +907D0004 3C608046 +6063B6C8 80630000 +907D0008 3B000000 +7F03C378 3D808003 +618C42B4 7D8903A6 +4E800421 1C980003 +3884000D 7C7D232E +7F03C378 3D808003 +618C3BD8 7D8903A6 +4E800421 1C980003 +3884000C 7C7D21AE +3B180001 2C180004 +4180FFB8 2C1F0000 +418200CC 3BA00000 887E0012 2C030000 -408200A0 39800000 +408200E8 39800000 1C6C0008 38630002 7D7C1A14 814B0000 807E0908 7C0A1800 -41810070 2C0A0054 -40810068 39200000 -1C690008 38630926 +4181008C 2C0A0054 +40810084 39200000 +1C690018 38630926 7D1E1A14 80680000 -7C0A1800 40820040 +7C0A1800 4082005C +2C1D0000 41820010 +80680000 2C0A0003 +40800008 7D1D4378 80680004 808B0004 -7C032000 4182003C +7C032000 41820040 38600003 3D808002 618C4030 7D8903A6 4E800421 807E0911 -3880001D 4BFFFCDD +3880001D 4BFFFC4D 38600001 987E0012 -48000020 39290001 -2C090015 4180FFA4 -398C0001 887C0001 -7C0C1800 4180FF6C +4BFFFCD9 4800004C +39290001 2C090015 +4180FF88 398C0001 +887C0001 7C0C1800 +4180FF50 2C1D0000 +41820028 807D0008 +907E0B1E 387E0B22 +389D000C 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 887E038B 2C030000 4182002C 807E0908 7C1F1800 40810020 @@ -1698,14 +1733,14 @@ C05F0008 3D80803A BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 000000F0 #Online/Core/TriggerSendInput.asm +C2376A28 000000F1 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820744 3C608047 +40820750 3C608047 60639D64 80630000 -2C030000 40820730 +2C030000 4082073C 836DB61C 833B00D6 831B00DA 82FB039F 835B0003 889B0002 @@ -1713,7 +1748,7 @@ C2376A28 000000F0 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DE 2C030000 41820010 887B00DF 2C030000 -41820670 887B0020 +4182067C 887B0020 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1741,7 +1776,7 @@ B0830000 4E800020 386000B0 98790000 93590001 807B0908 90790005 819B0908 -39600000 1C6B0008 +39600000 1C6B0018 38630926 7D5B1A14 806A0000 7C036000 40820010 806A0004 @@ -1763,182 +1798,183 @@ B0830000 4E800020 88780000 2C030002 41820024 2C030003 41820010 2C030004 -41820034 48000038 +41820040 48000044 38600001 987B0010 -4800002C BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 38600001 -987B0013 889B0021 -1C84000C 38840022 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -887B00E4 1C63000C -386300E5 889B0000 -1C84000C 388400DC -7C7B1A14 7C812214 +48000038 887B000F +2C030001 4182002C +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +38600001 987B0013 +889B0021 1C84000C +38840022 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E4 -38630001 2C03000E +1C63000C 386300E5 +889B0000 1C84000C +388400DC 7C7B1A14 +7C812214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +887B00E4 38630001 +2C03000E 41800008 +38600000 987B00E4 +887B0021 1C63000C +38630022 7C7B1A14 +3899000E 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +889B0020 887B0021 +38630001 7C032000 41800008 38600000 -987B00E4 887B0021 -1C63000C 38630022 -7C7B1A14 3899000E -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 889B0020 -887B0021 38630001 -7C032000 41800008 -38600000 987B0021 -8B9B00DE 887B038B -2C030000 40820018 -38600000 987B039C -987B039D 987B039E -48000264 3A800000 -38D4039C 7C66D8AE -2C030001 4082016C -1CD40004 38C6001A -7C66C02E 1CD40004 -38C60390 7C86D82E -7EC41851 4180014C -80DB0908 7C043000 -41810010 7C032000 -418100AC 48000134 -1C76000C 3863002A -1CD40054 7C633214 -38D4018D 7C86D8AE -1C84000C 38840193 -1CB400A8 7C842A14 -7CD81A14 7CFB2214 -88660000 88870000 -546306FE 548406FE -7C032000 408200AC -88660001 88870001 -5463067E 5484067E -7C032000 40820094 -80660002 80870002 -7C032000 40820084 -38A00005 38A50001 -2C050008 40800028 -7C6530AE 7C8538AE -2C03002A 4181000C -2C04002A 4081FFE0 -7C032000 40820054 -4BFFFFD4 1CD40004 -38C60390 7C66D82E -38630001 7C66D92E +987B0021 8B9B00DE +887B038B 2C030000 +40820018 38600000 +987B039C 987B039D +987B039E 48000264 +3A800000 38D4039C +7C66D8AE 2C030001 +4082016C 1CD40004 +38C6001A 7C66C02E +1CD40004 38C60390 +7C86D82E 7EC41851 +4180014C 80DB0908 +7C043000 41810010 +7C032000 418100AC +48000134 1C76000C +3863002A 1CD40054 +7C633214 38D4018D +7C86D8AE 1C84000C +38840193 1CB400A8 +7C842A14 7CD81A14 +7CFB2214 88660000 +88870000 546306FE +548406FE 7C032000 +408200AC 88660001 +88870001 5463067E +5484067E 7C032000 +40820094 80660002 +80870002 7C032000 +40820084 38A00005 +38A50001 2C050008 +40800028 7C6530AE +7C8538AE 2C03002A +4181000C 2C04002A +4081FFE0 7C032000 +40820054 4BFFFFD4 +1CD40004 38C60390 +7C66D82E 38630001 +7C66D92E 38D4018D +7C66D8AE 38630001 +2C03000E 41800008 +3863FFF2 7C66D9AE 38D4018D 7C66D8AE -38630001 2C03000E -41800008 3863FFF2 -7C66D9AE 38D4018D -7C66D8AE 38D40190 -7C86D8AE 7C041800 -4082FED0 48000044 -3B800001 4800003C -38600001 987B00DE -987B00DF 935B00E0 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 +38D40190 7C86D8AE +7C041800 4082FED0 +48000044 3B800001 +4800003C 38600001 +987B00DE 987B00DF +935B00E0 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 3A940001 +2C140003 4180FE80 +39600000 3A800000 +82BB0908 38D4039C +7C86D8AE 2C040001 +40820028 1CD40004 +38C60390 7C86D82E +2C0B0000 4182000C +7C04A800 40800008 +7C952378 39600001 3A940001 2C140003 -4180FE80 39600000 -3A800000 82BB0908 +4180FFC4 92BB038C +92BB0919 80D80026 +7C153000 40810008 +90DB0919 2C1C0000 +4082FF54 3A800000 38D4039C 7C86D8AE 2C040001 40820028 -1CD40004 38C60390 -7C86D82E 2C0B0000 -4182000C 7C04A800 -40800008 7C952378 -39600001 3A940001 +38D4018D 7C66D8AE +38D40190 7C86D8AE +7C041800 40820010 +38600000 38D4039C +7C66D9AE 3A940001 2C140003 4180FFC4 -92BB038C 92BB0919 -80D80026 7C153000 -40810008 90DB0919 -2C1C0000 4082FF54 3A800000 38D4039C 7C86D8AE 2C040001 -40820028 38D4018D +41820018 3A940001 +2C140003 4180FFE8 +38600000 987B038B +3A800000 3AA00000 +3B800001 887B0000 +7C151800 40820008 +3AB50001 1CD40004 +38C6001A 7C66C02E +7C7A1850 2C030000 +408000D8 887B0020 +38800054 7C632050 +7C1A1800 418000C0 +887B000F 2C030001 +418200B4 3B800000 +38D40190 7EC6D8AE +1C76000C 38630193 +1CB400A8 7C632A14 +1CD40054 38C6002A +7C7B1A14 7C983214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 38760001 +2C03000E 41800008 +3863FFF2 38D40190 +7C66D9AE 38D4018D 7C66D8AE 38D40190 -7C86D8AE 7C041800 -40820010 38600000 -38D4039C 7C66D9AE -3A940001 2C140003 -4180FFC4 3A800000 -38D4039C 7C86D8AE -2C040001 41820018 -3A940001 2C140003 -4180FFE8 38600000 -987B038B 3A800000 -3AA00000 3B800001 -887B0000 7C151800 -40820008 3AB50001 -1CD40004 38C6001A -7C66C02E 7C7A1850 -2C030000 408000D8 -887B0020 38800054 -7C632050 7C1A1800 -418000C0 887B000F -2C030001 418200B4 -3B800000 38D40190 -7EC6D8AE 1C76000C -38630193 1CB400A8 -7C632A14 1CD40054 -38C6002A 7C7B1A14 -7C983214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -38760001 2C03000E -41800008 3863FFF2 -38D40190 7C66D9AE -38D4018D 7C66D8AE -38D40190 7C86D8AE -38D4039C 7C66D8AE -2C030001 4182003C -1CD40004 38C60390 -7F46D92E 38600001 -38D4039C 7C66D9AE -38D4018D 7EC6D9AE -887B038B 2C030001 -41820010 935B038C -38600001 987B038B -38600000 1C63000C -38A3002A 1CD40054 -7CA53214 1C75000C -386300DC 7C611A14 -7C982A14 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -3A940001 3AB50001 -2C140003 4180FEC4 -2C1C0000 41820008 -935B0919 48000080 -807B00E0 7C1A1800 -40810024 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 807B00E0 -7C7A1850 38630001 -889B00E4 7C632051 -40800008 3863000E -1C63000C 388300E5 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -4BFFFE2C 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +7C86D8AE 38D4039C +7C66D8AE 2C030001 +4182003C 1CD40004 +38C60390 7F46D92E +38600001 38D4039C +7C66D9AE 38D4018D +7EC6D9AE 887B038B +2C030001 41820010 +935B038C 38600001 +987B038B 38600000 +1C63000C 38A3002A +1CD40054 7CA53214 +1C75000C 386300DC +7C611A14 7C982A14 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 3A940001 +3AB50001 2C140003 +4180FEC4 2C1C0000 +41820008 935B0919 +48000080 807B00E0 +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00E0 7C7A1850 +38630001 889B00E4 +7C632051 40800008 +3863000E 1C63000C +388300E5 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFE2C +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -4812,7 +4848,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001EF #Online/Slippi Online Scene/main.asm +C21A45B8 000001F0 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4823,7 +4859,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F0C 80830000 +48000F14 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4855,8 +4891,8 @@ BE810008 3C80803E BE810008 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B29 -7C6802A6 90640016 +7C8802A6 48000B31 +7C6802A6 90640017 3D808000 618C56B8 7D8903A6 4E800421 7C741B78 3D808000 @@ -4890,11 +4926,11 @@ BA810008 800100B4 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005B1 -480008ED 20000000 +04030000 480005B9 +480008F5 20000000 80490880 804D68D0 -05030000 48000C01 -48000C41 50000000 +05030000 48000C09 +48000C49 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4930,10 +4966,10 @@ BE810008 7C7E1B78 2C030003 41820064 48000090 4BFFFF09 7F6802A6 7F63DB78 -3880001A 3D808000 +3880001B 3D808000 618CC160 7D8903A6 -4E800421 480008C1 -7C6802A6 907B0016 +4E800421 480008C9 +7C6802A6 907B0017 38600003 987B0000 38600001 987B0001 38600000 987B0005 @@ -4946,7 +4982,7 @@ BE810008 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000769 3C808047 +48000771 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -4974,7 +5010,7 @@ BE810008 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000689 3C808047 +48000691 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -4990,15 +5026,16 @@ BE810008 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 40820100 +2C030000 40820108 887F0000 2C030000 -418200F4 480006E5 +418200FC 4BFFFD09 +7F6802A6 3C808046 +6084B6A0 88640008 +987B0016 480006D5 7C7C1B78 2C1C0000 -4080001C 4BFFFCF9 -7CC802A6 88660005 -38630001 98660005 -48000068 4BFFFCE1 -7F6802A6 9B9B0004 +40800014 887B0005 +38630001 987B0005 +48000060 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 7C9B18AE 38A40001 @@ -5789,7 +5826,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm +043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7b27e48e..669a4274 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1186,21 +1186,21 @@ BA810008 800100B4 800100B4 382100B0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 00000093 #Online/Core/InitOnlinePlay.asm +C216E748 0000009E #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820450 386009CE +408204A8 38600B2E 3D808037 618CF1E4 7D8903A6 4E800421 -7C7B1B78 388009CE +7C7B1B78 38800B2E 3D808000 618CC160 7D8903A6 4E800421 936DB61C 38600001 -907B0003 48000281 +907B0003 4800028D 7C6802A6 907B08FA 3860001A 3D808037 618CF1E4 7D8903A6 @@ -1222,7 +1222,7 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 7D8903A6 4E800421 38800000 98830000 38800007 98830001 -93790005 386009CE +93790005 38600B2E 90790009 9359000D 38600126 90790011 807B03A3 90790015 @@ -1240,92 +1240,103 @@ C216E748 00000093 #Online/Core/InitOnlinePlay.asm 38A00138 3D808000 618C31F4 7D8903A6 4E800421 886DAFA0 -2C030000 4082003C +2C030000 40820048 3CA0803D 60A5AD40 80A50000 80A50088 88650005 2C030000 -41820020 386000B4 -907F0010 38600001 -987F0062 987F0086 -987F00AA 987F00CE -886DAFA0 2C030003 -40820048 3AE00000 -1CB70024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 -7D8903A6 4E800421 -1C970024 38840063 -7C7F21AE 3AF70001 -2C170004 4180FFC4 -88780009 2C030001 -41800010 2C03000F -41810010 48000010 -38600001 48000008 -3860000F 987B0020 -38A00000 3C60804C -606320BC 1C850044 -7C632214 38800000 -90830000 38A50001 -2C050004 4180FFE0 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +4182002C 88650016 +2C030007 41820020 +386000B4 907F0010 +38600001 987F0062 +987F0086 987F00AA +987F00CE 886DAFA0 +2C030003 40820048 +3AE00000 1CB70024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C970024 +38840063 7C7F21AE +3AF70001 2C170004 +4180FFC4 88780009 +2C030001 41800010 +2C03000F 41810010 +48000010 38600001 +48000008 3860000F +987B0020 38A00000 +3C60804C 606320BC +1C850044 7C632214 +38800000 90830000 +38A50001 2C050004 +4180FFE0 38600004 +38800007 38A00000 +3D808039 618C01F0 7D8903A6 4E800421 -480001C0 4E800021 -3C608048 80639D60 -5464803E 806DB61C -80630007 7C841A14 -3C60804D 90835F90 -4E800020 4E800021 -7C0802A6 90010004 -9421FF50 BE810008 -838DB61C 3CA0803D -60A5AD40 80A50000 -83650088 3F408047 -635A9DA4 7F43D378 -3C808046 6084B8EC -38A02278 3D808000 -618C31F4 7D8903A6 -4E800421 3C808046 -6084B6A0 7F43D378 -880424D0 98030006 -88040008 98030004 -3D808016 618C6378 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 4800020C +4E800021 3C608048 +80639D60 5464803E +806DB61C 80630007 +7C841A14 3C60804D +90835F90 4E800020 +4E800021 7C0802A6 +90010004 9421FF50 +BE810008 838DB61C +3CA0803D 60A5AD40 +80A50000 83650088 +3F408047 635A9DA4 +7F43D378 3C808046 +6084B8EC 38A02278 +3D808000 618C31F4 7D8903A6 4E800421 -38600161 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BD 987E0000 -886DAFA0 987E0001 -3D80801A 618C4BA8 +3C808046 6084B6A0 +7F43D378 880424D0 +98030006 88040008 +98030004 3D808016 +618C6378 7D8903A6 +4E800421 38600171 +3D808037 618CF1E4 7D8903A6 4E800421 -907E0002 887B0001 -907E0006 887B0005 -907E000A 807B0016 -7C6903A6 4E800421 -987E000E 3C808046 -6084B6A0 88640008 -987E000F 2C030007 -4082000C 88640001 -48000008 3860FFFF -987E0010 3BE00000 -3BBE0011 7FE3FB78 -3D808003 618C1724 -7D8903A6 4E800421 -80830008 989D0000 -8883008E 989D0001 -80830D28 909D0002 -3BFF0001 3BBD0006 -2C1F0004 4180FFC8 -387E0029 3C808048 +7C7E1B78 386000BD +987E0000 886DAFA0 +987E0001 3D80801A +618C4BA8 7D8903A6 +4E800421 907E0002 +887B0001 907E0006 +887B0005 907E000A +807B0017 7C6903A6 +4E800421 987E000E +887C0011 2C030000 +3880FFFD 40820018 +887C0012 2C030000 +3880FFFE 40820008 +48000008 989E000E +3C808046 6084B6A0 +88640008 987E000F +2C030007 4082000C +88640001 48000008 +3860FFFF 987E0010 +809C0B1E 909E0011 +3BE00000 3BBE0015 +7FE3FB78 3D808003 +618C1724 7D8903A6 +4E800421 80830008 +989D0000 8883008E +989D0001 80830D28 +909D0002 1CBF0003 +38850B22 7C9C20AE +989D0006 38850B23 +7C9C222E B09D0007 +3BFF0001 3BBD0009 +2C1F0004 4180FFAC +387E0039 3C808048 60840530 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -7FC3F378 38800161 +7FC3F378 38800171 38A00001 3D808000 618C55F0 7D8903A6 4E800421 BA810008 @@ -1537,10 +1548,10 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000A0 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000B8 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -48000178 4E800021 +480001AC 4E800021 3FA66666 C2340000 3D8F5C29 FF0000FF 44495343 4F4E4E45 @@ -1587,93 +1598,117 @@ C05F0008 3D80803A 7FC3F378 BA810008 800100B4 382100B0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF50 BE810008 -3C608048 80639D30 -5463443E 2C030208 -40820340 3C608047 -60639D64 80630000 -2C030000 4082032C -83CDB61C 3FE08048 -83FF9D60 839E00DA -3D808034 618C7364 -7D8903A6 4E800421 -7C791B78 887E0011 -2C030000 40820064 -887E0010 2C030000 -41820058 38600003 -3D808002 618C4030 -7D8903A6 4E800421 -807E0911 38800000 -4BFFFED9 38600001 -987E0011 886DAFA0 -2C030000 40820024 +886DAFA0 2C030000 +40820028 818DB61C 3C608046 6063B6A0 -889E0001 98830001 +888C0001 98830001 38800007 98830008 38800037 988324D5 -887E08FE 2C030000 -418200B0 887E0903 -2C030000 41820094 -807E0904 7C1F1800 -41820024 41800094 -807E039F 809E0904 -80BE03A3 3D808000 -618C560C 7D8903A6 -4E800421 3D808001 -618C9894 7D8903A6 -4E800421 3CA0804C -60A51F78 88850002 -7C832051 4080000C -88650000 7C841A14 -98850002 38600000 -98650003 3FE08048 -83FF9D60 807E038C -907E0003 38600000 -987E038B 987E039C -987E039D 987E039E -987E00DF 987E0903 -3D808001 618C95FC -7D8903A6 4E800421 -807E0919 7C1F1800 -4181000C 7FE3FB78 -48000004 809E0908 -7C032000 40810008 -907E0908 807E0921 -38630001 7C63F851 -889E0925 41800020 -88DE0925 38C60001 -2C060015 41800008 -38C00000 98DE0925 -93FE0921 38A00015 -7C841A14 7CC42BD6 -7CC629D6 7CC62050 -7C853214 7CC42BD6 -7CC629D6 7C862050 -1C840008 38640926 -7FBE1A14 93FD0000 -4BFFFCC9 907D0004 +4E800020 7C0802A6 +90010004 9421FF50 +BE810008 3C608048 +80639D30 5463443E +2C030208 408203CC +3C608047 60639D64 +80630000 2C030000 +408203B8 83CDB61C +3FE08048 83FF9D60 +839E00DA 3D808034 +618C7364 7D8903A6 +4E800421 7C791B78 +887E0011 2C030000 +4082003C 887E0010 +2C030000 41820030 +38600003 3D808002 +618C4030 7D8903A6 +4E800421 807E0911 +38800000 4BFFFEA5 +38600001 987E0011 +4BFFFF31 887E08FE +2C030000 418200B0 +887E0903 2C030000 +41820094 807E0904 +7C1F1800 41820024 +41800094 807E039F +809E0904 80BE03A3 +3D808000 618C560C +7D8903A6 4E800421 +3D808001 618C9894 +7D8903A6 4E800421 +3CA0804C 60A51F78 +88850002 7C832051 +4080000C 88650000 +7C841A14 98850002 +38600000 98650003 +3FE08048 83FF9D60 +807E038C 907E0003 +38600000 987E038B +987E039C 987E039D +987E039E 987E00DF +987E0903 3D808001 +618C95FC 7D8903A6 +4E800421 807E0919 +7C1F1800 4181000C +7FE3FB78 48000004 +809E0908 7C032000 +40810008 907E0908 +807E0921 38630001 +7C63F851 889E0925 +41800020 88DE0925 +38C60001 2C060015 +41800008 38C00000 +98DE0925 93FE0921 +38A00015 7C841A14 +7CC42BD6 7CC629D6 +7CC62050 7C853214 +7CC42BD6 7CC629D6 +7C862050 1C840018 +38640926 7FBE1A14 +93FD0000 4BFFFCBD +907D0004 3C608046 +6063B6C8 80630000 +907D0008 3B000000 +7F03C378 3D808003 +618C42B4 7D8903A6 +4E800421 1C980003 +3884000D 7C7D232E +7F03C378 3D808003 +618C3BD8 7D8903A6 +4E800421 1C980003 +3884000C 7C7D21AE +3B180001 2C180004 +4180FFB8 2C1F0000 +418200CC 3BA00000 887E0012 2C030000 -408200A0 39800000 +408200E8 39800000 1C6C0008 38630002 7D7C1A14 814B0000 807E0908 7C0A1800 -41810070 2C0A0054 -40810068 39200000 -1C690008 38630926 +4181008C 2C0A0054 +40810084 39200000 +1C690018 38630926 7D1E1A14 80680000 -7C0A1800 40820040 +7C0A1800 4082005C +2C1D0000 41820010 +80680000 2C0A0003 +40800008 7D1D4378 80680004 808B0004 -7C032000 4182003C +7C032000 41820040 38600003 3D808002 618C4030 7D8903A6 4E800421 807E0911 -3880001D 4BFFFCDD +3880001D 4BFFFC4D 38600001 987E0012 -48000020 39290001 -2C090015 4180FFA4 -398C0001 887C0001 -7C0C1800 4180FF6C +4BFFFCD9 4800004C +39290001 2C090015 +4180FF88 398C0001 +887C0001 7C0C1800 +4180FF50 2C1D0000 +41820028 807D0008 +907E0B1E 387E0B22 +389D000C 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 887E038B 2C030000 4182002C 807E0908 7C1F1800 40810020 @@ -1698,14 +1733,14 @@ C05F0008 3D80803A BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 -C2376A28 000000F0 #Online/Core/TriggerSendInput.asm +C2376A28 000000F1 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF50 BE810008 3C608048 80639D30 5463443E 2C030208 -40820744 3C608047 +40820750 3C608047 60639D64 80630000 -2C030000 40820730 +2C030000 4082073C 836DB61C 833B00D6 831B00DA 82FB039F 835B0003 889B0002 @@ -1713,7 +1748,7 @@ C2376A28 000000F0 #Online/Core/TriggerSendInput.asm 7FA11A14 887B00DE 2C030000 41820010 887B00DF 2C030000 -41820670 887B0020 +4182067C 887B0020 38800054 7C632050 2C1A0003 4080001C 386100DC 38800030 @@ -1741,7 +1776,7 @@ B0830000 4E800020 386000B0 98790000 93590001 807B0908 90790005 819B0908 -39600000 1C6B0008 +39600000 1C6B0018 38630926 7D5B1A14 806A0000 7C036000 40820010 806A0004 @@ -1763,182 +1798,183 @@ B0830000 4E800020 88780000 2C030002 41820024 2C030003 41820010 2C030004 -41820034 48000038 +41820040 48000044 38600001 987B0010 -4800002C BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 38600001 -987B0013 889B0021 -1C84000C 38840022 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -887B00E4 1C63000C -386300E5 889B0000 -1C84000C 388400DC -7C7B1A14 7C812214 +48000038 887B000F +2C030001 4182002C +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +38600001 987B0013 +889B0021 1C84000C +38840022 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E4 -38630001 2C03000E +1C63000C 386300E5 +889B0000 1C84000C +388400DC 7C7B1A14 +7C812214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +887B00E4 38630001 +2C03000E 41800008 +38600000 987B00E4 +887B0021 1C63000C +38630022 7C7B1A14 +3899000E 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +889B0020 887B0021 +38630001 7C032000 41800008 38600000 -987B00E4 887B0021 -1C63000C 38630022 -7C7B1A14 3899000E -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 889B0020 -887B0021 38630001 -7C032000 41800008 -38600000 987B0021 -8B9B00DE 887B038B -2C030000 40820018 -38600000 987B039C -987B039D 987B039E -48000264 3A800000 -38D4039C 7C66D8AE -2C030001 4082016C -1CD40004 38C6001A -7C66C02E 1CD40004 -38C60390 7C86D82E -7EC41851 4180014C -80DB0908 7C043000 -41810010 7C032000 -418100AC 48000134 -1C76000C 3863002A -1CD40054 7C633214 -38D4018D 7C86D8AE -1C84000C 38840193 -1CB400A8 7C842A14 -7CD81A14 7CFB2214 -88660000 88870000 -546306FE 548406FE -7C032000 408200AC -88660001 88870001 -5463067E 5484067E -7C032000 40820094 -80660002 80870002 -7C032000 40820084 -38A00005 38A50001 -2C050008 40800028 -7C6530AE 7C8538AE -2C03002A 4181000C -2C04002A 4081FFE0 -7C032000 40820054 -4BFFFFD4 1CD40004 -38C60390 7C66D82E -38630001 7C66D92E +987B0021 8B9B00DE +887B038B 2C030000 +40820018 38600000 +987B039C 987B039D +987B039E 48000264 +3A800000 38D4039C +7C66D8AE 2C030001 +4082016C 1CD40004 +38C6001A 7C66C02E +1CD40004 38C60390 +7C86D82E 7EC41851 +4180014C 80DB0908 +7C043000 41810010 +7C032000 418100AC +48000134 1C76000C +3863002A 1CD40054 +7C633214 38D4018D +7C86D8AE 1C84000C +38840193 1CB400A8 +7C842A14 7CD81A14 +7CFB2214 88660000 +88870000 546306FE +548406FE 7C032000 +408200AC 88660001 +88870001 5463067E +5484067E 7C032000 +40820094 80660002 +80870002 7C032000 +40820084 38A00005 +38A50001 2C050008 +40800028 7C6530AE +7C8538AE 2C03002A +4181000C 2C04002A +4081FFE0 7C032000 +40820054 4BFFFFD4 +1CD40004 38C60390 +7C66D82E 38630001 +7C66D92E 38D4018D +7C66D8AE 38630001 +2C03000E 41800008 +3863FFF2 7C66D9AE 38D4018D 7C66D8AE -38630001 2C03000E -41800008 3863FFF2 -7C66D9AE 38D4018D -7C66D8AE 38D40190 -7C86D8AE 7C041800 -4082FED0 48000044 -3B800001 4800003C -38600001 987B00DE -987B00DF 935B00E0 -3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 +38D40190 7C86D8AE +7C041800 4082FED0 +48000044 3B800001 +4800003C 38600001 +987B00DE 987B00DF +935B00E0 3B5A0001 +935B0003 BA810008 +800100B4 382100B0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 3A940001 +2C140003 4180FE80 +39600000 3A800000 +82BB0908 38D4039C +7C86D8AE 2C040001 +40820028 1CD40004 +38C60390 7C86D82E +2C0B0000 4182000C +7C04A800 40800008 +7C952378 39600001 3A940001 2C140003 -4180FE80 39600000 -3A800000 82BB0908 +4180FFC4 92BB038C +92BB0919 80D80026 +7C153000 40810008 +90DB0919 2C1C0000 +4082FF54 3A800000 38D4039C 7C86D8AE 2C040001 40820028 -1CD40004 38C60390 -7C86D82E 2C0B0000 -4182000C 7C04A800 -40800008 7C952378 -39600001 3A940001 +38D4018D 7C66D8AE +38D40190 7C86D8AE +7C041800 40820010 +38600000 38D4039C +7C66D9AE 3A940001 2C140003 4180FFC4 -92BB038C 92BB0919 -80D80026 7C153000 -40810008 90DB0919 -2C1C0000 4082FF54 3A800000 38D4039C 7C86D8AE 2C040001 -40820028 38D4018D +41820018 3A940001 +2C140003 4180FFE8 +38600000 987B038B +3A800000 3AA00000 +3B800001 887B0000 +7C151800 40820008 +3AB50001 1CD40004 +38C6001A 7C66C02E +7C7A1850 2C030000 +408000D8 887B0020 +38800054 7C632050 +7C1A1800 418000C0 +887B000F 2C030001 +418200B4 3B800000 +38D40190 7EC6D8AE +1C76000C 38630193 +1CB400A8 7C632A14 +1CD40054 38C6002A +7C7B1A14 7C983214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 38760001 +2C03000E 41800008 +3863FFF2 38D40190 +7C66D9AE 38D4018D 7C66D8AE 38D40190 -7C86D8AE 7C041800 -40820010 38600000 -38D4039C 7C66D9AE -3A940001 2C140003 -4180FFC4 3A800000 -38D4039C 7C86D8AE -2C040001 41820018 -3A940001 2C140003 -4180FFE8 38600000 -987B038B 3A800000 -3AA00000 3B800001 -887B0000 7C151800 -40820008 3AB50001 -1CD40004 38C6001A -7C66C02E 7C7A1850 -2C030000 408000D8 -887B0020 38800054 -7C632050 7C1A1800 -418000C0 887B000F -2C030001 418200B4 -3B800000 38D40190 -7EC6D8AE 1C76000C -38630193 1CB400A8 -7C632A14 1CD40054 -38C6002A 7C7B1A14 -7C983214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -38760001 2C03000E -41800008 3863FFF2 -38D40190 7C66D9AE -38D4018D 7C66D8AE -38D40190 7C86D8AE -38D4039C 7C66D8AE -2C030001 4182003C -1CD40004 38C60390 -7F46D92E 38600001 -38D4039C 7C66D9AE -38D4018D 7EC6D9AE -887B038B 2C030001 -41820010 935B038C -38600001 987B038B -38600000 1C63000C -38A3002A 1CD40054 -7CA53214 1C75000C -386300DC 7C611A14 -7C982A14 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -3A940001 3AB50001 -2C140003 4180FEC4 -2C1C0000 41820008 -935B0919 48000080 -807B00E0 7C1A1800 -40810024 BA810008 -800100B4 382100B0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 807B00E0 -7C7A1850 38630001 -889B00E4 7C632051 -40800008 3863000E -1C63000C 388300E5 -887B0000 1C63000C -386300DC 7C611A14 -7C9B2214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -4BFFFE2C 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 -7C0803A6 2C1E0000 -60000000 00000000 +7C86D8AE 38D4039C +7C66D8AE 2C030001 +4182003C 1CD40004 +38C60390 7F46D92E +38600001 38D4039C +7C66D9AE 38D4018D +7EC6D9AE 887B038B +2C030001 41820010 +935B038C 38600001 +987B038B 38600000 +1C63000C 38A3002A +1CD40054 7CA53214 +1C75000C 386300DC +7C611A14 7C982A14 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 3A940001 +3AB50001 2C140003 +4180FEC4 2C1C0000 +41820008 935B0919 +48000080 807B00E0 +7C1A1800 40810024 +BA810008 800100B4 +382100B0 7C0803A6 +3D808037 618C6CEC +7D8903A6 4E800420 +807B00E0 7C7A1850 +38630001 889B00E4 +7C632051 40800008 +3863000E 1C63000C +388300E5 887B0000 +1C63000C 386300DC +7C611A14 7C9B2214 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 4BFFFE2C +3B5A0001 935B0003 +BA810008 800100B4 +382100B0 7C0803A6 +2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -4812,7 +4848,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001EF #Online/Slippi Online Scene/main.asm +C21A45B8 000001F0 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF50 BE810008 3C80803E @@ -4823,7 +4859,7 @@ BE810008 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F0C 80830000 +48000F14 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4855,8 +4891,8 @@ BE810008 3C80803E BE810008 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B29 -7C6802A6 90640016 +7C8802A6 48000B31 +7C6802A6 90640017 3D808000 618C56B8 7D8903A6 4E800421 7C741B78 3D808000 @@ -4890,11 +4926,11 @@ BA810008 800100B4 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005B1 -480008ED 20000000 +04030000 480005B9 +480008F5 20000000 80490880 804D68D0 -05030000 48000C01 -48000C41 50000000 +05030000 48000C09 +48000C49 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4930,10 +4966,10 @@ BE810008 7C7E1B78 2C030003 41820064 48000090 4BFFFF09 7F6802A6 7F63DB78 -3880001A 3D808000 +3880001B 3D808000 618CC160 7D8903A6 -4E800421 480008C1 -7C6802A6 907B0016 +4E800421 480008C9 +7C6802A6 907B0017 38600003 987B0000 38600001 987B0001 38600000 987B0005 @@ -4946,7 +4982,7 @@ BE810008 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000769 3C808047 +48000771 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -4974,7 +5010,7 @@ BE810008 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000689 3C808047 +48000691 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -4990,15 +5026,16 @@ BE810008 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 40820100 +2C030000 40820108 887F0000 2C030000 -418200F4 480006E5 +418200FC 4BFFFD09 +7F6802A6 3C808046 +6084B6A0 88640008 +987B0016 480006D5 7C7C1B78 2C1C0000 -4080001C 4BFFFCF9 -7CC802A6 88660005 -38630001 98660005 -48000068 4BFFFCE1 -7F6802A6 9B9B0004 +40800014 887B0005 +38630001 987B0005 +48000060 9B9B0004 889B0001 38840005 7F9B21AE 387C0002 7C9B18AE 38A40001 @@ -5789,7 +5826,7 @@ BE810008 4BFFFCA9 800100B4 382100B0 7C0803A6 4E800020 60000000 00000000 -043775B0 7C600775 #Online/Logging/LogInputOnCopy.asm +043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm 041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] 0401985C 3C60804C 04019860 91231F5C diff --git a/netplay.json b/netplay.json index 40a980f0..e486a5c2 100644 --- a/netplay.json +++ b/netplay.json @@ -325,7 +325,7 @@ }, { "type": "injectFolder", - "sourceFolder": "Online/Logging", + "sourceFolder": "Online/Debugging", "isRecursive": true, "annotation": "Log injections [Fizzi]" }, From f114e824fa3b9fbba9b2801c652c8c95f7d92335 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Fri, 26 Aug 2022 02:45:28 -0400 Subject: [PATCH 114/217] Ignore vscode --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 8b3b3c8d..fa302cb2 100644 --- a/.gitignore +++ b/.gitignore @@ -219,6 +219,8 @@ pip-log.txt .idea/ +.vscode + Output/Netplay/install.bat Output/Netplay/build-netplay.bat - Shortcut.lnk Output/Playback/install.bat From 976f343ae04f113b94671d9cca097fda211ff0b3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 26 Aug 2022 15:28:45 -0400 Subject: [PATCH 115/217] fix panic handler error --- .../CompatibilityHooks/{ => WithMexBase}/GetFighterNum.asm | 0 Online/Slippi Online Scene/main.asm | 2 +- Output/Netplay/GALE01r2.ini | 3 +++ Output/Netplay/GALJ01r2.ini | 3 +++ Output/Playback/GALE01r2.ini | 6 +++--- Output/Playback/GALJ01r2.ini | 6 +++--- netplay.json | 6 ++++++ 7 files changed, 19 insertions(+), 7 deletions(-) rename Common/CompatibilityHooks/{ => WithMexBase}/GetFighterNum.asm (100%) diff --git a/Common/CompatibilityHooks/GetFighterNum.asm b/Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm similarity index 100% rename from Common/CompatibilityHooks/GetFighterNum.asm rename to Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index c9dc9593..1370b4aa 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -608,7 +608,7 @@ lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) addi r3, r3, 1 stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) -# Go to the game prep scene, with is tiebreak set to true, it will start a new game +# Go to the game prep scene, when tiebreak num is greater than zero it will redirect to game b VSSceneDecide_MoveToGamePrep VSSceneDecide_SkipTieHandler: diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 18939973..3df4598d 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5859,6 +5859,9 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 C2068B40 00000030 #m-ex codeset 7C0802A6 90010004 9421FF00 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 669a4274..7088063d 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5859,6 +5859,9 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 C2068B40 00000030 #m-ex codeset 7C0802A6 90010004 9421FF00 BE810008 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 1a7ef272..166e81dd 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -895,9 +895,6 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 -C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm 2C030001 41820018 3C60803B 6063B3C0 @@ -912,6 +909,9 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 38800001 1C630004 7C83612E 4E800020 60000000 00000000 +C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 $Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337] *Show players' Slippi Online display names as HUD elements when available diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index efa44322..edd17c93 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -895,9 +895,6 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 -C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm 2C030001 41820018 3C60803B 6063B3C0 @@ -912,6 +909,9 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 38800001 1C630004 7C83612E 4E800020 60000000 00000000 +C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 $Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337] *Show players' Slippi Online display names as HUD elements when available diff --git a/netplay.json b/netplay.json index e486a5c2..7f682d9a 100644 --- a/netplay.json +++ b/netplay.json @@ -340,6 +340,12 @@ "isRecursive": true, "annotation": "Functions for supporting FFW [Fizzi, Unclepunch]" }, + { + "type": "injectFolder", + "sourceFolder": "Common/CompatibilityHooks/WithMexBase", + "isRecursive": true, + "annotation": "Our m-ex binary does not include these hooks, so we have to" + }, { "type": "binary", "sourceFile": "Binary/m-ex.bin", From 56c82f80682802c5573081d209cee920fd01fe21 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Fri, 26 Aug 2022 12:34:14 -0700 Subject: [PATCH 116/217] ci: check build always it costs us nothing so why not --- .github/workflows/build_check.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml index 0cbaecc9..15cecce3 100644 --- a/.github/workflows/build_check.yml +++ b/.github/workflows/build_check.yml @@ -2,13 +2,9 @@ name: Build Check on: push: - paths-ignore: - - "**.md" branches: - "**" pull_request: - paths-ignore: - - "**.md" branches: - "**" From 400dfe0b8a5466fa2d029cd22a1cc83c51f54c8f Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 26 Aug 2022 17:37:05 -0400 Subject: [PATCH 117/217] update annotation --- netplay.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netplay.json b/netplay.json index 7f682d9a..6746ae59 100644 --- a/netplay.json +++ b/netplay.json @@ -349,7 +349,7 @@ { "type": "binary", "sourceFile": "Binary/m-ex.bin", - "annotation": "m-ex codeset" + "annotation": "m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi" }, { "type": "injectFolder", From 1c3b2c8efff5af18194a54acfb026b6903b28afa Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 26 Aug 2022 18:13:48 -0400 Subject: [PATCH 118/217] build codeset --- Output/Netplay/GALE01r2.ini | 2 +- Output/Netplay/GALJ01r2.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index c5e1ee6a..bd05492d 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5862,7 +5862,7 @@ BB010028 00000000 C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm 38600021 4E800020 60000000 00000000 -C2068B40 00000030 #m-ex codeset +C2068B40 00000030 #m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi 7C0802A6 90010004 9421FF00 BE810008 3B400000 839F0004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8183b007..cec07159 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5862,7 +5862,7 @@ BB010028 00000000 C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm 38600021 4E800020 60000000 00000000 -C2068B40 00000030 #m-ex codeset +C2068B40 00000030 #m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi 7C0802A6 90010004 9421FF00 BE810008 3B400000 839F0004 From 35625a6166c07913fed1ef1be0bd050802d750d5 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 27 Aug 2022 02:21:55 -0400 Subject: [PATCH 119/217] add float backup/restore macro fix bug where non-volatile floating point registers were not being restored --- Common/Common.s | 137 +++++++++++++++++++++++++++++ Online/Static/SubtextFunctions.asm | 72 ++++++++------- Output/Netplay/GALE01r2.ini | 76 +++++++++------- Output/Netplay/GALJ01r2.ini | 76 +++++++++------- 4 files changed, 265 insertions(+), 96 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index e722493b..c4662506 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -95,6 +95,143 @@ lmw r20,0x8(r1) mtlr r0 .endm +.set F_BKP_FREE_SPACE_OFFSET, 0xE0 # This is where the free space in our stack starts + +# fbackup can be used to backup/restore float registers and also does normal registers from r14 +# instead of normal backup for which registers 14-19 are unsafe to use +.macro fbackup num_freg=0, free_space=0x10 +mflr r0 +stw r0, 0x4(r1) +# Stack allocation has to be 4-byte aligned otherwise it crashes on console +.if \free_space % 4 == 0 + stwu r1,-(F_BKP_FREE_SPACE_OFFSET + \free_space)(r1) # make space for 12 registers +.else + stwu r1,-(F_BKP_FREE_SPACE_OFFSET + \free_space + (4 - \free_space % 4))(r1) # make space for 12 registers +.endif +stmw r14,0x8(r1) +.if \num_freg > 0 + stfd f31, 0x50(r1) +.endif +.if \num_freg > 1 + stfd f30, 0x58(r1) +.endif +.if \num_freg > 2 + stfd f29, 0x60(r1) +.endif +.if \num_freg > 3 + stfd f28, 0x68(r1) +.endif +.if \num_freg > 4 + stfd f27, 0x70(r1) +.endif +.if \num_freg > 5 + stfd f26, 0x78(r1) +.endif +.if \num_freg > 6 + stfd f25, 0x80(r1) +.endif +.if \num_freg > 7 + stfd f24, 0x88(r1) +.endif +.if \num_freg > 8 + stfd f23, 0x90(r1) +.endif +.if \num_freg > 9 + stfd f22, 0x98(r1) +.endif +.if \num_freg > 10 + stfd f21, 0xA0(r1) +.endif +.if \num_freg > 11 + stfd f20, 0xA8(r1) +.endif +.if \num_freg > 12 + stfd f19, 0xB0(r1) +.endif +.if \num_freg > 13 + stfd f18, 0xB8(r1) +.endif +.if \num_freg > 14 + stfd f17, 0xC0(r1) +.endif +.if \num_freg > 15 + stfd f16, 0xC8(r1) +.endif +.if \num_freg > 16 + stfd f15, 0xD0(r1) +.endif +.if \num_freg > 17 + stfd f14, 0xD8(r1) +.endif +.endm + +.macro frestore num_freg=0, free_space=0x10 +lmw r14,0x8(r1) +.if \num_freg > 0 + lfd f31, 0x50(r1) +.endif +.if \num_freg > 1 + lfd f30, 0x58(r1) +.endif +.if \num_freg > 2 + lfd f29, 0x60(r1) +.endif +.if \num_freg > 3 + lfd f28, 0x68(r1) +.endif +.if \num_freg > 4 + lfd f27, 0x70(r1) +.endif +.if \num_freg > 5 + lfd f26, 0x78(r1) +.endif +.if \num_freg > 6 + lfd f25, 0x80(r1) +.endif +.if \num_freg > 7 + lfd f24, 0x88(r1) +.endif +.if \num_freg > 8 + lfd f23, 0x90(r1) +.endif +.if \num_freg > 9 + lfd f22, 0x98(r1) +.endif +.if \num_freg > 10 + lfd f21, 0xA0(r1) +.endif +.if \num_freg > 11 + lfd f20, 0xA8(r1) +.endif +.if \num_freg > 12 + lfd f19, 0xB0(r1) +.endif +.if \num_freg > 13 + lfd f18, 0xB8(r1) +.endif +.if \num_freg > 14 + lfd f17, 0xC0(r1) +.endif +.if \num_freg > 15 + lfd f16, 0xC8(r1) +.endif +.if \num_freg > 16 + lfd f15, 0xD0(r1) +.endif +.if \num_freg > 17 + lfd f14, 0xD8(r1) +.endif +# Stack allocation has to be 4-byte aligned otherwise it crashes on console +.if \free_space % 4 == 0 + lwz r0, (F_BKP_FREE_SPACE_OFFSET + 0x4 + \free_space)(r1) + addi r1,r1,F_BKP_FREE_SPACE_OFFSET + \free_space # release the space +.else + lwz r0, (F_BKP_FREE_SPACE_OFFSET + 0x4 + \free_space + (4 - \free_space % 4))(r1) + addi r1,r1,F_BKP_FREE_SPACE_OFFSET + \free_space + (4 - \free_space % 4) # release the space +.endif +mtlr r0 +.endm + .macro byteAlign32 reg addi \reg, \reg, 31 rlwinm \reg, \reg, 0, 0xFFFFFFE0 diff --git a/Online/Static/SubtextFunctions.asm b/Online/Static/SubtextFunctions.asm index 5b6ff753..1943d3b4 100644 --- a/Online/Static/SubtextFunctions.asm +++ b/Online/Static/SubtextFunctions.asm @@ -38,16 +38,27 @@ .set REG_TEXT_ID, REG_USE_SLIPPI_ID + 1 # float registers -.set REG_SCALE, REG_TEXT_STRUCT_ADDR -.set REG_X, REG_SCALE+1 -.set REG_Y, REG_X+1 -.set REG_Z, REG_Y + 1 -.set REG_OUTLINE_SIZE, REG_Z+1 -.set REG_OUTLINE_OFFSET, REG_OUTLINE_SIZE+1 # outlines offsets to create size +.set REG_SCALE, 31 +.set REG_X, REG_SCALE-1 +.set REG_Y, REG_X-1 +.set REG_Z, REG_Y-1 +.set REG_OUTLINE_SIZE, REG_Z-1 +.set REG_OUTLINE_OFFSET, REG_OUTLINE_SIZE-1 # outlines offsets to create size .set REG_LOOP_INDEX, 15 .set TEXT_LAST_INDEX, 0 +# Stack pointer offsets +.set SPO_STRING_PTR_1, F_BKP_FREE_SPACE_OFFSET +.set SPO_STRING_PTR_2, SPO_STRING_PTR_1 + 4 +.set SPO_STRING_PTR_3, SPO_STRING_PTR_2 + 4 +.set SPO_STRING_PTR_4, SPO_STRING_PTR_3 + 4 +.set SPO_STRING_PTR_5, SPO_STRING_PTR_4 + 4 +.set SPO_STRING_PTR_6, SPO_STRING_PTR_5 + 4 + +# Request an extra 0x10. It shouldn't be required but im scared of grabbing the exact amount +.set STACK_SPACE_NEEDED, 0x10 + (SPO_STRING_PTR_6 + 4) - F_BKP_FREE_SPACE_OFFSET + # check which function to run cmpwi r5, 2 beq FN_CREATE_PREMADE_TEXT @@ -56,7 +67,8 @@ beq FN_CREATE_PREMADE_TEXT # FN_CREATE_SUBTEXT ################################################################################ FN_CREATE_SUBTEXT: -backup + +fbackup 6, STACK_SPACE_NEEDED # Save arguments mr REG_TEXT_STRUCT_ADDR, r3 @@ -65,12 +77,12 @@ mr REG_OUTLINE, r5 mr REG_OUTLINE_COLOR_ADDR, r6 # Save string pointers -stw r7,0x38(sp) -stw r8,0x3C(sp) -stw r9,0x40(sp) -stw r10,0x44(sp) -stw r11,0x48(sp) -stw r12,0x4C(sp) +stw r7,SPO_STRING_PTR_1(sp) +stw r8,SPO_STRING_PTR_2(sp) +stw r9,SPO_STRING_PTR_3(sp) +stw r10,SPO_STRING_PTR_4(sp) +stw r11,SPO_STRING_PTR_5(sp) +stw r12,SPO_STRING_PTR_6(sp) fmr REG_SCALE, f1 fmr REG_X, f2 @@ -118,7 +130,7 @@ b TEXT_LOOP_INITIALIZE_SUBTEXT TEXT_LOOP_INITIALIZE_SUBTEXT: # Initialize subtext mr r3, REG_TEXT_STRUCT_ADDR -lwz r4, 0x38(sp) +lwz r4, SPO_STRING_PTR_1(sp) branchl r12, Text_InitializeSubtext mr REG_SUBTEXT_INDEX, r3 # SubText Index @@ -152,12 +164,12 @@ branchl r12, Text_ChangeTextColor # Update text with passed format if any mr r3, REG_TEXT_STRUCT_ADDR mr r4, REG_SUBTEXT_INDEX -lwz r5,0x38(sp) -lwz r6,0x3C(sp) -lwz r7,0x40(sp) -lwz r8,0x44(sp) -lwz r9,0x48(sp) -lwz r10,0x4C(sp) +lwz r5,SPO_STRING_PTR_1(sp) +lwz r6,SPO_STRING_PTR_2(sp) +lwz r7,SPO_STRING_PTR_3(sp) +lwz r8,SPO_STRING_PTR_4(sp) +lwz r9,SPO_STRING_PTR_5(sp) +lwz r10,SPO_STRING_PTR_6(sp) branchl r12, Text_UpdateSubtextContents # if reached last index, then end the loop, else increment and go back @@ -176,7 +188,7 @@ b FN_CREATE_SUBTEXT_END INIT_SINGLE_TEXT_START: # Initialize subtext mr r3, REG_TEXT_STRUCT_ADDR -lwz r4,0x38(sp) +lwz r4,SPO_STRING_PTR_1(sp) fmr f1, REG_X fmr f2, REG_Y branchl r12, Text_InitializeSubtext @@ -199,12 +211,12 @@ FN_CREATE_SUBTEXT_UPDATE_TEXT: # Update text with passed format if any mr r3, REG_TEXT_STRUCT_ADDR mr r4, REG_SUBTEXT_INDEX -lwz r5,0x38(sp) -lwz r6,0x3C(sp) -lwz r7,0x40(sp) -lwz r8,0x44(sp) -lwz r9,0x48(sp) -lwz r10,0x4C(sp) +lwz r5,SPO_STRING_PTR_1(sp) +lwz r6,SPO_STRING_PTR_2(sp) +lwz r7,SPO_STRING_PTR_3(sp) +lwz r8,SPO_STRING_PTR_4(sp) +lwz r9,SPO_STRING_PTR_5(sp) +lwz r10,SPO_STRING_PTR_6(sp) branchl r12, Text_UpdateSubtextContents INIT_SINGLE_TEXT_END: @@ -212,14 +224,14 @@ FN_CREATE_SUBTEXT_END: # Return subtext index mr r3, REG_SUBTEXT_INDEX -restore +frestore 6, STACK_SPACE_NEEDED blr ################################################################################ # FN_CREATE_PREMADE_TEXT ################################################################################ FN_CREATE_PREMADE_TEXT: -backup +fbackup 4 # Save arguments mr REG_TEXT_ID, r3 @@ -267,7 +279,7 @@ branchl r12, Text_CopyPremadeTextDataToStruct # return text struct address mr r3, REG_TEXT_STRUCT_ADDR -restore +frestore 4 blr ################################################################################ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index bd05492d..c260a68c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5586,20 +5586,23 @@ C2005608 00000016 #Online/Static/SaveState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 -C20056B4 00000059 #Online/Static/SubtextFunctions.asm -2C050002 418201F8 +C20056B4 00000063 #Online/Static/SubtextFunctions.asm +2C050002 41820228 7C0802A6 90010004 -9421FF50 BE810008 +9421FEF8 BDC10008 +DBE10050 DBC10058 +DBA10060 DB810068 +DB610070 DB410078 7C751B78 7C962378 7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C -FEA00890 FEC01090 -FEE01890 FF202890 +90E100E0 910100E4 +912100E8 914100EC +916100F0 918100F4 +FFE00890 FFC01090 +FFA01890 FF602890 FF403090 2C180001 418000FC 39E00004 -FC20B090 FC40B890 +FC20F090 FC40E890 2C0F0001 41820020 2C0F0002 41820020 2C0F0003 41820020 @@ -5609,11 +5612,11 @@ FC20B090 FC40B890 48000014 EC42D028 4800000C EC42D02A 48000004 7EA3AB78 -80810038 3D80803A +808100E0 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 -FC20A890 FC40A890 +FC20F890 FC40F890 3D80803A 618C7548 7D8903A6 4E800421 7F25CB78 2C0F0000 @@ -5622,44 +5625,49 @@ FC20A890 FC40A890 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C +80A100E0 80C100E4 +80E100E8 810100EC +812100F0 814100F4 3D80803A 618C70A0 7D8903A6 4E800421 2C0F0000 4182000C 39EFFFFF 4BFFFF14 48000094 7EA3AB78 -80810038 FC20B090 -FC40B890 3D80803A +808100E0 FC20F090 +FC40E890 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 -FC20A890 FC40A890 +FC20F890 FC40F890 3D80803A 618C7548 7D8903A6 4E800421 7EA3AB78 7EE4BB78 7EC5B378 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A +7EE4BB78 80A100E0 +80C100E4 80E100E8 +810100EC 812100F0 +814100F4 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA810008 800100B4 -382100B0 7C0803A6 +B9C10008 CBE10050 +CBC10058 CBA10060 +CB810068 CB610070 +CB410078 8001010C +38210108 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 +90010004 9421FF10 +BDC10008 DBE10050 +DBC10058 DBA10060 +DB810068 7C7D1B78 7C9C2378 7CDB3378 -FEC00890 FEE01090 -FF001890 FEA02090 -4800008D 7F4802A6 +FFC00890 FFA01090 +FF801890 FFE02090 +4800009D 7F4802A6 38600000 7F64DB78 -C01A0000 FC20B090 -FC40B890 FC60C090 +C01A0000 FC20F090 +FC40E890 FC60E090 C09A0004 C0BA0008 3D80803A 618C5ACC 7D8903A6 4E800421 @@ -5667,12 +5675,14 @@ C09A0004 C0BA0008 41820010 38600001 986DAFEC 7F86E378 7EA3AB78 7FA4EB78 -FC00A890 D0030024 +FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -BA810008 800100B4 -382100B0 7C0803A6 +B9C10008 CBE10050 +CBC10058 CBA10060 +CB810068 800100F4 +382100F0 7C0803A6 4E800020 4E800021 41100000 44160000 41A00000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index cec07159..8fbf2c74 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5586,20 +5586,23 @@ C2005608 00000016 #Online/Static/SaveState.asm BA810008 800100B4 382100B0 7C0803A6 4E800020 00000000 -C20056B4 00000059 #Online/Static/SubtextFunctions.asm -2C050002 418201F8 +C20056B4 00000063 #Online/Static/SubtextFunctions.asm +2C050002 41820228 7C0802A6 90010004 -9421FF50 BE810008 +9421FEF8 BDC10008 +DBE10050 DBC10058 +DBA10060 DB810068 +DB610070 DB410078 7C751B78 7C962378 7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C -FEA00890 FEC01090 -FEE01890 FF202890 +90E100E0 910100E4 +912100E8 914100EC +916100F0 918100F4 +FFE00890 FFC01090 +FFA01890 FF602890 FF403090 2C180001 418000FC 39E00004 -FC20B090 FC40B890 +FC20F090 FC40E890 2C0F0001 41820020 2C0F0002 41820020 2C0F0003 41820020 @@ -5609,11 +5612,11 @@ FC20B090 FC40B890 48000014 EC42D028 4800000C EC42D02A 48000004 7EA3AB78 -80810038 3D80803A +808100E0 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 -FC20A890 FC40A890 +FC20F890 FC40F890 3D80803A 618C7548 7D8903A6 4E800421 7F25CB78 2C0F0000 @@ -5622,44 +5625,49 @@ FC20A890 FC40A890 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C +80A100E0 80C100E4 +80E100E8 810100EC +812100F0 814100F4 3D80803A 618C70A0 7D8903A6 4E800421 2C0F0000 4182000C 39EFFFFF 4BFFFF14 48000094 7EA3AB78 -80810038 FC20B090 -FC40B890 3D80803A +808100E0 FC20F090 +FC40E890 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 -FC20A890 FC40A890 +FC20F890 FC40F890 3D80803A 618C7548 7D8903A6 4E800421 7EA3AB78 7EE4BB78 7EC5B378 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A +7EE4BB78 80A100E0 +80C100E4 80E100E8 +810100EC 812100F0 +814100F4 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA810008 800100B4 -382100B0 7C0803A6 +B9C10008 CBE10050 +CBC10058 CBA10060 +CB810068 CB610070 +CB410078 8001010C +38210108 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 +90010004 9421FF10 +BDC10008 DBE10050 +DBC10058 DBA10060 +DB810068 7C7D1B78 7C9C2378 7CDB3378 -FEC00890 FEE01090 -FF001890 FEA02090 -4800008D 7F4802A6 +FFC00890 FFA01090 +FF801890 FFE02090 +4800009D 7F4802A6 38600000 7F64DB78 -C01A0000 FC20B090 -FC40B890 FC60C090 +C01A0000 FC20F090 +FC40E890 FC60E090 C09A0004 C0BA0008 3D80803A 618C5ACC 7D8903A6 4E800421 @@ -5667,12 +5675,14 @@ C09A0004 C0BA0008 41820010 38600001 986DAFEC 7F86E378 7EA3AB78 7FA4EB78 -FC00A890 D0030024 +FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -BA810008 800100B4 -382100B0 7C0803A6 +B9C10008 CBE10050 +CBC10058 CBA10060 +CB810068 800100F4 +382100F0 7C0803A6 4E800020 4E800021 41100000 44160000 41A00000 00000000 From e51fbac4cdc96fb12d8afdfcd11627f27927806f Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sat, 27 Aug 2022 02:41:59 -0400 Subject: [PATCH 120/217] Refactor usage of non-volatile float registers so they are properly backed up and restored + Use a stack pointer on INIT_LINE_SUBTEXT (LoadCSSText.asm) since it's just a single float --- Online/Menus/CSS/LoadCSSText.asm | 14 +++++++++----- Online/Menus/CSS/Teams/InitTeamToggleButton.asm | 3 +++ Online/Menus/TitleMenu/OnMenuPrep.asm | 9 +++++++-- Online/Menus/VSScreen/InitVsSplash.asm | 3 +++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index b1fc974b..f1f97835 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -385,9 +385,9 @@ b EXIT # Expects f3 to be set to y position of line ################################################################################ INIT_LINE_SUBTEXT: +.set SP_OFST_Y_POS, 0x38 backup - -fmr f13, f3 +stfs f3, SP_OFST_Y_POS(sp) # Init line text mr r3, REG_TEXT_STRUCT @@ -405,7 +405,7 @@ addi r4, REG_TEXT_PROPERTIES, TPO_COLOR_WHITE li r5, 0 lfs f1, TPO_SPINNER_SIZE(REG_TEXT_PROPERTIES) lfs f2, TPO_HEADER_X(REG_TEXT_PROPERTIES) -fmr f3, f13 +lfs f3, SP_OFST_Y_POS(sp) addi r7, REG_TEXT_PROPERTIES, TPO_EMPTY_STRING branchl r12, FG_CreateSubtext @@ -1160,8 +1160,8 @@ blr .set REG_CHATMSG_MSG_STRING_ADDR, REG_CHATMSG_MSG_TEXT_STRUCT_ADDR+1 .set REG_CHATMSG_PLAYER_INDEX, REG_CHATMSG_MSG_STRING_ADDR+1 # float registers -.set REG_CHATMSG_TEXT_X_POS, REG_CHATMSG_GOBJ -.set REG_CHATMSG_TEXT_Y_POS, REG_CHATMSG_TEXT_X_POS+1 +.set REG_CHATMSG_TEXT_X_POS, 31 +.set REG_CHATMSG_TEXT_Y_POS, REG_CHATMSG_TEXT_X_POS-1 # offsets .set JOBJ_OFFSET, 0x28 # offset from GOBJ to HSD Object (Jobj we assigned) @@ -1170,6 +1170,7 @@ CSS_ONLINE_CHAT_THINK: blrl mr REG_CHATMSG_GOBJ, r3 # Store GOBJ pointer backup +fbackup 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -1384,6 +1385,9 @@ li r3, 0 stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index CSS_ONLINE_CHAT_CHECK_EXIT: + + +frestore 2 restore blr diff --git a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm index b28bf68c..e6f2c517 100644 --- a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm +++ b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm @@ -76,6 +76,7 @@ INIT_BUTTON: .set REG_ICON_JOBJ, 21 .set REG_DATA_BUFFER, 23 backup +fbackup 2 loadwz REG_CSSDT_ADDR, CSSDT_BUF_ADDR @@ -225,6 +226,8 @@ lwz r3, 0x08(r3) # offset to Dobj's mobj fmr f1, REG_F_0 # float 0.0 branchl r12, 0x80363C2C # HSD_MObjSetAlpha(mobj, float alpha) + +frestore 2 restore b EXIT ################################################################################ diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index 92cb3676..a173e049 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -26,8 +26,8 @@ .set REG_JOBJ_DESC_SHAPE_JOINT_ADDR, REG_JOBJ_DESC_MAT_JOINT_ADDR+1 # float registers -.set REG_F_0, 22 -.set REG_F_1, 23 +.set REG_F_0, 31 +.set REG_F_1, 30 # Dialog Constants .set DLG_JOBJ_OFFSET, 0x28 # offset from GOBJ to HSD Object (Jobj we assigned) @@ -524,6 +524,7 @@ blrl FN_CREATE_DIALOG: backup +fbackup 2 # load jobjects in memory lwz r3, archiveDataBuffer(r13) @@ -683,6 +684,7 @@ mflr r4 # Function li r5, 15 # Priority branchl r12, GObj_AddProc +frestore 2 restore blr @@ -695,6 +697,7 @@ blr FN_LogoutDialogThink: #801978fc blrl backup +fbackup 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -847,6 +850,8 @@ b FN_LogoutDialogThink_Exit FN_LogoutDialogThink_Exit: + +frestore 2 restore blr diff --git a/Online/Menus/VSScreen/InitVsSplash.asm b/Online/Menus/VSScreen/InitVsSplash.asm index f2d978dd..76755d9f 100644 --- a/Online/Menus/VSScreen/InitVsSplash.asm +++ b/Online/Menus/VSScreen/InitVsSplash.asm @@ -22,6 +22,7 @@ .set REG_LABEL_STRING, 20 .set REG_CUR_SUBTEXT_IDX, 21 +# float registers .set REG_POS_X_START, 31 .set REG_POS_Y_START, 30 @@ -282,6 +283,7 @@ b EXIT ################################################################################ INIT_PLAYER_TEXT: backup +fbackup 1 fmr REG_POS_X_START, f1 mr REG_LABEL_COLOR, r3 @@ -349,6 +351,7 @@ blt INIT_PLAYER_NAME_LOOP_START INIT_PLAYER_TEXT_EXIT: +frestore 1 restore blr From ba1be474c2f7ba2c0ae880c1e87ca2f698816e9b Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sat, 27 Aug 2022 02:42:28 -0400 Subject: [PATCH 121/217] build codeset --- Output/Netplay/GALE01r2.ini | 189 +++++++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 189 +++++++++++++++++++++--------------- 2 files changed, 218 insertions(+), 160 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index c260a68c..ae31b87b 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2790,10 +2790,10 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001DE #Online/Menus/CSS/LoadCSSText.asm +C2264534 000001E4 #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820ED4 480001F8 +40820F04 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2930,10 +2930,10 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000A88 +7C0803A6 48000AB8 7C0802A6 90010004 9421FF50 BE810008 -FDA01890 7F83E378 +D0610038 7F83E378 389D0090 38A00000 C03D0068 C05D0048 38FD0098 3D808000 @@ -2941,7 +2941,7 @@ C03D0068 C05D0048 4E800421 7F83E378 389D0090 38A00000 C03D0080 C05D003C -FC606890 38FD0098 +C0610038 38FD0098 3D808000 618C56B4 7D8903A6 4E800421 BA810008 800100B4 @@ -2999,7 +2999,7 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800082D 887E000A +4800085D 887E000A 2C030000 4182001C 3B1E0015 7C791B78 887C0018 38630001 @@ -3064,15 +3064,15 @@ BA810008 800100B4 2C030004 4182000C 38BD0098 48000008 38BD017C 38800009 -48000625 887E0000 +48000655 887E0000 2C030004 4182000C 38BD0098 48000008 38BE00B0 3880000A -48000605 887E0000 +48000635 887E0000 2C030004 4182000C 38BD0098 48000008 38BD0185 38800008 -480005E5 887E0000 +48000615 887E0000 2C030004 41820034 2C030005 41820020 2C030000 4181000C @@ -3081,16 +3081,16 @@ BA810008 800100B4 48000018 38BD0197 38DD01C4 4800000C 38BD01A5 38DD01B2 -38800007 48000599 +38800007 480005C9 3B600001 7F64DB78 -38BD0098 48000589 +38BD0098 480005B9 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 38BD0098 -48000555 3B7B0001 +48000585 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 3B60000B @@ -3106,7 +3106,7 @@ BA810008 800100B4 41810008 4800002C 38800000 7C96B9AE 7F64DB78 7EC5B378 -480004D5 3B7B0001 +48000505 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 @@ -3117,9 +3117,9 @@ BA810008 800100B4 3B600001 886DB657 7F64DB78 2C030000 40820018 38BD00BE -4800047D 38600001 +480004AD 38600001 987C000C 48000134 -38BD00D4 48000469 +38BD00D4 48000499 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 @@ -3137,9 +3137,9 @@ BA810008 800100B4 38DD010C 886DAFA0 2C030002 4180000C 38BD00E7 38DD0101 -480003DD 38600001 +4800040D 38600001 987C000D 48000094 -38BD0120 480003C9 +38BD0120 480003F9 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 @@ -3155,7 +3155,7 @@ BA810008 800100B4 2C0B0000 41820018 38BD013B 38DD0163 4800000C 38BD014C -38DD015A 48000349 +38DD015A 48000379 38600001 987C000E 3B20000C 3B600002 7C7CC8AE 2C030001 @@ -3163,19 +3163,19 @@ BA810008 800100B4 3880000F 7C632396 1C630003 386301D0 7CBD1A14 7F64DB78 -4800030D 7F43D378 +4800033D 7F43D378 7F64DB78 38BD0088 3D80803A 618C74F0 7D8903A6 4E800421 48000044 2C030002 40820030 7F64DB78 -38BD01D6 480002D9 +38BD01D6 48000309 7F43D378 7F64DB78 38BD0084 3D80803A 618C74F0 7D8903A6 4E800421 48000010 7F64DB78 38BD0098 -480002AD 3B7B0002 +480002DD 3B7B0002 3B390001 2C19000E 4081FF68 A07C000F 38630001 2C03001E @@ -3186,7 +3186,10 @@ B07C000F BA810008 4E800021 7C6E1B78 7C0802A6 90010004 9421FF50 BE810008 -4BFFF3C1 7FA802A6 +7C0802A6 90010004 +9421FF10 BDC10008 +DBE10050 DBC10058 +4BFFF3A9 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 82B00004 @@ -3208,7 +3211,7 @@ D04F003C 2C120000 618C55F4 7D8903A6 4E800421 C05D0030 C07D0008 EC6100F2 -EC42182A FDE01090 +EC42182A FFC01090 806DC2DC 38800003 9883000E C03D002C 886DAFE0 2C030000 @@ -3258,6 +3261,9 @@ C07D0034 C09D0038 38840001 7C032000 41820008 4800000C 38600000 987C0019 +B9C10008 CBE10050 +CBC10058 800100F4 +382100F0 7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 @@ -3411,7 +3417,7 @@ C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm BA810008 800100B4 382100B0 7C0803A6 387C0000 00000000 -C22652F4 000000B6 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm +C22652F4 000000BC #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 48000030 4E800021 01C02000 00C0A000 00C1BC00 00C18C00 @@ -3420,12 +3426,15 @@ C22652F4 000000B6 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 003DCCCC CD000000 3C608048 80639D30 5463443E 2C030008 -40820550 888DAFA0 -2C040003 40820544 +40820580 888DAFA0 +2C040003 40820574 7C0802A6 90010004 9421FF50 BE810008 +7C0802A6 90010004 +9421FF10 BDC10008 +DBE10050 DBC10058 3FC08000 63DE5614 -83DE0000 4BFFFF99 +83DE0000 4BFFFF81 7FE802A6 C3FF0011 C3DF0015 38600004 3D808037 618CF1E4 @@ -3475,10 +3484,10 @@ FC20F890 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7E83A378 -480000B5 7C8802A6 +480000CD 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 -4E800421 480001F9 +4E800421 48000211 806DB620 38810034 38A0002B 38C0FFFF 3D808001 618C1E24 @@ -3495,6 +3504,9 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 +B9C10008 CBE10050 +CBC10058 800100F4 +382100F0 7C0803A6 BA810008 800100B4 382100B0 7C0803A6 480002E8 4E800021 @@ -3506,7 +3518,7 @@ BA810008 800100B4 63DE5614 83DE0000 807E0000 88630001 2C030000 4082007C -4BFFFD15 7FE802A6 +4BFFFCE5 7FE802A6 3BA00000 3C80804A 60840BC0 80840000 C024000C C0440010 @@ -4270,7 +4282,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 0000016F #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4295,7 +4307,7 @@ C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A4C 4E800021 +48000AAC 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4464,7 +4476,10 @@ A09C0000 3D808022 0647064B 06480649 064A0000 7C0802A6 90010004 9421FF50 -BE810008 806DB518 +BE810008 7C0802A6 +90010004 9421FF10 +BDC10008 DBE10050 +DBC10058 806DB518 3C80803E 6084FA0C 3D808038 618C0358 7D8903A6 4E800421 @@ -4480,9 +4495,9 @@ BE810008 806DB518 3C80803E 6084FA60 3D808038 618C0358 7D8903A6 4E800421 -7C7D1B78 48000465 -7FC802A6 C2DE0010 -C2FE0014 3AC00016 +7C7D1B78 480004AD +7FC802A6 C3FE0010 +C3DE0014 3AC00016 7EC3B378 3D808037 618CF1E4 7D8903A6 4E800421 7C771B78 @@ -4520,7 +4535,7 @@ C2FE0014 3AC00016 7FA6EB78 3D808036 618CFB5C 7D8903A6 4E800421 7F23CB78 -FC20B090 3D808036 +FC20F890 3D808036 618CF8BC 7D8903A6 4E800421 7F23CB78 38810034 38A00006 @@ -4544,17 +4559,23 @@ FC20B090 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7F03C378 -48000031 7C8802A6 +48000049 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 B9C10008 +CBE10050 CBC10058 +800100F4 382100F0 +7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 9421FF50 -BE810008 48000225 -7FC802A6 C2DE0010 -C2FE0014 7C781B78 +BE810008 7C0802A6 +90010004 9421FF10 +BDC10008 DBE10050 +DBC10058 4800023D +7FC802A6 C3FE0010 +C3DE0014 7C781B78 83380028 8358002C 8B7A0000 839A0001 83BA0005 7F23CB78 @@ -4572,8 +4593,8 @@ C07E0008 C09E000C 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 -FC20B090 2C1B0000 -40820008 FC20B890 +FC20F890 2C1B0000 +40820008 FC20F090 80610034 3D808036 618CF8BC 7D8903A6 4E800421 80610034 @@ -4583,8 +4604,8 @@ FC20B090 2C1B0000 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 -FC20B090 2C1B0001 -40820008 FC20B890 +FC20F890 2C1B0001 +40820008 FC20F090 80610034 3D808036 618CF8BC 7D8903A6 4E800421 80610034 @@ -4618,7 +4639,10 @@ FC20B090 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 BA810008 +48000004 B9C10008 +CBE10050 CBC10058 +800100F4 382100F0 +7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 4E800021 C0B00000 @@ -4642,10 +4666,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 0000007D #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 00000082 #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -408203D0 48000060 +408203F8 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4684,10 +4708,10 @@ D03E0024 D03E0028 389F0055 38BD0053 38C00000 C03F0020 48000129 48000038 -807D000D 4800021D +807D000D 48000245 387F0010 389F0044 C03F001C 4800010D -807D0011 48000205 +807D0011 4800022D 387F0014 389F004B C03F0020 480000F5 48000004 38600000 @@ -4719,37 +4743,42 @@ A0DD026A 38600000 618C6368 7D8903A6 4E800421 BA810008 800100B4 382100B0 -7C0803A6 4800017C +7C0803A6 480001A4 7C0802A6 90010004 9421FF50 BE810008 -FFE00890 7C761B78 -7C942378 7CB92B78 -7CDA3378 7CF83B78 -7D174378 93210008 -9301000C 92E10010 -C3DF0028 C07F0040 -7F43D378 3D808000 -618C55F4 7D8903A6 -4E800421 EC630072 -EFDE1828 7FC3F378 -389F0018 7EC4B378 -38A00000 7E87A378 -C03F0008 FC40F890 -FC60F090 3D808000 -618C56B4 7D8903A6 -4E800421 39C00008 -39E00000 7C6E0A14 -80E30000 2C0F0000 -4182000C C07F003C -EFFF182A C09F0040 -EFDE202A 7FC3F378 -389F0018 38A00000 -C03F000C FC40F890 -FC60F090 3D808000 -618C56B4 7D8903A6 -4E800421 39CE0004 -39EF0001 7C0FD000 -4180FFAC BA810008 +7C0802A6 90010004 +9421FF10 BDC10008 +DBE10050 FFE00890 +7C761B78 7C942378 +7CB92B78 7CDA3378 +7CF83B78 7D174378 +93210008 9301000C +92E10010 C3DF0028 +C07F0040 7F43D378 +3D808000 618C55F4 +7D8903A6 4E800421 +EC630072 EFDE1828 +7FC3F378 389F0018 +7EC4B378 38A00000 +7E87A378 C03F0008 +FC40F890 FC60F090 +3D808000 618C56B4 +7D8903A6 4E800421 +39C00008 39E00000 +7C6E0A14 80E30000 +2C0F0000 4182000C +C07F003C EFFF182A +C09F0040 EFDE202A +7FC3F378 389F0018 +38A00000 C03F000C +FC40F890 FC60F090 +3D808000 618C56B4 +7D8903A6 4E800421 +39CE0004 39EF0001 +7C0FD000 4180FFAC +B9C10008 CBE10050 +800100F4 382100F0 +7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8fbf2c74..1e7cfb3a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2790,10 +2790,10 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001DE #Online/Menus/CSS/LoadCSSText.asm +C2264534 000001E4 #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820ED4 480001F8 +40820F04 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2930,10 +2930,10 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000A88 +7C0803A6 48000AB8 7C0802A6 90010004 9421FF50 BE810008 -FDA01890 7F83E378 +D0610038 7F83E378 389D0090 38A00000 C03D0068 C05D0048 38FD0098 3D808000 @@ -2941,7 +2941,7 @@ C03D0068 C05D0048 4E800421 7F83E378 389D0090 38A00000 C03D0080 C05D003C -FC606890 38FD0098 +C0610038 38FD0098 3D808000 618C56B4 7D8903A6 4E800421 BA810008 800100B4 @@ -2999,7 +2999,7 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800082D 887E000A +4800085D 887E000A 2C030000 4182001C 3B1E0015 7C791B78 887C0018 38630001 @@ -3064,15 +3064,15 @@ BA810008 800100B4 2C030004 4182000C 38BD0098 48000008 38BD017C 38800009 -48000625 887E0000 +48000655 887E0000 2C030004 4182000C 38BD0098 48000008 38BE00B0 3880000A -48000605 887E0000 +48000635 887E0000 2C030004 4182000C 38BD0098 48000008 38BD0185 38800008 -480005E5 887E0000 +48000615 887E0000 2C030004 41820034 2C030005 41820020 2C030000 4181000C @@ -3081,16 +3081,16 @@ BA810008 800100B4 48000018 38BD0197 38DD01C4 4800000C 38BD01A5 38DD01B2 -38800007 48000599 +38800007 480005C9 3B600001 7F64DB78 -38BD0098 48000589 +38BD0098 480005B9 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 38BD0098 -48000555 3B7B0001 +48000585 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 3B60000B @@ -3106,7 +3106,7 @@ BA810008 800100B4 41810008 4800002C 38800000 7C96B9AE 7F64DB78 7EC5B378 -480004D5 3B7B0001 +48000505 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 @@ -3117,9 +3117,9 @@ BA810008 800100B4 3B600001 886DB657 7F64DB78 2C030000 40820018 38BD00BE -4800047D 38600001 +480004AD 38600001 987C000C 48000134 -38BD00D4 48000469 +38BD00D4 48000499 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 @@ -3137,9 +3137,9 @@ BA810008 800100B4 38DD010C 886DAFA0 2C030002 4180000C 38BD00E7 38DD0101 -480003DD 38600001 +4800040D 38600001 987C000D 48000094 -38BD0120 480003C9 +38BD0120 480003F9 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 @@ -3155,7 +3155,7 @@ BA810008 800100B4 2C0B0000 41820018 38BD013B 38DD0163 4800000C 38BD014C -38DD015A 48000349 +38DD015A 48000379 38600001 987C000E 3B20000C 3B600002 7C7CC8AE 2C030001 @@ -3163,19 +3163,19 @@ BA810008 800100B4 3880000F 7C632396 1C630003 386301D0 7CBD1A14 7F64DB78 -4800030D 7F43D378 +4800033D 7F43D378 7F64DB78 38BD0088 3D80803A 618C74F0 7D8903A6 4E800421 48000044 2C030002 40820030 7F64DB78 -38BD01D6 480002D9 +38BD01D6 48000309 7F43D378 7F64DB78 38BD0084 3D80803A 618C74F0 7D8903A6 4E800421 48000010 7F64DB78 38BD0098 -480002AD 3B7B0002 +480002DD 3B7B0002 3B390001 2C19000E 4081FF68 A07C000F 38630001 2C03001E @@ -3186,7 +3186,10 @@ B07C000F BA810008 4E800021 7C6E1B78 7C0802A6 90010004 9421FF50 BE810008 -4BFFF3C1 7FA802A6 +7C0802A6 90010004 +9421FF10 BDC10008 +DBE10050 DBC10058 +4BFFF3A9 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 82B00004 @@ -3208,7 +3211,7 @@ D04F003C 2C120000 618C55F4 7D8903A6 4E800421 C05D0030 C07D0008 EC6100F2 -EC42182A FDE01090 +EC42182A FFC01090 806DC2DC 38800003 9883000E C03D002C 886DAFE0 2C030000 @@ -3258,6 +3261,9 @@ C07D0034 C09D0038 38840001 7C032000 41820008 4800000C 38600000 987C0019 +B9C10008 CBE10050 +CBC10058 800100F4 +382100F0 7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 @@ -3411,7 +3417,7 @@ C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm BA810008 800100B4 382100B0 7C0803A6 387C0000 00000000 -C22652F4 000000B6 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm +C22652F4 000000BC #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 48000030 4E800021 01C02000 00C0A000 00C1BC00 00C18C00 @@ -3420,12 +3426,15 @@ C22652F4 000000B6 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 003DCCCC CD000000 3C608048 80639D30 5463443E 2C030008 -40820550 888DAFA0 -2C040003 40820544 +40820580 888DAFA0 +2C040003 40820574 7C0802A6 90010004 9421FF50 BE810008 +7C0802A6 90010004 +9421FF10 BDC10008 +DBE10050 DBC10058 3FC08000 63DE5614 -83DE0000 4BFFFF99 +83DE0000 4BFFFF81 7FE802A6 C3FF0011 C3DF0015 38600004 3D808037 618CF1E4 @@ -3475,10 +3484,10 @@ FC20F890 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7E83A378 -480000B5 7C8802A6 +480000CD 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 -4E800421 480001F9 +4E800421 48000211 806DB620 38810034 38A0002B 38C0FFFF 3D808001 618C1E24 @@ -3495,6 +3504,9 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 +B9C10008 CBE10050 +CBC10058 800100F4 +382100F0 7C0803A6 BA810008 800100B4 382100B0 7C0803A6 480002E8 4E800021 @@ -3506,7 +3518,7 @@ BA810008 800100B4 63DE5614 83DE0000 807E0000 88630001 2C030000 4082007C -4BFFFD15 7FE802A6 +4BFFFCE5 7FE802A6 3BA00000 3C80804A 60840BC0 80840000 C024000C C0440010 @@ -4270,7 +4282,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 0000016F #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4295,7 +4307,7 @@ C21B1040 00000163 #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000A4C 4E800021 +48000AAC 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4464,7 +4476,10 @@ A09C0000 3D808022 0647064B 06480649 064A0000 7C0802A6 90010004 9421FF50 -BE810008 806DB518 +BE810008 7C0802A6 +90010004 9421FF10 +BDC10008 DBE10050 +DBC10058 806DB518 3C80803E 6084FA0C 3D808038 618C0358 7D8903A6 4E800421 @@ -4480,9 +4495,9 @@ BE810008 806DB518 3C80803E 6084FA60 3D808038 618C0358 7D8903A6 4E800421 -7C7D1B78 48000465 -7FC802A6 C2DE0010 -C2FE0014 3AC00016 +7C7D1B78 480004AD +7FC802A6 C3FE0010 +C3DE0014 3AC00016 7EC3B378 3D808037 618CF1E4 7D8903A6 4E800421 7C771B78 @@ -4520,7 +4535,7 @@ C2FE0014 3AC00016 7FA6EB78 3D808036 618CFB5C 7D8903A6 4E800421 7F23CB78 -FC20B090 3D808036 +FC20F890 3D808036 618CF8BC 7D8903A6 4E800421 7F23CB78 38810034 38A00006 @@ -4544,17 +4559,23 @@ FC20B090 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7F03C378 -48000031 7C8802A6 +48000049 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 B9C10008 +CBE10050 CBC10058 +800100F4 382100F0 +7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 9421FF50 -BE810008 48000225 -7FC802A6 C2DE0010 -C2FE0014 7C781B78 +BE810008 7C0802A6 +90010004 9421FF10 +BDC10008 DBE10050 +DBC10058 4800023D +7FC802A6 C3FE0010 +C3DE0014 7C781B78 83380028 8358002C 8B7A0000 839A0001 83BA0005 7F23CB78 @@ -4572,8 +4593,8 @@ C07E0008 C09E000C 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 -FC20B090 2C1B0000 -40820008 FC20B890 +FC20F890 2C1B0000 +40820008 FC20F090 80610034 3D808036 618CF8BC 7D8903A6 4E800421 80610034 @@ -4583,8 +4604,8 @@ FC20B090 2C1B0000 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 -FC20B090 2C1B0001 -40820008 FC20B890 +FC20F890 2C1B0001 +40820008 FC20F090 80610034 3D808036 618CF8BC 7D8903A6 4E800421 80610034 @@ -4618,7 +4639,10 @@ FC20B090 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 BA810008 +48000004 B9C10008 +CBE10050 CBC10058 +800100F4 382100F0 +7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 4E800021 C0B00000 @@ -4642,10 +4666,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 0000007D #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 00000082 #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -408203D0 48000060 +408203F8 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4684,10 +4708,10 @@ D03E0024 D03E0028 389F0055 38BD0053 38C00000 C03F0020 48000129 48000038 -807D000D 4800021D +807D000D 48000245 387F0010 389F0044 C03F001C 4800010D -807D0011 48000205 +807D0011 4800022D 387F0014 389F004B C03F0020 480000F5 48000004 38600000 @@ -4719,37 +4743,42 @@ A0DD026A 38600000 618C6368 7D8903A6 4E800421 BA810008 800100B4 382100B0 -7C0803A6 4800017C +7C0803A6 480001A4 7C0802A6 90010004 9421FF50 BE810008 -FFE00890 7C761B78 -7C942378 7CB92B78 -7CDA3378 7CF83B78 -7D174378 93210008 -9301000C 92E10010 -C3DF0028 C07F0040 -7F43D378 3D808000 -618C55F4 7D8903A6 -4E800421 EC630072 -EFDE1828 7FC3F378 -389F0018 7EC4B378 -38A00000 7E87A378 -C03F0008 FC40F890 -FC60F090 3D808000 -618C56B4 7D8903A6 -4E800421 39C00008 -39E00000 7C6E0A14 -80E30000 2C0F0000 -4182000C C07F003C -EFFF182A C09F0040 -EFDE202A 7FC3F378 -389F0018 38A00000 -C03F000C FC40F890 -FC60F090 3D808000 -618C56B4 7D8903A6 -4E800421 39CE0004 -39EF0001 7C0FD000 -4180FFAC BA810008 +7C0802A6 90010004 +9421FF10 BDC10008 +DBE10050 FFE00890 +7C761B78 7C942378 +7CB92B78 7CDA3378 +7CF83B78 7D174378 +93210008 9301000C +92E10010 C3DF0028 +C07F0040 7F43D378 +3D808000 618C55F4 +7D8903A6 4E800421 +EC630072 EFDE1828 +7FC3F378 389F0018 +7EC4B378 38A00000 +7E87A378 C03F0008 +FC40F890 FC60F090 +3D808000 618C56B4 +7D8903A6 4E800421 +39C00008 39E00000 +7C6E0A14 80E30000 +2C0F0000 4182000C +C07F003C EFFF182A +C09F0040 EFDE202A +7FC3F378 389F0018 +38A00000 C03F000C +FC40F890 FC60F090 +3D808000 618C56B4 +7D8903A6 4E800421 +39CE0004 39EF0001 +7C0FD000 4180FFAC +B9C10008 CBE10050 +800100F4 382100F0 +7C0803A6 BA810008 800100B4 382100B0 7C0803A6 4E800020 7C0802A6 90010004 From a58011edacc1cda5bba2ccdb94e025f136757859 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sat, 27 Aug 2022 21:15:12 -0400 Subject: [PATCH 122/217] use constant --- Online/Menus/CSS/LoadCSSText.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index f1f97835..3a846d74 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -385,7 +385,7 @@ b EXIT # Expects f3 to be set to y position of line ################################################################################ INIT_LINE_SUBTEXT: -.set SP_OFST_Y_POS, 0x38 +.set SP_OFST_Y_POS, BKP_FREE_SPACE_OFFSET backup stfs f3, SP_OFST_Y_POS(sp) From 7bceac43cf9c46ac7bf1802c4ec422ec1e6d794a Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sun, 28 Aug 2022 19:40:27 -0400 Subject: [PATCH 123/217] missed a register use --- Online/Menus/VSScreen/InitVsSplash.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Online/Menus/VSScreen/InitVsSplash.asm b/Online/Menus/VSScreen/InitVsSplash.asm index 76755d9f..07fc28a0 100644 --- a/Online/Menus/VSScreen/InitVsSplash.asm +++ b/Online/Menus/VSScreen/InitVsSplash.asm @@ -283,7 +283,7 @@ b EXIT ################################################################################ INIT_PLAYER_TEXT: backup -fbackup 1 +fbackup 2 fmr REG_POS_X_START, f1 mr REG_LABEL_COLOR, r3 @@ -351,7 +351,7 @@ blt INIT_PLAYER_NAME_LOOP_START INIT_PLAYER_TEXT_EXIT: -frestore 1 +frestore 2 restore blr From dd41906c807c5ac3d3e21eabc59d555d5bd5564c Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Sun, 28 Aug 2022 19:41:06 -0400 Subject: [PATCH 124/217] missed a register use --- Output/Netplay/GALE01r2.ini | 69 +++++++++++++++++++------------------ Output/Netplay/GALJ01r2.ini | 69 +++++++++++++++++++------------------ 2 files changed, 70 insertions(+), 68 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ae31b87b..86b3b763 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4666,10 +4666,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000082 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 00000083 #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -408203F8 48000060 +40820400 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4708,10 +4708,10 @@ D03E0024 D03E0028 389F0055 38BD0053 38C00000 C03F0020 48000129 48000038 -807D000D 48000245 +807D000D 4800024D 387F0010 389F0044 C03F001C 4800010D -807D0011 4800022D +807D0011 48000235 387F0014 389F004B C03F0020 480000F5 48000004 38600000 @@ -4743,40 +4743,41 @@ A0DD026A 38600000 618C6368 7D8903A6 4E800421 BA810008 800100B4 382100B0 -7C0803A6 480001A4 +7C0803A6 480001AC 7C0802A6 90010004 9421FF50 BE810008 7C0802A6 90010004 9421FF10 BDC10008 -DBE10050 FFE00890 -7C761B78 7C942378 -7CB92B78 7CDA3378 -7CF83B78 7D174378 -93210008 9301000C -92E10010 C3DF0028 -C07F0040 7F43D378 -3D808000 618C55F4 -7D8903A6 4E800421 -EC630072 EFDE1828 -7FC3F378 389F0018 -7EC4B378 38A00000 -7E87A378 C03F0008 -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39C00008 39E00000 -7C6E0A14 80E30000 -2C0F0000 4182000C -C07F003C EFFF182A -C09F0040 EFDE202A -7FC3F378 389F0018 -38A00000 C03F000C -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39CE0004 39EF0001 -7C0FD000 4180FFAC -B9C10008 CBE10050 +DBE10050 DBC10058 +FFE00890 7C761B78 +7C942378 7CB92B78 +7CDA3378 7CF83B78 +7D174378 93210008 +9301000C 92E10010 +C3DF0028 C07F0040 +7F43D378 3D808000 +618C55F4 7D8903A6 +4E800421 EC630072 +EFDE1828 7FC3F378 +389F0018 7EC4B378 +38A00000 7E87A378 +C03F0008 FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39C00008 +39E00000 7C6E0A14 +80E30000 2C0F0000 +4182000C C07F003C +EFFF182A C09F0040 +EFDE202A 7FC3F378 +389F0018 38A00000 +C03F000C FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39CE0004 +39EF0001 7C0FD000 +4180FFAC B9C10008 +CBE10050 CBC10058 800100F4 382100F0 7C0803A6 BA810008 800100B4 382100B0 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 1e7cfb3a..c3e4b7c6 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4666,10 +4666,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000082 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 00000083 #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -408203F8 48000060 +40820400 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4708,10 +4708,10 @@ D03E0024 D03E0028 389F0055 38BD0053 38C00000 C03F0020 48000129 48000038 -807D000D 48000245 +807D000D 4800024D 387F0010 389F0044 C03F001C 4800010D -807D0011 4800022D +807D0011 48000235 387F0014 389F004B C03F0020 480000F5 48000004 38600000 @@ -4743,40 +4743,41 @@ A0DD026A 38600000 618C6368 7D8903A6 4E800421 BA810008 800100B4 382100B0 -7C0803A6 480001A4 +7C0803A6 480001AC 7C0802A6 90010004 9421FF50 BE810008 7C0802A6 90010004 9421FF10 BDC10008 -DBE10050 FFE00890 -7C761B78 7C942378 -7CB92B78 7CDA3378 -7CF83B78 7D174378 -93210008 9301000C -92E10010 C3DF0028 -C07F0040 7F43D378 -3D808000 618C55F4 -7D8903A6 4E800421 -EC630072 EFDE1828 -7FC3F378 389F0018 -7EC4B378 38A00000 -7E87A378 C03F0008 -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39C00008 39E00000 -7C6E0A14 80E30000 -2C0F0000 4182000C -C07F003C EFFF182A -C09F0040 EFDE202A -7FC3F378 389F0018 -38A00000 C03F000C -FC40F890 FC60F090 -3D808000 618C56B4 -7D8903A6 4E800421 -39CE0004 39EF0001 -7C0FD000 4180FFAC -B9C10008 CBE10050 +DBE10050 DBC10058 +FFE00890 7C761B78 +7C942378 7CB92B78 +7CDA3378 7CF83B78 +7D174378 93210008 +9301000C 92E10010 +C3DF0028 C07F0040 +7F43D378 3D808000 +618C55F4 7D8903A6 +4E800421 EC630072 +EFDE1828 7FC3F378 +389F0018 7EC4B378 +38A00000 7E87A378 +C03F0008 FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39C00008 +39E00000 7C6E0A14 +80E30000 2C0F0000 +4182000C C07F003C +EFFF182A C09F0040 +EFDE202A 7FC3F378 +389F0018 38A00000 +C03F000C FC40F890 +FC60F090 3D808000 +618C56B4 7D8903A6 +4E800421 39CE0004 +39EF0001 7C0FD000 +4180FFAC B9C10008 +CBE10050 CBC10058 800100F4 382100F0 7C0803A6 BA810008 800100B4 382100B0 From 9b23328474b3a49bbd9a63f322ceb10516b3e640 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sun, 28 Aug 2022 21:23:48 -0700 Subject: [PATCH 125/217] feat: make lagless FoD a recommended code (#105) not everyone needs it and a number of people have asked about how to turn it off --- Output/Netplay/GALE01r2.ini | 30 +++++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 30 +++++++++++++++++------------- netplay.json | 25 ++++++++++++++++++++----- 3 files changed, 54 insertions(+), 31 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index bd05492d..663f989a 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -12,6 +12,7 @@ $Required: Slippi Recording $Required: Slippi Online $Recommended: Normal Lag Reduction $Recommended: Apply Delay to all In-Game Scenes +$Recommended: Lagless FoD [Gecko] $Required: General Codes [Achilles, Dan Salvato, Magus, UnclePunch, tauKhan, Ptomerty, Cilan, Zauron, Datel, donny2112, Jorgasms, strikebowler585, Myougi] @@ -374,19 +375,6 @@ C226325C 00000008 #External/DPad Down at CSS for Random Stage/DPad Down at CSS f 54E004E7 4182000C 38600000 98640000 54E004E7 00000000 -C21CBB90 00000005 #Lagless FoD [Achilles, Myougi, Dan Salvato] -9421FFF8 3CC0804A -80C6ED78 3CA00002 -60A5AE44 7CA53050 -88C50000 60C60004 -98C50000 00000000 -041CC8AC FC000028 -041CBE9C 60000000 -041CBEF0 60000000 -041CBF54 60000000 -04390838 60000000 -041CD250 60000000 -041CCDCC 480000B4 041C26B0 38000032 #Random Stage Music [UnclePunch] C215ECEC 0000000C #Random CSS Music v3 [UnclePunch] 38600003 3DC08038 @@ -8677,6 +8665,22 @@ C200561C 00000013 #Common/GetCommonMinorID/GetCommonMinorID.asm 7C0803A6 4E800020 60000000 00000000 +$Recommended: Lagless FoD [Achilles, Myougi, Dan Salvato] +*Disables particles and reflection on FoD to improve performance +C21CBB90 00000005 #Lagless FoD +9421FFF8 3CC0804A +80C6ED78 3CA00002 +60A5AE44 7CA53050 +88C50000 60C60004 +98C50000 00000000 +041CC8AC FC000028 +041CBE9C 60000000 +041CBEF0 60000000 +041CBF54 60000000 +04390838 60000000 +041CD250 60000000 +041CCDCC 480000B4 + $Optional: Widescreen 16:9 [Dan Salvato, mirrorbender, Achilles1515, UnclePunch] *Set Aspect Ratio to "Force 16:9" in Graphics for 16:9 monitors ---------------------- *Will not cause desyncs when playing online diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index cec07159..34b0b758 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -12,6 +12,7 @@ $Required: Slippi Recording $Required: Slippi Online $Recommended: Normal Lag Reduction $Recommended: Apply Delay to all In-Game Scenes +$Recommended: Lagless FoD [Gecko] $Required: General Codes [Achilles, Dan Salvato, Magus, UnclePunch, tauKhan, Ptomerty, Cilan, Zauron, Datel, donny2112, Jorgasms, strikebowler585, Myougi] @@ -374,19 +375,6 @@ C226325C 00000008 #External/DPad Down at CSS for Random Stage/DPad Down at CSS f 54E004E7 4182000C 38600000 98640000 54E004E7 00000000 -C21CBB90 00000005 #Lagless FoD [Achilles, Myougi, Dan Salvato] -9421FFF8 3CC0804A -80C6ED78 3CA00002 -60A5AE44 7CA53050 -88C50000 60C60004 -98C50000 00000000 -041CC8AC FC000028 -041CBE9C 60000000 -041CBEF0 60000000 -041CBF54 60000000 -04390838 60000000 -041CD250 60000000 -041CCDCC 480000B4 041C26B0 38000032 #Random Stage Music [UnclePunch] C215ECEC 0000000C #Random CSS Music v3 [UnclePunch] 38600003 3DC08038 @@ -8677,6 +8665,22 @@ C200561C 00000013 #Common/GetCommonMinorID/GetCommonMinorID.asm 7C0803A6 4E800020 60000000 00000000 +$Recommended: Lagless FoD [Achilles, Myougi, Dan Salvato] +*Disables particles and reflection on FoD to improve performance +C21CBB90 00000005 #Lagless FoD +9421FFF8 3CC0804A +80C6ED78 3CA00002 +60A5AE44 7CA53050 +88C50000 60C60004 +98C50000 00000000 +041CC8AC FC000028 +041CBE9C 60000000 +041CBEF0 60000000 +041CBF54 60000000 +04390838 60000000 +041CD250 60000000 +041CCDCC 480000B4 + $Optional: Widescreen 16:9 [Dan Salvato, mirrorbender, Achilles1515, UnclePunch] *Set Aspect Ratio to "Force 16:9" in Graphics for 16:9 monitors ---------------------- *Will not cause desyncs when playing online diff --git a/netplay.json b/netplay.json index 6746ae59..1d692db0 100644 --- a/netplay.json +++ b/netplay.json @@ -17,6 +17,7 @@ "$Required: Slippi Online", "$Recommended: Normal Lag Reduction", "$Recommended: Apply Delay to all In-Game Scenes", + "$Recommended: Lagless FoD", "", "[Gecko]" ] @@ -38,6 +39,7 @@ "$Required: Slippi Online", "$Recommended: Normal Lag Reduction", "$Recommended: Apply Delay to all In-Game Scenes", + "$Recommended: Lagless FoD", "", "[Gecko]" ] @@ -176,11 +178,6 @@ "isRecursive": true, "annotation": "DPad Down at CSS for Random Stage" }, - { - "type": "binary", - "sourceFile": "Binary/FasterMeleeSettings/LaglessFod.bin", - "annotation": "Lagless FoD [Achilles, Myougi, Dan Salvato]" - }, { "type": "binary", "sourceFile": "Binary/FasterMeleeSettings/RandomStageMusic.bin", @@ -404,6 +401,24 @@ } ] }, + { + "name": "Recommended: Lagless FoD", + "authors": [ + "Achilles", + "Myougi", + "Dan Salvato" + ], + "description": [ + "Disables particles and reflection on FoD to improve performance" + ], + "build": [ + { + "type": "binary", + "sourceFile": "Binary/FasterMeleeSettings/LaglessFod.bin", + "annotation": "Lagless FoD" + } + ] + }, { "name": "Optional: Widescreen 16:9", "authors": [ From a447b7c919b56ff0aad66ca1b09d186ad1a9ef6e Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sun, 28 Aug 2022 21:24:08 -0700 Subject: [PATCH 126/217] fix: add NLR to the Widescreen code for Playback (#102) for some reason widescreen doesn't fill a 16:9 viewport unless NLR is enabled. --- Output/Playback/GALE01r2.ini | 2 ++ Output/Playback/GALJ01r2.ini | 2 ++ playback.json | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 166e81dd..8e78a5db 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -1101,6 +1101,8 @@ C0030000 4800000C 4E800021 40DC7AE1 60000000 00000000 044DDB84 3E89FEFA #External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm +043761EC 4800001C #Normal Lag Reduction [Hannes Mann] +04376238 48000018 $Optional: Disable Screen Shake [Achilles1515] *Disables all screen shaking diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index edd17c93..5b992348 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -1101,6 +1101,8 @@ C0030000 4800000C 4E800021 40DC7AE1 60000000 00000000 044DDB84 3E89FEFA #External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm +043761EC 4800001C #Normal Lag Reduction [Hannes Mann] +04376238 48000018 $Optional: Disable Screen Shake [Achilles1515] *Disables all screen shaking diff --git a/playback.json b/playback.json index e4d90ffe..7299b69f 100644 --- a/playback.json +++ b/playback.json @@ -184,6 +184,11 @@ "sourceFolder": "External/Widescreen", "isRecursive": true, "annotation": "Widescreen 16:9" + }, + { + "type": "binary", + "sourceFile": "Binary/NormalLagReduction.bin", + "annotation": "Normal Lag Reduction [Hannes Mann]" } ] }, From e5302352465f2063576c03d99450d93d891996ce Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sun, 28 Aug 2022 21:24:51 -0700 Subject: [PATCH 127/217] chore: update README with new build instructions (#101) --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 69ee4dea..42f8be3d 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,12 @@ This repository is part of the Project Slippi ecosystem. For more information ab This project is home to the series of ASM mods that are applied to Melee in order to make Slippi work. It includes multiple configurations of the code for different use cases. ## Build Instructions -1. In order to build this project you will need to [download](https://github.com/JLaferri/gecko/releases) the `gecko` program and add it to your PATH env variable. -2. On windows you can then simply run the `build.bat` file to build all the different configurations. On mac/linux you can run the makefile or run `build.sh`. +### Local +1. In order to build this project you will need to [download](https://github.com/JLaferri/gecko/releases) the `gecko` program and add it to your PATH env variable. Linux/macOS users can pull the code and run `go build` to generate a binary. +2. All systems should support running `make` to build. Otherwise, on Windows you can run `build.bat` and on Linux/macOS you can run `build.sh`. + +### Docker +We also have a docker image that you can use to build by running `docker run --volume=${PWD}:/work --workdir=/work nikhilnarayana/devkitpro-slippi make`. ## Output ### Console From 5d0d167d7f947002ee0419d4e50010fa3325781b Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Aug 2022 01:31:41 -0400 Subject: [PATCH 128/217] use new backup/restore args --- Bootloader/main.asm | 4 +- Common/Common.s | 147 ++++++------- Common/UseInGameDelay/ApplyInGameDelay.asm | 4 +- Online/Menus/CSS/LoadCSSText.asm | 8 +- .../Menus/CSS/Teams/InitTeamToggleButton.asm | 6 +- Online/Menus/TitleMenu/OnMenuPrep.asm | 12 +- Online/Menus/VSScreen/InitVsSplash.asm | 6 +- Online/Static/SubtextFunctions.asm | 14 +- Output/Netplay/GALE01r2.ini | 204 ++++++++---------- Output/Netplay/GALJ01r2.ini | 204 ++++++++---------- 10 files changed, 269 insertions(+), 340 deletions(-) diff --git a/Bootloader/main.asm b/Bootloader/main.asm index 17ab138f..29481f90 100644 --- a/Bootloader/main.asm +++ b/Bootloader/main.asm @@ -158,8 +158,8 @@ HANDLE_C2: sub r3, r4, REG_TargetDataPtr rlwinm r3, r3, 0, 6, 29 oris r3, r3, 0x4800 - stw r3, BKP_FREE_SPACE_OFFSET(sp) - addi REG_SourceDataPtr, sp, BKP_FREE_SPACE_OFFSET + stw r3, BKP_DEFAULT_FREE_SPACE_OFFSET(sp) + addi REG_SourceDataPtr, sp, BKP_DEFAULT_FREE_SPACE_OFFSET # C2 Step 2: Replace branch instruction in gecko code to return to correct loc lwz r3, 0x4(REG_CodeAddress) diff --git a/Common/Common.s b/Common/Common.s index c4662506..847a2339 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -68,167 +68,150 @@ subf \reg, \reg_temp, \reg branchl r12, 0x8021b2d8 .endm -.set BKP_FREE_SPACE_OFFSET, 0x38 # This is where the free space in our stack starts - -.macro backup space=0x78 -mflr r0 -stw r0, 0x4(r1) -# Stack allocation has to be 4-byte aligned otherwise it crashes on console -.if \space % 4 == 0 - stwu r1,-(BKP_FREE_SPACE_OFFSET + \space)(r1) # make space for 12 registers -.else - stwu r1,-(BKP_FREE_SPACE_OFFSET + \space + (4 - \space % 4))(r1) # make space for 12 registers -.endif -stmw r20,0x8(r1) -.endm - -.macro restore space=0x78 -lmw r20,0x8(r1) -# Stack allocation has to be 4-byte aligned otherwise it crashes on console -.if \space % 4 == 0 - lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space)(r1) - addi r1,r1,BKP_FREE_SPACE_OFFSET + \space # release the space -.else - lwz r0, (BKP_FREE_SPACE_OFFSET + 0x4 + \space + (4 - \space % 4))(r1) - addi r1,r1,BKP_FREE_SPACE_OFFSET + \space + (4 - \space % 4) # release the space -.endif -mtlr r0 -.endm - -.set F_BKP_FREE_SPACE_OFFSET, 0xE0 # This is where the free space in our stack starts - -# fbackup can be used to backup/restore float registers and also does normal registers from r14 -# instead of normal backup for which registers 14-19 are unsafe to use -.macro fbackup num_freg=0, free_space=0x10 +# This is where the free space in our stack starts when using the default args. Note that if you +# use a custom arg for num_reg, you will have to calculate your own free space offset +# using the function: 8 + (num_reg * 4) +.set BKP_DEFAULT_FREE_SPACE_OFFSET, 8 + (12 * 4) + +# backup is used to set up a stack frame in which LR and non-volatile registers will be stored. +# It also sets up some free space on the stack for the function to use if needed. +# More info: https://docs.google.com/document/d/1QJOQzy933fxpfzIJlq6xopcviZ5tALKQvi_OOqpjehE +.macro backup free_space=0x78, num_freg=0, num_reg=12 mflr r0 stw r0, 0x4(r1) -# Stack allocation has to be 4-byte aligned otherwise it crashes on console +# Stack allocation has to be 4-byte aligned otherwise it crashes on console. This section +# makes space for the back chain, LR, non-volatile registers, and free space .if \free_space % 4 == 0 - stwu r1,-(F_BKP_FREE_SPACE_OFFSET + \free_space)(r1) # make space for 12 registers + .set ALIGNED_FREE_SPACE, \free_space .else - stwu r1,-(F_BKP_FREE_SPACE_OFFSET + \free_space + (4 - \free_space % 4))(r1) # make space for 12 registers + .set ALIGNED_FREE_SPACE, \free_space + (4 - \free_space % 4) +.endif +stwu r1,-(0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg)(r1) +.if \num_reg > 0 + stmw 32 - \num_reg, 0x8(r1) .endif -stmw r14,0x8(r1) .if \num_freg > 0 - stfd f31, 0x50(r1) + stfd f31, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 0)(r1) .endif .if \num_freg > 1 - stfd f30, 0x58(r1) + stfd f30, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 1)(r1) .endif .if \num_freg > 2 - stfd f29, 0x60(r1) + stfd f29, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 2)(r1) .endif .if \num_freg > 3 - stfd f28, 0x68(r1) + stfd f28, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 3)(r1) .endif .if \num_freg > 4 - stfd f27, 0x70(r1) + stfd f27, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 4)(r1) .endif .if \num_freg > 5 - stfd f26, 0x78(r1) + stfd f26, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 5)(r1) .endif .if \num_freg > 6 - stfd f25, 0x80(r1) + stfd f25, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 6)(r1) .endif .if \num_freg > 7 - stfd f24, 0x88(r1) + stfd f24, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 7)(r1) .endif .if \num_freg > 8 - stfd f23, 0x90(r1) + stfd f23, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 8)(r1) .endif .if \num_freg > 9 - stfd f22, 0x98(r1) + stfd f22, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 9)(r1) .endif .if \num_freg > 10 - stfd f21, 0xA0(r1) + stfd f21, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 10)(r1) .endif .if \num_freg > 11 - stfd f20, 0xA8(r1) + stfd f20, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 11)(r1) .endif .if \num_freg > 12 - stfd f19, 0xB0(r1) + stfd f19, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 12)(r1) .endif .if \num_freg > 13 - stfd f18, 0xB8(r1) + stfd f18, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 13)(r1) .endif .if \num_freg > 14 - stfd f17, 0xC0(r1) + stfd f17, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 14)(r1) .endif .if \num_freg > 15 - stfd f16, 0xC8(r1) + stfd f16, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 15)(r1) .endif .if \num_freg > 16 - stfd f15, 0xD0(r1) + stfd f15, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 16)(r1) .endif .if \num_freg > 17 - stfd f14, 0xD8(r1) + stfd f14, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 17)(r1) .endif .endm -.macro frestore num_freg=0, free_space=0x10 -lmw r14,0x8(r1) +.macro restore free_space=0x78, num_freg=0, num_reg=12 +# Stack allocation has to be 4-byte aligned otherwise it crashes on console +.if \free_space % 4 == 0 + .set ALIGNED_FREE_SPACE, \free_space +.else + .set ALIGNED_FREE_SPACE, \free_space + (4 - \free_space % 4) +.endif +.if \num_reg > 0 + lmw 32 - \num_reg, 0x8(r1) +.endif .if \num_freg > 0 - lfd f31, 0x50(r1) + lfd f31, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 0)(r1) .endif .if \num_freg > 1 - lfd f30, 0x58(r1) + lfd f30, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 1)(r1) .endif .if \num_freg > 2 - lfd f29, 0x60(r1) + lfd f29, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 2)(r1) .endif .if \num_freg > 3 - lfd f28, 0x68(r1) + lfd f28, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 3)(r1) .endif .if \num_freg > 4 - lfd f27, 0x70(r1) + lfd f27, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 4)(r1) .endif .if \num_freg > 5 - lfd f26, 0x78(r1) + lfd f26, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 5)(r1) .endif .if \num_freg > 6 - lfd f25, 0x80(r1) + lfd f25, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 6)(r1) .endif .if \num_freg > 7 - lfd f24, 0x88(r1) + lfd f24, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 7)(r1) .endif .if \num_freg > 8 - lfd f23, 0x90(r1) + lfd f23, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 8)(r1) .endif .if \num_freg > 9 - lfd f22, 0x98(r1) + lfd f22, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 9)(r1) .endif .if \num_freg > 10 - lfd f21, 0xA0(r1) + lfd f21, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 10)(r1) .endif .if \num_freg > 11 - lfd f20, 0xA8(r1) + lfd f20, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 11)(r1) .endif .if \num_freg > 12 - lfd f19, 0xB0(r1) + lfd f19, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 12)(r1) .endif .if \num_freg > 13 - lfd f18, 0xB8(r1) + lfd f18, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 13)(r1) .endif .if \num_freg > 14 - lfd f17, 0xC0(r1) + lfd f17, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 14)(r1) .endif .if \num_freg > 15 - lfd f16, 0xC8(r1) + lfd f16, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 15)(r1) .endif .if \num_freg > 16 - lfd f15, 0xD0(r1) + lfd f15, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 16)(r1) .endif .if \num_freg > 17 - lfd f14, 0xD8(r1) -.endif -# Stack allocation has to be 4-byte aligned otherwise it crashes on console -.if \free_space % 4 == 0 - lwz r0, (F_BKP_FREE_SPACE_OFFSET + 0x4 + \free_space)(r1) - addi r1,r1,F_BKP_FREE_SPACE_OFFSET + \free_space # release the space -.else - lwz r0, (F_BKP_FREE_SPACE_OFFSET + 0x4 + \free_space + (4 - \free_space % 4))(r1) - addi r1,r1,F_BKP_FREE_SPACE_OFFSET + \free_space + (4 - \free_space % 4) # release the space + lfd f14, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 17)(r1) .endif +lwz r0, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg + 0x4)(r1) +addi r1, r1, 0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg # release the space mtlr r0 .endm diff --git a/Common/UseInGameDelay/ApplyInGameDelay.asm b/Common/UseInGameDelay/ApplyInGameDelay.asm index 5b3c2e0e..51a82f17 100644 --- a/Common/UseInGameDelay/ApplyInGameDelay.asm +++ b/Common/UseInGameDelay/ApplyInGameDelay.asm @@ -48,7 +48,7 @@ ble RESTORE_EXIT ################################################################################ # Copy current inputs to temporary location ################################################################################ -addi r3, sp, BKP_FREE_SPACE_OFFSET +addi r3, sp, BKP_DEFAULT_FREE_SPACE_OFFSET addi r4, sp, P1_PAD_OFFSET li r5, PADS_REPORT_SIZE branchl r12, memcpy @@ -71,7 +71,7 @@ branchl r12, memcpy # Store current inputs to use X frames later ################################################################################ add r3, REG_IGDB_ADDR, REG_CUR_REPORT_IGDB_OFST -addi r4, sp, BKP_FREE_SPACE_OFFSET +addi r4, sp, BKP_DEFAULT_FREE_SPACE_OFFSET li r5, PADS_REPORT_SIZE branchl r12, memcpy diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index 3a846d74..8285fd2a 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -385,7 +385,7 @@ b EXIT # Expects f3 to be set to y position of line ################################################################################ INIT_LINE_SUBTEXT: -.set SP_OFST_Y_POS, BKP_FREE_SPACE_OFFSET +.set SP_OFST_Y_POS, BKP_DEFAULT_FREE_SPACE_OFFSET backup stfs f3, SP_OFST_Y_POS(sp) @@ -1169,8 +1169,7 @@ blr CSS_ONLINE_CHAT_THINK: blrl mr REG_CHATMSG_GOBJ, r3 # Store GOBJ pointer -backup -fbackup 2 +backup 0x78, 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -1387,8 +1386,7 @@ stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index CSS_ONLINE_CHAT_CHECK_EXIT: -frestore 2 -restore +restore 0x78, 2 blr diff --git a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm index e6f2c517..e0a53085 100644 --- a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm +++ b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm @@ -75,8 +75,7 @@ INIT_BUTTON: .set REG_ICON_GOBJ, 20 .set REG_ICON_JOBJ, 21 .set REG_DATA_BUFFER, 23 -backup -fbackup 2 +backup 0x78, 2 loadwz REG_CSSDT_ADDR, CSSDT_BUF_ADDR @@ -227,8 +226,7 @@ fmr f1, REG_F_0 # float 0.0 branchl r12, 0x80363C2C # HSD_MObjSetAlpha(mobj, float alpha) -frestore 2 -restore +restore 0x78, 2 b EXIT ################################################################################ # Function: Handles per frame updates of Custom Team Button diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index a173e049..7594864c 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -523,8 +523,7 @@ blrl FN_CREATE_DIALOG: -backup -fbackup 2 +backup 0x78, 2 # load jobjects in memory lwz r3, archiveDataBuffer(r13) @@ -684,8 +683,7 @@ mflr r4 # Function li r5, 15 # Priority branchl r12, GObj_AddProc -frestore 2 -restore +restore 0x78, 2 blr @@ -696,8 +694,7 @@ blr ################################################################################ FN_LogoutDialogThink: #801978fc blrl -backup -fbackup 2 +backup 0x78, 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -851,8 +848,7 @@ b FN_LogoutDialogThink_Exit FN_LogoutDialogThink_Exit: -frestore 2 -restore +restore 0x78, 2 blr ################################################################################ diff --git a/Online/Menus/VSScreen/InitVsSplash.asm b/Online/Menus/VSScreen/InitVsSplash.asm index 07fc28a0..17eb8e9c 100644 --- a/Online/Menus/VSScreen/InitVsSplash.asm +++ b/Online/Menus/VSScreen/InitVsSplash.asm @@ -282,8 +282,7 @@ b EXIT # f1 - X Pos ################################################################################ INIT_PLAYER_TEXT: -backup -fbackup 2 +backup 0x78, 2 fmr REG_POS_X_START, f1 mr REG_LABEL_COLOR, r3 @@ -351,8 +350,7 @@ blt INIT_PLAYER_NAME_LOOP_START INIT_PLAYER_TEXT_EXIT: -frestore 2 -restore +restore 0x78, 2 blr diff --git a/Online/Static/SubtextFunctions.asm b/Online/Static/SubtextFunctions.asm index 1943d3b4..a0ad88dd 100644 --- a/Online/Static/SubtextFunctions.asm +++ b/Online/Static/SubtextFunctions.asm @@ -49,16 +49,13 @@ .set TEXT_LAST_INDEX, 0 # Stack pointer offsets -.set SPO_STRING_PTR_1, F_BKP_FREE_SPACE_OFFSET +.set SPO_STRING_PTR_1, BKP_DEFAULT_FREE_SPACE_OFFSET .set SPO_STRING_PTR_2, SPO_STRING_PTR_1 + 4 .set SPO_STRING_PTR_3, SPO_STRING_PTR_2 + 4 .set SPO_STRING_PTR_4, SPO_STRING_PTR_3 + 4 .set SPO_STRING_PTR_5, SPO_STRING_PTR_4 + 4 .set SPO_STRING_PTR_6, SPO_STRING_PTR_5 + 4 -# Request an extra 0x10. It shouldn't be required but im scared of grabbing the exact amount -.set STACK_SPACE_NEEDED, 0x10 + (SPO_STRING_PTR_6 + 4) - F_BKP_FREE_SPACE_OFFSET - # check which function to run cmpwi r5, 2 beq FN_CREATE_PREMADE_TEXT @@ -67,8 +64,7 @@ beq FN_CREATE_PREMADE_TEXT # FN_CREATE_SUBTEXT ################################################################################ FN_CREATE_SUBTEXT: - -fbackup 6, STACK_SPACE_NEEDED +backup 0x78, 6 # Save arguments mr REG_TEXT_STRUCT_ADDR, r3 @@ -224,14 +220,14 @@ FN_CREATE_SUBTEXT_END: # Return subtext index mr r3, REG_SUBTEXT_INDEX -frestore 6, STACK_SPACE_NEEDED +restore 0x78, 6 blr ################################################################################ # FN_CREATE_PREMADE_TEXT ################################################################################ FN_CREATE_PREMADE_TEXT: -fbackup 4 +backup 0x78, 4 # Save arguments mr REG_TEXT_ID, r3 @@ -279,7 +275,7 @@ branchl r12, Text_CopyPremadeTextDataToStruct # return text struct address mr r3, REG_TEXT_STRUCT_ADDR -frestore 4 +restore 0x78, 4 blr ################################################################################ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 86b3b763..65548a81 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2790,10 +2790,10 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001E4 #Online/Menus/CSS/LoadCSSText.asm +C2264534 000001E0 #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820F04 480001F8 +40820EE4 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2930,7 +2930,7 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000AB8 +7C0803A6 48000A98 7C0802A6 90010004 9421FF50 BE810008 D0610038 7F83E378 @@ -2999,7 +2999,7 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800085D 887E000A +4800083D 887E000A 2C030000 4182001C 3B1E0015 7C791B78 887C0018 38630001 @@ -3064,15 +3064,15 @@ BA810008 800100B4 2C030004 4182000C 38BD0098 48000008 38BD017C 38800009 -48000655 887E0000 +48000635 887E0000 2C030004 4182000C 38BD0098 48000008 38BE00B0 3880000A -48000635 887E0000 +48000615 887E0000 2C030004 4182000C 38BD0098 48000008 38BD0185 38800008 -48000615 887E0000 +480005F5 887E0000 2C030004 41820034 2C030005 41820020 2C030000 4181000C @@ -3081,16 +3081,16 @@ BA810008 800100B4 48000018 38BD0197 38DD01C4 4800000C 38BD01A5 38DD01B2 -38800007 480005C9 +38800007 480005A9 3B600001 7F64DB78 -38BD0098 480005B9 +38BD0098 48000599 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 38BD0098 -48000585 3B7B0001 +48000565 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 3B60000B @@ -3106,7 +3106,7 @@ BA810008 800100B4 41810008 4800002C 38800000 7C96B9AE 7F64DB78 7EC5B378 -48000505 3B7B0001 +480004E5 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 @@ -3117,9 +3117,9 @@ BA810008 800100B4 3B600001 886DB657 7F64DB78 2C030000 40820018 38BD00BE -480004AD 38600001 +4800048D 38600001 987C000C 48000134 -38BD00D4 48000499 +38BD00D4 48000479 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 @@ -3137,9 +3137,9 @@ BA810008 800100B4 38DD010C 886DAFA0 2C030002 4180000C 38BD00E7 38DD0101 -4800040D 38600001 +480003ED 38600001 987C000D 48000094 -38BD0120 480003F9 +38BD0120 480003D9 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 @@ -3155,7 +3155,7 @@ BA810008 800100B4 2C0B0000 41820018 38BD013B 38DD0163 4800000C 38BD014C -38DD015A 48000379 +38DD015A 48000359 38600001 987C000E 3B20000C 3B600002 7C7CC8AE 2C030001 @@ -3163,19 +3163,19 @@ BA810008 800100B4 3880000F 7C632396 1C630003 386301D0 7CBD1A14 7F64DB78 -4800033D 7F43D378 +4800031D 7F43D378 7F64DB78 38BD0088 3D80803A 618C74F0 7D8903A6 4E800421 48000044 2C030002 40820030 7F64DB78 -38BD01D6 48000309 +38BD01D6 480002E9 7F43D378 7F64DB78 38BD0084 3D80803A 618C74F0 7D8903A6 4E800421 48000010 7F64DB78 38BD0098 -480002DD 3B7B0002 +480002BD 3B7B0002 3B390001 2C19000E 4081FF68 A07C000F 38630001 2C03001E @@ -3185,11 +3185,9 @@ B07C000F BA810008 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 90010004 -9421FF50 BE810008 -7C0802A6 90010004 -9421FF10 BDC10008 -DBE10050 DBC10058 -4BFFF3A9 7FA802A6 +9421FF40 BE810008 +DBE100B0 DBC100B8 +4BFFF3B9 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 82B00004 @@ -3261,11 +3259,9 @@ C07D0034 C09D0038 38840001 7C032000 41820008 4800000C 38600000 987C0019 -B9C10008 CBE10050 -CBC10058 800100F4 -382100F0 7C0803A6 -BA810008 800100B4 -382100B0 7C0803A6 +BA810008 CBE100B0 +CBC100B8 800100C4 +382100C0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 7F43D378 @@ -3417,7 +3413,7 @@ C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm BA810008 800100B4 382100B0 7C0803A6 387C0000 00000000 -C22652F4 000000BC #Online/Menus/CSS/Teams/InitTeamToggleButton.asm +C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 48000030 4E800021 01C02000 00C0A000 00C1BC00 00C18C00 @@ -3426,15 +3422,13 @@ C22652F4 000000BC #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 003DCCCC CD000000 3C608048 80639D30 5463443E 2C030008 -40820580 888DAFA0 -2C040003 40820574 +40820560 888DAFA0 +2C040003 40820554 7C0802A6 90010004 -9421FF50 BE810008 -7C0802A6 90010004 -9421FF10 BDC10008 -DBE10050 DBC10058 +9421FF40 BE810008 +DBE100B0 DBC100B8 3FC08000 63DE5614 -83DE0000 4BFFFF81 +83DE0000 4BFFFF91 7FE802A6 C3FF0011 C3DF0015 38600004 3D808037 618CF1E4 @@ -3484,10 +3478,10 @@ FC20F890 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7E83A378 -480000CD 7C8802A6 +480000BD 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 -4E800421 48000211 +4E800421 48000201 806DB620 38810034 38A0002B 38C0FFFF 3D808001 618C1E24 @@ -3504,11 +3498,9 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 -B9C10008 CBE10050 -CBC10058 800100F4 -382100F0 7C0803A6 -BA810008 800100B4 -382100B0 7C0803A6 +BA810008 CBE100B0 +CBC100B8 800100C4 +382100C0 7C0803A6 480002E8 4E800021 7C0802A6 90010004 9421FF50 BE810008 @@ -3518,7 +3510,7 @@ BA810008 800100B4 63DE5614 83DE0000 807E0000 88630001 2C030000 4082007C -4BFFFCE5 7FE802A6 +4BFFFD05 7FE802A6 3BA00000 3C80804A 60840BC0 80840000 C024000C C0440010 @@ -4282,7 +4274,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 0000016F #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000167 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4307,7 +4299,7 @@ C21B1040 0000016F #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000AAC 4E800021 +48000A6C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4475,11 +4467,9 @@ A09C0000 3D808022 4E800021 06450646 0647064B 06480649 064A0000 7C0802A6 -90010004 9421FF50 -BE810008 7C0802A6 -90010004 9421FF10 -BDC10008 DBE10050 -DBC10058 806DB518 +90010004 9421FF40 +BE810008 DBE100B0 +DBC100B8 806DB518 3C80803E 6084FA0C 3D808038 618C0358 7D8903A6 4E800421 @@ -4495,7 +4485,7 @@ DBC10058 806DB518 3C80803E 6084FA60 3D808038 618C0358 7D8903A6 4E800421 -7C7D1B78 480004AD +7C7D1B78 4800047D 7FC802A6 C3FE0010 C3DE0014 3AC00016 7EC3B378 3D808037 @@ -4559,21 +4549,17 @@ FC20F890 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7F03C378 -48000049 7C8802A6 +48000039 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 B9C10008 -CBE10050 CBC10058 -800100F4 382100F0 -7C0803A6 BA810008 -800100B4 382100B0 +4E800421 BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C0802A6 -90010004 9421FF10 -BDC10008 DBE10050 -DBC10058 4800023D +90010004 9421FF40 +BE810008 DBE100B0 +DBC100B8 4800022D 7FC802A6 C3FE0010 C3DE0014 7C781B78 83380028 8358002C @@ -4639,11 +4625,9 @@ FC20F890 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 B9C10008 -CBE10050 CBC10058 -800100F4 382100F0 -7C0803A6 BA810008 -800100B4 382100B0 +48000004 BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 7C0803A6 4E800020 4E800021 C0B00000 C0333333 41B80000 @@ -4666,10 +4650,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000083 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 0000007F #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -40820400 48000060 +408203E0 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4708,10 +4692,10 @@ D03E0024 D03E0028 389F0055 38BD0053 38C00000 C03F0020 48000129 48000038 -807D000D 4800024D +807D000D 4800022D 387F0010 389F0044 C03F001C 4800010D -807D0011 48000235 +807D0011 48000215 387F0014 389F004B C03F0020 480000F5 48000004 38600000 @@ -4743,12 +4727,10 @@ A0DD026A 38600000 618C6368 7D8903A6 4E800421 BA810008 800100B4 382100B0 -7C0803A6 480001AC +7C0803A6 4800018C 7C0802A6 90010004 -9421FF50 BE810008 -7C0802A6 90010004 -9421FF10 BDC10008 -DBE10050 DBC10058 +9421FF40 BE810008 +DBE100B0 DBC100B8 FFE00890 7C761B78 7C942378 7CB92B78 7CDA3378 7CF83B78 @@ -4776,11 +4758,9 @@ FC60F090 3D808000 618C56B4 7D8903A6 4E800421 39CE0004 39EF0001 7C0FD000 -4180FFAC B9C10008 -CBE10050 CBC10058 -800100F4 382100F0 -7C0803A6 BA810008 -800100B4 382100B0 +4180FFAC BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 @@ -5619,15 +5599,15 @@ BA810008 800100B4 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FEF8 BDC10008 -DBE10050 DBC10058 -DBA10060 DB810068 -DB610070 DB410078 +9421FF20 BE810008 +DBE100B0 DBC100B8 +DBA100C0 DB8100C8 +DB6100D0 DB4100D8 7C751B78 7C962378 7CB82B78 7CD93378 -90E100E0 910100E4 -912100E8 914100EC -916100F0 918100F4 +90E10038 9101003C +91210040 91410044 +91610048 9181004C FFE00890 FFC01090 FFA01890 FF602890 FF403090 2C180001 @@ -5642,7 +5622,7 @@ FC20F090 FC40E890 48000014 EC42D028 4800000C EC42D02A 48000004 7EA3AB78 -808100E0 3D80803A +80810038 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 @@ -5655,15 +5635,15 @@ FC20F890 FC40F890 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 7EE4BB78 -80A100E0 80C100E4 -80E100E8 810100EC -812100F0 814100F4 +80A10038 80C1003C +80E10040 81010044 +81210048 8141004C 3D80803A 618C70A0 7D8903A6 4E800421 2C0F0000 4182000C 39EFFFFF 4BFFFF14 48000094 7EA3AB78 -808100E0 FC20F090 +80810038 FC20F090 FC40E890 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 @@ -5675,22 +5655,22 @@ FC20F890 FC40F890 7EC5B378 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 -7EE4BB78 80A100E0 -80C100E4 80E100E8 -810100EC 812100F0 -814100F4 3D80803A +7EE4BB78 80A10038 +80C1003C 80E10040 +81010044 81210048 +8141004C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -B9C10008 CBE10050 -CBC10058 CBA10060 -CB810068 CB610070 -CB410078 8001010C -38210108 7C0803A6 +BA810008 CBE100B0 +CBC100B8 CBA100C0 +CB8100C8 CB6100D0 +CB4100D8 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF10 -BDC10008 DBE10050 -DBC10058 DBA10060 -DB810068 7C7D1B78 +90010004 9421FF30 +BE810008 DBE100B0 +DBC100B8 DBA100C0 +DB8100C8 7C7D1B78 7C9C2378 7CDB3378 FFC00890 FFA01090 FF801890 FFE02090 @@ -5709,10 +5689,10 @@ FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -B9C10008 CBE10050 -CBC10058 CBA10060 -CB810068 800100F4 -382100F0 7C0803A6 +BA810008 CBE100B0 +CBC100B8 CBA100C0 +CB8100C8 800100D4 +382100D0 7C0803A6 4E800020 4E800021 41100000 44160000 41A00000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index c3e4b7c6..18b145e5 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2790,10 +2790,10 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001E4 #Online/Menus/CSS/LoadCSSText.asm +C2264534 000001E0 #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820F04 480001F8 +40820EE4 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2930,7 +2930,7 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000AB8 +7C0803A6 48000A98 7C0802A6 90010004 9421FF50 BE810008 D0610038 7F83E378 @@ -2999,7 +2999,7 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800085D 887E000A +4800083D 887E000A 2C030000 4182001C 3B1E0015 7C791B78 887C0018 38630001 @@ -3064,15 +3064,15 @@ BA810008 800100B4 2C030004 4182000C 38BD0098 48000008 38BD017C 38800009 -48000655 887E0000 +48000635 887E0000 2C030004 4182000C 38BD0098 48000008 38BE00B0 3880000A -48000635 887E0000 +48000615 887E0000 2C030004 4182000C 38BD0098 48000008 38BD0185 38800008 -48000615 887E0000 +480005F5 887E0000 2C030004 41820034 2C030005 41820020 2C030000 4181000C @@ -3081,16 +3081,16 @@ BA810008 800100B4 48000018 38BD0197 38DD01C4 4800000C 38BD01A5 38DD01B2 -38800007 480005C9 +38800007 480005A9 3B600001 7F64DB78 -38BD0098 480005B9 +38BD0098 48000599 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 38BD0098 -48000585 3B7B0001 +48000565 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 3B60000B @@ -3106,7 +3106,7 @@ BA810008 800100B4 41810008 4800002C 38800000 7C96B9AE 7F64DB78 7EC5B378 -48000505 3B7B0001 +480004E5 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 41820020 @@ -3117,9 +3117,9 @@ BA810008 800100B4 3B600001 886DB657 7F64DB78 2C030000 40820018 38BD00BE -480004AD 38600001 +4800048D 38600001 987C000C 48000134 -38BD00D4 48000499 +38BD00D4 48000479 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 @@ -3137,9 +3137,9 @@ BA810008 800100B4 38DD010C 886DAFA0 2C030002 4180000C 38BD00E7 38DD0101 -4800040D 38600001 +480003ED 38600001 987C000D 48000094 -38BD0120 480003F9 +38BD0120 480003D9 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 @@ -3155,7 +3155,7 @@ BA810008 800100B4 2C0B0000 41820018 38BD013B 38DD0163 4800000C 38BD014C -38DD015A 48000379 +38DD015A 48000359 38600001 987C000E 3B20000C 3B600002 7C7CC8AE 2C030001 @@ -3163,19 +3163,19 @@ BA810008 800100B4 3880000F 7C632396 1C630003 386301D0 7CBD1A14 7F64DB78 -4800033D 7F43D378 +4800031D 7F43D378 7F64DB78 38BD0088 3D80803A 618C74F0 7D8903A6 4E800421 48000044 2C030002 40820030 7F64DB78 -38BD01D6 48000309 +38BD01D6 480002E9 7F43D378 7F64DB78 38BD0084 3D80803A 618C74F0 7D8903A6 4E800421 48000010 7F64DB78 38BD0098 -480002DD 3B7B0002 +480002BD 3B7B0002 3B390001 2C19000E 4081FF68 A07C000F 38630001 2C03001E @@ -3185,11 +3185,9 @@ B07C000F BA810008 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 90010004 -9421FF50 BE810008 -7C0802A6 90010004 -9421FF10 BDC10008 -DBE10050 DBC10058 -4BFFF3A9 7FA802A6 +9421FF40 BE810008 +DBE100B0 DBC100B8 +4BFFF3B9 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 82B00004 @@ -3261,11 +3259,9 @@ C07D0034 C09D0038 38840001 7C032000 41820008 4800000C 38600000 987C0019 -B9C10008 CBE10050 -CBC10058 800100F4 -382100F0 7C0803A6 -BA810008 800100B4 -382100B0 7C0803A6 +BA810008 CBE100B0 +CBC100B8 800100C4 +382100C0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 7F43D378 @@ -3417,7 +3413,7 @@ C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm BA810008 800100B4 382100B0 7C0803A6 387C0000 00000000 -C22652F4 000000BC #Online/Menus/CSS/Teams/InitTeamToggleButton.asm +C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 48000030 4E800021 01C02000 00C0A000 00C1BC00 00C18C00 @@ -3426,15 +3422,13 @@ C22652F4 000000BC #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 003DCCCC CD000000 3C608048 80639D30 5463443E 2C030008 -40820580 888DAFA0 -2C040003 40820574 +40820560 888DAFA0 +2C040003 40820554 7C0802A6 90010004 -9421FF50 BE810008 -7C0802A6 90010004 -9421FF10 BDC10008 -DBE10050 DBC10058 +9421FF40 BE810008 +DBE100B0 DBC100B8 3FC08000 63DE5614 -83DE0000 4BFFFF81 +83DE0000 4BFFFF91 7FE802A6 C3FF0011 C3DF0015 38600004 3D808037 618CF1E4 @@ -3484,10 +3478,10 @@ FC20F890 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7E83A378 -480000CD 7C8802A6 +480000BD 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 -4E800421 48000211 +4E800421 48000201 806DB620 38810034 38A0002B 38C0FFFF 3D808001 618C1E24 @@ -3504,11 +3498,9 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 -B9C10008 CBE10050 -CBC10058 800100F4 -382100F0 7C0803A6 -BA810008 800100B4 -382100B0 7C0803A6 +BA810008 CBE100B0 +CBC100B8 800100C4 +382100C0 7C0803A6 480002E8 4E800021 7C0802A6 90010004 9421FF50 BE810008 @@ -3518,7 +3510,7 @@ BA810008 800100B4 63DE5614 83DE0000 807E0000 88630001 2C030000 4082007C -4BFFFCE5 7FE802A6 +4BFFFD05 7FE802A6 3BA00000 3C80804A 60840BC0 80840000 C024000C C0440010 @@ -4282,7 +4274,7 @@ C34C0000 C31D0000 800100B4 382100B0 7C0803A6 B9C10408 60000000 00000000 -C21B1040 0000016F #Online/Menus/TitleMenu/OnMenuPrep.asm +C21B1040 00000167 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 9421FF50 BE810008 480000B5 7C6802A6 @@ -4307,7 +4299,7 @@ C21B1040 0000016F #Online/Menus/TitleMenu/OnMenuPrep.asm 7D8903A6 4E800421 BA810008 800100B4 382100B0 7C0803A6 -48000AAC 4E800021 +48000A6C 4E800021 3D808000 618C5618 7D8903A6 4E800421 7FC802A6 38000008 @@ -4475,11 +4467,9 @@ A09C0000 3D808022 4E800021 06450646 0647064B 06480649 064A0000 7C0802A6 -90010004 9421FF50 -BE810008 7C0802A6 -90010004 9421FF10 -BDC10008 DBE10050 -DBC10058 806DB518 +90010004 9421FF40 +BE810008 DBE100B0 +DBC100B8 806DB518 3C80803E 6084FA0C 3D808038 618C0358 7D8903A6 4E800421 @@ -4495,7 +4485,7 @@ DBC10058 806DB518 3C80803E 6084FA60 3D808038 618C0358 7D8903A6 4E800421 -7C7D1B78 480004AD +7C7D1B78 4800047D 7FC802A6 C3FE0010 C3DE0014 3AC00016 7EC3B378 3D808037 @@ -4559,21 +4549,17 @@ FC20F890 3D808036 7EE6BB78 3D808039 618C0B68 7D8903A6 4E800421 7F03C378 -48000049 7C8802A6 +48000039 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 B9C10008 -CBE10050 CBC10058 -800100F4 382100F0 -7C0803A6 BA810008 -800100B4 382100B0 +4E800421 BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C0802A6 -90010004 9421FF10 -BDC10008 DBE10050 -DBC10058 4800023D +90010004 9421FF40 +BE810008 DBE100B0 +DBC100B8 4800022D 7FC802A6 C3FE0010 C3DE0014 7C781B78 83380028 8358002C @@ -4639,11 +4625,9 @@ FC20F890 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 B9C10008 -CBE10050 CBC10058 -800100F4 382100F0 -7C0803A6 BA810008 -800100B4 382100B0 +48000004 BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 7C0803A6 4E800020 4E800021 C0B00000 C0333333 41B80000 @@ -4666,10 +4650,10 @@ C21B3668 00000005 #Online/Menus/VSScreen/AllowP2ColorDuplicate.asm 41820014 3D808017 618CBEC8 7D8903A6 4E800421 00000000 -C2186EC4 00000083 #Online/Menus/VSScreen/InitVsSplash.asm +C2186EC4 0000007F #Online/Menus/VSScreen/InitVsSplash.asm 3C608048 80639D30 5463443E 2C030408 -40820400 48000060 +408203E0 48000060 4E800021 00000000 3F800000 3F000000 3F19999A F15959FF @@ -4708,10 +4692,10 @@ D03E0024 D03E0028 389F0055 38BD0053 38C00000 C03F0020 48000129 48000038 -807D000D 4800024D +807D000D 4800022D 387F0010 389F0044 C03F001C 4800010D -807D0011 48000235 +807D0011 48000215 387F0014 389F004B C03F0020 480000F5 48000004 38600000 @@ -4743,12 +4727,10 @@ A0DD026A 38600000 618C6368 7D8903A6 4E800421 BA810008 800100B4 382100B0 -7C0803A6 480001AC +7C0803A6 4800018C 7C0802A6 90010004 -9421FF50 BE810008 -7C0802A6 90010004 -9421FF10 BDC10008 -DBE10050 DBC10058 +9421FF40 BE810008 +DBE100B0 DBC100B8 FFE00890 7C761B78 7C942378 7CB92B78 7CDA3378 7CF83B78 @@ -4776,11 +4758,9 @@ FC60F090 3D808000 618C56B4 7D8903A6 4E800421 39CE0004 39EF0001 7C0FD000 -4180FFAC B9C10008 -CBE10050 CBC10058 -800100F4 382100F0 -7C0803A6 BA810008 -800100B4 382100B0 +4180FFAC BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BE810008 @@ -5619,15 +5599,15 @@ BA810008 800100B4 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FEF8 BDC10008 -DBE10050 DBC10058 -DBA10060 DB810068 -DB610070 DB410078 +9421FF20 BE810008 +DBE100B0 DBC100B8 +DBA100C0 DB8100C8 +DB6100D0 DB4100D8 7C751B78 7C962378 7CB82B78 7CD93378 -90E100E0 910100E4 -912100E8 914100EC -916100F0 918100F4 +90E10038 9101003C +91210040 91410044 +91610048 9181004C FFE00890 FFC01090 FFA01890 FF602890 FF403090 2C180001 @@ -5642,7 +5622,7 @@ FC20F090 FC40E890 48000014 EC42D028 4800000C EC42D02A 48000004 7EA3AB78 -808100E0 3D80803A +80810038 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 @@ -5655,15 +5635,15 @@ FC20F890 FC40F890 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 7EE4BB78 -80A100E0 80C100E4 -80E100E8 810100EC -812100F0 814100F4 +80A10038 80C1003C +80E10040 81010044 +81210048 8141004C 3D80803A 618C70A0 7D8903A6 4E800421 2C0F0000 4182000C 39EFFFFF 4BFFFF14 48000094 7EA3AB78 -808100E0 FC20F090 +80810038 FC20F090 FC40E890 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 @@ -5675,22 +5655,22 @@ FC20F890 FC40F890 7EC5B378 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 -7EE4BB78 80A100E0 -80C100E4 80E100E8 -810100EC 812100F0 -814100F4 3D80803A +7EE4BB78 80A10038 +80C1003C 80E10040 +81010044 81210048 +8141004C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -B9C10008 CBE10050 -CBC10058 CBA10060 -CB810068 CB610070 -CB410078 8001010C -38210108 7C0803A6 +BA810008 CBE100B0 +CBC100B8 CBA100C0 +CB8100C8 CB6100D0 +CB4100D8 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF10 -BDC10008 DBE10050 -DBC10058 DBA10060 -DB810068 7C7D1B78 +90010004 9421FF30 +BE810008 DBE100B0 +DBC100B8 DBA100C0 +DB8100C8 7C7D1B78 7C9C2378 7CDB3378 FFC00890 FFA01090 FF801890 FFE02090 @@ -5709,10 +5689,10 @@ FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -B9C10008 CBE10050 -CBC10058 CBA10060 -CB810068 800100F4 -382100F0 7C0803A6 +BA810008 CBE100B0 +CBC100B8 CBA100C0 +CB8100C8 800100D4 +382100D0 7C0803A6 4E800020 4E800021 41100000 44160000 41A00000 00000000 From e5df008e93b069f3f6956e03d9580c1cd0d1d2d4 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Aug 2022 01:32:33 -0400 Subject: [PATCH 129/217] fix bug that was overwriting r31 on the stack --- Online/Menus/TitleMenu/OnMenuPrep.asm | 2 +- Output/Netplay/GALE01r2.ini | 28 +++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 28 +++++++++++++-------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index 7594864c..acfcf7e7 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -46,7 +46,7 @@ .set JOBJ_DESC_DLG_ANIM_JOINT, 0x803efa24 # archive memory address of dialog anim joint .set JOBJ_DESC_DLG_MAT_JOINT, 0x803efa40 # archive memory address of dialog mat joint .set JOBJ_DESC_DLG_SHAPE_JOINT, 0x803efa60 # archive memory address of dialog shape joint -.set JOBJ_CHILD_OFFSET, 0x34 # Pointer to store Child JOBJ on the SP +.set JOBJ_CHILD_OFFSET, BKP_DEFAULT_FREE_SPACE_OFFSET # Pointer to store Child JOBJ on the SP # Offset from submenu gobj where we are storing dialog user data buffer when # open diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 65548a81..539865a9 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4507,17 +4507,17 @@ C3DE0014 3AC00016 7F25CB78 3D808039 618C0A70 7D8903A6 4E800421 7F23CB78 -38810034 38A0000A +38810038 38A0000A 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 -38810034 38A0000B +38810038 38A0000B 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 @@ -4528,16 +4528,16 @@ C3DE0014 3AC00016 FC20F890 3D808036 618CF8BC 7D8903A6 4E800421 7F23CB78 -38810034 38A00006 +38810038 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 3C80C060 60840000 90830038 7F23CB78 -38810034 38A00007 +38810038 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 3C80405C 60840000 90830038 7F03C378 3C808039 60841070 @@ -4575,26 +4575,26 @@ C07E0008 C09E000C 3D808000 618C56B4 7D8903A6 4E800421 907A0005 48000198 -7F23CB78 38810034 +7F23CB78 38810038 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0000 40820008 FC20F090 -80610034 3D808036 +80610038 3D808036 618CF8BC 7D8903A6 -4E800421 80610034 +4E800421 80610038 3D808037 618C0928 7D8903A6 4E800421 -7F23CB78 38810034 +7F23CB78 38810038 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0001 40820008 FC20F090 -80610034 3D808036 +80610038 3D808036 618CF8BC 7D8903A6 -4E800421 80610034 +4E800421 80610038 3D808037 618C0928 7D8903A6 4E800421 39C00000 7DC37378 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 18b145e5..e8b250db 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4507,17 +4507,17 @@ C3DE0014 3AC00016 7F25CB78 3D808039 618C0A70 7D8903A6 4E800421 7F23CB78 -38810034 38A0000A +38810038 38A0000A 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 -38810034 38A0000B +38810038 38A0000B 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 @@ -4528,16 +4528,16 @@ C3DE0014 3AC00016 FC20F890 3D808036 618CF8BC 7D8903A6 4E800421 7F23CB78 -38810034 38A00006 +38810038 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 3C80C060 60840000 90830038 7F23CB78 -38810034 38A00007 +38810038 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610034 +4E800421 80610038 3C80405C 60840000 90830038 7F03C378 3C808039 60841070 @@ -4575,26 +4575,26 @@ C07E0008 C09E000C 3D808000 618C56B4 7D8903A6 4E800421 907A0005 48000198 -7F23CB78 38810034 +7F23CB78 38810038 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0000 40820008 FC20F090 -80610034 3D808036 +80610038 3D808036 618CF8BC 7D8903A6 -4E800421 80610034 +4E800421 80610038 3D808037 618C0928 7D8903A6 4E800421 -7F23CB78 38810034 +7F23CB78 38810038 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0001 40820008 FC20F090 -80610034 3D808036 +80610038 3D808036 618CF8BC 7D8903A6 -4E800421 80610034 +4E800421 80610038 3D808037 618C0928 7D8903A6 4E800421 39C00000 7DC37378 From 42a3d43d3555df079cf5c5892bdb5a1556f217ee Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Mon, 29 Aug 2022 09:14:54 -0400 Subject: [PATCH 130/217] empty line --- Online/Menus/TitleMenu/OnMenuPrep.asm | 1 - 1 file changed, 1 deletion(-) diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index acfcf7e7..e1114b1f 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -522,7 +522,6 @@ blrl .short 0x0000 FN_CREATE_DIALOG: - backup 0x78, 2 # load jobjects in memory From 7990bccaa77253f7caea52206e5c7e77b093493f Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Mon, 29 Aug 2022 11:35:51 -0400 Subject: [PATCH 131/217] Do not handle chat notifications when they come --- Online/Menus/CSS/LoadCSSText.asm | 2 +- Output/Netplay/GALE01r2.ini | 518 +++++++++++++++---------------- Output/Netplay/GALJ01r2.ini | 518 +++++++++++++++---------------- 3 files changed, 519 insertions(+), 519 deletions(-) diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index 8285fd2a..3f94711e 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -592,7 +592,7 @@ bl FN_UPDATE_TEXT # Manage Chat Messages: If there's a new message, then initialize a # disappearing text ################################################################################ - +b SKIP_CHAT_MESSAGES .set REG_MSG_ID, REG_VARIOUS_1 # REG_MSG_ID will store chat message id .set REG_USER_STRING, REG_VARIOUS_2 # REG_USER_STRING will store the user name string memory address diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 539865a9..054e1564 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2793,7 +2793,7 @@ C05F0040 FC011040 C2264534 000001E0 #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820EE4 480001F8 +40820EE8 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2930,7 +2930,7 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000A98 +7C0803A6 48000A9C 7C0802A6 90010004 9421FF50 BE810008 D0610038 7F83E378 @@ -2999,278 +2999,278 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800083D 887E000A -2C030000 4182001C -3B1E0015 7C791B78 -887C0018 38630001 -987C0018 48000014 -887E000B 2C030000 -418201BC 7C791B78 -887C0019 2C030009 -40810010 38600000 -987C0019 418201A0 -386000B7 3880007F -38A00040 3D808002 -618C37A8 7D8903A6 -4E800421 887C0017 -38630001 987C0017 -3860000D 3D808037 -618CF1E4 7D8903A6 -4E800421 7C771B78 -3880001C 3D808000 -618CC160 7D8903A6 -4E800421 38600014 -38800000 98770000 -98970001 7F23CB78 -98770002 887C0019 -98770003 38630001 -987C0019 887E000C -98770008 7F83E378 -90770009 38600004 -38800005 38A00080 -3D808039 618C01F0 +48000841 480001EC +887E000A 2C030000 +4182001C 3B1E0015 +7C791B78 887C0018 +38630001 987C0018 +48000014 887E000B +2C030000 418201BC +7C791B78 887C0019 +2C030009 40810010 +38600000 987C0019 +418201A0 386000B7 +3880007F 38A00040 +3D808002 618C37A8 7D8903A6 4E800421 -7C761B78 807C0004 -80630004 80630000 -3D808037 618C0E44 +887C0017 38630001 +987C0017 3860000D +3D808037 618CF1E4 7D8903A6 4E800421 -7C651B78 7EC3B378 -888DC1A9 3D808039 -618C0A70 7D8903A6 -4E800421 7EC3B378 -3C808039 60841070 -38A00003 38C00080 -3D808039 618C069C +7C771B78 3880001C +3D808000 618CC160 7D8903A6 4E800421 -80760028 809C0004 -80840004 38A00000 -3D808016 618C895C +38600014 38800000 +98770000 98970001 +7F23CB78 98770002 +887C0019 98770003 +38630001 987C0019 +887E000C 98770008 +7F83E378 90770009 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C761B78 +807C0004 80630004 +80630000 3D808037 +618C0E44 7D8903A6 +4E800421 7C651B78 +7EC3B378 888DC1A9 +3D808039 618C0A70 7D8903A6 4E800421 -80760028 C022AE28 -3D808036 618CF8BC +7EC3B378 3C808039 +60841070 38A00003 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 80760028 +809C0004 80840004 +38A00000 3D808016 +618C895C 7D8903A6 +4E800421 80760028 +C022AE28 3D808036 +618CF8BC 7D8903A6 +4E800421 886DAFE0 +2C030000 41820010 +C03D0014 80760028 +D0230038 7EC3B378 +38800004 3CA08037 +60A5F1B0 7EE6BB78 +3D808039 618C0B68 +7D8903A6 4E800421 +7EC3B378 480003F1 +7C8802A6 38A00004 +3D808038 618CFD54 7D8903A6 4E800421 -886DAFE0 2C030000 -41820010 C03D0014 -80760028 D0230038 -7EC3B378 38800004 -3CA08037 60A5F1B0 -7EE6BB78 3D808039 -618C0B68 7D8903A6 -4E800421 7EC3B378 -480003F1 7C8802A6 -38A00004 3D808038 -618CFD54 7D8903A6 -4E800421 887E0000 -2C030004 4182000C -38BD0098 48000008 -38BD017C 38800009 -48000635 887E0000 -2C030004 4182000C -38BD0098 48000008 -38BE00B0 3880000A -48000615 887E0000 -2C030004 4182000C -38BD0098 48000008 -38BD0185 38800008 -480005F5 887E0000 -2C030004 41820034 -2C030005 41820020 -2C030000 4181000C -38BD0098 48000024 -38BD0197 38DD01BD -48000018 38BD0197 -38DD01C4 4800000C -38BD01A5 38DD01B2 -38800007 480005A9 -3B600001 7F64DB78 -38BD0098 48000599 -3B7B0002 2C1B0005 -4081FFEC 3880000C -38600000 7C7C21AE -38840001 2C04000E -4081FFF4 3B60000B -7F64DB78 38BD0098 -48000565 3B7B0001 -2C1B000E 4081FFEC -887E0000 2C030005 -408200A8 3B60000B -3B200000 3B000000 -3AE00000 3ADE016B -7EB6C8AE 56A00631 -41820010 3B390002 -3B180001 48000018 -2C150020 40820008 -7F37CB78 3B390001 -3B180001 2C150000 -41820018 2C18001E -41810008 4800002C -38800000 7C96B9AE -7F64DB78 7EC5B378 -480004E5 3B7B0001 -7ED6BA14 3AD60001 -3B200000 3B000000 -2C150000 41820020 -387E025C 7C96CA14 -7C041800 40800010 -2C1B000E 41810008 -4BFFFF78 4800015C -3B600001 886DB657 -7F64DB78 2C030000 -40820018 38BD00BE -4800048D 38600001 -987C000C 48000134 -38BD00D4 48000479 -3B7B0002 38600002 -987C000C 887E0001 -7F64DB78 2C030000 -40820080 886DAFA0 -2C030002 41800034 887E0000 2C030004 -40820028 886DAFC9 -2C030000 4082001C -886DAFCA 2C030000 -40820010 38BD00E7 -38DD0113 48000034 -38BD00E7 38DD00F9 +4182000C 38BD0098 +48000008 38BD017C +38800009 48000635 887E0000 2C030004 -41820020 38BD00E7 -38DD010C 886DAFA0 -2C030002 4180000C -38BD00E7 38DD0101 -480003ED 38600001 -987C000D 48000094 -38BD0120 480003D9 -3B7B0002 38600002 -987C000D 887E0000 -7F64DB78 2C030004 -4182005C 2C030003 -4182002C 38BD012A -38DD015A 896DAFA0 -2C0B0001 41820048 -2C0B0000 41820040 -38BD012A 38DD0163 -48000034 38BD013B -38DD015A 896DAFA0 -2C0B0001 41820020 -2C0B0000 41820018 -38BD013B 38DD0163 -4800000C 38BD014C -38DD015A 48000359 -38600001 987C000E -3B20000C 3B600002 -7C7CC8AE 2C030001 -40820044 A07C000F -3880000F 7C632396 -1C630003 386301D0 -7CBD1A14 7F64DB78 -4800031D 7F43D378 -7F64DB78 38BD0088 -3D80803A 618C74F0 -7D8903A6 4E800421 -48000044 2C030002 -40820030 7F64DB78 -38BD01D6 480002E9 +4182000C 38BD0098 +48000008 38BE00B0 +3880000A 48000615 +887E0000 2C030004 +4182000C 38BD0098 +48000008 38BD0185 +38800008 480005F5 +887E0000 2C030004 +41820034 2C030005 +41820020 2C030000 +4181000C 38BD0098 +48000024 38BD0197 +38DD01BD 48000018 +38BD0197 38DD01C4 +4800000C 38BD01A5 +38DD01B2 38800007 +480005A9 3B600001 +7F64DB78 38BD0098 +48000599 3B7B0002 +2C1B0005 4081FFEC +3880000C 38600000 +7C7C21AE 38840001 +2C04000E 4081FFF4 +3B60000B 7F64DB78 +38BD0098 48000565 +3B7B0001 2C1B000E +4081FFEC 887E0000 +2C030005 408200A8 +3B60000B 3B200000 +3B000000 3AE00000 +3ADE016B 7EB6C8AE +56A00631 41820010 +3B390002 3B180001 +48000018 2C150020 +40820008 7F37CB78 +3B390001 3B180001 +2C150000 41820018 +2C18001E 41810008 +4800002C 38800000 +7C96B9AE 7F64DB78 +7EC5B378 480004E5 +3B7B0001 7ED6BA14 +3AD60001 3B200000 +3B000000 2C150000 +41820020 387E025C +7C96CA14 7C041800 +40800010 2C1B000E +41810008 4BFFFF78 +4800015C 3B600001 +886DB657 7F64DB78 +2C030000 40820018 +38BD00BE 4800048D +38600001 987C000C +48000134 38BD00D4 +48000479 3B7B0002 +38600002 987C000C +887E0001 7F64DB78 +2C030000 40820080 +886DAFA0 2C030002 +41800034 887E0000 +2C030004 40820028 +886DAFC9 2C030000 +4082001C 886DAFCA +2C030000 40820010 +38BD00E7 38DD0113 +48000034 38BD00E7 +38DD00F9 887E0000 +2C030004 41820020 +38BD00E7 38DD010C +886DAFA0 2C030002 +4180000C 38BD00E7 +38DD0101 480003ED +38600001 987C000D +48000094 38BD0120 +480003D9 3B7B0002 +38600002 987C000D +887E0000 7F64DB78 +2C030004 4182005C +2C030003 4182002C +38BD012A 38DD015A +896DAFA0 2C0B0001 +41820048 2C0B0000 +41820040 38BD012A +38DD0163 48000034 +38BD013B 38DD015A +896DAFA0 2C0B0001 +41820020 2C0B0000 +41820018 38BD013B +38DD0163 4800000C +38BD014C 38DD015A +48000359 38600001 +987C000E 3B20000C +3B600002 7C7CC8AE +2C030001 40820044 +A07C000F 3880000F +7C632396 1C630003 +386301D0 7CBD1A14 +7F64DB78 4800031D 7F43D378 7F64DB78 -38BD0084 3D80803A +38BD0088 3D80803A 618C74F0 7D8903A6 -4E800421 48000010 -7F64DB78 38BD0098 -480002BD 3B7B0002 -3B390001 2C19000E -4081FF68 A07C000F -38630001 2C03001E -41800008 38600000 -B07C000F BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 7C6E1B78 -7C0802A6 90010004 -9421FF40 BE810008 -DBE100B0 DBC100B8 -4BFFF3B9 7FA802A6 -820E002C 8A300000 -8A500001 8A700002 -8A900003 82B00004 -8AF00008 83900009 -81EE0028 81EF0010 -7DE37B78 3D808037 -618C0928 7D8903A6 -4E800421 2C150000 -408200CC 7E83A378 -3D808000 618C55F4 +4E800421 48000044 +2C030002 40820030 +7F64DB78 38BD01D6 +480002E9 7F43D378 +7F64DB78 38BD0084 +3D80803A 618C74F0 +7D8903A6 4E800421 +48000010 7F64DB78 +38BD0098 480002BD +3B7B0002 3B390001 +2C19000E 4081FF68 +A07C000F 38630001 +2C03001E 41800008 +38600000 B07C000F +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C6E1B78 7C0802A6 +90010004 9421FF40 +BE810008 DBE100B0 +DBC100B8 4BFFF3B5 +7FA802A6 820E002C +8A300000 8A500001 +8A700002 8A900003 +82B00004 8AF00008 +83900009 81EE0028 +81EF0010 7DE37B78 +3D808037 618C0928 7D8903A6 4E800421 -C05D0018 C07D0008 -EC6100F2 EC421828 -D04F003C 2C120000 -4182009C 3A2000AA -9A300000 3A400001 -9A500001 7C962378 +2C150000 408200CC 7E83A378 3D808000 618C55F4 7D8903A6 -4E800421 C05D0030 +4E800421 C05D0018 C07D0008 EC6100F2 -EC42182A FFC01090 -806DC2DC 38800003 -9883000E C03D002C -886DAFE0 2C030000 -41820008 C03D0028 -38770001 7E649B78 -38A00002 38C00000 -C07D0034 C09D0038 -3D808000 618C56B4 -7D8903A6 4E800421 -90700004 806DC2DC -38800001 9883000E -48000004 887C0017 -2C03000D 41800028 -887C0019 7C03A000 -4080000C 2C140009 -408100B4 887C0019 -7C741850 2C03000D -418100A4 2C110000 -4082001C 2C120000 -4182FF2C 2C120001 -41820018 2C120002 -41820084 3A31FFFF -9A300000 480000D4 -3A400002 9A500001 -3A200014 9A300000 -806E0028 809C0004 -80840004 38A00001 -3D808016 618C895C -7D8903A6 4E800421 -806E0028 C022AE28 -3D808036 618CF8BC -7D8903A6 4E800421 -8075005C 3D808037 -618CF1B0 7D8903A6 -4E800421 7EA3AB78 -3D80803A 618C5CC4 -7D8903A6 4E800421 -48000060 7DC37378 -3D808039 618C0228 +EC421828 D04F003C +2C120000 4182009C +3A2000AA 9A300000 +3A400001 9A500001 +7C962378 7E83A378 +3D808000 618C55F4 7D8903A6 4E800421 -809C0000 88840003 -7C172000 40820010 -887C0018 3863FFFF -987C0018 887C0017 -3863FFFF 987C0017 -887C0019 7E84A378 -38840001 7C032000 -41820008 4800000C -38600000 987C0019 -BA810008 CBE100B0 -CBC100B8 800100C4 -382100C0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7F43D378 -3D80803A 618C70A0 +C05D0030 C07D0008 +EC6100F2 EC42182A +FFC01090 806DC2DC +38800003 9883000E +C03D002C 886DAFE0 +2C030000 41820008 +C03D0028 38770001 +7E649B78 38A00002 +38C00000 C07D0034 +C09D0038 3D808000 +618C56B4 7D8903A6 +4E800421 90700004 +806DC2DC 38800001 +9883000E 48000004 +887C0017 2C03000D +41800028 887C0019 +7C03A000 4080000C +2C140009 408100B4 +887C0019 7C741850 +2C03000D 418100A4 +2C110000 4082001C +2C120000 4182FF2C +2C120001 41820018 +2C120002 41820084 +3A31FFFF 9A300000 +480000D4 3A400002 +9A500001 3A200014 +9A300000 806E0028 +809C0004 80840004 +38A00001 3D808016 +618C895C 7D8903A6 +4E800421 806E0028 +C022AE28 3D808036 +618CF8BC 7D8903A6 +4E800421 8075005C +3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 80CDB638 -60000000 00000000 +7EA3AB78 3D80803A +618C5CC4 7D8903A6 +4E800421 48000060 +7DC37378 3D808039 +618C0228 7D8903A6 +4E800421 809C0000 +88840003 7C172000 +40820010 887C0018 +3863FFFF 987C0018 +887C0017 3863FFFF +987C0017 887C0019 +7E84A378 38840001 +7C032000 41820008 +4800000C 38600000 +987C0019 BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7F43D378 3D80803A +618C70A0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +80CDB638 00000000 C2262004 0000000B #Online/Menus/CSS/PreventAPressCharUnselect.asm 3C608048 80639D30 5463443E 2C030008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index e8b250db..5bec0e98 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2793,7 +2793,7 @@ C05F0040 FC011040 C2264534 000001E0 #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820EE4 480001F8 +40820EE8 480001F8 4E800021 00000000 3DCCCCCD 404CCCCD 413CCCCD 3F4CCCCD @@ -2930,7 +2930,7 @@ C05D007C C07D0074 4800009D C07D0064 48000095 BA810008 800100B4 382100B0 -7C0803A6 48000A98 +7C0803A6 48000A9C 7C0802A6 90010004 9421FF50 BE810008 D0610038 7F83E378 @@ -2999,278 +2999,278 @@ BA810008 800100B4 48000018 38DD00A9 48000010 38DD00B0 48000008 38BD0176 -4800083D 887E000A -2C030000 4182001C -3B1E0015 7C791B78 -887C0018 38630001 -987C0018 48000014 -887E000B 2C030000 -418201BC 7C791B78 -887C0019 2C030009 -40810010 38600000 -987C0019 418201A0 -386000B7 3880007F -38A00040 3D808002 -618C37A8 7D8903A6 -4E800421 887C0017 -38630001 987C0017 -3860000D 3D808037 -618CF1E4 7D8903A6 -4E800421 7C771B78 -3880001C 3D808000 -618CC160 7D8903A6 -4E800421 38600014 -38800000 98770000 -98970001 7F23CB78 -98770002 887C0019 -98770003 38630001 -987C0019 887E000C -98770008 7F83E378 -90770009 38600004 -38800005 38A00080 -3D808039 618C01F0 +48000841 480001EC +887E000A 2C030000 +4182001C 3B1E0015 +7C791B78 887C0018 +38630001 987C0018 +48000014 887E000B +2C030000 418201BC +7C791B78 887C0019 +2C030009 40810010 +38600000 987C0019 +418201A0 386000B7 +3880007F 38A00040 +3D808002 618C37A8 7D8903A6 4E800421 -7C761B78 807C0004 -80630004 80630000 -3D808037 618C0E44 +887C0017 38630001 +987C0017 3860000D +3D808037 618CF1E4 7D8903A6 4E800421 -7C651B78 7EC3B378 -888DC1A9 3D808039 -618C0A70 7D8903A6 -4E800421 7EC3B378 -3C808039 60841070 -38A00003 38C00080 -3D808039 618C069C +7C771B78 3880001C +3D808000 618CC160 7D8903A6 4E800421 -80760028 809C0004 -80840004 38A00000 -3D808016 618C895C +38600014 38800000 +98770000 98970001 +7F23CB78 98770002 +887C0019 98770003 +38630001 987C0019 +887E000C 98770008 +7F83E378 90770009 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C761B78 +807C0004 80630004 +80630000 3D808037 +618C0E44 7D8903A6 +4E800421 7C651B78 +7EC3B378 888DC1A9 +3D808039 618C0A70 7D8903A6 4E800421 -80760028 C022AE28 -3D808036 618CF8BC +7EC3B378 3C808039 +60841070 38A00003 +38C00080 3D808039 +618C069C 7D8903A6 +4E800421 80760028 +809C0004 80840004 +38A00000 3D808016 +618C895C 7D8903A6 +4E800421 80760028 +C022AE28 3D808036 +618CF8BC 7D8903A6 +4E800421 886DAFE0 +2C030000 41820010 +C03D0014 80760028 +D0230038 7EC3B378 +38800004 3CA08037 +60A5F1B0 7EE6BB78 +3D808039 618C0B68 +7D8903A6 4E800421 +7EC3B378 480003F1 +7C8802A6 38A00004 +3D808038 618CFD54 7D8903A6 4E800421 -886DAFE0 2C030000 -41820010 C03D0014 -80760028 D0230038 -7EC3B378 38800004 -3CA08037 60A5F1B0 -7EE6BB78 3D808039 -618C0B68 7D8903A6 -4E800421 7EC3B378 -480003F1 7C8802A6 -38A00004 3D808038 -618CFD54 7D8903A6 -4E800421 887E0000 -2C030004 4182000C -38BD0098 48000008 -38BD017C 38800009 -48000635 887E0000 -2C030004 4182000C -38BD0098 48000008 -38BE00B0 3880000A -48000615 887E0000 -2C030004 4182000C -38BD0098 48000008 -38BD0185 38800008 -480005F5 887E0000 -2C030004 41820034 -2C030005 41820020 -2C030000 4181000C -38BD0098 48000024 -38BD0197 38DD01BD -48000018 38BD0197 -38DD01C4 4800000C -38BD01A5 38DD01B2 -38800007 480005A9 -3B600001 7F64DB78 -38BD0098 48000599 -3B7B0002 2C1B0005 -4081FFEC 3880000C -38600000 7C7C21AE -38840001 2C04000E -4081FFF4 3B60000B -7F64DB78 38BD0098 -48000565 3B7B0001 -2C1B000E 4081FFEC -887E0000 2C030005 -408200A8 3B60000B -3B200000 3B000000 -3AE00000 3ADE016B -7EB6C8AE 56A00631 -41820010 3B390002 -3B180001 48000018 -2C150020 40820008 -7F37CB78 3B390001 -3B180001 2C150000 -41820018 2C18001E -41810008 4800002C -38800000 7C96B9AE -7F64DB78 7EC5B378 -480004E5 3B7B0001 -7ED6BA14 3AD60001 -3B200000 3B000000 -2C150000 41820020 -387E025C 7C96CA14 -7C041800 40800010 -2C1B000E 41810008 -4BFFFF78 4800015C -3B600001 886DB657 -7F64DB78 2C030000 -40820018 38BD00BE -4800048D 38600001 -987C000C 48000134 -38BD00D4 48000479 -3B7B0002 38600002 -987C000C 887E0001 -7F64DB78 2C030000 -40820080 886DAFA0 -2C030002 41800034 887E0000 2C030004 -40820028 886DAFC9 -2C030000 4082001C -886DAFCA 2C030000 -40820010 38BD00E7 -38DD0113 48000034 -38BD00E7 38DD00F9 +4182000C 38BD0098 +48000008 38BD017C +38800009 48000635 887E0000 2C030004 -41820020 38BD00E7 -38DD010C 886DAFA0 -2C030002 4180000C -38BD00E7 38DD0101 -480003ED 38600001 -987C000D 48000094 -38BD0120 480003D9 -3B7B0002 38600002 -987C000D 887E0000 -7F64DB78 2C030004 -4182005C 2C030003 -4182002C 38BD012A -38DD015A 896DAFA0 -2C0B0001 41820048 -2C0B0000 41820040 -38BD012A 38DD0163 -48000034 38BD013B -38DD015A 896DAFA0 -2C0B0001 41820020 -2C0B0000 41820018 -38BD013B 38DD0163 -4800000C 38BD014C -38DD015A 48000359 -38600001 987C000E -3B20000C 3B600002 -7C7CC8AE 2C030001 -40820044 A07C000F -3880000F 7C632396 -1C630003 386301D0 -7CBD1A14 7F64DB78 -4800031D 7F43D378 -7F64DB78 38BD0088 -3D80803A 618C74F0 -7D8903A6 4E800421 -48000044 2C030002 -40820030 7F64DB78 -38BD01D6 480002E9 +4182000C 38BD0098 +48000008 38BE00B0 +3880000A 48000615 +887E0000 2C030004 +4182000C 38BD0098 +48000008 38BD0185 +38800008 480005F5 +887E0000 2C030004 +41820034 2C030005 +41820020 2C030000 +4181000C 38BD0098 +48000024 38BD0197 +38DD01BD 48000018 +38BD0197 38DD01C4 +4800000C 38BD01A5 +38DD01B2 38800007 +480005A9 3B600001 +7F64DB78 38BD0098 +48000599 3B7B0002 +2C1B0005 4081FFEC +3880000C 38600000 +7C7C21AE 38840001 +2C04000E 4081FFF4 +3B60000B 7F64DB78 +38BD0098 48000565 +3B7B0001 2C1B000E +4081FFEC 887E0000 +2C030005 408200A8 +3B60000B 3B200000 +3B000000 3AE00000 +3ADE016B 7EB6C8AE +56A00631 41820010 +3B390002 3B180001 +48000018 2C150020 +40820008 7F37CB78 +3B390001 3B180001 +2C150000 41820018 +2C18001E 41810008 +4800002C 38800000 +7C96B9AE 7F64DB78 +7EC5B378 480004E5 +3B7B0001 7ED6BA14 +3AD60001 3B200000 +3B000000 2C150000 +41820020 387E025C +7C96CA14 7C041800 +40800010 2C1B000E +41810008 4BFFFF78 +4800015C 3B600001 +886DB657 7F64DB78 +2C030000 40820018 +38BD00BE 4800048D +38600001 987C000C +48000134 38BD00D4 +48000479 3B7B0002 +38600002 987C000C +887E0001 7F64DB78 +2C030000 40820080 +886DAFA0 2C030002 +41800034 887E0000 +2C030004 40820028 +886DAFC9 2C030000 +4082001C 886DAFCA +2C030000 40820010 +38BD00E7 38DD0113 +48000034 38BD00E7 +38DD00F9 887E0000 +2C030004 41820020 +38BD00E7 38DD010C +886DAFA0 2C030002 +4180000C 38BD00E7 +38DD0101 480003ED +38600001 987C000D +48000094 38BD0120 +480003D9 3B7B0002 +38600002 987C000D +887E0000 7F64DB78 +2C030004 4182005C +2C030003 4182002C +38BD012A 38DD015A +896DAFA0 2C0B0001 +41820048 2C0B0000 +41820040 38BD012A +38DD0163 48000034 +38BD013B 38DD015A +896DAFA0 2C0B0001 +41820020 2C0B0000 +41820018 38BD013B +38DD0163 4800000C +38BD014C 38DD015A +48000359 38600001 +987C000E 3B20000C +3B600002 7C7CC8AE +2C030001 40820044 +A07C000F 3880000F +7C632396 1C630003 +386301D0 7CBD1A14 +7F64DB78 4800031D 7F43D378 7F64DB78 -38BD0084 3D80803A +38BD0088 3D80803A 618C74F0 7D8903A6 -4E800421 48000010 -7F64DB78 38BD0098 -480002BD 3B7B0002 -3B390001 2C19000E -4081FF68 A07C000F -38630001 2C03001E -41800008 38600000 -B07C000F BA810008 -800100B4 382100B0 -7C0803A6 4E800020 -4E800021 7C6E1B78 -7C0802A6 90010004 -9421FF40 BE810008 -DBE100B0 DBC100B8 -4BFFF3B9 7FA802A6 -820E002C 8A300000 -8A500001 8A700002 -8A900003 82B00004 -8AF00008 83900009 -81EE0028 81EF0010 -7DE37B78 3D808037 -618C0928 7D8903A6 -4E800421 2C150000 -408200CC 7E83A378 -3D808000 618C55F4 +4E800421 48000044 +2C030002 40820030 +7F64DB78 38BD01D6 +480002E9 7F43D378 +7F64DB78 38BD0084 +3D80803A 618C74F0 +7D8903A6 4E800421 +48000010 7F64DB78 +38BD0098 480002BD +3B7B0002 3B390001 +2C19000E 4081FF68 +A07C000F 38630001 +2C03001E 41800008 +38600000 B07C000F +BA810008 800100B4 +382100B0 7C0803A6 +4E800020 4E800021 +7C6E1B78 7C0802A6 +90010004 9421FF40 +BE810008 DBE100B0 +DBC100B8 4BFFF3B5 +7FA802A6 820E002C +8A300000 8A500001 +8A700002 8A900003 +82B00004 8AF00008 +83900009 81EE0028 +81EF0010 7DE37B78 +3D808037 618C0928 7D8903A6 4E800421 -C05D0018 C07D0008 -EC6100F2 EC421828 -D04F003C 2C120000 -4182009C 3A2000AA -9A300000 3A400001 -9A500001 7C962378 +2C150000 408200CC 7E83A378 3D808000 618C55F4 7D8903A6 -4E800421 C05D0030 +4E800421 C05D0018 C07D0008 EC6100F2 -EC42182A FFC01090 -806DC2DC 38800003 -9883000E C03D002C -886DAFE0 2C030000 -41820008 C03D0028 -38770001 7E649B78 -38A00002 38C00000 -C07D0034 C09D0038 -3D808000 618C56B4 -7D8903A6 4E800421 -90700004 806DC2DC -38800001 9883000E -48000004 887C0017 -2C03000D 41800028 -887C0019 7C03A000 -4080000C 2C140009 -408100B4 887C0019 -7C741850 2C03000D -418100A4 2C110000 -4082001C 2C120000 -4182FF2C 2C120001 -41820018 2C120002 -41820084 3A31FFFF -9A300000 480000D4 -3A400002 9A500001 -3A200014 9A300000 -806E0028 809C0004 -80840004 38A00001 -3D808016 618C895C -7D8903A6 4E800421 -806E0028 C022AE28 -3D808036 618CF8BC -7D8903A6 4E800421 -8075005C 3D808037 -618CF1B0 7D8903A6 -4E800421 7EA3AB78 -3D80803A 618C5CC4 -7D8903A6 4E800421 -48000060 7DC37378 -3D808039 618C0228 +EC421828 D04F003C +2C120000 4182009C +3A2000AA 9A300000 +3A400001 9A500001 +7C962378 7E83A378 +3D808000 618C55F4 7D8903A6 4E800421 -809C0000 88840003 -7C172000 40820010 -887C0018 3863FFFF -987C0018 887C0017 -3863FFFF 987C0017 -887C0019 7E84A378 -38840001 7C032000 -41820008 4800000C -38600000 987C0019 -BA810008 CBE100B0 -CBC100B8 800100C4 -382100C0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7F43D378 -3D80803A 618C70A0 +C05D0030 C07D0008 +EC6100F2 EC42182A +FFC01090 806DC2DC +38800003 9883000E +C03D002C 886DAFE0 +2C030000 41820008 +C03D0028 38770001 +7E649B78 38A00002 +38C00000 C07D0034 +C09D0038 3D808000 +618C56B4 7D8903A6 +4E800421 90700004 +806DC2DC 38800001 +9883000E 48000004 +887C0017 2C03000D +41800028 887C0019 +7C03A000 4080000C +2C140009 408100B4 +887C0019 7C741850 +2C03000D 418100A4 +2C110000 4082001C +2C120000 4182FF2C +2C120001 41820018 +2C120002 41820084 +3A31FFFF 9A300000 +480000D4 3A400002 +9A500001 3A200014 +9A300000 806E0028 +809C0004 80840004 +38A00001 3D808016 +618C895C 7D8903A6 +4E800421 806E0028 +C022AE28 3D808036 +618CF8BC 7D8903A6 +4E800421 8075005C +3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 80CDB638 -60000000 00000000 +7EA3AB78 3D80803A +618C5CC4 7D8903A6 +4E800421 48000060 +7DC37378 3D808039 +618C0228 7D8903A6 +4E800421 809C0000 +88840003 7C172000 +40820010 887C0018 +3863FFFF 987C0018 +887C0017 3863FFFF +987C0017 887C0019 +7E84A378 38840001 +7C032000 41820008 +4800000C 38600000 +987C0019 BA810008 +CBE100B0 CBC100B8 +800100C4 382100C0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF50 BE810008 +7F43D378 3D80803A +618C70A0 7D8903A6 +4E800421 BA810008 +800100B4 382100B0 +7C0803A6 4E800020 +80CDB638 00000000 C2262004 0000000B #Online/Menus/CSS/PreventAPressCharUnselect.asm 3C608048 80639D30 5463443E 2C030008 From 408dd07b4db86568f3e9e4ccdeb32eef6820db5d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Aug 2022 15:04:17 -0400 Subject: [PATCH 132/217] remove loadf this would be unsafe in the case of a very poorly timed interrupt --- Common/Common.s | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 847a2339..58d48948 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -20,13 +20,6 @@ lis \reg, \address @h ori \reg, \reg, \address @l .endm -.macro loadf regf,reg,address -lis \reg, \address @h -ori \reg, \reg, \address @l -stw \reg,-0x4(sp) -lfs \regf,-0x4(sp) -.endm - .macro loadwz reg, address lis \reg, \address @h ori \reg, \reg, \address @l From 0a93c7a017dfe7d77689b5df6c34d71169ab7c45 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Aug 2022 15:42:48 -0400 Subject: [PATCH 133/217] move register backup to after free space this allows for the free space to always start at 0x8 regardless of how many registers are being backed up, should be less error prone. there is always a chance though that this may cause unforeseen bugs because it's assembly and ASM is brittle. That said, I added additional free space such that every stack frame offset that used to be free space still is. If a function expected to look at the parent's stack frame, however, by adding the total size of the stack frame (formerly 0xB0), these could have issues. I did this in two places that I could find and fixed both of those. --- Bootloader/main.asm | 4 +- Common/Common.s | 15 +- Common/UseInGameDelay/ApplyInGameDelay.asm | 6 +- Online/Core/TriggerSendInput.asm | 2 +- Online/Menus/CSS/LoadCSSText.asm | 2 +- Online/Menus/TitleMenu/OnMenuPrep.asm | 2 +- Online/Static/SubtextFunctions.asm | 2 +- Output/Console/GALE01r2.ini | 66 +- Output/Console/g_core.bin | Bin 5184 -> 5184 bytes Output/Console/g_core_porta.bin | Bin 5184 -> 5184 bytes Output/Console/g_mods_friendlies.bin | Bin 2648 -> 2648 bytes Output/Console/g_mods_friendlies.txt | 20 +- Output/Console/g_mods_stealth.bin | Bin 1360 -> 1360 bytes Output/Console/g_mods_stealth.txt | 12 +- Output/Console/g_mods_tournament.bin | Bin 2088 -> 2088 bytes Output/Console/g_mods_tournament.txt | 12 +- Output/Console/g_pal.bin | Bin 2056 -> 2056 bytes Output/Console/g_pal.txt | 6 +- Output/Console/g_screen_wide_shutters.bin | Bin 448 -> 448 bytes Output/Console/g_screen_wide_shutters.txt | 8 +- Output/Console/g_ucf.bin | Bin 1072 -> 1072 bytes Output/Console/g_ucf.txt | 30 +- Output/Console/g_ucf_stealth.bin | Bin 856 -> 856 bytes Output/Console/g_ucf_stealth.txt | 24 +- Output/Netplay/GALE01r2.ini | 936 ++++++++++----------- Output/Netplay/GALJ01r2.ini | 936 ++++++++++----------- Output/Playback/GALE01r2.ini | 130 +-- Output/Playback/GALJ01r2.ini | 130 +-- 28 files changed, 1171 insertions(+), 1172 deletions(-) diff --git a/Bootloader/main.asm b/Bootloader/main.asm index 29481f90..17ab138f 100644 --- a/Bootloader/main.asm +++ b/Bootloader/main.asm @@ -158,8 +158,8 @@ HANDLE_C2: sub r3, r4, REG_TargetDataPtr rlwinm r3, r3, 0, 6, 29 oris r3, r3, 0x4800 - stw r3, BKP_DEFAULT_FREE_SPACE_OFFSET(sp) - addi REG_SourceDataPtr, sp, BKP_DEFAULT_FREE_SPACE_OFFSET + stw r3, BKP_FREE_SPACE_OFFSET(sp) + addi REG_SourceDataPtr, sp, BKP_FREE_SPACE_OFFSET # C2 Step 2: Replace branch instruction in gecko code to return to correct loc lwz r3, 0x4(REG_CodeAddress) diff --git a/Common/Common.s b/Common/Common.s index 58d48948..f703d4e5 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -61,15 +61,14 @@ subf \reg, \reg_temp, \reg branchl r12, 0x8021b2d8 .endm -# This is where the free space in our stack starts when using the default args. Note that if you -# use a custom arg for num_reg, you will have to calculate your own free space offset -# using the function: 8 + (num_reg * 4) -.set BKP_DEFAULT_FREE_SPACE_OFFSET, 8 + (12 * 4) +# This is where the free space in our stack frame starts +.set BKP_FREE_SPACE_OFFSET, 8 +.set BKP_DEFAULT_STACK_FRAME_SIZE, 0xE0 # backup is used to set up a stack frame in which LR and non-volatile registers will be stored. # It also sets up some free space on the stack for the function to use if needed. # More info: https://docs.google.com/document/d/1QJOQzy933fxpfzIJlq6xopcviZ5tALKQvi_OOqpjehE -.macro backup free_space=0x78, num_freg=0, num_reg=12 +.macro backup free_space=0xA8, num_freg=0, num_reg=12 mflr r0 stw r0, 0x4(r1) # Stack allocation has to be 4-byte aligned otherwise it crashes on console. This section @@ -81,7 +80,7 @@ stw r0, 0x4(r1) .endif stwu r1,-(0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg)(r1) .if \num_reg > 0 - stmw 32 - \num_reg, 0x8(r1) + stmw 32 - \num_reg, (0x8 + ALIGNED_FREE_SPACE)(r1) .endif .if \num_freg > 0 stfd f31, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 0)(r1) @@ -139,7 +138,7 @@ stwu r1,-(0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg)(r1) .endif .endm -.macro restore free_space=0x78, num_freg=0, num_reg=12 +.macro restore free_space=0xA8, num_freg=0, num_reg=12 # Stack allocation has to be 4-byte aligned otherwise it crashes on console .if \free_space % 4 == 0 .set ALIGNED_FREE_SPACE, \free_space @@ -147,7 +146,7 @@ stwu r1,-(0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg)(r1) .set ALIGNED_FREE_SPACE, \free_space + (4 - \free_space % 4) .endif .if \num_reg > 0 - lmw 32 - \num_reg, 0x8(r1) + lmw 32 - \num_reg, (0x8 + ALIGNED_FREE_SPACE)(r1) .endif .if \num_freg > 0 lfd f31, (0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * 0)(r1) diff --git a/Common/UseInGameDelay/ApplyInGameDelay.asm b/Common/UseInGameDelay/ApplyInGameDelay.asm index 51a82f17..f16e5e79 100644 --- a/Common/UseInGameDelay/ApplyInGameDelay.asm +++ b/Common/UseInGameDelay/ApplyInGameDelay.asm @@ -32,7 +32,7 @@ bne EXIT .set REG_IGDB_ADDR, 31 .set REG_CUR_REPORT_IGDB_OFST, 30 -.set CONST_BACKUP_BYTES, 0xB0 # Maybe add this to Common.s +.set CONST_BACKUP_BYTES, BKP_DEFAULT_STACK_FRAME_SIZE # Maybe add this to Common.s .set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C backup @@ -48,7 +48,7 @@ ble RESTORE_EXIT ################################################################################ # Copy current inputs to temporary location ################################################################################ -addi r3, sp, BKP_DEFAULT_FREE_SPACE_OFFSET +addi r3, sp, BKP_FREE_SPACE_OFFSET addi r4, sp, P1_PAD_OFFSET li r5, PADS_REPORT_SIZE branchl r12, memcpy @@ -71,7 +71,7 @@ branchl r12, memcpy # Store current inputs to use X frames later ################################################################################ add r3, REG_IGDB_ADDR, REG_CUR_REPORT_IGDB_OFST -addi r4, sp, BKP_DEFAULT_FREE_SPACE_OFFSET +addi r4, sp, BKP_FREE_SPACE_OFFSET li r5, PADS_REPORT_SIZE branchl r12, memcpy diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 0a9592e5..48b191e9 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -5,7 +5,7 @@ .include "Common/Common.s" .include "Online/Online.s" -.set CONST_BACKUP_BYTES, 0xB0 # Maybe add this to Common.s +.set CONST_BACKUP_BYTES, BKP_DEFAULT_STACK_FRAME_SIZE # Maybe add this to Common.s .set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C .set REG_LOCAL_SOURCE_INPUT, 29 diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index 3f94711e..9bffac9d 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -385,7 +385,7 @@ b EXIT # Expects f3 to be set to y position of line ################################################################################ INIT_LINE_SUBTEXT: -.set SP_OFST_Y_POS, BKP_DEFAULT_FREE_SPACE_OFFSET +.set SP_OFST_Y_POS, BKP_FREE_SPACE_OFFSET backup stfs f3, SP_OFST_Y_POS(sp) diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index e1114b1f..dc472d09 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -46,7 +46,7 @@ .set JOBJ_DESC_DLG_ANIM_JOINT, 0x803efa24 # archive memory address of dialog anim joint .set JOBJ_DESC_DLG_MAT_JOINT, 0x803efa40 # archive memory address of dialog mat joint .set JOBJ_DESC_DLG_SHAPE_JOINT, 0x803efa60 # archive memory address of dialog shape joint -.set JOBJ_CHILD_OFFSET, BKP_DEFAULT_FREE_SPACE_OFFSET # Pointer to store Child JOBJ on the SP +.set JOBJ_CHILD_OFFSET, BKP_FREE_SPACE_OFFSET # Pointer to store Child JOBJ on the SP # Offset from submenu gobj where we are storing dialog user data buffer when # open diff --git a/Online/Static/SubtextFunctions.asm b/Online/Static/SubtextFunctions.asm index a0ad88dd..4ee24ee6 100644 --- a/Online/Static/SubtextFunctions.asm +++ b/Online/Static/SubtextFunctions.asm @@ -49,7 +49,7 @@ .set TEXT_LAST_INDEX, 0 # Stack pointer offsets -.set SPO_STRING_PTR_1, BKP_DEFAULT_FREE_SPACE_OFFSET +.set SPO_STRING_PTR_1, BKP_FREE_SPACE_OFFSET .set SPO_STRING_PTR_2, SPO_STRING_PTR_1 + 4 .set SPO_STRING_PTR_3, SPO_STRING_PTR_2 + 4 .set SPO_STRING_PTR_4, SPO_STRING_PTR_3 + 4 diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index a589b958..4844f7a3 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -55,7 +55,7 @@ $Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] 040679BC 38802600 #Recording/ExtendPlayerBlock.asm C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418200A8 @@ -79,13 +79,13 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600000 -906DB650 BA810008 -800100B4 382100B0 +906DB650 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 C216D884 0000001C #Recording/SendGameEnd.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418200A0 @@ -108,13 +108,13 @@ C216D884 0000001C #Recording/SendGameEnd.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600001 -98780004 BA810008 -800100B4 382100B0 +98780004 BA8100B0 +800100E4 382100E0 7C0803A6 819F2514 60000000 00000000 C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418207A0 @@ -306,7 +306,7 @@ A0B50201 3D808000 7D8903A6 4E800421 48000070 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83A30000 838DB650 7FBDE214 3860003A 987D0000 @@ -315,8 +315,8 @@ A0B50201 3D808000 907D0005 3C608048 80639D60 907D0009 838DB650 3B9C000D -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600004 38800007 38A00000 3D808039 @@ -327,7 +327,7 @@ A0B50201 3D808000 7D8903A6 4E800421 48000124 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83E30000 83CDB650 7FFFF214 3B600000 806DC18C @@ -359,15 +359,15 @@ B07F001C 807C0D44 3BDE002B 93CDB650 3BFF002B 83BD0008 2C1D0000 4082FF30 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 3C608017 60000000 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 41820170 @@ -416,13 +416,13 @@ B07D0030 887F1968 807F195C 907D0049 807F0014 907D004D 838DB650 3B9C0051 -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 C206B0DC 0000002B #Recording/SendGamePreFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 41820118 @@ -460,8 +460,8 @@ B07D0031 80640030 88630002 987D003B 807F1830 907D003C 838DB650 3B9C0040 -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 881F2219 60000000 00000000 C2005604 0000000A #Recording/ShouldRecord.asm @@ -486,7 +486,7 @@ C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 807E00B0 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 3BE00000 887E221F 5460EFFF 41820038 887E000C @@ -496,8 +496,8 @@ C20055F8 0000000F #Common/GetIsFollower.asm 1C030003 7C640214 88030002 2C000000 40820008 3BE00001 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm @@ -557,7 +557,7 @@ C2068EEC 00000006 #Common/Initialize Player Data/Init Player Data.asm 60000000 00000000 C20055F0 0000002C #Common/EXITransferBuffer/EXITransferBuffer.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 7C9D2378 7CBF2B78 3D808034 618C7364 7D8903A6 @@ -597,12 +597,12 @@ C20055F0 0000002C #Common/EXITransferBuffer/EXITransferBuffer.asm 4C00012C 7F83E378 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 C20055FC 00000021 #Common/Gecko/ProcessCodeList.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 7C7A1B78 7C9E2378 3B800000 807D0000 5463463C @@ -631,8 +631,8 @@ C20055FC 00000021 #Common/Gecko/ProcessCodeList.asm 7F25CB78 7FC903A6 4E800421 7FBDDA14 4BFFFF38 7C7AE850 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 04005600 801910E0 #Common/ConsoleOverrides/SetGeckoStart.asm C20AC5B8 00000002 #Common/NanaDeterminism/NanaDeterminism.asm @@ -643,7 +643,7 @@ C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor. C2F00000 42F00000 42A00000 C1A00000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 4BFFFFD9 7FA802A6 807E002C A86300EE 3D808003 @@ -660,6 +660,6 @@ FC020840 41810018 C03D000C FC020840 4180000C 38600001 48000008 38600000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 16090968066ec837c16736dde0434c219c5e7d89..c2c82cbe8171c39c4c42ef323468192fed5d1956 100644 GIT binary patch delta 302 zcmX@0aX@2(Gb5|QzD9-(lNFf7CdVSB)0VZW6IX|X_NOC`5a+?*H zf3w1rak?WZDc}r-il5;8EekichJ$&TUju`}E}*4ws~&K{tUACWzFD5TfDy@{89Y$Q z%?Eh&ktKfc9){X*fX^SHVY3APZK$s{{}8Z7)?p(g57m(%^cbOIvX5{$RD6YSvnbqM KAh#wkKmY(ce`ZAh delta 302 zcmX@0aX@2(Gb3xjzD5R)$qLM3lj9gya&j~WY{oSfJqri&W~v!lH3oN+-3#l z->fiYobE_U3OIwI;wLzN%fgMV;b30o*TA5#3ur0ass~&!s}AspZ%#1`kwn z^8p@xWQiZVhoLqc;PXdl*et<+8|tggKLo6ib=U~WLv?0fw6<;CTEDCoQ K$gK$s5C8zMDOJS) diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index 1a997fa76ee96925ba0a4d92927f2d915118bd36..a4674e7efefbfd588f0036a2ba1f7a916082b856 100644 GIT binary patch delta 302 zcmX@0aX@2(Gb5|QzD9-(lNFf7CdVSB)0VZW6IX|X_NOC`5a+?*H zf3w1rak?WZDc}r-il5;8EekichJ$&TUju`}E}*4ws~&K{tUACWzFD5TfDy@{89Y$Q z%?Eh&ktKfc9){X*fX^SHVY3APZK$s{{}8Z7)?p(g57m(%^cbOIvX5{$RD6YSvnbqM KAh#wkKmY(ce`ZAh delta 302 zcmX@0aX@2(Gb3xjzD5R)$qLM3lj9gya&j~WY{oSfJqri&W~v!lH3oN+-3#l z->fiYobE_U3OIwI;wLzN%fgMV;b30o*TA5#3ur0ass~&!s}AspZ%#1`kwn z^8p@xWQiZVhoLqc;PXdl*et<+8|tggKLo6ib=U~WLv?0fw6<;CTEDCoQ K$gK$s5C8zMDOJS) diff --git a/Output/Console/g_mods_friendlies.bin b/Output/Console/g_mods_friendlies.bin index 1c569f143079ad166870ec1db44dfa9d6d3db7ef..73c7d84f53d98fbc94d0a475b22b2fba44a233bb 100644 GIT binary patch delta 98 zcmca1azjMokl0fJ1_p*1H5^RKCNMIvOi}!=u&b%9Ibkl0fJ1_p*1H5^RKCNMIvOi}!=u&b%9Ibkl0fJ1_p*1H5^RKCNMIvOi}zFu&utGrMkl0fJ1_p*1H5^RKCNMIvOi}!=u&utGrMkl0fJ1_p*1H5^RKCNMIvOi}zFu&M!Um5p0001+dl~3XkcX6Vxh>eVe$e-1pulP3S|HQ diff --git a/Output/Console/g_screen_wide_shutters.txt b/Output/Console/g_screen_wide_shutters.txt index baca399b..2f889616 100644 --- a/Output/Console/g_screen_wide_shutters.txt +++ b/Output/Console/g_screen_wide_shutters.txt @@ -28,8 +28,8 @@ C2302784 0000001F #External/WidescreenShutters/Add Shutters.asm 480000E0 4E800021 42E40000 447A0000 000000FF 7C0802A6 -90010004 9421FF50 -BE810008 3B800014 +90010004 9421FF20 +BE8100B0 3B800014 3BA0FFE7 2C030000 4182000C 3B800015 3BA00231 4BFFFFC9 @@ -50,8 +50,8 @@ BE810008 3B800014 618C2B90 7D8903A6 4E800421 C03F0000 D03E0008 C03F0004 -D03E000C BA810008 -800100B4 382100B0 +D03E000C BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 93EDB77C 38600000 4BFFFF2D 38600001 diff --git a/Output/Console/g_ucf.bin b/Output/Console/g_ucf.bin index 18079fb75c5a827edd936e9717a3c41edd7537ba..33bb02aa41e57aaa6d6526bbdc0793f462770192 100644 GIT binary patch delta 150 zcmdnMv4LZPIIF_GMurU=W%LQ^yexqM0uFJ`SOR3J)o?H^o50Ax zGDYz}SjXfF#$rymj>%sbCnNDDFiAtqoxFhwS=@(N9x7hIyjm2l8)Tow42XRI%@!`x delta 150 zcmdnMv4LZPIBUSZMh1?JGWv|V91V;NTPzeAHq>x1FH2y6fJ2-!mH=65H5^RKCNMIv zOi}y~)-kz)v6vICWAYcq$w<5jOwtf@CvRXv7WZM6hl&?4uNH;t2H9sZ17aTl;m{|` diff --git a/Output/Console/g_ucf.txt b/Output/Console/g_ucf.txt index 8f319414..29e7b69e 100644 --- a/Output/Console/g_ucf.txt +++ b/Output/Console/g_ucf.txt @@ -1,8 +1,8 @@ $UCF Slippi [Dan Salvato, tauKhan, UnclePunch, Fizzi] C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm D01F002C 7C0802A6 -90010004 9421FF50 -BE810008 48000121 +90010004 9421FF20 +BE8100B0 48000121 7FC802A6 C03F0894 C05E0000 FC011040 40820118 808DAEB4 @@ -40,12 +40,12 @@ FC011040 4181000C 88640002 7C630774 4E800020 4E800021 40000000 00000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 83FE002C 480000DD 7FA802A6 C03F063C 806DAEB4 @@ -60,8 +60,8 @@ C05D000C FC011040 2C040003 408100A8 C01D0010 C03F0624 FC000840 40800098 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8061001C 83E10014 38210018 38630008 7C6803A6 4E800020 @@ -79,12 +79,12 @@ C03D0000 EC200824 43300000 3F800000 BF4CCCCD 43300000 80000000 7FC3F378 -7FE4FB78 BA810008 -800100B4 382100B0 +7FE4FB78 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C030001 4082008C C03F0628 FC200A10 806DAEB4 C0430210 @@ -103,12 +103,12 @@ FC011040 40800074 7C841A14 1C65000C 7C841A14 88640002 7C630774 4E800020 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C22662D0 0000001A #External/UCF 0.8/Indicator/UCF Text.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 48000089 7FC802A6 38600000 38800000 3D80803A 618C6754 @@ -130,6 +130,6 @@ C05E0008 3D80803A C3898000 3EE66666 3DCCCCCD 4E800021 55434620 302E3800 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 38980000 00000000 diff --git a/Output/Console/g_ucf_stealth.bin b/Output/Console/g_ucf_stealth.bin index 552a2f05820a860ed7b1ce9d97265f7758016628..530c65b2d8d944da8959393230f62beea1a74b8a 100644 GIT binary patch delta 126 zcmcb?c7tt#IIF_GMurU=W%LQ^yexqM0uFJ`SOR3J)o?H^o50Ax mGDYz}SjXfF#$rymj>%sbCnNDDFiAtqoxFi*vM5{?vbg}fwI-4P delta 126 zcmcb?c7tt#IBUSZMh1?JGWv|V91V;NTPzeAHq>x1FH2y6fJ2-!mH=65H5^RKCNMIv mOi}y~)-kz)v6vICWAYcq$w<5jOwtf@CvRYyEDBeJY%TzGjv)#F diff --git a/Output/Console/g_ucf_stealth.txt b/Output/Console/g_ucf_stealth.txt index 865db941..3264236c 100644 --- a/Output/Console/g_ucf_stealth.txt +++ b/Output/Console/g_ucf_stealth.txt @@ -1,8 +1,8 @@ $UCF Slippi [Dan Salvato, tauKhan, UnclePunch, Fizzi] C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm D01F002C 7C0802A6 -90010004 9421FF50 -BE810008 48000121 +90010004 9421FF20 +BE8100B0 48000121 7FC802A6 C03F0894 C05E0000 FC011040 40820118 808DAEB4 @@ -40,12 +40,12 @@ FC011040 4181000C 88640002 7C630774 4E800020 4E800021 40000000 00000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 83FE002C 480000DD 7FA802A6 C03F063C 806DAEB4 @@ -60,8 +60,8 @@ C05D000C FC011040 2C040003 408100A8 C01D0010 C03F0624 FC000840 40800098 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8061001C 83E10014 38210018 38630008 7C6803A6 4E800020 @@ -79,12 +79,12 @@ C03D0000 EC200824 43300000 3F800000 BF4CCCCD 43300000 80000000 7FC3F378 -7FE4FB78 BA810008 -800100B4 382100B0 +7FE4FB78 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C030001 4082008C C03F0628 FC200A10 806DAEB4 C0430210 @@ -103,6 +103,6 @@ FC011040 40800074 7C841A14 1C65000C 7C841A14 88640002 7C630774 4E800020 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 64ab722c..cba0df1c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -60,7 +60,7 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808016 618CB41C 7D8903A6 4E800421 2C030000 40820480 @@ -116,7 +116,7 @@ C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm 7F24CB78 88BF24D0 48000009 480002E8 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 7CBD2B78 48000121 7F8802A6 80CD9348 @@ -152,8 +152,8 @@ C022A8F8 48000008 C022A8CC 7FE3FB78 3D808003 618C3094 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 00000020 C2700000 41200000 42700000 @@ -207,8 +207,8 @@ C2200000 40A00000 42200000 42000000 42200000 40A00000 FFFFFFFF 4E800021 -00030102 BA810008 -800100B4 382100B0 +00030102 BA8100B0 +800100E4 382100E0 7C0803A6 881F24D0 60000000 00000000 042641B0 38000001 #Faster CSS Load [UnclePunch] @@ -234,8 +234,8 @@ C21F0318 FE0F802A D21F0318 00000000 C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm D01F002C 7C0802A6 -90010004 9421FF50 -BE810008 48000121 +90010004 9421FF20 +BE8100B0 48000121 7FC802A6 C03F0894 C05E0000 FC011040 40820118 808DAEB4 @@ -273,12 +273,12 @@ FC011040 4181000C 88640002 7C630774 4E800020 4E800021 40000000 00000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 83FE002C 480000DD 7FA802A6 C03F063C 806DAEB4 @@ -293,8 +293,8 @@ C05D000C FC011040 2C040003 408100A8 C01D0010 C03F0624 FC000840 40800098 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8061001C 83E10014 38210018 38630008 7C6803A6 4E800020 @@ -312,12 +312,12 @@ C03D0000 EC200824 43300000 3F800000 BF4CCCCD 43300000 80000000 7FC3F378 -7FE4FB78 BA810008 -800100B4 382100B0 +7FE4FB78 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C030001 4082008C C03F0628 FC200A10 806DAEB4 C0430210 @@ -336,12 +336,12 @@ FC011040 40800074 7C841A14 1C65000C 7C841A14 88640002 7C630774 4E800020 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C22662D0 0000001A #External/UCF 0.8/Indicator/UCF Text.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 48000089 7FC802A6 38600000 38800000 3D80803A 618C6754 @@ -363,8 +363,8 @@ C05E0008 3D80803A C3898000 3EE66666 3DCCCCCD 4E800021 55434620 302E3800 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 38980000 00000000 C226325C 00000008 #External/DPad Down at CSS for Random Stage/DPad Down at CSS for Random Stage.asm 3C808045 6084BF17 @@ -440,8 +440,8 @@ C2265220 00000028 #Common/Winners Names are Gold on CSS/Change Name Color.asm 3D80803A 618C74F0 7D8903A6 4E800421 48000100 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 +90010004 9421FF20 +BE8100B0 7C7D1B78 3FE08047 63FF9DA4 1FDD00A8 7FDEFA14 887F0004 2C030000 @@ -468,8 +468,8 @@ BE810008 7C7D1B78 887E005D 2C030000 41820010 48000004 38600000 48000008 -38600001 BA810008 -800100B4 382100B0 +38600001 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 880DB655 00000000 C216EA30 00000004 #Common/Winners Names are Gold on CSS/Remember Who LRA Started.asm @@ -494,7 +494,7 @@ C213C388 0000000A #Common/CostumeBoundCheck/PuffCostume.asm 809C002C 00000000 C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3BE00000 7FE3FB78 3D808003 618C241C 7D8903A6 4E800421 @@ -546,8 +546,8 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 4E800421 3B7B0001 2C1B0006 4180FF68 3BFF0001 2C1F0006 -4180FEF4 BA810008 -800100B4 382100B0 +4180FEF4 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 @@ -557,7 +557,7 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohn 040679BC 38802600 #Recording/ExtendPlayerBlock.asm C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418200A8 @@ -581,13 +581,13 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600000 -906DB650 BA810008 -800100B4 382100B0 +906DB650 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 C216D884 0000001C #Recording/SendGameEnd.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418200A0 @@ -610,13 +610,13 @@ C216D884 0000001C #Recording/SendGameEnd.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600001 -98780004 BA810008 -800100B4 382100B0 +98780004 BA8100B0 +800100E4 382100E0 7C0803A6 819F2514 60000000 00000000 C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418207A0 @@ -808,7 +808,7 @@ A0B50201 3D808000 7D8903A6 4E800421 48000070 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83A30000 838DB650 7FBDE214 3860003A 987D0000 @@ -817,8 +817,8 @@ A0B50201 3D808000 907D0005 3C608048 80639D60 907D0009 838DB650 3B9C000D -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600004 38800007 38A00000 3D808039 @@ -829,7 +829,7 @@ A0B50201 3D808000 7D8903A6 4E800421 48000124 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83E30000 83CDB650 7FFFF214 3B600000 806DC18C @@ -861,15 +861,15 @@ B07F001C 807C0D44 3BDE002B 93CDB650 3BFF002B 83BD0008 2C1D0000 4082FF30 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 3C608017 60000000 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 41820170 @@ -918,13 +918,13 @@ B07D0030 887F1968 807F195C 907D0049 807F0014 907D004D 838DB650 3B9C0051 -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 C206B0DC 0000002B #Recording/SendGamePreFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 41820118 @@ -962,8 +962,8 @@ B07D0031 80640030 88630002 987D003B 807F1830 907D003C 838DB650 3B9C0040 -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 881F2219 60000000 00000000 C2005604 0000000A #Recording/ShouldRecord.asm @@ -988,7 +988,7 @@ C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 807E00B0 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 3BE00000 887E221F 5460EFFF 41820038 887E000C @@ -998,8 +998,8 @@ C20055F8 0000000F #Common/GetIsFollower.asm 1C030003 7C640214 88030002 2C000000 40820008 3BE00001 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm @@ -1076,7 +1076,7 @@ $Required: Slippi Online [Fizzi, UnclePunch] *Change settings in Config > GameCube C206A880 0000001B #Online/Core/BrawlOffscreenDamage.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030120 41820094 887F221F @@ -1099,8 +1099,8 @@ FC020840 41810028 C05F00B4 FC020840 4180000C 38600000 48000008 38600001 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C22F7094 0000000F #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 @@ -1163,22 +1163,22 @@ C234DED8 0000000F #Online/Core/HandleRumble.asm 80639D30 5463443E 2C030208 4082005C 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83EDB61C 887F0000 7C03E800 41820024 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808034 618CDF44 7D8903A6 4E800420 -887F0002 BA810008 -800100B4 382100B0 +887F0002 BA8100B0 +800100E4 382100E0 7C0803A6 7C7D1B78 60000000 00000000 C216E748 0000009E #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 408204A8 38600B2E @@ -1271,8 +1271,8 @@ C216E748 0000009E #Online/Core/InitOnlinePlay.asm 7C841A14 3C60804D 90835F90 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 838DB61C +90010004 9421FF20 +BE8100B0 838DB61C 3CA0803D 60A5AD40 80A50000 83650088 3F408047 635A9DA4 @@ -1327,11 +1327,11 @@ BE810008 838DB61C 7FC3F378 38800171 38A00001 3D808000 618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C216E904 0000004C #Online/Core/InitPause.asm 3C608048 80639D30 @@ -1347,7 +1347,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 50831F38 986C0002 48000200 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83ADB61C 3BC00000 7FC3F378 3D808003 618C241C 7D8903A6 @@ -1406,8 +1406,8 @@ C216E904 0000004C #Online/Core/InitPause.asm 38600005 3D808002 618C4030 7D8903A6 4E800421 48000004 -3860FFFF BA810008 -800100B4 382100B0 +3860FFFF BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm @@ -1419,8 +1419,8 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 3C608047 60639D64 80630000 2C030000 408202A4 7C0802A6 -90010004 9421FF50 -BE810008 3D808034 +90010004 9421FF20 +BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 83EDB61C 3BDF03A7 @@ -1465,21 +1465,21 @@ A0840001 7C032000 987F00DE 987F08FE 7FA3EB78 3D808034 618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 3B5A0001 3D80801A 618C5024 7D8903A6 4E800420 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 48000029 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3B5A0001 3D80801A 618C4DE4 7D8903A6 4E800420 7C0802A6 -90010004 9421FF50 -BE810008 3D808003 +90010004 9421FF20 +BE8100B0 3D808003 618C0A50 7D8903A6 4E800421 3D808002 618CA4AC 7D8903A6 @@ -1495,13 +1495,13 @@ BE810008 3D808003 3D808008 618C6A8C 7D8903A6 4E800421 82940008 2C140000 -4082FFD4 BA810008 -800100B4 382100B0 +4082FFD4 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7FA3EB78 3D808034 618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm 808DB61C 80640915 @@ -1549,7 +1549,7 @@ CDFFB800 FF444553 594E4320 44455445 43544544 00000000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08045 63FF3080 3FA08045 63BD5C30 3BC00000 7FC3F378 @@ -1557,8 +1557,8 @@ CDFFB800 FF444553 809F00B4 4800002D 7C7E1B78 3BFF0E90 7C1FE800 4081FFE0 -7FC3F378 BA810008 -800100B4 382100B0 +7FC3F378 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 2C040000 41820030 80A4002C 80850010 @@ -1568,7 +1568,7 @@ CDFFB800 FF444553 7C632278 80850008 7C632278 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 4BFFFF11 7FE802A6 7FFF2214 C03F0000 C05F0004 @@ -1583,8 +1583,8 @@ C05F0008 3D80803A 7FC4F378 38BF000C 3D80803A 618C74F0 7D8903A6 4E800421 -7FC3F378 BA810008 -800100B4 382100B0 +7FC3F378 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 886DAFA0 2C030000 40820028 818DB61C @@ -1593,8 +1593,8 @@ C05F0008 3D80803A 38800007 98830008 38800037 988324D5 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C608048 +90010004 9421FF20 +BE8100B0 3C608048 80639D30 5463443E 2C030208 408203CC 3C608047 60639D64 @@ -1718,12 +1718,12 @@ BE810008 3C608048 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C2376A28 000000F1 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 40820750 3C608047 @@ -1732,14 +1732,14 @@ C2376A28 000000F1 #Online/Core/TriggerSendInput.asm 836DB61C 833B00D6 831B00DA 82FB039F 835B0003 889B0002 -1C84000C 386400DC +1C84000C 3864010C 7FA11A14 887B00DE 2C030000 41820010 887B00DF 2C030000 4182067C 887B0020 38800054 7C632050 2C1A0003 4080001C -386100DC 38800030 +3861010C 38800030 3D808000 618CC160 7D8903A6 4E800421 48000040 88830000 @@ -1790,21 +1790,21 @@ B0830000 4E800020 38600001 987B0010 48000038 887B000F 2C030001 4182002C -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 38600001 987B0013 889B0021 1C84000C 38840022 887B0000 -1C63000C 386300DC +1C63000C 3863010C 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E4 1C63000C 386300E5 889B0000 1C84000C -388400DC 7C7B1A14 +3884010C 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 @@ -1867,8 +1867,8 @@ BA810008 800100B4 4800003C 38600001 987B00DE 987B00DF 935B00E0 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 +935B0003 BA8100B0 +800100E4 382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 @@ -1935,7 +1935,7 @@ BA810008 800100B4 987B038B 38600000 1C63000C 38A3002A 1CD40054 7CA53214 -1C75000C 386300DC +1C75000C 3863010C 7C611A14 7C982A14 38A0000C 3D808000 618C31F4 7D8903A6 @@ -1945,8 +1945,8 @@ BA810008 800100B4 41820008 935B0919 48000080 807B00E0 7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 807B00E0 7C7A1850 @@ -1954,14 +1954,14 @@ BA810008 800100B4 7C632051 40800008 3863000E 1C63000C 388300E5 887B0000 -1C63000C 386300DC +1C63000C 3863010C 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 4BFFFE2C 3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 @@ -1970,11 +1970,11 @@ C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38000000 00000000 C20163FC 0000001B #Online/Core/EXIFileLoad/GetFileSize.asm 7C7E1B78 7C0802A6 -90010004 9421FF50 -BE810008 83EDAFC4 +90010004 9421FF20 +BE8100B0 83EDAFC4 2C1F0000 40820018 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 480000A0 386000D1 987F0000 387F0001 7FC4F378 3D808032 @@ -1989,8 +1989,8 @@ BA810008 800100B4 38800004 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 80630000 2C030000 40810014 3D808001 618C6488 @@ -1998,8 +1998,8 @@ BA810008 800100B4 7FC3F378 00000000 C20166B8 00000029 #Online/Core/EXIFileLoad/TransferFile.asm 7C7E1B78 7C0802A6 -90010004 9421FF50 -BE810008 83EDAFC4 +90010004 9421FF20 +BE8100B0 83EDAFC4 2C1F0000 41820110 386000D1 987F0000 387F0001 7FC4F378 @@ -2030,12 +2030,12 @@ BE810008 83EDAFC4 7FA4EB78 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 38600001 3D808001 618C674C 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 7FC3F378 60000000 00000000 C20D4C1C 00000005 #Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm @@ -2058,7 +2058,7 @@ D03F2364 3D80800D 4E800420 00000000 C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808003 618C10B8 7D8903A6 4E800421 3D808036 618C9808 @@ -2069,8 +2069,8 @@ C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm 80610080 907F0038 80610084 907F003C 80610088 907F0040 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808008 618C0EE4 7D8903A6 4E800420 60000000 00000000 @@ -2089,15 +2089,15 @@ C2376304 0000000B #Online/Core/Hacks/ForceNoVideoAssert.asm 25640A00 00000000 C23A63A8 0000000C #Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C9D2378 7CDC3378 886DAFEC 2C030000 41820024 7FA3EB78 7F84E378 3D808000 618C56A4 7D8903A6 4E800421 7C7E1B78 -93DF005C BA810008 -800100B4 382100B0 +93DF005C BA8100B0 +800100E4 382100E0 7C0803A6 38600000 986DAFEC 00000000 04321D70 38600000 #Online/Core/Hacks/PreventCharacterCrowdChants.asm @@ -2130,8 +2130,8 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 3C608047 60639D64 80630000 2C030000 40820090 7C0802A6 -90010004 9421FF50 -BE810008 83EDB61C +90010004 9421FF20 +BE8100B0 83EDB61C 3BDF03A7 8B9E0000 3C608048 80639D60 809F08F6 7C032000 @@ -2145,15 +2145,15 @@ BE810008 83EDB61C 3863FFFF 1C630006 38A60001 7CA51A14 807D000C 90650002 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 3C608048 80639D30 5463443E 2C030208 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB61C +90010004 9421FF20 +BE8100B0 83EDB61C 3BBF03A7 57DE043E 8B9D0000 3C608048 80639D60 809F08F6 @@ -2170,20 +2170,20 @@ BE810008 83EDB61C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C8244 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 3C608048 80639D30 5463443E 2C030208 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB61C +90010004 9421FF20 +BE8100B0 83EDB61C 3BBF03A7 57DE043E 8B9D0000 3C608048 80639D60 809F08F6 @@ -2200,12 +2200,12 @@ BE810008 83EDB61C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C82D0 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm @@ -2215,7 +2215,7 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 60639D64 80630000 2C030000 40820120 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83EDB61C 3BDF03A7 3BA00000 3B400000 56FB043E 8B9E0000 @@ -2243,12 +2243,12 @@ A0650000 7C1B1800 93450002 88660000 38630001 98660000 2C1D0000 41820028 -7F43D378 BA810008 -800100B4 382100B0 +7F43D378 BA8100B0 +800100E4 382100E0 7C0803A6 3D808038 618CD2A0 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 2C1A0000 60000000 00000000 C216BE28 0000000A #Online/Core/Teams/PreventDeadStranding.asm @@ -2289,8 +2289,8 @@ C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 -90010004 9421FF50 -BE810008 3C608048 +90010004 9421FF20 +BE8100B0 3C608048 80639D30 5463443E 2C030008 40820AFC 7CFB3B78 3F008000 @@ -2371,14 +2371,14 @@ BE810008 3C608048 7C6802A6 906DAFE8 48000878 887A0001 889A0002 7C632039 -41820868 BA810008 -800100B4 382100B0 +41820868 BA8100B0 +800100E4 382100E0 7C0803A6 3D808026 618C3264 7D8903A6 4E800420 576006F7 4082024D 4800083C 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38600014 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 @@ -2395,12 +2395,12 @@ BE810008 3C608048 7D8903A6 4E800421 7F23CB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 +90010004 9421FF20 +BE8100B0 7C7F1B78 38600009 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 @@ -2431,27 +2431,27 @@ BE810008 7C7F1B78 7D8903A6 4E800421 7F23CB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 8A98001A +90010004 9421FF20 +BE8100B0 8A98001A 4BFFFECD 4BFFFE1D -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38600001 +90010004 9421FF20 +BE8100B0 38600001 986DAFA3 4BFFFFB5 7C6802A6 906DAFE8 880DB650 980DB659 38000004 980DB656 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38600001 +90010004 9421FF20 +BE8100B0 38600001 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 386000BA @@ -2461,11 +2461,11 @@ BE810008 38600001 7D8903A6 4E800421 7F23CB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C1B0200 40820008 B3780015 2C1B0001 4182001C 2C1B0002 @@ -2474,12 +2474,12 @@ B3780015 2C1B0001 4082001D B3780015 88780014 2C030000 4082000C 7F63DB78 -480000B9 BA810008 -800100B4 382100B0 +480000B9 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C6E1B78 7C0802A6 -90010004 9421FF50 -BE810008 38600002 +90010004 9421FF20 +BE8100B0 38600002 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 386000BB @@ -2494,12 +2494,12 @@ BE810008 38600002 3880007F 38A00040 3D808002 618C37A8 7D8903A6 4E800421 -7F63DB78 BA810008 -800100B4 382100B0 +7F63DB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C6E1B78 7C0802A6 -90010004 9421FF50 -BE810008 48000419 +90010004 9421FF20 +BE8100B0 48000419 7DE802A6 38600002 3D808002 618C4030 7D8903A6 4E800421 @@ -2540,12 +2540,12 @@ D043003C 7E83A378 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 -90010004 9421FF50 -BE810008 820E002C +90010004 9421FF20 +BE8100B0 820E002C 82EE0028 8A300000 8A500002 82700003 82B00007 A2D50015 @@ -2628,8 +2628,8 @@ C02F001C 3D808000 4E800421 7E639B78 3D80803A 618C5CC4 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 00000000 3DCCCCCD C3960000 C3E20000 @@ -2640,12 +2640,12 @@ C20C0000 C1840000 FFFFFFFF FFEA2FFF C9C387FF 43686174 3A202573 00000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808026 618C3334 7D8903A6 4E800420 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C21A3F9C 00000005 #Online/Menus/CSS/IncreaseTextHeap.asm 3C608048 80639D30 @@ -2668,8 +2668,8 @@ C1AAE148 3FE3D70A C1823D71 C15BAE14 81692081 6A005300 5A000000 7C0802A6 -90010004 9421FF50 -BE810008 38600004 +90010004 9421FF20 +BE8100B0 38600004 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 @@ -2689,8 +2689,8 @@ C03F0008 D03E0024 D03E0028 3860004A C03F0010 48000025 3860004C C03F0014 -48000019 BA810008 -800100B4 382100B0 +48000019 BA8100B0 +800100E4 382100E0 7C0803A6 480002A4 7EE802A6 7C7A1B78 FC600890 C03F000C @@ -2712,8 +2712,8 @@ C03F001C C05F001C 7D8903A6 4E800421 7EE803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFE3D +90010004 9421FF20 +BE8100B0 4BFFFE3D 7FE802A6 83DF0000 3C608043 6063208F 88630000 2C030012 @@ -2773,8 +2773,8 @@ C05F0040 FC011040 7FC3F378 38990001 7F05C378 3D80803A 618C74F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600000 38980000 60000000 00000000 @@ -2845,8 +2845,8 @@ FF0000FF 00556E72 4E800021 C2E00000 41A00000 00000000 3DCCCCCD 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFDFD +90010004 9421FF20 +BE8100B0 4BFFFDFD 7FA802A6 3C60804D 606350D8 3C800200 60840801 90830000 @@ -2916,12 +2916,12 @@ C05D007C C07D0074 480000AD C07D005C 480000A5 C07D0060 4800009D C07D0064 -48000095 BA810008 -800100B4 382100B0 +48000095 BA8100B0 +800100E4 382100E0 7C0803A6 48000A9C 7C0802A6 90010004 -9421FF50 BE810008 -D0610038 7F83E378 +9421FF20 BE8100B0 +D0610008 7F83E378 389D0090 38A00000 C03D0068 C05D0048 38FD0098 3D808000 @@ -2929,24 +2929,24 @@ C03D0068 C05D0048 4E800421 7F83E378 389D0090 38A00000 C03D0080 C05D003C -C0610038 38FD0098 +C0610008 38FD0098 3D808000 618C56B4 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7F83E378 +90010004 9421FF20 +BE8100B0 7F83E378 389D0094 38A00000 C03D0068 C05D003C 38FD0098 3D808000 618C56B4 7D8903A6 4E800421 7C7B1B78 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 8363002C 4BFFFAD5 7FA802A6 3F808000 639C5614 839C0000 @@ -3169,12 +3169,12 @@ A07C000F 3880000F A07C000F 38630001 2C03001E 41800008 38600000 B07C000F -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 90010004 9421FF40 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 4BFFF3B5 7FA802A6 820E002C 8A300000 8A500001 @@ -3247,16 +3247,16 @@ C022AE28 3D808036 7E84A378 38840001 7C032000 41820008 4800000C 38600000 -987C0019 BA810008 +987C0019 BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7F43D378 3D80803A 618C70A0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 80CDB638 00000000 C2262004 0000000B #Online/Menus/CSS/PreventAPressCharUnselect.asm @@ -3305,8 +3305,8 @@ C2E00000 41A00000 3C608048 80639D30 5463443E 2C030008 40820100 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFFB1 +90010004 9421FF20 +BE8100B0 4BFFFFB1 7FC802A6 3D808000 618C5618 7D8903A6 4E800421 7C6802A6 @@ -3334,8 +3334,8 @@ BE810008 4BFFFFB1 389E001B 3D808038 618C0358 7D8903A6 4E800421 907F0004 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C2264118 0000001C #Online/Menus/CSS/SkipReturnToCssSound.asm 7C0802A6 90010004 @@ -3368,7 +3368,7 @@ B8610008 80010104 80630020 00000000 C2262478 00000014 #Online/Menus/CSS/Teams/AnimateCursorPort.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FC08000 63DE5614 83DE0000 3C608048 80639D30 5463443E @@ -3381,15 +3381,15 @@ C2262478 00000014 #Online/Menus/CSS/Teams/AnimateCursorPort.asm 7FE3FB78 3D808000 618C55F4 7D8903A6 4E800421 48000004 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8061003C 38800006 38A00400 3CC08036 60C6410C 38E00001 60000000 00000000 C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3F808000 639C5614 839C0000 3C608048 80639D30 5463443E @@ -3398,8 +3398,8 @@ C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm 40820018 8B7C001A 2C1B0003 41820008 3B7BFFFF 9B7D0006 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 387C0000 00000000 C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 48000030 4E800021 @@ -3413,7 +3413,7 @@ C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 40820560 888DAFA0 2C040003 40820554 7C0802A6 90010004 -9421FF40 BE810008 +9421FF40 BE810080 DBE100B0 DBC100B8 3FC08000 63DE5614 83DE0000 4BFFFF91 @@ -3486,12 +3486,12 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 -BA810008 CBE100B0 +BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 480002E8 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C741B78 82B40028 886DB656 2C030000 40820098 3FC08000 @@ -3513,11 +3513,11 @@ FC013040 4181002C 1C630044 7C641A14 80630008 546305EF 41820008 48000019 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D808000 +90010004 9421FF20 +BE8100B0 3D808000 618C56B8 7D8903A6 4E800421 7C651B78 38600000 1C630024 @@ -3531,11 +3531,11 @@ BE810008 3D808000 4800002D 38600002 3D808002 618C4030 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 808DB610 +90010004 9421FF20 +BE8100B0 808DB610 886DB650 1C630024 7F841A14 887C0070 7C7B1B78 8B3E001A @@ -3564,11 +3564,11 @@ BE810008 808DB610 7F05C378 38C00000 3D808000 618C56BC 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C791B78 +90010004 9421FF20 +BE8100B0 7C791B78 2C190003 4182001C 2C190002 4182000C 2C190001 41820014 @@ -3579,8 +3579,8 @@ BE810008 7C791B78 7C632A14 98830000 38600000 3D808025 618CDB34 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600000 38980000 3D80803A 618C6754 @@ -3588,7 +3588,7 @@ BE810008 7C791B78 60000000 00000000 C2260C28 0000001C #Online/Menus/CSS/Teams/PreventColorResetCharHover.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08000 63FF5614 83FF0000 3C608048 80639D30 5463443E @@ -3611,8 +3611,8 @@ C2260C28 0000001C #Online/Menus/CSS/Teams/PreventColorResetCharHover.asm 7C7B1B78 80ADB610 9B650073 3CA0803F 60A50E09 9B650000 -48000004 BA810008 -800100B4 382100B0 +48000004 BA8100B0 +800100E4 382100E0 7C0803A6 9E9803C2 60000000 00000000 C2260E14 00000003 #Online/Menus/CSS/Teams/PreventColorResetLastChar.asm @@ -3621,7 +3621,7 @@ C2260E14 00000003 #Online/Menus/CSS/Teams/PreventColorResetLastChar.asm 60000000 00000000 C2260B90 0000001A #Online/Menus/CSS/Teams/PreventColorResetRandomChar.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08000 63FF5614 83FF0000 3C608048 80639D30 5463443E @@ -3642,13 +3642,13 @@ C2260B90 0000001A #Online/Menus/CSS/Teams/PreventColorResetRandomChar.asm 7F65DB78 38C00000 3D808000 618C56BC 7D8903A6 4E800421 -48000004 BA810008 -800100B4 382100B0 +48000004 BA8100B0 +800100E4 382100E0 7C0803A6 38000000 60000000 00000000 C2260C88 00000018 #Online/Menus/CSS/Teams/PreventWrongCSPOnCharSelect.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C9D2378 7C7B1B78 3FE08000 63FF5614 83FF0000 3C608048 @@ -3667,8 +3667,8 @@ C2260C88 00000018 #Online/Menus/CSS/Teams/PreventWrongCSPOnCharSelect.asm 3D808000 618C56BC 7D8903A6 4E800421 48000004 7FA4EB78 -7F63DB78 BA810008 -800100B4 382100B0 +7F63DB78 BA8100B0 +800100E4 382100E0 7C0803A6 98830070 60000000 00000000 0423C710 28030007 #Online/Menus/CSS/TextEntryScreen/Allow8Characters.asm @@ -3701,8 +3701,8 @@ C223CCA4 00000045 #Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm 41820014 3D808023 618CCCAC 7D8903A6 4E800420 7C0802A6 -90010004 9421FF50 -BE810008 7C9A2378 +90010004 9421FF20 +BE8100B0 7C9A2378 4BFFFFC5 7C6802A6 83E30004 83DF0006 886DB56C 5463063E @@ -3724,12 +3724,12 @@ BE810008 7C9A2378 B07A0002 3D808023 618CCE4C 7D8903A6 4E800421 7F44D378 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808023 618CCCFC 7D8903A6 4E800420 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 886DAFA3 2C030000 418200C8 4BFFFEDD 7C6802A6 @@ -3756,11 +3756,11 @@ BA810008 800100B4 4E800421 807E001A 907F0000 3D808023 618CCE4C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 -7F44D378 BA810008 -800100B4 382100B0 +7F44D378 BA8100B0 +800100E4 382100E0 7C0803A6 3D808023 618CCD34 7D8903A6 4E800420 00000000 @@ -3793,7 +3793,7 @@ C223E994 00000027 #Online/Menus/CSS/TextEntryScreen/InitNameEntry.asm 41820128 38600001 986DAFCB 48000004 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608023 6063CCA4 80830000 5485863E 7CA50774 54A5801E @@ -3824,8 +3824,8 @@ C223E994 00000027 #Online/Menus/CSS/TextEntryScreen/InitNameEntry.asm 60841070 38A00004 38C00080 3D808039 618C069C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 48000004 38600000 00000000 C223C588 0000000C #Online/Menus/CSS/TextEntryScreen/NameEntryThinkOneShot.asm @@ -3866,8 +3866,8 @@ C223CA50 00000003 #Online/Menus/CSS/TextEntryScreen/OnConfirmButtonAPress.asm C223CC14 0000001D #Online/Menus/CSS/TextEntryScreen/OnConfirmButtonHandler.asm 886DAFA3 2C030000 418200D8 7C0802A6 -90010004 9421FF50 -BE810008 3C608023 +90010004 9421FF20 +BE8100B0 3C608023 6063CCA4 80830000 5485863E 7CA50774 54A5801E 5484043A @@ -3876,8 +3876,8 @@ BE810008 3C608023 2C030000 40820038 38600003 3D808002 618C4030 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 3D808023 618CCE38 7D8903A6 4E800420 887F0004 @@ -3888,8 +3888,8 @@ BE810008 3C608023 7D8903A6 4E800421 3860FFFE 818DAFE8 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808023 618CCC80 7D8903A6 4E800420 38000000 00000000 @@ -3992,16 +3992,16 @@ C22F6694 000000BD #Online/Menus/InGame/InitInGame.asm 44656C61 793A2025 64660000 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 880DB6CC 2C000001 41820018 7FE3FB78 3D808039 618C10D8 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C60804D 60636D5C 80630000 3C80803F 608494D0 3D808038 @@ -4161,8 +4161,8 @@ EC2100B2 D036002C 4180FCF8 7F43D378 3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8001001C 83E10014 60000000 00000000 043A69C0 4800003C #Online/Menus/InGame/ParseNumbersBetter.asm @@ -4226,7 +4226,7 @@ C34C0000 C31D0000 41880000 3D75C28F 4E800021 01000000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFFD5 7C6802A6 38800001 3D808000 618C5618 7D8903A6 @@ -4258,13 +4258,13 @@ C34C0000 C31D0000 7D8903A6 4E800421 7F83E378 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 B9C10408 60000000 00000000 C21B1040 00000167 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 480000B5 7C6802A6 3C80803D 6084D908 90640000 3C60803E @@ -4285,8 +4285,8 @@ C21B1040 00000167 #Online/Menus/TitleMenu/OnMenuPrep.asm 39950014 7D8903A6 4E800421 3995000C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 48000A6C 4E800021 3D808000 618C5618 7D8903A6 4E800421 @@ -4301,8 +4301,8 @@ BA810008 800100B4 3D80801B 618C136C 7D8903A6 4E800420 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 3FE0804A +90010004 9421FF20 +BE8100B0 3FE0804A 63FF04F0 3FC0803E 63DEAE68 38000005 B00DB528 3D808000 @@ -4331,11 +4331,11 @@ B00DB528 3D808000 8803000D 508026B6 9803000D 38600001 986DAFA2 7F63DB78 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C731B78 80730008 2C030000 40820344 3C60804A 3BA304F0 @@ -4447,8 +4447,8 @@ A09C0000 3D808022 7F6802A6 387B0004 7C6903A6 4E800421 387B0008 7C6903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800021 803EB57C 430C0000 803EB684 07000000 @@ -4456,7 +4456,7 @@ A09C0000 3D808022 0647064B 06480649 064A0000 7C0802A6 90010004 9421FF40 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 806DB518 3C80803E 6084FA0C 3D808038 618C0358 @@ -4495,17 +4495,17 @@ C3DE0014 3AC00016 7F25CB78 3D808039 618C0A70 7D8903A6 4E800421 7F23CB78 -38810038 38A0000A +38810008 38A0000A 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 -38810038 38A0000B +38810008 38A0000B 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 @@ -4516,16 +4516,16 @@ C3DE0014 3AC00016 FC20F890 3D808036 618CF8BC 7D8903A6 4E800421 7F23CB78 -38810038 38A00006 +38810008 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 3C80C060 60840000 90830038 7F23CB78 -38810038 38A00007 +38810008 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 3C80405C 60840000 90830038 7F03C378 3C808039 60841070 @@ -4540,13 +4540,13 @@ FC20F890 3D808036 48000039 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 9421FF40 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 4800022D 7FC802A6 C3FE0010 C3DE0014 7C781B78 @@ -4563,26 +4563,26 @@ C07E0008 C09E000C 3D808000 618C56B4 7D8903A6 4E800421 907A0005 48000198 -7F23CB78 38810038 +7F23CB78 38810008 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0000 40820008 FC20F090 -80610038 3D808036 +80610008 3D808036 618CF8BC 7D8903A6 -4E800421 80610038 +4E800421 80610008 3D808037 618C0928 7D8903A6 4E800421 -7F23CB78 38810038 +7F23CB78 38810008 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0001 40820008 FC20F090 -80610038 3D808036 +80610008 3D808036 618CF8BC 7D8903A6 -4E800421 80610038 +4E800421 80610008 3D808037 618C0928 7D8903A6 4E800421 39C00000 7DC37378 @@ -4613,7 +4613,7 @@ FC20F890 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 BA810008 +48000004 BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 @@ -4654,8 +4654,8 @@ C2186EC4 0000007F #Online/Menus/VSScreen/InitVsSplash.asm 5465616D 20310054 65616D20 32005031 00503200 7C0802A6 -90010004 9421FF50 -BE810008 38600000 +90010004 9421FF20 +BE8100B0 38600000 3C80803F 608411A4 3CA0803F 60A51194 3D80803A 618C62A0 @@ -4713,11 +4713,11 @@ A0DD026A 38600000 7C841A14 8884005C 7FC3F378 3D80803A 618C6368 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4800018C 7C0802A6 90010004 -9421FF40 BE810008 +9421FF40 BE810080 DBE100B0 DBC100B8 FFE00890 7C761B78 7C942378 7CB92B78 @@ -4746,12 +4746,12 @@ FC60F090 3D808000 618C56B4 7D8903A6 4E800421 39CE0004 39EF0001 7C0FD000 -4180FFAC BA810008 +4180FFAC BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38A00008 38C000FF 7C7A3039 7C632C30 38E00008 39200000 @@ -4762,16 +4762,16 @@ CBE100B0 CBC100B8 39290001 2C090003 4180FFD8 7F46D378 80A10010 80E1000C -81010008 BA810008 -800100B4 382100B0 +81010008 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 3800FFFF 00000000 C2184DE4 00000010 #Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm 3D808048 818C9D30 558C443E 2C0C0408 40820068 7C0802A6 -90010004 9421FF50 -BE810008 38600000 +90010004 9421FF20 +BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 @@ -4779,8 +4779,8 @@ BE810008 38600000 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 -7FC3F378 BA810008 -800100B4 382100B0 +7FC3F378 BA8100B0 +800100E4 382100E0 7C0803A6 48000008 887E00F4 00000000 C21B3650 00000004 #Online/Menus/VSScreen/PreventP2Color.asm @@ -4792,8 +4792,8 @@ C2185060 00000013 #Online/Menus/VSScreen/HideStageDisplay/HideAllJObjs.asm 3D808048 818C9D30 558C443E 2C0C0408 40820078 7C0802A6 -90010004 9421FF50 -BE810008 83E30028 +90010004 9421FF20 +BE8100B0 83E30028 3BC00000 7FE3FB78 38810080 7FC5F378 38C0FFFF 3D808001 @@ -4802,8 +4802,8 @@ BE810008 83E30028 80640014 60630010 90640014 3BDE0001 2C1E001B 4180FFC8 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808018 618C51AC 7D8903A6 4E800420 3C608047 3BE335A8 @@ -4813,8 +4813,8 @@ C2184ADC 00000010 #Online/Menus/VSScreen/HideStageText/HideLetterJObjs.asm 3D808048 818C9D30 558C443E 2C0C0408 40820068 7C0802A6 -90010004 9421FF50 -BE810008 3BE00009 +90010004 9421FF20 +BE8100B0 3BE00009 7F63DB78 38810080 7FE5FB78 38C0FFFF 3D808001 618C1E24 @@ -4823,8 +4823,8 @@ BE810008 3BE00009 618CF6B4 7D8903A6 4E800421 3BFF0001 2C1F000E 4180FFC4 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3BBE0038 00000000 04184B1C 480001D8 #Online/Menus/VSScreen/HideStageText/SkipStageNumberShow.asm C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm @@ -4848,8 +4848,8 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 38600001 00000000 C21A45B8 000001F0 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 -90010004 9421FF50 -BE810008 3C80803E +90010004 9421FF20 +BE8100B0 3C80803E 6084DC1C 48000281 7C6802A6 38630000 90640008 38600000 @@ -4863,7 +4863,7 @@ BE810008 3C80803E 7C840734 7C841A14 90830000 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 3C80803D 6084AD30 48000091 7C6802A6 @@ -4881,12 +4881,12 @@ BE810008 3C80803E 4BFFFF5D 38740010 4BFFFF55 38740014 4BFFFF4D 3A940018 -4BFFFFCC BA810008 -800100B4 382100B0 +4BFFFFCC BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 3C808045 +90010004 9421FF20 +BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 7C8802A6 48000B31 @@ -4902,15 +4902,15 @@ BE810008 3C808045 987400DD 48000014 3AD60001 3A94001C 7C16A800 4180FFDC -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38600012 3C80803F 60840CC8 98640001 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 00030000 480000B9 4800012D 08000000 @@ -4936,8 +4936,8 @@ FF000000 4E800021 00000000 00000000 00000000 00000000 00000000 7C0802A6 -90010004 9421FF50 -BE810008 808D8840 +90010004 9421FF20 +BE8100B0 808D8840 3BE40530 3D80801A 618C427C 7D8903A6 4E800421 88BF0002 @@ -4948,11 +4948,11 @@ BE810008 808D8840 7D8903A6 4E800421 3D808001 618C74BC 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7E1B78 +90010004 9421FF20 +BE8100B0 7C7E1B78 3D80801B 618CAAD0 7D8903A6 4E800421 809E0014 88840003 @@ -4985,18 +4985,18 @@ BE810008 7C7E1B78 98640005 48000018 3C808047 60849D30 38600002 98640005 -48000004 BA810008 -800100B4 382100B0 +48000004 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D80801B 618C1514 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 +90010004 9421FF20 +BE8100B0 7C7F1B78 809F0014 88840004 2C040000 4082001C 38600000 3D80801A @@ -5014,11 +5014,11 @@ BE810008 7C7F1B78 38600000 3D80801A 618C42A0 7D8903A6 4E800421 48000004 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B +90010004 9421FF20 +BE8100B0 3D80801B 618C15C8 7D8903A6 4E800421 38600000 3D808000 618C5610 @@ -5102,14 +5102,14 @@ BE810008 3D80801B 7D8903A6 4E800421 7FE3FB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 01780101 01FF2121 FF2121EE 0000EE00 7C0802A6 -90010004 9421FF50 -BE810008 38600000 +90010004 9421FF20 +BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7E1B78 83ED8840 @@ -5209,17 +5209,17 @@ BE810008 38600000 7D8903A6 4E800421 3D808002 618C7168 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C808047 +90010004 9421FF20 +BE8100B0 3C808047 60849D30 38600003 -98640005 BA810008 -800100B4 382100B0 +98640005 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 @@ -5245,11 +5245,11 @@ B0640003 3C808049 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08047 63FF9DA4 887F0004 2C030001 41820010 2C030002 @@ -5278,11 +5278,11 @@ BA810008 800100B4 40820010 48000014 38600000 48000010 38600001 48000008 -3860FFFF BA810008 -800100B4 382100B0 +3860FFFF BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 3FE08047 63FF9DA4 1FDD00A8 7FDEFA14 887F0004 @@ -5310,19 +5310,19 @@ BA810008 800100B4 2C030000 41820010 48000004 38600000 48000008 38600001 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 83E30010 +90010004 9421FF20 +BE8100B0 83E30010 887F0005 2C030000 40820014 3D808001 618C74BC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83E30010 38600000 3D808000 618C5610 7D8903A6 4E800421 @@ -5337,16 +5337,16 @@ BE810008 83E30010 48000018 4BFFFC5D 3C808047 60849D30 38600005 98640005 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 38600028 987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 7CBD2B78 7CDC3378 3D808000 618C56B8 @@ -5359,8 +5359,8 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C9E2A14 7FE3FB78 7F85E378 3D808025 618CD5AC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C20056AC 0000002F #Online/Static/ChatMessages.asm @@ -5422,7 +5422,7 @@ C2005698 00000002 #Online/Static/GetCSSIconNum.asm 60000000 00000000 C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 7FC3F378 2C1F0003 41820028 2C1F0002 @@ -5434,8 +5434,8 @@ C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 7D8903A6 4E800421 48000014 3D808016 618C9264 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C20055F4 00000007 #Online/Static/IntToFloat.asm @@ -5448,7 +5448,7 @@ EC211028 C0410008 60000000 00000000 C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C030000 40820018 38600394 3D808037 618CF1E4 7D8903A6 @@ -5461,13 +5461,13 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38800394 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C20056A4 00000022 #Online/Static/LoadPremadeText.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 3B800004 7F83E378 3D808037 618CF1E4 @@ -5483,11 +5483,11 @@ C20056A4 00000022 #Online/Static/LoadPremadeText.asm 618CF1E4 7D8903A6 4E800421 7C7D1B78 386000E2 4800001D -7FA3EB78 BA810008 -800100B4 382100B0 +7FA3EB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 987D0000 9BFD0001 9BDD0002 7FA3EB78 38800003 38A00001 @@ -5496,13 +5496,13 @@ C20056A4 00000022 #Online/Static/LoadPremadeText.asm 7FA3EB78 7F84E378 38A00000 3D808000 618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C200560C 00000033 #Online/Static/LoadState.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7B1B78 7C982378 7CBA2B78 88DA0000 3AC00000 3AD60001 @@ -5549,21 +5549,21 @@ BC610008 7F05C378 4E800421 7EE3BB78 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 C20055EC 00000008 #Online/Static/MultiplyRWithF.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C55F4 7D8903A6 4E800421 -EC2100B2 BA810008 -800100B4 382100B0 +EC2100B2 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C2005608 00000016 #Online/Static/SaveState.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7B1B78 7C982378 7CBA2B78 887A0000 1C630004 389A0002 @@ -5581,21 +5581,21 @@ C2005608 00000016 #Online/Static/SaveState.asm 4E800421 7EE3BB78 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FF20 BE810008 +9421FF20 BE810080 DBE100B0 DBC100B8 DBA100C0 DB8100C8 DB6100D0 DB4100D8 7C751B78 7C962378 7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C +90E10008 9101000C +91210010 91410014 +91610018 9181001C FFE00890 FFC01090 FFA01890 FF602890 FF403090 2C180001 @@ -5610,7 +5610,7 @@ FC20F090 FC40E890 48000014 EC42D028 4800000C EC42D02A 48000004 7EA3AB78 -80810038 3D80803A +80810008 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 @@ -5623,15 +5623,15 @@ FC20F890 FC40F890 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C +80A10008 80C1000C +80E10010 81010014 +81210018 8141001C 3D80803A 618C70A0 7D8903A6 4E800421 2C0F0000 4182000C 39EFFFFF 4BFFFF14 48000094 7EA3AB78 -80810038 FC20F090 +80810008 FC20F090 FC40E890 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 @@ -5643,20 +5643,20 @@ FC20F890 FC40F890 7EC5B378 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A +7EE4BB78 80A10008 +80C1000C 80E10010 +81010014 81210018 +8141001C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA810008 CBE100B0 +BA810080 CBE100B0 CBC100B8 CBA100C0 CB8100C8 CB6100D0 CB4100D8 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF30 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 DBA100C0 DB8100C8 7C7D1B78 7C9C2378 7CDB3378 @@ -5677,7 +5677,7 @@ FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -BA810008 CBE100B0 +BA810080 CBE100B0 CBC100B8 CBA100C0 CB8100C8 800100D4 382100D0 7C0803A6 @@ -5696,7 +5696,7 @@ FFFFFFFF 3ECCCCCD 7200436F 6E6E6563 7420436F 64650000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C791B78 7C9B2378 2C050000 41820008 480003D1 4BFFFFA9 @@ -5721,11 +5721,11 @@ D03C0028 38600001 480000D1 38600000 48000029 480000D5 886DAFA1 987E0004 -7FA3EB78 BA810008 -800100B4 382100B0 +7FA3EB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7A1B78 C03E000A C05E000E 7F83E378 389F001C 3D80803A @@ -5741,13 +5741,13 @@ FC400890 7F83E378 38BF000C 7F83E378 7F04C378 3D80803A 618C74F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 C05E000E EC42082A D05E000E 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFE25 7FE802A6 83DF0000 83BE0000 839E0005 48000159 @@ -5778,11 +5778,11 @@ D05E000E 4E800020 7F83E378 38800003 38BD0020 3D80803A 618C70A0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFD0D 7FE802A6 83DF0000 889E0004 886DAFA1 7C041800 @@ -5791,11 +5791,11 @@ D05E000E 4E800020 618C4030 7D8903A6 4E800421 806DB614 7C6903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFCA9 +90010004 9421FF20 +BE8100B0 4BFFFCA9 7FE802A6 83DF0000 83BE0000 386000B9 987D0000 7FA3EB78 @@ -5806,11 +5806,11 @@ BE810008 4BFFFCA9 38A00000 3D808000 618C55F0 7D8903A6 4E800421 889D0000 -988DAFA1 BA810008 -800100B4 382100B0 +988DAFA1 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3CA0803E 60A5AE68 88A508F4 38800000 38600008 3D808022 @@ -5818,11 +5818,11 @@ BE810008 4BFFFCA9 4E800421 2C030001 41820010 38840001 7C042800 4180FFDC -7C832378 BA810008 -800100B4 382100B0 +7C832378 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFBCD 7FE802A6 38600012 3D808037 618CF1E4 7D8903A6 @@ -5830,8 +5830,8 @@ BE810008 4BFFFCA9 907F0000 3860002A 3D808037 618CF1E4 7D8903A6 4E800421 -907E0000 BA810008 -800100B4 382100B0 +907E0000 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm @@ -8503,7 +8503,7 @@ C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor. C2F00000 42F00000 42A00000 C1A00000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 4BFFFFD9 7FA802A6 807E002C A86300EE 3D808003 @@ -8520,8 +8520,8 @@ FC020840 41810018 C03D000C FC020840 4180000C 38600001 48000008 38600000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] @@ -8545,31 +8545,31 @@ C2376A24 00000026 #Common/UseInGameDelay/ApplyInGameDelay.asm 3C608047 60639D64 80630000 2C030000 408200D4 7C0802A6 -90010004 9421FF50 -BE810008 3C60802F +90010004 9421FF20 +BE8100B0 3C60802F 6063666C 80830000 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 40810080 -38610038 388100DC +38610008 3881010C 38A00030 3D808000 618C31F4 7D8903A6 4E800421 887F0001 1C630030 3BC30002 -386100DC 7C9FF214 +3861010C 7C9FF214 38A00030 3D808000 618C31F4 7D8903A6 4E800421 7C7FF214 -38810038 38A00030 +38810008 38A00030 3D808000 618C31F4 7D8903A6 4E800421 889F0000 887F0001 38630001 7C032000 41800008 38600000 -987F0001 BA810008 -800100B4 382100B0 +987F0001 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C22F666C 0000005C #Common/UseInGameDelay/InitializeInGameDelay.asm 4800007C 4E800021 @@ -8579,19 +8579,19 @@ C22F666C 0000005C #Common/UseInGameDelay/InitializeInGameDelay.asm 3EA8F5C3 44656C61 793A2025 64660000 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 +90010004 9421FF20 +BE8100B0 7C7F1B78 880DB6CC 2C000001 41820018 7FE3FB78 3D808039 618C10D8 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C7F1B78 3C608048 88639D30 2C030008 4182024C 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 386002D2 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 @@ -8661,12 +8661,12 @@ C05D000C 7F83E378 C03D0010 C05D0010 3D80803A 618C7548 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 7FE3FB78 00000000 C200561C 00000013 #Common/GetCommonMinorID/GetCommonMinorID.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3CA08048 8BC59D30 8BE59D33 3FA0803D 63BDACA4 38800000 @@ -8680,8 +8680,8 @@ C200561C 00000013 #Common/GetCommonMinorID/GetCommonMinorID.asm 7C06F800 4082000C 8865000C 48000010 38840001 2C0600FF -4082FFDC BA810008 -800100B4 382100B0 +4082FFDC BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9f84794c..0d02a8d3 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -60,7 +60,7 @@ C21A5B14 0000000A #External/Salty Runback/Salty Runback.asm 041B0A14 38600002 #Exiting Debug Menu Returns to CSS [Achilles] C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808016 618CB41C 7D8903A6 4E800421 2C030000 40820480 @@ -116,7 +116,7 @@ C216E510 00000098 #External/NeutralSpawn/NeutralSpawn.asm 7F24CB78 88BF24D0 48000009 480002E8 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 7CBD2B78 48000121 7F8802A6 80CD9348 @@ -152,8 +152,8 @@ C022A8F8 48000008 C022A8CC 7FE3FB78 3D808003 618C3094 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 00000020 C2700000 41200000 42700000 @@ -207,8 +207,8 @@ C2200000 40A00000 42200000 42000000 42200000 40A00000 FFFFFFFF 4E800021 -00030102 BA810008 -800100B4 382100B0 +00030102 BA8100B0 +800100E4 382100E0 7C0803A6 881F24D0 60000000 00000000 042641B0 38000001 #Faster CSS Load [UnclePunch] @@ -234,8 +234,8 @@ C21F0318 FE0F802A D21F0318 00000000 C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm D01F002C 7C0802A6 -90010004 9421FF50 -BE810008 48000121 +90010004 9421FF20 +BE8100B0 48000121 7FC802A6 C03F0894 C05E0000 FC011040 40820118 808DAEB4 @@ -273,12 +273,12 @@ FC011040 4181000C 88640002 7C630774 4E800020 4E800021 40000000 00000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 83FE002C 480000DD 7FA802A6 C03F063C 806DAEB4 @@ -293,8 +293,8 @@ C05D000C FC011040 2C040003 408100A8 C01D0010 C03F0624 FC000840 40800098 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8061001C 83E10014 38210018 38630008 7C6803A6 4E800020 @@ -312,12 +312,12 @@ C03D0000 EC200824 43300000 3F800000 BF4CCCCD 43300000 80000000 7FC3F378 -7FE4FB78 BA810008 -800100B4 382100B0 +7FE4FB78 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C030001 4082008C C03F0628 FC200A10 806DAEB4 C0430210 @@ -336,12 +336,12 @@ FC011040 40800074 7C841A14 1C65000C 7C841A14 88640002 7C630774 4E800020 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C22662D0 0000001A #External/UCF 0.8/Indicator/UCF Text.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 48000089 7FC802A6 38600000 38800000 3D80803A 618C6754 @@ -363,8 +363,8 @@ C05E0008 3D80803A C3898000 3EE66666 3DCCCCCD 4E800021 55434620 302E3800 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 38980000 00000000 C226325C 00000008 #External/DPad Down at CSS for Random Stage/DPad Down at CSS for Random Stage.asm 3C808045 6084BF17 @@ -440,8 +440,8 @@ C2265220 00000028 #Common/Winners Names are Gold on CSS/Change Name Color.asm 3D80803A 618C74F0 7D8903A6 4E800421 48000100 7C0802A6 -90010004 9421FF50 -BE810008 7C7D1B78 +90010004 9421FF20 +BE8100B0 7C7D1B78 3FE08047 63FF9DA4 1FDD00A8 7FDEFA14 887F0004 2C030000 @@ -468,8 +468,8 @@ BE810008 7C7D1B78 887E005D 2C030000 41820010 48000004 38600000 48000008 -38600001 BA810008 -800100B4 382100B0 +38600001 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 880DB655 00000000 C216EA30 00000004 #Common/Winners Names are Gold on CSS/Remember Who LRA Started.asm @@ -494,7 +494,7 @@ C213C388 0000000A #Common/CostumeBoundCheck/PuffCostume.asm 809C002C 00000000 C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3BE00000 7FE3FB78 3D808003 618C241C 7D8903A6 4E800421 @@ -546,8 +546,8 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 4E800421 3B7B0001 2C1B0006 4180FF68 3BFF0001 2C1F0006 -4180FEF4 BA810008 -800100B4 382100B0 +4180FEF4 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 @@ -557,7 +557,7 @@ $Required: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohn 040679BC 38802600 #Recording/ExtendPlayerBlock.asm C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418200A8 @@ -581,13 +581,13 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600000 -906DB650 BA810008 -800100B4 382100B0 +906DB650 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 C216D884 0000001C #Recording/SendGameEnd.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418200A0 @@ -610,13 +610,13 @@ C216D884 0000001C #Recording/SendGameEnd.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 38600001 -98780004 BA810008 -800100B4 382100B0 +98780004 BA8100B0 +800100E4 382100E0 7C0803A6 819F2514 60000000 00000000 C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 418207A0 @@ -808,7 +808,7 @@ A0B50201 3D808000 7D8903A6 4E800421 48000070 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83A30000 838DB650 7FBDE214 3860003A 987D0000 @@ -817,8 +817,8 @@ A0B50201 3D808000 907D0005 3C608048 80639D60 907D0009 838DB650 3B9C000D -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600004 38800007 38A00000 3D808039 @@ -829,7 +829,7 @@ A0B50201 3D808000 7D8903A6 4E800421 48000124 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83E30000 83CDB650 7FFFF214 3B600000 806DC18C @@ -861,15 +861,15 @@ B07F001C 807C0D44 3BDE002B 93CDB650 3BFF002B 83BD0008 2C1D0000 4082FF30 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 3C608017 60000000 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 41820170 @@ -918,13 +918,13 @@ B07D0030 887F1968 807F195C 907D0049 807F0014 907D004D 838DB650 3B9C0051 -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 C206B0DC 0000002B #Recording/SendGamePreFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 2C030000 41820118 @@ -962,8 +962,8 @@ B07D0031 80640030 88630002 987D003B 807F1830 907D003C 838DB650 3B9C0040 -938DB650 BA810008 -800100B4 382100B0 +938DB650 BA8100B0 +800100E4 382100E0 7C0803A6 881F2219 60000000 00000000 C2005604 0000000A #Recording/ShouldRecord.asm @@ -988,7 +988,7 @@ C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 807E00B0 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 3BE00000 887E221F 5460EFFF 41820038 887E000C @@ -998,8 +998,8 @@ C20055F8 0000000F #Common/GetIsFollower.asm 1C030003 7C640214 88030002 2C000000 40820008 3BE00001 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm @@ -1076,7 +1076,7 @@ $Required: Slippi Online [Fizzi, UnclePunch] *Change settings in Config > GameCube C206A880 0000001B #Online/Core/BrawlOffscreenDamage.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030120 41820094 887F221F @@ -1099,8 +1099,8 @@ FC020840 41810028 C05F00B4 FC020840 4180000C 38600000 48000008 38600001 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C22F7094 0000000F #Online/Core/CustomizeMessageLRAS.asm 3CE08048 80E79D30 @@ -1163,22 +1163,22 @@ C234DED8 0000000F #Online/Core/HandleRumble.asm 80639D30 5463443E 2C030208 4082005C 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83EDB61C 887F0000 7C03E800 41820024 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808034 618CDF44 7D8903A6 4E800420 -887F0002 BA810008 -800100B4 382100B0 +887F0002 BA8100B0 +800100E4 382100E0 7C0803A6 7C7D1B78 60000000 00000000 C216E748 0000009E #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 408204A8 38600B2E @@ -1271,8 +1271,8 @@ C216E748 0000009E #Online/Core/InitOnlinePlay.asm 7C841A14 3C60804D 90835F90 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 838DB61C +90010004 9421FF20 +BE8100B0 838DB61C 3CA0803D 60A5AD40 80A50000 83650088 3F408047 635A9DA4 @@ -1327,11 +1327,11 @@ BE810008 838DB61C 7FC3F378 38800171 38A00001 3D808000 618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C216E904 0000004C #Online/Core/InitPause.asm 3C608048 80639D30 @@ -1347,7 +1347,7 @@ C216E904 0000004C #Online/Core/InitPause.asm 50831F38 986C0002 48000200 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83ADB61C 3BC00000 7FC3F378 3D808003 618C241C 7D8903A6 @@ -1406,8 +1406,8 @@ C216E904 0000004C #Online/Core/InitPause.asm 38600005 3D808002 618C4030 7D8903A6 4E800421 48000004 -3860FFFF BA810008 -800100B4 382100B0 +3860FFFF BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm @@ -1419,8 +1419,8 @@ C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 3C608047 60639D64 80630000 2C030000 408202A4 7C0802A6 -90010004 9421FF50 -BE810008 3D808034 +90010004 9421FF20 +BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 83EDB61C 3BDF03A7 @@ -1465,21 +1465,21 @@ A0840001 7C032000 987F00DE 987F08FE 7FA3EB78 3D808034 618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 3B5A0001 3D80801A 618C5024 7D8903A6 4E800420 7FA3EB78 3D808034 618C738C 7D8903A6 4E800421 48000029 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3B5A0001 3D80801A 618C4DE4 7D8903A6 4E800420 7C0802A6 -90010004 9421FF50 -BE810008 3D808003 +90010004 9421FF20 +BE8100B0 3D808003 618C0A50 7D8903A6 4E800421 3D808002 618CA4AC 7D8903A6 @@ -1495,13 +1495,13 @@ BE810008 3D808003 3D808008 618C6A8C 7D8903A6 4E800421 82940008 2C140000 -4082FFD4 BA810008 -800100B4 382100B0 +4082FFD4 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7FA3EB78 3D808034 618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C216D26C 00000003 #Online/Core/PauseCounter.asm 808DB61C 80640915 @@ -1549,7 +1549,7 @@ CDFFB800 FF444553 594E4320 44455445 43544544 00000000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08045 63FF3080 3FA08045 63BD5C30 3BC00000 7FC3F378 @@ -1557,8 +1557,8 @@ CDFFB800 FF444553 809F00B4 4800002D 7C7E1B78 3BFF0E90 7C1FE800 4081FFE0 -7FC3F378 BA810008 -800100B4 382100B0 +7FC3F378 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 2C040000 41820030 80A4002C 80850010 @@ -1568,7 +1568,7 @@ CDFFB800 FF444553 7C632278 80850008 7C632278 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 4BFFFF11 7FE802A6 7FFF2214 C03F0000 C05F0004 @@ -1583,8 +1583,8 @@ C05F0008 3D80803A 7FC4F378 38BF000C 3D80803A 618C74F0 7D8903A6 4E800421 -7FC3F378 BA810008 -800100B4 382100B0 +7FC3F378 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 886DAFA0 2C030000 40820028 818DB61C @@ -1593,8 +1593,8 @@ C05F0008 3D80803A 38800007 98830008 38800037 988324D5 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C608048 +90010004 9421FF20 +BE8100B0 3C608048 80639D30 5463443E 2C030208 408203CC 3C608047 60639D64 @@ -1718,12 +1718,12 @@ BE810008 3C608048 4E800421 7F23CB78 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C2376A28 000000F1 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 40820750 3C608047 @@ -1732,14 +1732,14 @@ C2376A28 000000F1 #Online/Core/TriggerSendInput.asm 836DB61C 833B00D6 831B00DA 82FB039F 835B0003 889B0002 -1C84000C 386400DC +1C84000C 3864010C 7FA11A14 887B00DE 2C030000 41820010 887B00DF 2C030000 4182067C 887B0020 38800054 7C632050 2C1A0003 4080001C -386100DC 38800030 +3861010C 38800030 3D808000 618CC160 7D8903A6 4E800421 48000040 88830000 @@ -1790,21 +1790,21 @@ B0830000 4E800020 38600001 987B0010 48000038 887B000F 2C030001 4182002C -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 38600001 987B0013 889B0021 1C84000C 38840022 887B0000 -1C63000C 386300DC +1C63000C 3863010C 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E4 1C63000C 386300E5 889B0000 1C84000C -388400DC 7C7B1A14 +3884010C 7C7B1A14 7C812214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 @@ -1867,8 +1867,8 @@ BA810008 800100B4 4800003C 38600001 987B00DE 987B00DF 935B00E0 3B5A0001 -935B0003 BA810008 -800100B4 382100B0 +935B0003 BA8100B0 +800100E4 382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 3A940001 @@ -1935,7 +1935,7 @@ BA810008 800100B4 987B038B 38600000 1C63000C 38A3002A 1CD40054 7CA53214 -1C75000C 386300DC +1C75000C 3863010C 7C611A14 7C982A14 38A0000C 3D808000 618C31F4 7D8903A6 @@ -1945,8 +1945,8 @@ BA810008 800100B4 41820008 935B0919 48000080 807B00E0 7C1A1800 40810024 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 807B00E0 7C7A1850 @@ -1954,14 +1954,14 @@ BA810008 800100B4 7C632051 40800008 3863000E 1C63000C 388300E5 887B0000 -1C63000C 386300DC +1C63000C 3863010C 7C611A14 7C9B2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 4BFFFE2C 3B5A0001 935B0003 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 2C1E0000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 @@ -1970,11 +1970,11 @@ C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38000000 00000000 C20163FC 0000001B #Online/Core/EXIFileLoad/GetFileSize.asm 7C7E1B78 7C0802A6 -90010004 9421FF50 -BE810008 83EDAFC4 +90010004 9421FF20 +BE8100B0 83EDAFC4 2C1F0000 40820018 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 480000A0 386000D1 987F0000 387F0001 7FC4F378 3D808032 @@ -1989,8 +1989,8 @@ BA810008 800100B4 38800004 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 80630000 2C030000 40810014 3D808001 618C6488 @@ -1998,8 +1998,8 @@ BA810008 800100B4 7FC3F378 00000000 C20166B8 00000029 #Online/Core/EXIFileLoad/TransferFile.asm 7C7E1B78 7C0802A6 -90010004 9421FF50 -BE810008 83EDAFC4 +90010004 9421FF20 +BE8100B0 83EDAFC4 2C1F0000 41820110 386000D1 987F0000 387F0001 7FC4F378 @@ -2030,12 +2030,12 @@ BE810008 83EDAFC4 7FA4EB78 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 38600001 3D808001 618C674C 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 7FC3F378 60000000 00000000 C20D4C1C 00000005 #Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm @@ -2058,7 +2058,7 @@ D03F2364 3D80800D 4E800420 00000000 C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808003 618C10B8 7D8903A6 4E800421 3D808036 618C9808 @@ -2069,8 +2069,8 @@ C2080E80 00000011 #Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm 80610080 907F0038 80610084 907F003C 80610088 907F0040 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808008 618C0EE4 7D8903A6 4E800420 60000000 00000000 @@ -2089,15 +2089,15 @@ C2376304 0000000B #Online/Core/Hacks/ForceNoVideoAssert.asm 25640A00 00000000 C23A63A8 0000000C #Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C9D2378 7CDC3378 886DAFEC 2C030000 41820024 7FA3EB78 7F84E378 3D808000 618C56A4 7D8903A6 4E800421 7C7E1B78 -93DF005C BA810008 -800100B4 382100B0 +93DF005C BA8100B0 +800100E4 382100E0 7C0803A6 38600000 986DAFEC 00000000 04321D70 38600000 #Online/Core/Hacks/PreventCharacterCrowdChants.asm @@ -2130,8 +2130,8 @@ C238D224 00000018 #Online/Core/Sound/AssignSoundInstanceId.asm 3C608047 60639D64 80630000 2C030000 40820090 7C0802A6 -90010004 9421FF50 -BE810008 83EDB61C +90010004 9421FF20 +BE8100B0 83EDB61C 3BDF03A7 8B9E0000 3C608048 80639D60 809F08F6 7C032000 @@ -2145,15 +2145,15 @@ BE810008 83EDB61C 3863FFFF 1C630006 38A60001 7CA51A14 807D000C 90650002 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C2088224 0000001D #Online/Core/Sound/NoDestroyVoice.asm 3C608048 80639D30 5463443E 2C030208 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB61C +90010004 9421FF20 +BE8100B0 83EDB61C 3BBF03A7 57DE043E 8B9D0000 3C608048 80639D60 809F08F6 @@ -2170,20 +2170,20 @@ BE810008 83EDB61C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C8244 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C20882B0 0000001D #Online/Core/Sound/NoDestroyVoice2.asm 3C608048 80639D30 5463443E 2C030208 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB61C +90010004 9421FF20 +BE8100B0 83EDB61C 3BBF03A7 57DE043E 8B9D0000 3C608048 80639D60 809F08F6 @@ -2200,12 +2200,12 @@ BE810008 83EDB61C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C82D0 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm @@ -2215,7 +2215,7 @@ C238D0B0 0000002A #Online/Core/Sound/PreventDuplicateSounds.asm 60639D64 80630000 2C030000 40820120 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83EDB61C 3BDF03A7 3BA00000 3B400000 56FB043E 8B9E0000 @@ -2243,12 +2243,12 @@ A0650000 7C1B1800 93450002 88660000 38630001 98660000 2C1D0000 41820028 -7F43D378 BA810008 -800100B4 382100B0 +7F43D378 BA8100B0 +800100E4 382100E0 7C0803A6 3D808038 618CD2A0 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 2C1A0000 60000000 00000000 C216BE28 0000000A #Online/Core/Teams/PreventDeadStranding.asm @@ -2289,8 +2289,8 @@ C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 -90010004 9421FF50 -BE810008 3C608048 +90010004 9421FF20 +BE8100B0 3C608048 80639D30 5463443E 2C030008 40820AFC 7CFB3B78 3F008000 @@ -2371,14 +2371,14 @@ BE810008 3C608048 7C6802A6 906DAFE8 48000878 887A0001 889A0002 7C632039 -41820868 BA810008 -800100B4 382100B0 +41820868 BA8100B0 +800100E4 382100E0 7C0803A6 3D808026 618C3264 7D8903A6 4E800420 576006F7 4082024D 4800083C 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38600014 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 @@ -2395,12 +2395,12 @@ BE810008 3C608048 7D8903A6 4E800421 7F23CB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 +90010004 9421FF20 +BE8100B0 7C7F1B78 38600009 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 @@ -2431,27 +2431,27 @@ BE810008 7C7F1B78 7D8903A6 4E800421 7F23CB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 8A98001A +90010004 9421FF20 +BE8100B0 8A98001A 4BFFFECD 4BFFFE1D -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38600001 +90010004 9421FF20 +BE8100B0 38600001 986DAFA3 4BFFFFB5 7C6802A6 906DAFE8 880DB650 980DB659 38000004 980DB656 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 38600001 +90010004 9421FF20 +BE8100B0 38600001 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 386000BA @@ -2461,11 +2461,11 @@ BE810008 38600001 7D8903A6 4E800421 7F23CB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C1B0200 40820008 B3780015 2C1B0001 4182001C 2C1B0002 @@ -2474,12 +2474,12 @@ B3780015 2C1B0001 4082001D B3780015 88780014 2C030000 4082000C 7F63DB78 -480000B9 BA810008 -800100B4 382100B0 +480000B9 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C6E1B78 7C0802A6 -90010004 9421FF50 -BE810008 38600002 +90010004 9421FF20 +BE8100B0 38600002 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 386000BB @@ -2494,12 +2494,12 @@ BE810008 38600002 3880007F 38A00040 3D808002 618C37A8 7D8903A6 4E800421 -7F63DB78 BA810008 -800100B4 382100B0 +7F63DB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C6E1B78 7C0802A6 -90010004 9421FF50 -BE810008 48000419 +90010004 9421FF20 +BE8100B0 48000419 7DE802A6 38600002 3D808002 618C4030 7D8903A6 4E800421 @@ -2540,12 +2540,12 @@ D043003C 7E83A378 7C8802A6 38A00004 3D808038 618CFD54 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 -90010004 9421FF50 -BE810008 820E002C +90010004 9421FF20 +BE8100B0 820E002C 82EE0028 8A300000 8A500002 82700003 82B00007 A2D50015 @@ -2628,8 +2628,8 @@ C02F001C 3D808000 4E800421 7E639B78 3D80803A 618C5CC4 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 00000000 3DCCCCCD C3960000 C3E20000 @@ -2640,12 +2640,12 @@ C20C0000 C1840000 FFFFFFFF FFEA2FFF C9C387FF 43686174 3A202573 00000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808026 618C3334 7D8903A6 4E800420 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C21A3F9C 00000005 #Online/Menus/CSS/IncreaseTextHeap.asm 3C608048 80639D30 @@ -2668,8 +2668,8 @@ C1AAE148 3FE3D70A C1823D71 C15BAE14 81692081 6A005300 5A000000 7C0802A6 -90010004 9421FF50 -BE810008 38600004 +90010004 9421FF20 +BE8100B0 38600004 38800005 38A00080 3D808039 618C01F0 7D8903A6 4E800421 @@ -2689,8 +2689,8 @@ C03F0008 D03E0024 D03E0028 3860004A C03F0010 48000025 3860004C C03F0014 -48000019 BA810008 -800100B4 382100B0 +48000019 BA8100B0 +800100E4 382100E0 7C0803A6 480002A4 7EE802A6 7C7A1B78 FC600890 C03F000C @@ -2712,8 +2712,8 @@ C03F001C C05F001C 7D8903A6 4E800421 7EE803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFE3D +90010004 9421FF20 +BE8100B0 4BFFFE3D 7FE802A6 83DF0000 3C608043 6063208F 88630000 2C030012 @@ -2773,8 +2773,8 @@ C05F0040 FC011040 7FC3F378 38990001 7F05C378 3D80803A 618C74F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600000 38980000 60000000 00000000 @@ -2845,8 +2845,8 @@ FF0000FF 00556E72 4E800021 C2E00000 41A00000 00000000 3DCCCCCD 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFDFD +90010004 9421FF20 +BE8100B0 4BFFFDFD 7FA802A6 3C60804D 606350D8 3C800200 60840801 90830000 @@ -2916,12 +2916,12 @@ C05D007C C07D0074 480000AD C07D005C 480000A5 C07D0060 4800009D C07D0064 -48000095 BA810008 -800100B4 382100B0 +48000095 BA8100B0 +800100E4 382100E0 7C0803A6 48000A9C 7C0802A6 90010004 -9421FF50 BE810008 -D0610038 7F83E378 +9421FF20 BE8100B0 +D0610008 7F83E378 389D0090 38A00000 C03D0068 C05D0048 38FD0098 3D808000 @@ -2929,24 +2929,24 @@ C03D0068 C05D0048 4E800421 7F83E378 389D0090 38A00000 C03D0080 C05D003C -C0610038 38FD0098 +C0610008 38FD0098 3D808000 618C56B4 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7F83E378 +90010004 9421FF20 +BE8100B0 7F83E378 389D0094 38A00000 C03D0068 C05D003C 38FD0098 3D808000 618C56B4 7D8903A6 4E800421 7C7B1B78 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 8363002C 4BFFFAD5 7FA802A6 3F808000 639C5614 839C0000 @@ -3169,12 +3169,12 @@ A07C000F 3880000F A07C000F 38630001 2C03001E 41800008 38600000 B07C000F -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 90010004 9421FF40 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 4BFFF3B5 7FA802A6 820E002C 8A300000 8A500001 @@ -3247,16 +3247,16 @@ C022AE28 3D808036 7E84A378 38840001 7C032000 41820008 4800000C 38600000 -987C0019 BA810008 +987C0019 BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7F43D378 3D80803A 618C70A0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 80CDB638 00000000 C2262004 0000000B #Online/Menus/CSS/PreventAPressCharUnselect.asm @@ -3305,8 +3305,8 @@ C2E00000 41A00000 3C608048 80639D30 5463443E 2C030008 40820100 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFFB1 +90010004 9421FF20 +BE8100B0 4BFFFFB1 7FC802A6 3D808000 618C5618 7D8903A6 4E800421 7C6802A6 @@ -3334,8 +3334,8 @@ BE810008 4BFFFFB1 389E001B 3D808038 618C0358 7D8903A6 4E800421 907F0004 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 C2264118 0000001C #Online/Menus/CSS/SkipReturnToCssSound.asm 7C0802A6 90010004 @@ -3368,7 +3368,7 @@ B8610008 80010104 80630020 00000000 C2262478 00000014 #Online/Menus/CSS/Teams/AnimateCursorPort.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FC08000 63DE5614 83DE0000 3C608048 80639D30 5463443E @@ -3381,15 +3381,15 @@ C2262478 00000014 #Online/Menus/CSS/Teams/AnimateCursorPort.asm 7FE3FB78 3D808000 618C55F4 7D8903A6 4E800421 48000004 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8061003C 38800006 38A00400 3CC08036 60C6410C 38E00001 60000000 00000000 C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3F808000 639C5614 839C0000 3C608048 80639D30 5463443E @@ -3398,8 +3398,8 @@ C2262768 0000000D #Online/Menus/CSS/Teams/AnimateToken.asm 40820018 8B7C001A 2C1B0003 41820008 3B7BFFFF 9B7D0006 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 387C0000 00000000 C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 48000030 4E800021 @@ -3413,7 +3413,7 @@ C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 40820560 888DAFA0 2C040003 40820554 7C0802A6 90010004 -9421FF40 BE810008 +9421FF40 BE810080 DBE100B0 DBC100B8 3FC08000 63DE5614 83DE0000 4BFFFF91 @@ -3486,12 +3486,12 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 -BA810008 CBE100B0 +BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 480002E8 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C741B78 82B40028 886DB656 2C030000 40820098 3FC08000 @@ -3513,11 +3513,11 @@ FC013040 4181002C 1C630044 7C641A14 80630008 546305EF 41820008 48000019 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D808000 +90010004 9421FF20 +BE8100B0 3D808000 618C56B8 7D8903A6 4E800421 7C651B78 38600000 1C630024 @@ -3531,11 +3531,11 @@ BE810008 3D808000 4800002D 38600002 3D808002 618C4030 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 808DB610 +90010004 9421FF20 +BE8100B0 808DB610 886DB650 1C630024 7F841A14 887C0070 7C7B1B78 8B3E001A @@ -3564,11 +3564,11 @@ BE810008 808DB610 7F05C378 38C00000 3D808000 618C56BC 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C791B78 +90010004 9421FF20 +BE8100B0 7C791B78 2C190003 4182001C 2C190002 4182000C 2C190001 41820014 @@ -3579,8 +3579,8 @@ BE810008 7C791B78 7C632A14 98830000 38600000 3D808025 618CDB34 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 38600000 38980000 3D80803A 618C6754 @@ -3588,7 +3588,7 @@ BE810008 7C791B78 60000000 00000000 C2260C28 0000001C #Online/Menus/CSS/Teams/PreventColorResetCharHover.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08000 63FF5614 83FF0000 3C608048 80639D30 5463443E @@ -3611,8 +3611,8 @@ C2260C28 0000001C #Online/Menus/CSS/Teams/PreventColorResetCharHover.asm 7C7B1B78 80ADB610 9B650073 3CA0803F 60A50E09 9B650000 -48000004 BA810008 -800100B4 382100B0 +48000004 BA8100B0 +800100E4 382100E0 7C0803A6 9E9803C2 60000000 00000000 C2260E14 00000003 #Online/Menus/CSS/Teams/PreventColorResetLastChar.asm @@ -3621,7 +3621,7 @@ C2260E14 00000003 #Online/Menus/CSS/Teams/PreventColorResetLastChar.asm 60000000 00000000 C2260B90 0000001A #Online/Menus/CSS/Teams/PreventColorResetRandomChar.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08000 63FF5614 83FF0000 3C608048 80639D30 5463443E @@ -3642,13 +3642,13 @@ C2260B90 0000001A #Online/Menus/CSS/Teams/PreventColorResetRandomChar.asm 7F65DB78 38C00000 3D808000 618C56BC 7D8903A6 4E800421 -48000004 BA810008 -800100B4 382100B0 +48000004 BA8100B0 +800100E4 382100E0 7C0803A6 38000000 60000000 00000000 C2260C88 00000018 #Online/Menus/CSS/Teams/PreventWrongCSPOnCharSelect.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C9D2378 7C7B1B78 3FE08000 63FF5614 83FF0000 3C608048 @@ -3667,8 +3667,8 @@ C2260C88 00000018 #Online/Menus/CSS/Teams/PreventWrongCSPOnCharSelect.asm 3D808000 618C56BC 7D8903A6 4E800421 48000004 7FA4EB78 -7F63DB78 BA810008 -800100B4 382100B0 +7F63DB78 BA8100B0 +800100E4 382100E0 7C0803A6 98830070 60000000 00000000 0423C710 28030007 #Online/Menus/CSS/TextEntryScreen/Allow8Characters.asm @@ -3701,8 +3701,8 @@ C223CCA4 00000045 #Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm 41820014 3D808023 618CCCAC 7D8903A6 4E800420 7C0802A6 -90010004 9421FF50 -BE810008 7C9A2378 +90010004 9421FF20 +BE8100B0 7C9A2378 4BFFFFC5 7C6802A6 83E30004 83DF0006 886DB56C 5463063E @@ -3724,12 +3724,12 @@ BE810008 7C9A2378 B07A0002 3D808023 618CCE4C 7D8903A6 4E800421 7F44D378 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808023 618CCCFC 7D8903A6 4E800420 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 886DAFA3 2C030000 418200C8 4BFFFEDD 7C6802A6 @@ -3756,11 +3756,11 @@ BA810008 800100B4 4E800421 807E001A 907F0000 3D808023 618CCE4C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 -7F44D378 BA810008 -800100B4 382100B0 +7F44D378 BA8100B0 +800100E4 382100E0 7C0803A6 3D808023 618CCD34 7D8903A6 4E800420 00000000 @@ -3793,7 +3793,7 @@ C223E994 00000027 #Online/Menus/CSS/TextEntryScreen/InitNameEntry.asm 41820128 38600001 986DAFCB 48000004 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C608023 6063CCA4 80830000 5485863E 7CA50774 54A5801E @@ -3824,8 +3824,8 @@ C223E994 00000027 #Online/Menus/CSS/TextEntryScreen/InitNameEntry.asm 60841070 38A00004 38C00080 3D808039 618C069C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 48000004 38600000 00000000 C223C588 0000000C #Online/Menus/CSS/TextEntryScreen/NameEntryThinkOneShot.asm @@ -3866,8 +3866,8 @@ C223CA50 00000003 #Online/Menus/CSS/TextEntryScreen/OnConfirmButtonAPress.asm C223CC14 0000001D #Online/Menus/CSS/TextEntryScreen/OnConfirmButtonHandler.asm 886DAFA3 2C030000 418200D8 7C0802A6 -90010004 9421FF50 -BE810008 3C608023 +90010004 9421FF20 +BE8100B0 3C608023 6063CCA4 80830000 5485863E 7CA50774 54A5801E 5484043A @@ -3876,8 +3876,8 @@ BE810008 3C608023 2C030000 40820038 38600003 3D808002 618C4030 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 3D808023 618CCE38 7D8903A6 4E800420 887F0004 @@ -3888,8 +3888,8 @@ BE810008 3C608023 7D8903A6 4E800421 3860FFFE 818DAFE8 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808023 618CCC80 7D8903A6 4E800420 38000000 00000000 @@ -3992,16 +3992,16 @@ C22F6694 000000BD #Online/Menus/InGame/InitInGame.asm 44656C61 793A2025 64660000 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 880DB6CC 2C000001 41820018 7FE3FB78 3D808039 618C10D8 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C60804D 60636D5C 80630000 3C80803F 608494D0 3D808038 @@ -4161,8 +4161,8 @@ EC2100B2 D036002C 4180FCF8 7F43D378 3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8001001C 83E10014 60000000 00000000 043A69C0 4800003C #Online/Menus/InGame/ParseNumbersBetter.asm @@ -4226,7 +4226,7 @@ C34C0000 C31D0000 41880000 3D75C28F 4E800021 01000000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFFD5 7C6802A6 38800001 3D808000 618C5618 7D8903A6 @@ -4258,13 +4258,13 @@ C34C0000 C31D0000 7D8903A6 4E800421 7F83E378 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 B9C10408 60000000 00000000 C21B1040 00000167 #Online/Menus/TitleMenu/OnMenuPrep.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 480000B5 7C6802A6 3C80803D 6084D908 90640000 3C60803E @@ -4285,8 +4285,8 @@ C21B1040 00000167 #Online/Menus/TitleMenu/OnMenuPrep.asm 39950014 7D8903A6 4E800421 3995000C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 48000A6C 4E800021 3D808000 618C5618 7D8903A6 4E800421 @@ -4301,8 +4301,8 @@ BA810008 800100B4 3D80801B 618C136C 7D8903A6 4E800420 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 3FE0804A +90010004 9421FF20 +BE8100B0 3FE0804A 63FF04F0 3FC0803E 63DEAE68 38000005 B00DB528 3D808000 @@ -4331,11 +4331,11 @@ B00DB528 3D808000 8803000D 508026B6 9803000D 38600001 986DAFA2 7F63DB78 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C731B78 80730008 2C030000 40820344 3C60804A 3BA304F0 @@ -4447,8 +4447,8 @@ A09C0000 3D808022 7F6802A6 387B0004 7C6903A6 4E800421 387B0008 7C6903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800021 803EB57C 430C0000 803EB684 07000000 @@ -4456,7 +4456,7 @@ A09C0000 3D808022 0647064B 06480649 064A0000 7C0802A6 90010004 9421FF40 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 806DB518 3C80803E 6084FA0C 3D808038 618C0358 @@ -4495,17 +4495,17 @@ C3DE0014 3AC00016 7F25CB78 3D808039 618C0A70 7D8903A6 4E800421 7F23CB78 -38810038 38A0000A +38810008 38A0000A 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 -38810038 38A0000B +38810008 38A0000B 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 38800010 3D808037 618C1D9C 7D8903A6 4E800421 7F23CB78 @@ -4516,16 +4516,16 @@ C3DE0014 3AC00016 FC20F890 3D808036 618CF8BC 7D8903A6 4E800421 7F23CB78 -38810038 38A00006 +38810008 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 3C80C060 60840000 90830038 7F23CB78 -38810038 38A00007 +38810008 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 -4E800421 80610038 +4E800421 80610008 3C80405C 60840000 90830038 7F03C378 3C808039 60841070 @@ -4540,13 +4540,13 @@ FC20F890 3D808036 48000039 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 BA810008 +4E800421 BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 9421FF40 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 4800022D 7FC802A6 C3FE0010 C3DE0014 7C781B78 @@ -4563,26 +4563,26 @@ C07E0008 C09E000C 3D808000 618C56B4 7D8903A6 4E800421 907A0005 48000198 -7F23CB78 38810038 +7F23CB78 38810008 38A00007 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0000 40820008 FC20F090 -80610038 3D808036 +80610008 3D808036 618CF8BC 7D8903A6 -4E800421 80610038 +4E800421 80610008 3D808037 618C0928 7D8903A6 4E800421 -7F23CB78 38810038 +7F23CB78 38810008 38A00006 38C0FFFF 3D808001 618C1E24 7D8903A6 4E800421 FC20F890 2C1B0001 40820008 FC20F090 -80610038 3D808036 +80610008 3D808036 618CF8BC 7D8903A6 -4E800421 80610038 +4E800421 80610008 3D808037 618C0928 7D8903A6 4E800421 39C00000 7DC37378 @@ -4613,7 +4613,7 @@ FC20F890 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 BA810008 +48000004 BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 @@ -4654,8 +4654,8 @@ C2186EC4 0000007F #Online/Menus/VSScreen/InitVsSplash.asm 5465616D 20310054 65616D20 32005031 00503200 7C0802A6 -90010004 9421FF50 -BE810008 38600000 +90010004 9421FF20 +BE8100B0 38600000 3C80803F 608411A4 3CA0803F 60A51194 3D80803A 618C62A0 @@ -4713,11 +4713,11 @@ A0DD026A 38600000 7C841A14 8884005C 7FC3F378 3D80803A 618C6368 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4800018C 7C0802A6 90010004 -9421FF40 BE810008 +9421FF40 BE810080 DBE100B0 DBC100B8 FFE00890 7C761B78 7C942378 7CB92B78 @@ -4746,12 +4746,12 @@ FC60F090 3D808000 618C56B4 7D8903A6 4E800421 39CE0004 39EF0001 7C0FD000 -4180FFAC BA810008 +4180FFAC BA810080 CBE100B0 CBC100B8 800100C4 382100C0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38A00008 38C000FF 7C7A3039 7C632C30 38E00008 39200000 @@ -4762,16 +4762,16 @@ CBE100B0 CBC100B8 39290001 2C090003 4180FFD8 7F46D378 80A10010 80E1000C -81010008 BA810008 -800100B4 382100B0 +81010008 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 3800FFFF 00000000 C2184DE4 00000010 #Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm 3D808048 818C9D30 558C443E 2C0C0408 40820068 7C0802A6 -90010004 9421FF50 -BE810008 38600000 +90010004 9421FF20 +BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 887F0004 @@ -4779,8 +4779,8 @@ BE810008 38600000 7FC418AE 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 -7FC3F378 BA810008 -800100B4 382100B0 +7FC3F378 BA8100B0 +800100E4 382100E0 7C0803A6 48000008 887E00F4 00000000 C21B3650 00000004 #Online/Menus/VSScreen/PreventP2Color.asm @@ -4792,8 +4792,8 @@ C2185060 00000013 #Online/Menus/VSScreen/HideStageDisplay/HideAllJObjs.asm 3D808048 818C9D30 558C443E 2C0C0408 40820078 7C0802A6 -90010004 9421FF50 -BE810008 83E30028 +90010004 9421FF20 +BE8100B0 83E30028 3BC00000 7FE3FB78 38810080 7FC5F378 38C0FFFF 3D808001 @@ -4802,8 +4802,8 @@ BE810008 83E30028 80640014 60630010 90640014 3BDE0001 2C1E001B 4180FFC8 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808018 618C51AC 7D8903A6 4E800420 3C608047 3BE335A8 @@ -4813,8 +4813,8 @@ C2184ADC 00000010 #Online/Menus/VSScreen/HideStageText/HideLetterJObjs.asm 3D808048 818C9D30 558C443E 2C0C0408 40820068 7C0802A6 -90010004 9421FF50 -BE810008 3BE00009 +90010004 9421FF20 +BE8100B0 3BE00009 7F63DB78 38810080 7FE5FB78 38C0FFFF 3D808001 618C1E24 @@ -4823,8 +4823,8 @@ BE810008 3BE00009 618CF6B4 7D8903A6 4E800421 3BFF0001 2C1F000E 4180FFC4 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3BBE0038 00000000 04184B1C 480001D8 #Online/Menus/VSScreen/HideStageText/SkipStageNumberShow.asm C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm @@ -4848,8 +4848,8 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 38600001 00000000 C21A45B8 000001F0 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 -90010004 9421FF50 -BE810008 3C80803E +90010004 9421FF20 +BE8100B0 3C80803E 6084DC1C 48000281 7C6802A6 38630000 90640008 38600000 @@ -4863,7 +4863,7 @@ BE810008 3C80803E 7C840734 7C841A14 90830000 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 3C80803D 6084AD30 48000091 7C6802A6 @@ -4881,12 +4881,12 @@ BE810008 3C80803E 4BFFFF5D 38740010 4BFFFF55 38740014 4BFFFF4D 3A940018 -4BFFFFCC BA810008 -800100B4 382100B0 +4BFFFFCC BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 3C808045 +90010004 9421FF20 +BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 7C8802A6 48000B31 @@ -4902,15 +4902,15 @@ BE810008 3C808045 987400DD 48000014 3AD60001 3A94001C 7C16A800 4180FFDC -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38600012 3C80803F 60840CC8 98640001 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 00030000 480000B9 4800012D 08000000 @@ -4936,8 +4936,8 @@ FF000000 4E800021 00000000 00000000 00000000 00000000 00000000 7C0802A6 -90010004 9421FF50 -BE810008 808D8840 +90010004 9421FF20 +BE8100B0 808D8840 3BE40530 3D80801A 618C427C 7D8903A6 4E800421 88BF0002 @@ -4948,11 +4948,11 @@ BE810008 808D8840 7D8903A6 4E800421 3D808001 618C74BC 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7E1B78 +90010004 9421FF20 +BE8100B0 7C7E1B78 3D80801B 618CAAD0 7D8903A6 4E800421 809E0014 88840003 @@ -4985,18 +4985,18 @@ BE810008 7C7E1B78 98640005 48000018 3C808047 60849D30 38600002 98640005 -48000004 BA810008 -800100B4 382100B0 +48000004 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D80801B 618C1514 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 +90010004 9421FF20 +BE8100B0 7C7F1B78 809F0014 88840004 2C040000 4082001C 38600000 3D80801A @@ -5014,11 +5014,11 @@ BE810008 7C7F1B78 38600000 3D80801A 618C42A0 7D8903A6 4E800421 48000004 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3D80801B +90010004 9421FF20 +BE8100B0 3D80801B 618C15C8 7D8903A6 4E800421 38600000 3D808000 618C5610 @@ -5102,14 +5102,14 @@ BE810008 3D80801B 7D8903A6 4E800421 7FE3FB78 3D808037 618CF1B0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 4E800021 01780101 01FF2121 FF2121EE 0000EE00 7C0802A6 -90010004 9421FF50 -BE810008 38600000 +90010004 9421FF20 +BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7E1B78 83ED8840 @@ -5209,17 +5209,17 @@ BE810008 38600000 7D8903A6 4E800421 3D808002 618C7168 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 3C808047 +90010004 9421FF20 +BE8100B0 3C808047 60849D30 38600003 -98640005 BA810008 -800100B4 382100B0 +98640005 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 @@ -5245,11 +5245,11 @@ B0640003 3C808049 98640016 7FE3FB78 3D808037 618CF1B0 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3FE08047 63FF9DA4 887F0004 2C030001 41820010 2C030002 @@ -5278,11 +5278,11 @@ BA810008 800100B4 40820010 48000014 38600000 48000010 38600001 48000008 -3860FFFF BA810008 -800100B4 382100B0 +3860FFFF BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 3FE08047 63FF9DA4 1FDD00A8 7FDEFA14 887F0004 @@ -5310,19 +5310,19 @@ BA810008 800100B4 2C030000 41820010 48000004 38600000 48000008 38600001 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 83E30010 +90010004 9421FF20 +BE8100B0 83E30010 887F0005 2C030000 40820014 3D808001 618C74BC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83E30010 38600000 3D808000 618C5610 7D8903A6 4E800421 @@ -5337,16 +5337,16 @@ BE810008 83E30010 48000018 4BFFFC5D 3C808047 60849D30 38600005 98640005 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 38600028 987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 7CBD2B78 7CDC3378 3D808000 618C56B8 @@ -5359,8 +5359,8 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C9E2A14 7FE3FB78 7F85E378 3D808025 618CD5AC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C20056AC 0000002F #Online/Static/ChatMessages.asm @@ -5422,7 +5422,7 @@ C2005698 00000002 #Online/Static/GetCSSIconNum.asm 60000000 00000000 C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 7FC3F378 2C1F0003 41820028 2C1F0002 @@ -5434,8 +5434,8 @@ C20056B0 00000011 #Online/Static/GetTeamCostumeIndex.asm 7D8903A6 4E800421 48000014 3D808016 618C9264 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C20055F4 00000007 #Online/Static/IntToFloat.asm @@ -5448,7 +5448,7 @@ EC211028 C0410008 60000000 00000000 C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 2C030000 40820018 38600394 3D808037 618CF1E4 7D8903A6 @@ -5461,13 +5461,13 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38800394 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C20056A4 00000022 #Online/Static/LoadPremadeText.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 7C9E2378 3B800004 7F83E378 3D808037 618CF1E4 @@ -5483,11 +5483,11 @@ C20056A4 00000022 #Online/Static/LoadPremadeText.asm 618CF1E4 7D8903A6 4E800421 7C7D1B78 386000E2 4800001D -7FA3EB78 BA810008 -800100B4 382100B0 +7FA3EB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 987D0000 9BFD0001 9BDD0002 7FA3EB78 38800003 38A00001 @@ -5496,13 +5496,13 @@ C20056A4 00000022 #Online/Static/LoadPremadeText.asm 7FA3EB78 7F84E378 38A00000 3D808000 618C55F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C200560C 00000033 #Online/Static/LoadState.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7B1B78 7C982378 7CBA2B78 88DA0000 3AC00000 3AD60001 @@ -5549,21 +5549,21 @@ BC610008 7F05C378 4E800421 7EE3BB78 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 C20055EC 00000008 #Online/Static/MultiplyRWithF.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808000 618C55F4 7D8903A6 4E800421 -EC2100B2 BA810008 -800100B4 382100B0 +EC2100B2 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C2005608 00000016 #Online/Static/SaveState.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7B1B78 7C982378 7CBA2B78 887A0000 1C630004 389A0002 @@ -5581,21 +5581,21 @@ C2005608 00000016 #Online/Static/SaveState.asm 4E800421 7EE3BB78 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FF20 BE810008 +9421FF20 BE810080 DBE100B0 DBC100B8 DBA100C0 DB8100C8 DB6100D0 DB4100D8 7C751B78 7C962378 7CB82B78 7CD93378 -90E10038 9101003C -91210040 91410044 -91610048 9181004C +90E10008 9101000C +91210010 91410014 +91610018 9181001C FFE00890 FFC01090 FFA01890 FF602890 FF403090 2C180001 @@ -5610,7 +5610,7 @@ FC20F090 FC40E890 48000014 EC42D028 4800000C EC42D02A 48000004 7EA3AB78 -80810038 3D80803A +80810008 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 7EA3AB78 7EE4BB78 @@ -5623,15 +5623,15 @@ FC20F890 FC40F890 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 7EE4BB78 -80A10038 80C1003C -80E10040 81010044 -81210048 8141004C +80A10008 80C1000C +80E10010 81010014 +81210018 8141001C 3D80803A 618C70A0 7D8903A6 4E800421 2C0F0000 4182000C 39EFFFFF 4BFFFF14 48000094 7EA3AB78 -80810038 FC20F090 +80810008 FC20F090 FC40E890 3D80803A 618C6B98 7D8903A6 4E800421 7C771B78 @@ -5643,20 +5643,20 @@ FC20F890 FC40F890 7EC5B378 3D80803A 618C74F0 7D8903A6 4E800421 7EA3AB78 -7EE4BB78 80A10038 -80C1003C 80E10040 -81010044 81210048 -8141004C 3D80803A +7EE4BB78 80A10008 +80C1000C 80E10010 +81010014 81210018 +8141001C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA810008 CBE100B0 +BA810080 CBE100B0 CBC100B8 CBA100C0 CB8100C8 CB6100D0 CB4100D8 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF30 -BE810008 DBE100B0 +BE810080 DBE100B0 DBC100B8 DBA100C0 DB8100C8 7C7D1B78 7C9C2378 7CDB3378 @@ -5677,7 +5677,7 @@ FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -BA810008 CBE100B0 +BA810080 CBE100B0 CBC100B8 CBA100C0 CB8100C8 800100D4 382100D0 7C0803A6 @@ -5696,7 +5696,7 @@ FFFFFFFF 3ECCCCCD 7200436F 6E6E6563 7420436F 64650000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C791B78 7C9B2378 2C050000 41820008 480003D1 4BFFFFA9 @@ -5721,11 +5721,11 @@ D03C0028 38600001 480000D1 38600000 48000029 480000D5 886DAFA1 987E0004 -7FA3EB78 BA810008 -800100B4 382100B0 +7FA3EB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7A1B78 C03E000A C05E000E 7F83E378 389F001C 3D80803A @@ -5741,13 +5741,13 @@ FC400890 7F83E378 38BF000C 7F83E378 7F04C378 3D80803A 618C74F0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 C05E000E EC42082A D05E000E 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFE25 7FE802A6 83DF0000 83BE0000 839E0005 48000159 @@ -5778,11 +5778,11 @@ D05E000E 4E800020 7F83E378 38800003 38BD0020 3D80803A 618C70A0 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFD0D 7FE802A6 83DF0000 889E0004 886DAFA1 7C041800 @@ -5791,11 +5791,11 @@ D05E000E 4E800020 618C4030 7D8903A6 4E800421 806DB614 7C6903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 -90010004 9421FF50 -BE810008 4BFFFCA9 +90010004 9421FF20 +BE8100B0 4BFFFCA9 7FE802A6 83DF0000 83BE0000 386000B9 987D0000 7FA3EB78 @@ -5806,11 +5806,11 @@ BE810008 4BFFFCA9 38A00000 3D808000 618C55F0 7D8903A6 4E800421 889D0000 -988DAFA1 BA810008 -800100B4 382100B0 +988DAFA1 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3CA0803E 60A5AE68 88A508F4 38800000 38600008 3D808022 @@ -5818,11 +5818,11 @@ BE810008 4BFFFCA9 4E800421 2C030001 41820010 38840001 7C042800 4180FFDC -7C832378 BA810008 -800100B4 382100B0 +7C832378 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 4BFFFBCD 7FE802A6 38600012 3D808037 618CF1E4 7D8903A6 @@ -5830,8 +5830,8 @@ BE810008 4BFFFCA9 907F0000 3860002A 3D808037 618CF1E4 7D8903A6 4E800421 -907E0000 BA810008 -800100B4 382100B0 +907E0000 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm @@ -8503,7 +8503,7 @@ C21D24FC 00000018 #Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor. C2F00000 42F00000 42A00000 C1A00000 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 4BFFFFD9 7FA802A6 807E002C A86300EE 3D808003 @@ -8520,8 +8520,8 @@ FC020840 41810018 C03D000C FC020840 4180000C 38600001 48000008 38600000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 60000000 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] @@ -8545,31 +8545,31 @@ C2376A24 00000026 #Common/UseInGameDelay/ApplyInGameDelay.asm 3C608047 60639D64 80630000 2C030000 408200D4 7C0802A6 -90010004 9421FF50 -BE810008 3C60802F +90010004 9421FF20 +BE8100B0 3C60802F 6063666C 80830000 5485863E 7CA50774 54A5801E 5484043A 7C842B78 7C632214 83E30008 887F0000 2C030000 40810080 -38610038 388100DC +38610008 3881010C 38A00030 3D808000 618C31F4 7D8903A6 4E800421 887F0001 1C630030 3BC30002 -386100DC 7C9FF214 +3861010C 7C9FF214 38A00030 3D808000 618C31F4 7D8903A6 4E800421 7C7FF214 -38810038 38A00030 +38810008 38A00030 3D808000 618C31F4 7D8903A6 4E800421 889F0000 887F0001 38630001 7C032000 41800008 38600000 -987F0001 BA810008 -800100B4 382100B0 +987F0001 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C22F666C 0000005C #Common/UseInGameDelay/InitializeInGameDelay.asm 4800007C 4E800021 @@ -8579,19 +8579,19 @@ C22F666C 0000005C #Common/UseInGameDelay/InitializeInGameDelay.asm 3EA8F5C3 44656C61 793A2025 64660000 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 7C7F1B78 +90010004 9421FF20 +BE8100B0 7C7F1B78 880DB6CC 2C000001 41820018 7FE3FB78 3D808039 618C10D8 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C7F1B78 3C608048 88639D30 2C030008 4182024C 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 386002D2 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 @@ -8661,12 +8661,12 @@ C05D000C 7F83E378 C03D0010 C05D0010 3D80803A 618C7548 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 7FE3FB78 00000000 C200561C 00000013 #Common/GetCommonMinorID/GetCommonMinorID.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3CA08048 8BC59D30 8BE59D33 3FA0803D 63BDACA4 38800000 @@ -8680,8 +8680,8 @@ C200561C 00000013 #Common/GetCommonMinorID/GetCommonMinorID.asm 7C06F800 4082000C 8865000C 48000010 38840001 2C0600FF -4082FFDC BA810008 -800100B4 382100B0 +4082FFDC BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 8e78a5db..1e69d464 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -62,7 +62,7 @@ C213C388 0000000A #Common/CostumeBoundCheck/PuffCostume.asm 809C002C 00000000 C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3BE00000 7FE3FB78 3D808003 618C241C 7D8903A6 4E800421 @@ -114,8 +114,8 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 4E800421 3B7B0001 2C1B0006 4180FF68 3BFF0001 2C1F0006 -4180FEF4 BA810008 -800100B4 382100B0 +4180FEF4 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 @@ -124,8 +124,8 @@ $Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos] *Will play replay configured in playback.txt C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm 3BC30000 7C0802A6 -90010004 9421FF50 -BE810008 83CDB64C +90010004 9421FF20 +BE8100B0 83CDB64C 83BE0010 3B800000 807D0000 2C030000 41820018 3B9C0001 @@ -149,14 +149,14 @@ BE810008 83CDB64C 809D0004 3D808032 618C8F50 7D8903A6 4E800421 3B5AFFFC -4BFFFFBC BA810008 -800100B4 382100B0 +4BFFFFBC BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C216D298 00000016 #Playback/Core/FetchGameFrame.asm 881F0008 2C000000 408200A0 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C +90010004 9421FF20 +BE8100B0 806DB64C 83630000 38600076 987B0000 806DB654 907B0001 7F63DB78 @@ -172,12 +172,12 @@ BE810008 806DB64C 7D8903A6 4E800421 3C60804C 38000000 98031F7B 4BFFFF90 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 881F0008 00000000 C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 8BBF000C 7FA3EB78 3D808003 618C1724 7D8903A6 4E800421 @@ -242,13 +242,13 @@ D03F2344 806DAE0C D023002C C0230044 D0230030 3D808002 618CF3AC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 881F2219 60000000 00000000 C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 386005EC 3D808037 618CF1E4 7D8903A6 4E800421 7C7C1B78 @@ -348,8 +348,8 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 9066000C 4E800020 4E800021 2C050000 41820108 7C0802A6 -90010004 9421FF50 -BE810008 7C9E2378 +90010004 9421FF20 +BE8100B0 7C9E2378 7CBB2B78 80BE0000 54A501FE 64BD8000 834DB64C 833A0014 @@ -378,8 +378,8 @@ BE810008 7C9E2378 7FA3EB78 7F64DB78 3D808032 618C8F50 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 38600000 809C0014 90640000 7FA3EB78 809E021D @@ -394,15 +394,15 @@ BA810008 800100B4 7D8903A6 4E800421 4800004C 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83A30000 887D0002 2C030000 41820010 807D0003 3C80804D 90645F90 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 3C608017 60000000 00000000 C216D304 00000009 #Playback/Core/RestoreLRAStart.asm @@ -456,8 +456,8 @@ C21A501C 0000002A #Playback/Core/FastForward/FastForward.asm 7D8903A6 4E800421 4800000D 2C0300FF 480000A8 7C0802A6 -90010004 9421FF50 -BE810008 3D808003 +90010004 9421FF20 +BE8100B0 3D808003 618C0A50 7D8903A6 4E800421 3D808002 618CA4AC 7D8903A6 @@ -473,8 +473,8 @@ BE810008 3D808003 3D808008 618C6A8C 7D8903A6 4E800421 82940008 2C140000 -4082FFD4 BA810008 -800100B4 382100B0 +4082FFD4 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C2377544 00000002 #Playback/Core/FastForward/IncrementPadIndex.asm @@ -501,8 +501,8 @@ C21A6348 000000AB #Playback/Core/Scene/SceneThink_Playback.asm 618CFD54 7D8903A6 4E800421 480004F0 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 48000461 +90010004 9421FF20 +BE8100B0 48000461 7FC802A6 38600000 3880FFFF 3D80803A 618C6754 7D8903A6 @@ -655,8 +655,8 @@ C33E0000 00000000 2E2E0000 2E2E2E00 4E800021 736C6970 70692E67 67000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 3D80801A 618C6368 7D8903A6 4E800420 807F0000 @@ -668,7 +668,7 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm 80639D30 5463443E 2C03010E 40820090 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83EDB64C 3BDF001C 8B9E0000 3C608048 80639D60 809F056B @@ -682,8 +682,8 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm 88660000 3863FFFF 1C630006 38A60001 7CA51A14 807D000C -90650002 BA810008 -800100B4 382100B0 +90650002 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm 41A20014 3D80801A @@ -692,7 +692,7 @@ C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm 80639D30 5463443E 2C03010E 40820168 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 83EDB64C @@ -733,15 +733,15 @@ A0630001 1C870006 3B9CFFF9 9B9E0000 7FA3EB78 3D808034 618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C2088224 0000001D #Playback/Core/Sounds/NoDestroyVoice.asm 3C608048 80639D30 5463443E 2C03010E 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB64C +90010004 9421FF20 +BE8100B0 83EDB64C 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -758,20 +758,20 @@ BE810008 83EDB64C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C8244 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C20882B0 0000001D #Playback/Core/Sounds/NoDestroyVoice2.asm 3C608048 80639D30 5463443E 2C03010E 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB64C +90010004 9421FF20 +BE8100B0 83EDB64C 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -788,20 +788,20 @@ BE810008 83EDB64C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C82D0 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C238D0B0 00000027 #Playback/Core/Sounds/PreventDuplicateSounds.asm 3C608048 80639D30 5463443E 2C03010E 40820120 7C0802A6 -90010004 9421FF50 -BE810008 83EDB64C +90010004 9421FF20 +BE8100B0 83EDB64C 3BDF001C 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 @@ -829,12 +829,12 @@ B3650000 93450002 88660000 38630001 98660000 2C1D0000 41820028 7F43D378 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808038 618CD2A0 7D8903A6 4E800420 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 2C1A0000 00000000 C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm 3D808046 618CDB77 @@ -844,7 +844,7 @@ C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm 618C1998 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 3BE00000 887E221F 5460EFFF 41820038 887E000C @@ -854,8 +854,8 @@ C20055F8 0000000F #Common/GetIsFollower.asm 1C030003 7C640214 88030002 2C000000 40820008 3BE00001 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm @@ -925,16 +925,16 @@ C1C07AE1 3C6F34D7 43160000 3F0A3D71 00000000 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 880DB6CC 2C000001 41820018 7FE3FB78 3D808039 618C10D8 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C60804D 60636D5C 80630000 3C80803F 608494D0 3D808038 @@ -1067,8 +1067,8 @@ C8210080 EC211028 C05C0014 EC2100B2 D036002C 3A940001 2C140006 4180FCD8 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8001001C 00000000 $Optional: Game Music OFF [UnclePunch] diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 5b992348..1542a0dc 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -62,7 +62,7 @@ C213C388 0000000A #Common/CostumeBoundCheck/PuffCostume.asm 809C002C 00000000 C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3BE00000 7FE3FB78 3D808003 618C241C 7D8903A6 4E800421 @@ -114,8 +114,8 @@ C216DED4 00000039 #Common/CostumeBoundCheck/main.asm 4E800421 3B7B0001 2C1B0006 4180FF68 3BFF0001 2C1F0006 -4180FEF4 BA810008 -800100B4 382100B0 +4180FEF4 BA8100B0 +800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 @@ -124,8 +124,8 @@ $Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos] *Will play replay configured in playback.txt C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm 3BC30000 7C0802A6 -90010004 9421FF50 -BE810008 83CDB64C +90010004 9421FF20 +BE8100B0 83CDB64C 83BE0010 3B800000 807D0000 2C030000 41820018 3B9C0001 @@ -149,14 +149,14 @@ BE810008 83CDB64C 809D0004 3D808032 618C8F50 7D8903A6 4E800421 3B5AFFFC -4BFFFFBC BA810008 -800100B4 382100B0 +4BFFFFBC BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C216D298 00000016 #Playback/Core/FetchGameFrame.asm 881F0008 2C000000 408200A0 7C0802A6 -90010004 9421FF50 -BE810008 806DB64C +90010004 9421FF20 +BE8100B0 806DB64C 83630000 38600076 987B0000 806DB654 907B0001 7F63DB78 @@ -172,12 +172,12 @@ BE810008 806DB64C 7D8903A6 4E800421 3C60804C 38000000 98031F7B 4BFFFF90 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 881F0008 00000000 C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 8BBF000C 7FA3EB78 3D808003 618C1724 7D8903A6 4E800421 @@ -242,13 +242,13 @@ D03F2344 806DAE0C D023002C C0230044 D0230030 3D808002 618CF3AC 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 881F2219 60000000 00000000 C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 386005EC 3D808037 618CF1E4 7D8903A6 4E800421 7C7C1B78 @@ -348,8 +348,8 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 9066000C 4E800020 4E800021 2C050000 41820108 7C0802A6 -90010004 9421FF50 -BE810008 7C9E2378 +90010004 9421FF20 +BE8100B0 7C9E2378 7CBB2B78 80BE0000 54A501FE 64BD8000 834DB64C 833A0014 @@ -378,8 +378,8 @@ BE810008 7C9E2378 7FA3EB78 7F64DB78 3D808032 618C8F50 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 38600000 809C0014 90640000 7FA3EB78 809E021D @@ -394,15 +394,15 @@ BA810008 800100B4 7D8903A6 4E800421 4800004C 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 806DB64C 83A30000 887D0002 2C030000 41820010 807D0003 3C80804D 90645F90 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 3C608017 60000000 00000000 C216D304 00000009 #Playback/Core/RestoreLRAStart.asm @@ -456,8 +456,8 @@ C21A501C 0000002A #Playback/Core/FastForward/FastForward.asm 7D8903A6 4E800421 4800000D 2C0300FF 480000A8 7C0802A6 -90010004 9421FF50 -BE810008 3D808003 +90010004 9421FF20 +BE8100B0 3D808003 618C0A50 7D8903A6 4E800421 3D808002 618CA4AC 7D8903A6 @@ -473,8 +473,8 @@ BE810008 3D808003 3D808008 618C6A8C 7D8903A6 4E800421 82940008 2C140000 -4082FFD4 BA810008 -800100B4 382100B0 +4082FFD4 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C2377544 00000002 #Playback/Core/FastForward/IncrementPadIndex.asm @@ -501,8 +501,8 @@ C21A6348 000000AB #Playback/Core/Scene/SceneThink_Playback.asm 618CFD54 7D8903A6 4E800421 480004F0 4E800021 7C0802A6 -90010004 9421FF50 -BE810008 48000461 +90010004 9421FF20 +BE8100B0 48000461 7FC802A6 38600000 3880FFFF 3D80803A 618C6754 7D8903A6 @@ -655,8 +655,8 @@ C33E0000 00000000 2E2E0000 2E2E2E00 4E800021 736C6970 70692E67 67000000 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 3D80801A 618C6368 7D8903A6 4E800420 807F0000 @@ -668,7 +668,7 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm 80639D30 5463443E 2C03010E 40820090 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 83EDB64C 3BDF001C 8B9E0000 3C608048 80639D60 809F056B @@ -682,8 +682,8 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm 88660000 3863FFFF 1C630006 38A60001 7CA51A14 807D000C -90650002 BA810008 -800100B4 382100B0 +90650002 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm 41A20014 3D80801A @@ -692,7 +692,7 @@ C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm 80639D30 5463443E 2C03010E 40820168 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7D1B78 83EDB64C @@ -733,15 +733,15 @@ A0630001 1C870006 3B9CFFF9 9B9E0000 7FA3EB78 3D808034 618C738C 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 00000000 C2088224 0000001D #Playback/Core/Sounds/NoDestroyVoice.asm 3C608048 80639D30 5463443E 2C03010E 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB64C +90010004 9421FF20 +BE8100B0 83EDB64C 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -758,20 +758,20 @@ BE810008 83EDB64C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C8244 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C20882B0 0000001D #Playback/Core/Sounds/NoDestroyVoice2.asm 3C608048 80639D30 5463443E 2C03010E 408200CC 7C0802A6 -90010004 9421FF50 -BE810008 83EDB64C +90010004 9421FF20 +BE8100B0 83EDB64C 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -788,20 +788,20 @@ BE810008 83EDB64C 7C1E1800 41820018 39080001 88660000 7C081800 4180FFDC -48000024 BA810008 -800100B4 382100B0 +48000024 BA8100B0 +800100E4 382100E0 7C0803A6 3D808008 618C82D0 7D8903A6 -4E800420 BA810008 -800100B4 382100B0 +4E800420 BA8100B0 +800100E4 382100E0 7C0803A6 387F0000 60000000 00000000 C238D0B0 00000027 #Playback/Core/Sounds/PreventDuplicateSounds.asm 3C608048 80639D30 5463443E 2C03010E 40820120 7C0802A6 -90010004 9421FF50 -BE810008 83EDB64C +90010004 9421FF20 +BE8100B0 83EDB64C 3BDF001C 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 @@ -829,12 +829,12 @@ B3650000 93450002 88660000 38630001 98660000 2C1D0000 41820028 7F43D378 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 3D808038 618CD2A0 7D8903A6 4E800420 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 2C1A0000 00000000 C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm 3D808046 618CDB77 @@ -844,7 +844,7 @@ C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm 618C1998 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 3BE00000 887E221F 5460EFFF 41820038 887E000C @@ -854,8 +854,8 @@ C20055F8 0000000F #Common/GetIsFollower.asm 1C030003 7C640214 88030002 2C000000 40820008 3BE00001 -7FE3FB78 BA810008 -800100B4 382100B0 +7FE3FB78 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 C216D294 00000006 #Common/IncrementFrameIndex.asm @@ -925,16 +925,16 @@ C1C07AE1 3C6F34D7 43160000 3F0A3D71 00000000 4E800021 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7F1B78 880DB6CC 2C000001 41820018 7FE3FB78 3D808039 618C10D8 7D8903A6 -4E800421 BA810008 -800100B4 382100B0 +4E800421 BA8100B0 +800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 3C60804D 60636D5C 80630000 3C80803F 608494D0 3D808038 @@ -1067,8 +1067,8 @@ C8210080 EC211028 C05C0014 EC2100B2 D036002C 3A940001 2C140006 4180FCD8 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 8001001C 00000000 $Optional: Game Music OFF [UnclePunch] From 41256300e747605a42d33dc44ab60b03caa3416b Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Aug 2022 16:05:10 -0400 Subject: [PATCH 134/217] lwz the parent's stack frame address instead this avoids the problem of needing to know the size of the current stack frame --- Common/Common.s | 1 - Common/UseInGameDelay/ApplyInGameDelay.asm | 13 +- Online/Core/TriggerSendInput.asm | 24 +- Output/Netplay/GALE01r2.ini | 494 +++++++++++---------- Output/Netplay/GALJ01r2.ini | 494 +++++++++++---------- 5 files changed, 519 insertions(+), 507 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index f703d4e5..6b5595cc 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -63,7 +63,6 @@ branchl r12, 0x8021b2d8 # This is where the free space in our stack frame starts .set BKP_FREE_SPACE_OFFSET, 8 -.set BKP_DEFAULT_STACK_FRAME_SIZE, 0xE0 # backup is used to set up a stack frame in which LR and non-volatile registers will be stored. # It also sets up some free space on the stack for the function to use if needed. diff --git a/Common/UseInGameDelay/ApplyInGameDelay.asm b/Common/UseInGameDelay/ApplyInGameDelay.asm index f16e5e79..b79abffe 100644 --- a/Common/UseInGameDelay/ApplyInGameDelay.asm +++ b/Common/UseInGameDelay/ApplyInGameDelay.asm @@ -31,12 +31,17 @@ bne EXIT ################################################################################ .set REG_IGDB_ADDR, 31 .set REG_CUR_REPORT_IGDB_OFST, 30 +.set REG_PARENT_STACK_FRAME, 29 -.set CONST_BACKUP_BYTES, BKP_DEFAULT_STACK_FRAME_SIZE # Maybe add this to Common.s -.set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C + +# This is the offset of P1's inputs from the start of the parent's stack frame +.set P1_PAD_OFFSET, 0x2C backup +# Load the address of the parent's stack frame +lwz REG_PARENT_STACK_FRAME, 0(sp) + computeBranchTargetAddress r3, INJ_InitInGameDelay lwz REG_IGDB_ADDR, 0x8(r3) # Loads the address of the buffer @@ -49,7 +54,7 @@ ble RESTORE_EXIT # Copy current inputs to temporary location ################################################################################ addi r3, sp, BKP_FREE_SPACE_OFFSET -addi r4, sp, P1_PAD_OFFSET +addi r4, REG_PARENT_STACK_FRAME, P1_PAD_OFFSET li r5, PADS_REPORT_SIZE branchl r12, memcpy @@ -62,7 +67,7 @@ mulli r3, r3, PADS_REPORT_SIZE addi REG_CUR_REPORT_IGDB_OFST, r3, IGDB_PAD_BUFFER # Overwrite -addi r3, sp, P1_PAD_OFFSET +addi r3, REG_PARENT_STACK_FRAME, P1_PAD_OFFSET add r4, REG_IGDB_ADDR, REG_CUR_REPORT_IGDB_OFST li r5, PADS_REPORT_SIZE branchl r12, memcpy diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 48b191e9..d1f416ef 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -5,9 +5,10 @@ .include "Common/Common.s" .include "Online/Online.s" -.set CONST_BACKUP_BYTES, BKP_DEFAULT_STACK_FRAME_SIZE # Maybe add this to Common.s -.set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C +# This is the offset of P1's inputs from the start of the parent's stack frame +.set P1_PAD_OFFSET, 0x2C +.set REG_PARENT_STACK_FRAME, 30 .set REG_LOCAL_SOURCE_INPUT, 29 .set REG_VARIOUS_3, 28 .set REG_ODB_ADDRESS, 27 @@ -40,6 +41,9 @@ bne EXIT # Initialize ################################################################################ +# Load the address of the parent's stack frame +lwz REG_PARENT_STACK_FRAME, 0(sp) + # fetch data to use throughout function lwz REG_ODB_ADDRESS, OFST_R13_ODB_ADDR(r13) # data buffer address @@ -55,7 +59,7 @@ lwz REG_FRAME_INDEX, ODB_FRAME(REG_ODB_ADDRESS) lbz r4, ODB_INPUT_SOURCE_INDEX(REG_ODB_ADDRESS) # index to grab inputs from mulli r4, r4, PAD_REPORT_SIZE addi r3, r4, P1_PAD_OFFSET # offset from sp where local player pad report is -add REG_LOCAL_SOURCE_INPUT, sp, r3 # get ptr to local input +add REG_LOCAL_SOURCE_INPUT, REG_PARENT_STACK_FRAME, r3 # get ptr to local input # Check if we have an active rollback, if so, we don't want to fetch # new data from Slippi, we just want to operate on the existing data @@ -84,7 +88,7 @@ sub r3, r4, r3 cmpwi REG_FRAME_INDEX, r3 # Frame 84 +/- 1 (not sure) is first unfrozen frame bge SKIP_FROZEN_INPUT_CLEAR -addi r3, sp, P1_PAD_OFFSET +addi r3, REG_PARENT_STACK_FRAME, P1_PAD_OFFSET li r4, CONTROLLER_COUNT * PAD_REPORT_SIZE branchl r12, Zero_AreaLength @@ -144,7 +148,7 @@ lbz r12, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) mr r11, REG_FRAME_INDEX add r11, r11, r12 addi r12, r4, P1_PAD_OFFSET -add r12, sp, r12 +add r12, REG_PARENT_STACK_FRAME, r12 bl FN_PrintInputs .endif @@ -296,7 +300,7 @@ mulli r3, r3, PAD_REPORT_SIZE addi r3, r3, P1_PAD_OFFSET # offset from sp where pad report we want is # copy data -add r3, sp, r3 # destination +add r3, REG_PARENT_STACK_FRAME, r3 # destination add r4, REG_ODB_ADDRESS, r4 # source li r5, PAD_REPORT_SIZE branchl r12, memcpy @@ -319,13 +323,13 @@ addi r4, r4, P1_PAD_OFFSET # offset from sp where pad report we want is # TEMP: Print inputs for debugging li r10, 3 mr r11, REG_FRAME_INDEX -add r12, sp, r4 +add r12, REG_PARENT_STACK_FRAME, r4 bl FN_PrintInputs .endif # copy data add r3, REG_ODB_ADDRESS, r3 # destination -add r4, sp, r4 # source +add r4, REG_PARENT_STACK_FRAME, r4 # source li r5, PAD_REPORT_SIZE branchl r12, memcpy @@ -870,7 +874,7 @@ mulli r3, REG_REMOTE_PLAYER_IDX, PAD_REPORT_SIZE addi r3, r3, P1_PAD_OFFSET # offset from sp where opponent pad report is # copy opponent pad data to stack -add r3, sp, r3 # destination +add r3, REG_PARENT_STACK_FRAME, r3 # destination add r4, REG_RXB_ADDRESS, r5 # source li r5, PAD_REPORT_SIZE @@ -943,7 +947,7 @@ bl FN_PrintInputs .endif # copy data -add r3, sp, r3 # destination +add r3, REG_PARENT_STACK_FRAME, r3 # destination add r4, REG_ODB_ADDRESS, r4 # source li r5, PAD_REPORT_SIZE branchl r12, memcpy diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index cba0df1c..7e89cf3f 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1721,248 +1721,249 @@ BE8100B0 3C608048 BA8100B0 800100E4 382100E0 7C0803A6 60000000 00000000 -C2376A28 000000F1 #Online/Core/TriggerSendInput.asm +C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 -40820750 3C608047 +40820754 3C608047 60639D64 80630000 -2C030000 4082073C -836DB61C 833B00D6 -831B00DA 82FB039F -835B0003 889B0002 -1C84000C 3864010C -7FA11A14 887B00DE -2C030000 41820010 -887B00DF 2C030000 -4182067C 887B0020 -38800054 7C632050 -2C1A0003 4080001C -3861010C 38800030 -3D808000 618CC160 +2C030000 40820740 +83C10000 836DB61C +833B00D6 831B00DA +82FB039F 835B0003 +889B0002 1C84000C +3864002C 7FBE1A14 +887B00DE 2C030000 +41820010 887B00DF +2C030000 4182067C +887B0020 38800054 +7C632050 2C1A0003 +4080001C 387E002C +38800030 3D808000 +618CC160 7D8903A6 +4E800421 48000040 +88830000 7C840774 +2C04FFFE 4180002C +2C040002 41810024 +88830001 7C840774 +2C04FFFE 41800014 +2C040002 4181000C +38800000 B0830000 +4E800020 387D0002 +4BFFFFC1 387D0004 +4BFFFFB9 887D000A +7C630774 2C03FFFD +40820020 7FA3EB78 +389B0014 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -48000040 88830000 -7C840774 2C04FFFE -4180002C 2C040002 -41810024 88830001 -7C840774 2C04FFFE -41800014 2C040002 -4181000C 38800000 -B0830000 4E800020 -387D0002 4BFFFFC1 -387D0004 4BFFFFB9 -887D000A 7C630774 -2C03FFFD 40820020 -7FA3EB78 389B0014 +387B0014 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 387B0014 -7FA4EB78 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -386000B0 98790000 -93590001 807B0908 -90790005 819B0908 -39600000 1C6B0018 -38630926 7D5B1A14 -806A0000 7C036000 -40820010 806A0004 -90790009 48000010 -396B0001 2C0B0015 -4180FFD4 887B0020 -9879000D 3879000E -7FA4EB78 38A0000C -3D808000 618C31F4 +4E800421 386000B0 +98790000 93590001 +807B0908 90790005 +819B0908 39600000 +1C6B0018 38630926 +7D5B1A14 806A0000 +7C036000 40820010 +806A0004 90790009 +48000010 396B0001 +2C0B0015 4180FFD4 +887B0020 9879000D +3879000E 7FA4EB78 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 7F23CB78 +3880001A 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7F23CB78 3880001A -38A00001 3D808000 +38780000 38800126 +38A00000 3D808000 618C55F0 7D8903A6 -4E800421 38780000 -38800126 38A00000 -3D808000 618C55F0 +4E800421 38600000 +987B0013 88780000 +2C030002 41820024 +2C030003 41820010 +2C030004 41820040 +48000044 38600001 +987B0010 48000038 +887B000F 2C030001 +4182002C BA8100B0 +800100E4 382100E0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 38600001 +987B0013 889B0021 +1C84000C 38840022 +887B0000 1C63000C +3863002C 7C7E1A14 +7C9B2214 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -38600000 987B0013 -88780000 2C030002 -41820024 2C030003 -41820010 2C030004 -41820040 48000044 -38600001 987B0010 -48000038 887B000F -2C030001 4182002C -BA8100B0 800100E4 -382100E0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -38600001 987B0013 -889B0021 1C84000C -38840022 887B0000 -1C63000C 3863010C -7C611A14 7C9B2214 +887B00E4 1C63000C +386300E5 889B0000 +1C84000C 3884002C +7C7B1A14 7C9E2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E4 -1C63000C 386300E5 -889B0000 1C84000C -3884010C 7C7B1A14 -7C812214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -887B00E4 38630001 -2C03000E 41800008 -38600000 987B00E4 -887B0021 1C63000C -38630022 7C7B1A14 -3899000E 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -889B0020 887B0021 -38630001 7C032000 +38630001 2C03000E 41800008 38600000 -987B0021 8B9B00DE -887B038B 2C030000 -40820018 38600000 -987B039C 987B039D -987B039E 48000264 -3A800000 38D4039C -7C66D8AE 2C030001 -4082016C 1CD40004 -38C6001A 7C66C02E -1CD40004 38C60390 -7C86D82E 7EC41851 -4180014C 80DB0908 -7C043000 41810010 -7C032000 418100AC -48000134 1C76000C -3863002A 1CD40054 -7C633214 38D4018D -7C86D8AE 1C84000C -38840193 1CB400A8 -7C842A14 7CD81A14 -7CFB2214 88660000 -88870000 546306FE -548406FE 7C032000 -408200AC 88660001 -88870001 5463067E -5484067E 7C032000 -40820094 80660002 -80870002 7C032000 -40820084 38A00005 -38A50001 2C050008 -40800028 7C6530AE -7C8538AE 2C03002A -4181000C 2C04002A -4081FFE0 7C032000 -40820054 4BFFFFD4 -1CD40004 38C60390 -7C66D82E 38630001 -7C66D92E 38D4018D -7C66D8AE 38630001 -2C03000E 41800008 -3863FFF2 7C66D9AE -38D4018D 7C66D8AE -38D40190 7C86D8AE -7C041800 4082FED0 -48000044 3B800001 -4800003C 38600001 -987B00DE 987B00DF -935B00E0 3B5A0001 -935B0003 BA8100B0 -800100E4 382100E0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE80 -39600000 3A800000 -82BB0908 38D4039C -7C86D8AE 2C040001 -40820028 1CD40004 -38C60390 7C86D82E -2C0B0000 4182000C -7C04A800 40800008 -7C952378 39600001 -3A940001 2C140003 -4180FFC4 92BB038C -92BB0919 80D80026 -7C153000 40810008 -90DB0919 2C1C0000 -4082FF54 3A800000 -38D4039C 7C86D8AE -2C040001 40820028 -38D4018D 7C66D8AE -38D40190 7C86D8AE -7C041800 40820010 -38600000 38D4039C -7C66D9AE 3A940001 -2C140003 4180FFC4 -3A800000 38D4039C -7C86D8AE 2C040001 -41820018 3A940001 -2C140003 4180FFE8 -38600000 987B038B -3A800000 3AA00000 -3B800001 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C6001A 7C66C02E -7C7A1850 2C030000 -408000D8 887B0020 -38800054 7C632050 -7C1A1800 418000C0 -887B000F 2C030001 -418200B4 3B800000 -38D40190 7EC6D8AE -1C76000C 38630193 -1CB400A8 7C632A14 -1CD40054 38C6002A -7C7B1A14 7C983214 +987B00E4 887B0021 +1C63000C 38630022 +7C7B1A14 3899000E 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 38760001 -2C03000E 41800008 -3863FFF2 38D40190 +4E800421 889B0020 +887B0021 38630001 +7C032000 41800008 +38600000 987B0021 +8B9B00DE 887B038B +2C030000 40820018 +38600000 987B039C +987B039D 987B039E +48000264 3A800000 +38D4039C 7C66D8AE +2C030001 4082016C +1CD40004 38C6001A +7C66C02E 1CD40004 +38C60390 7C86D82E +7EC41851 4180014C +80DB0908 7C043000 +41810010 7C032000 +418100AC 48000134 +1C76000C 3863002A +1CD40054 7C633214 +38D4018D 7C86D8AE +1C84000C 38840193 +1CB400A8 7C842A14 +7CD81A14 7CFB2214 +88660000 88870000 +546306FE 548406FE +7C032000 408200AC +88660001 88870001 +5463067E 5484067E +7C032000 40820094 +80660002 80870002 +7C032000 40820084 +38A00005 38A50001 +2C050008 40800028 +7C6530AE 7C8538AE +2C03002A 4181000C +2C04002A 4081FFE0 +7C032000 40820054 +4BFFFFD4 1CD40004 +38C60390 7C66D82E +38630001 7C66D92E +38D4018D 7C66D8AE +38630001 2C03000E +41800008 3863FFF2 7C66D9AE 38D4018D 7C66D8AE 38D40190 -7C86D8AE 38D4039C -7C66D8AE 2C030001 -4182003C 1CD40004 -38C60390 7F46D92E -38600001 38D4039C -7C66D9AE 38D4018D -7EC6D9AE 887B038B -2C030001 41820010 -935B038C 38600001 -987B038B 38600000 -1C63000C 38A3002A -1CD40054 7CA53214 -1C75000C 3863010C -7C611A14 7C982A14 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 3A940001 -3AB50001 2C140003 -4180FEC4 2C1C0000 -41820008 935B0919 -48000080 807B00E0 -7C1A1800 40810024 +7C86D8AE 7C041800 +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DE +987B00DF 935B00E0 +3B5A0001 935B0003 BA8100B0 800100E4 382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 -807B00E0 7C7A1850 -38630001 889B00E4 -7C632051 40800008 -3863000E 1C63000C -388300E5 887B0000 -1C63000C 3863010C -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE2C -3B5A0001 935B0003 -BA8100B0 800100E4 -382100E0 7C0803A6 -2C1E0000 00000000 +3A940001 2C140003 +4180FE80 39600000 +3A800000 82BB0908 +38D4039C 7C86D8AE +2C040001 40820028 +1CD40004 38C60390 +7C86D82E 2C0B0000 +4182000C 7C04A800 +40800008 7C952378 +39600001 3A940001 +2C140003 4180FFC4 +92BB038C 92BB0919 +80D80026 7C153000 +40810008 90DB0919 +2C1C0000 4082FF54 +3A800000 38D4039C +7C86D8AE 2C040001 +40820028 38D4018D +7C66D8AE 38D40190 +7C86D8AE 7C041800 +40820010 38600000 +38D4039C 7C66D9AE +3A940001 2C140003 +4180FFC4 3A800000 +38D4039C 7C86D8AE +2C040001 41820018 +3A940001 2C140003 +4180FFE8 38600000 +987B038B 3A800000 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C6001A +7C66C02E 7C7A1850 +2C030000 408000D8 +887B0020 38800054 +7C632050 7C1A1800 +418000C0 887B000F +2C030001 418200B4 +3B800000 38D40190 +7EC6D8AE 1C76000C +38630193 1CB400A8 +7C632A14 1CD40054 +38C6002A 7C7B1A14 +7C983214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +38760001 2C03000E +41800008 3863FFF2 +38D40190 7C66D9AE +38D4018D 7C66D8AE +38D40190 7C86D8AE +38D4039C 7C66D8AE +2C030001 4182003C +1CD40004 38C60390 +7F46D92E 38600001 +38D4039C 7C66D9AE +38D4018D 7EC6D9AE +887B038B 2C030001 +41820010 935B038C +38600001 987B038B +38600000 1C63000C +38A3002A 1CD40054 +7CA53214 1C75000C +3863002C 7C7E1A14 +7C982A14 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +3A940001 3AB50001 +2C140003 4180FEC4 +2C1C0000 41820008 +935B0919 48000080 +807B00E0 7C1A1800 +40810024 BA8100B0 +800100E4 382100E0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00E0 +7C7A1850 38630001 +889B00E4 7C632051 +40800008 3863000E +1C63000C 388300E5 +887B0000 1C63000C +3863002C 7C7E1A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA8100B0 +800100E4 382100E0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -8532,45 +8533,46 @@ $Recommended: Normal Lag Reduction [Hannes Mann] $Recommended: Apply Delay to all In-Game Scenes [Fizzi] *Applies online delay to all in-game scenes. *Dolphin netplay is no longer necessary for local practice -C2376A24 00000026 #Common/UseInGameDelay/ApplyInGameDelay.asm +C2376A24 00000027 #Common/UseInGameDelay/ApplyInGameDelay.asm 3D808034 618CDA00 7D8903A6 4E800421 3D808000 618C561C 7D8903A6 4E800421 2C030002 41820014 2C030003 4182000C -2C030004 408200F8 +2C030004 408200FC 3C608048 88639D30 -2C030008 418200E8 +2C030008 418200EC 3C608047 60639D64 80630000 2C030000 -408200D4 7C0802A6 +408200D8 7C0802A6 90010004 9421FF20 -BE8100B0 3C60802F -6063666C 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 -83E30008 887F0000 -2C030000 40810080 -38610008 3881010C -38A00030 3D808000 -618C31F4 7D8903A6 -4E800421 887F0001 -1C630030 3BC30002 -3861010C 7C9FF214 -38A00030 3D808000 -618C31F4 7D8903A6 -4E800421 7C7FF214 -38810008 38A00030 +BE8100B0 83A10000 +3C60802F 6063666C +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +40810080 38610008 +389D002C 38A00030 3D808000 618C31F4 7D8903A6 4E800421 -889F0000 887F0001 -38630001 7C032000 -41800008 38600000 -987F0001 BA8100B0 -800100E4 382100E0 -7C0803A6 00000000 +887F0001 1C630030 +3BC30002 387D002C +7C9FF214 38A00030 +3D808000 618C31F4 +7D8903A6 4E800421 +7C7FF214 38810008 +38A00030 3D808000 +618C31F4 7D8903A6 +4E800421 889F0000 +887F0001 38630001 +7C032000 41800008 +38600000 987F0001 +BA8100B0 800100E4 +382100E0 7C0803A6 +60000000 00000000 C22F666C 0000005C #Common/UseInGameDelay/InitializeInGameDelay.asm 4800007C 4E800021 80000000 4E800021 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 0d02a8d3..65e4aa46 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1721,248 +1721,249 @@ BE8100B0 3C608048 BA8100B0 800100E4 382100E0 7C0803A6 60000000 00000000 -C2376A28 000000F1 #Online/Core/TriggerSendInput.asm +C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 -40820750 3C608047 +40820754 3C608047 60639D64 80630000 -2C030000 4082073C -836DB61C 833B00D6 -831B00DA 82FB039F -835B0003 889B0002 -1C84000C 3864010C -7FA11A14 887B00DE -2C030000 41820010 -887B00DF 2C030000 -4182067C 887B0020 -38800054 7C632050 -2C1A0003 4080001C -3861010C 38800030 -3D808000 618CC160 +2C030000 40820740 +83C10000 836DB61C +833B00D6 831B00DA +82FB039F 835B0003 +889B0002 1C84000C +3864002C 7FBE1A14 +887B00DE 2C030000 +41820010 887B00DF +2C030000 4182067C +887B0020 38800054 +7C632050 2C1A0003 +4080001C 387E002C +38800030 3D808000 +618CC160 7D8903A6 +4E800421 48000040 +88830000 7C840774 +2C04FFFE 4180002C +2C040002 41810024 +88830001 7C840774 +2C04FFFE 41800014 +2C040002 4181000C +38800000 B0830000 +4E800020 387D0002 +4BFFFFC1 387D0004 +4BFFFFB9 887D000A +7C630774 2C03FFFD +40820020 7FA3EB78 +389B0014 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -48000040 88830000 -7C840774 2C04FFFE -4180002C 2C040002 -41810024 88830001 -7C840774 2C04FFFE -41800014 2C040002 -4181000C 38800000 -B0830000 4E800020 -387D0002 4BFFFFC1 -387D0004 4BFFFFB9 -887D000A 7C630774 -2C03FFFD 40820020 -7FA3EB78 389B0014 +387B0014 7FA4EB78 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 387B0014 -7FA4EB78 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -386000B0 98790000 -93590001 807B0908 -90790005 819B0908 -39600000 1C6B0018 -38630926 7D5B1A14 -806A0000 7C036000 -40820010 806A0004 -90790009 48000010 -396B0001 2C0B0015 -4180FFD4 887B0020 -9879000D 3879000E -7FA4EB78 38A0000C -3D808000 618C31F4 +4E800421 386000B0 +98790000 93590001 +807B0908 90790005 +819B0908 39600000 +1C6B0018 38630926 +7D5B1A14 806A0000 +7C036000 40820010 +806A0004 90790009 +48000010 396B0001 +2C0B0015 4180FFD4 +887B0020 9879000D +3879000E 7FA4EB78 +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 7F23CB78 +3880001A 38A00001 +3D808000 618C55F0 7D8903A6 4E800421 -7F23CB78 3880001A -38A00001 3D808000 +38780000 38800126 +38A00000 3D808000 618C55F0 7D8903A6 -4E800421 38780000 -38800126 38A00000 -3D808000 618C55F0 +4E800421 38600000 +987B0013 88780000 +2C030002 41820024 +2C030003 41820010 +2C030004 41820040 +48000044 38600001 +987B0010 48000038 +887B000F 2C030001 +4182002C BA8100B0 +800100E4 382100E0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 38600001 +987B0013 889B0021 +1C84000C 38840022 +887B0000 1C63000C +3863002C 7C7E1A14 +7C9B2214 38A0000C +3D808000 618C31F4 7D8903A6 4E800421 -38600000 987B0013 -88780000 2C030002 -41820024 2C030003 -41820010 2C030004 -41820040 48000044 -38600001 987B0010 -48000038 887B000F -2C030001 4182002C -BA8100B0 800100E4 -382100E0 7C0803A6 -3D808037 618C6CEC -7D8903A6 4E800420 -38600001 987B0013 -889B0021 1C84000C -38840022 887B0000 -1C63000C 3863010C -7C611A14 7C9B2214 +887B00E4 1C63000C +386300E5 889B0000 +1C84000C 3884002C +7C7B1A14 7C9E2214 38A0000C 3D808000 618C31F4 7D8903A6 4E800421 887B00E4 -1C63000C 386300E5 -889B0000 1C84000C -3884010C 7C7B1A14 -7C812214 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -887B00E4 38630001 -2C03000E 41800008 -38600000 987B00E4 -887B0021 1C63000C -38630022 7C7B1A14 -3899000E 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -889B0020 887B0021 -38630001 7C032000 +38630001 2C03000E 41800008 38600000 -987B0021 8B9B00DE -887B038B 2C030000 -40820018 38600000 -987B039C 987B039D -987B039E 48000264 -3A800000 38D4039C -7C66D8AE 2C030001 -4082016C 1CD40004 -38C6001A 7C66C02E -1CD40004 38C60390 -7C86D82E 7EC41851 -4180014C 80DB0908 -7C043000 41810010 -7C032000 418100AC -48000134 1C76000C -3863002A 1CD40054 -7C633214 38D4018D -7C86D8AE 1C84000C -38840193 1CB400A8 -7C842A14 7CD81A14 -7CFB2214 88660000 -88870000 546306FE -548406FE 7C032000 -408200AC 88660001 -88870001 5463067E -5484067E 7C032000 -40820094 80660002 -80870002 7C032000 -40820084 38A00005 -38A50001 2C050008 -40800028 7C6530AE -7C8538AE 2C03002A -4181000C 2C04002A -4081FFE0 7C032000 -40820054 4BFFFFD4 -1CD40004 38C60390 -7C66D82E 38630001 -7C66D92E 38D4018D -7C66D8AE 38630001 -2C03000E 41800008 -3863FFF2 7C66D9AE -38D4018D 7C66D8AE -38D40190 7C86D8AE -7C041800 4082FED0 -48000044 3B800001 -4800003C 38600001 -987B00DE 987B00DF -935B00E0 3B5A0001 -935B0003 BA8100B0 -800100E4 382100E0 -7C0803A6 3D808037 -618C6CEC 7D8903A6 -4E800420 3A940001 -2C140003 4180FE80 -39600000 3A800000 -82BB0908 38D4039C -7C86D8AE 2C040001 -40820028 1CD40004 -38C60390 7C86D82E -2C0B0000 4182000C -7C04A800 40800008 -7C952378 39600001 -3A940001 2C140003 -4180FFC4 92BB038C -92BB0919 80D80026 -7C153000 40810008 -90DB0919 2C1C0000 -4082FF54 3A800000 -38D4039C 7C86D8AE -2C040001 40820028 -38D4018D 7C66D8AE -38D40190 7C86D8AE -7C041800 40820010 -38600000 38D4039C -7C66D9AE 3A940001 -2C140003 4180FFC4 -3A800000 38D4039C -7C86D8AE 2C040001 -41820018 3A940001 -2C140003 4180FFE8 -38600000 987B038B -3A800000 3AA00000 -3B800001 887B0000 -7C151800 40820008 -3AB50001 1CD40004 -38C6001A 7C66C02E -7C7A1850 2C030000 -408000D8 887B0020 -38800054 7C632050 -7C1A1800 418000C0 -887B000F 2C030001 -418200B4 3B800000 -38D40190 7EC6D8AE -1C76000C 38630193 -1CB400A8 7C632A14 -1CD40054 38C6002A -7C7B1A14 7C983214 +987B00E4 887B0021 +1C63000C 38630022 +7C7B1A14 3899000E 38A0000C 3D808000 618C31F4 7D8903A6 -4E800421 38760001 -2C03000E 41800008 -3863FFF2 38D40190 +4E800421 889B0020 +887B0021 38630001 +7C032000 41800008 +38600000 987B0021 +8B9B00DE 887B038B +2C030000 40820018 +38600000 987B039C +987B039D 987B039E +48000264 3A800000 +38D4039C 7C66D8AE +2C030001 4082016C +1CD40004 38C6001A +7C66C02E 1CD40004 +38C60390 7C86D82E +7EC41851 4180014C +80DB0908 7C043000 +41810010 7C032000 +418100AC 48000134 +1C76000C 3863002A +1CD40054 7C633214 +38D4018D 7C86D8AE +1C84000C 38840193 +1CB400A8 7C842A14 +7CD81A14 7CFB2214 +88660000 88870000 +546306FE 548406FE +7C032000 408200AC +88660001 88870001 +5463067E 5484067E +7C032000 40820094 +80660002 80870002 +7C032000 40820084 +38A00005 38A50001 +2C050008 40800028 +7C6530AE 7C8538AE +2C03002A 4181000C +2C04002A 4081FFE0 +7C032000 40820054 +4BFFFFD4 1CD40004 +38C60390 7C66D82E +38630001 7C66D92E +38D4018D 7C66D8AE +38630001 2C03000E +41800008 3863FFF2 7C66D9AE 38D4018D 7C66D8AE 38D40190 -7C86D8AE 38D4039C -7C66D8AE 2C030001 -4182003C 1CD40004 -38C60390 7F46D92E -38600001 38D4039C -7C66D9AE 38D4018D -7EC6D9AE 887B038B -2C030001 41820010 -935B038C 38600001 -987B038B 38600000 -1C63000C 38A3002A -1CD40054 7CA53214 -1C75000C 3863010C -7C611A14 7C982A14 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 3A940001 -3AB50001 2C140003 -4180FEC4 2C1C0000 -41820008 935B0919 -48000080 807B00E0 -7C1A1800 40810024 +7C86D8AE 7C041800 +4082FED0 48000044 +3B800001 4800003C +38600001 987B00DE +987B00DF 935B00E0 +3B5A0001 935B0003 BA8100B0 800100E4 382100E0 7C0803A6 3D808037 618C6CEC 7D8903A6 4E800420 -807B00E0 7C7A1850 -38630001 889B00E4 -7C632051 40800008 -3863000E 1C63000C -388300E5 887B0000 -1C63000C 3863010C -7C611A14 7C9B2214 -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 4BFFFE2C -3B5A0001 935B0003 -BA8100B0 800100E4 -382100E0 7C0803A6 -2C1E0000 00000000 +3A940001 2C140003 +4180FE80 39600000 +3A800000 82BB0908 +38D4039C 7C86D8AE +2C040001 40820028 +1CD40004 38C60390 +7C86D82E 2C0B0000 +4182000C 7C04A800 +40800008 7C952378 +39600001 3A940001 +2C140003 4180FFC4 +92BB038C 92BB0919 +80D80026 7C153000 +40810008 90DB0919 +2C1C0000 4082FF54 +3A800000 38D4039C +7C86D8AE 2C040001 +40820028 38D4018D +7C66D8AE 38D40190 +7C86D8AE 7C041800 +40820010 38600000 +38D4039C 7C66D9AE +3A940001 2C140003 +4180FFC4 3A800000 +38D4039C 7C86D8AE +2C040001 41820018 +3A940001 2C140003 +4180FFE8 38600000 +987B038B 3A800000 +3AA00000 3B800001 +887B0000 7C151800 +40820008 3AB50001 +1CD40004 38C6001A +7C66C02E 7C7A1850 +2C030000 408000D8 +887B0020 38800054 +7C632050 7C1A1800 +418000C0 887B000F +2C030001 418200B4 +3B800000 38D40190 +7EC6D8AE 1C76000C +38630193 1CB400A8 +7C632A14 1CD40054 +38C6002A 7C7B1A14 +7C983214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +38760001 2C03000E +41800008 3863FFF2 +38D40190 7C66D9AE +38D4018D 7C66D8AE +38D40190 7C86D8AE +38D4039C 7C66D8AE +2C030001 4182003C +1CD40004 38C60390 +7F46D92E 38600001 +38D4039C 7C66D9AE +38D4018D 7EC6D9AE +887B038B 2C030001 +41820010 935B038C +38600001 987B038B +38600000 1C63000C +38A3002A 1CD40054 +7CA53214 1C75000C +3863002C 7C7E1A14 +7C982A14 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +3A940001 3AB50001 +2C140003 4180FEC4 +2C1C0000 41820008 +935B0919 48000080 +807B00E0 7C1A1800 +40810024 BA8100B0 +800100E4 382100E0 +7C0803A6 3D808037 +618C6CEC 7D8903A6 +4E800420 807B00E0 +7C7A1850 38630001 +889B00E4 7C632051 +40800008 3863000E +1C63000C 388300E5 +887B0000 1C63000C +3863002C 7C7E1A14 +7C9B2214 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +4BFFFE2C 3B5A0001 +935B0003 BA8100B0 +800100E4 382100E0 +7C0803A6 2C1E0000 +60000000 00000000 C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm 38600080 3D808037 618CF1E4 7D8903A6 @@ -8532,45 +8533,46 @@ $Recommended: Normal Lag Reduction [Hannes Mann] $Recommended: Apply Delay to all In-Game Scenes [Fizzi] *Applies online delay to all in-game scenes. *Dolphin netplay is no longer necessary for local practice -C2376A24 00000026 #Common/UseInGameDelay/ApplyInGameDelay.asm +C2376A24 00000027 #Common/UseInGameDelay/ApplyInGameDelay.asm 3D808034 618CDA00 7D8903A6 4E800421 3D808000 618C561C 7D8903A6 4E800421 2C030002 41820014 2C030003 4182000C -2C030004 408200F8 +2C030004 408200FC 3C608048 88639D30 -2C030008 418200E8 +2C030008 418200EC 3C608047 60639D64 80630000 2C030000 -408200D4 7C0802A6 +408200D8 7C0802A6 90010004 9421FF20 -BE8100B0 3C60802F -6063666C 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 -83E30008 887F0000 -2C030000 40810080 -38610008 3881010C -38A00030 3D808000 -618C31F4 7D8903A6 -4E800421 887F0001 -1C630030 3BC30002 -3861010C 7C9FF214 -38A00030 3D808000 -618C31F4 7D8903A6 -4E800421 7C7FF214 -38810008 38A00030 +BE8100B0 83A10000 +3C60802F 6063666C +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +40810080 38610008 +389D002C 38A00030 3D808000 618C31F4 7D8903A6 4E800421 -889F0000 887F0001 -38630001 7C032000 -41800008 38600000 -987F0001 BA8100B0 -800100E4 382100E0 -7C0803A6 00000000 +887F0001 1C630030 +3BC30002 387D002C +7C9FF214 38A00030 +3D808000 618C31F4 +7D8903A6 4E800421 +7C7FF214 38810008 +38A00030 3D808000 +618C31F4 7D8903A6 +4E800421 889F0000 +887F0001 38630001 +7C032000 41800008 +38600000 987F0001 +BA8100B0 800100E4 +382100E0 7C0803A6 +60000000 00000000 C22F666C 0000005C #Common/UseInGameDelay/InitializeInGameDelay.asm 4800007C 4E800021 80000000 4E800021 From a9cc88ee5c8575f8ef30b498e56e8f9e535bb8eb Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 30 Aug 2022 11:46:41 -0400 Subject: [PATCH 135/217] fix bugs and cleanup placements extraction --- Output/Console/GALE01r2.ini | 52 +++++++++++++------- Output/Console/g_core.bin | Bin 5184 -> 5344 bytes Output/Console/g_core_porta.bin | Bin 5184 -> 5344 bytes Output/Netplay/GALE01r2.ini | 52 +++++++++++++------- Output/Netplay/GALJ01r2.ini | 52 +++++++++++++------- Recording/Recording.s | 23 +++++++-- Recording/SendGameEnd.asm | 82 ++++++++++++++------------------ 7 files changed, 163 insertions(+), 98 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 4844f7a3..3c12ff16 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -83,35 +83,55 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C216D884 0000001C #Recording/SendGameEnd.asm +C216D884 00000030 #Recording/SendGameEnd.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418200A0 +2C030000 41820144 3F208046 6339B6A0 8B590008 2C1A0000 -4182008C 830DB64C +41820130 830DB64C 88780004 2C030000 -4082007C 3C608048 +40820120 3C608048 80639D30 5463443E 2C030208 4082001C 2C1A0002 40820014 806DB61C 8863000F -2C030000 41820050 +2C030000 418200F4 83B80000 38600039 987D0000 9B5D0001 2C1A0007 4082000C 88790001 48000008 3860FFFF 987D0002 -7FA3EB78 38800003 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 38600001 -98780004 BA8100B0 -800100E4 382100E0 -7C0803A6 819F2514 -60000000 00000000 +3E808047 62949DA4 +7E83A378 3C808046 +6084B8EC 38A02278 +3D808000 618C31F4 +7D8903A6 4E800421 +3C808046 6084B6A0 +7E83A378 880424D0 +98030006 88040008 +98030004 3D808016 +618C6378 7D8903A6 +4E800421 3AA00000 +7EA3AB78 48000041 +38950003 7C64E9AE +3AB50001 2C150003 +4081FFE8 7FA3EB78 +38800007 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38600001 98780004 +48000030 3D808047 +618C9DA4 1D6300A8 +7D6B6214 886B0058 +2C030003 4182000C +886B005E 48000008 +3860FFFF 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +819F2514 00000000 C216E74C 000000FC #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 @@ -124,7 +144,7 @@ C216E74C 000000FC #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600726 3D808037 +3860072A 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -142,7 +162,7 @@ B07E0003 38600037 B07E0006 38600038 987E0008 38600050 B07E0009 38600039 -987E000B 38600002 +987E000B 38600006 B07E000C 3860003A 987E000E 3860000C B07E000F 3860003B @@ -154,7 +174,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030C 60630000 +3C60030D 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index c2c82cbe8171c39c4c42ef323468192fed5d1956..2030a456205ddf69f45714b9fa22f4560f96cef1 100644 GIT binary patch delta 269 zcmX@0@j!EfIuoP8N;3dF3ezNVC!IE-~iGrK(%6tJ;@a?wN?ul80r?UuJ8cbZZVaCxhCc1 zI;*V=j5?wW%nptJU(_#tU18C{z;3aCVe(}rNgbd%1E3l1i9K_d$R;zasLf6i>Bwe? z06Lf1v5A2P$c_W5;jl>f|9|oYE)kZ-`Klt5S(wuqwI=5_=IkupSSpWzu8UO%6f&h$z4Yo{(cmM<} z0{{R(f&hGzbOI{@P?MknC?tQQ>v%YT00TIn00BLKfB<2PRq%a@1Ex-Z1R*$J00EeI l00fhe0~7>c0001!qyuLGCX);VlK}#gpafe1472N;3dF3ezNVC!IE-~iGrK(%6tJ;@a?wN?ul80r?UuJ8cbZZVaCxhCc1 zI;*V=j5?wW%nptJU(_#tU18C{z;3aCVe(}rNgbd%1E3l1i9K_d$R;zasLf6i>Bwe? z06Lf1v5A2P$c_W5;jl>f|9|oYE)kZ-`Klt5S(wuqwI=5_=IkupSSpWzu8UO%6f&h$z4Yo{(cmM<} z0{{R(f&hGzbOI{@P?MknC?tQQ>v%YT00TIn00BLKfB<2PRq%a@1Ex-Z1R*$J00EeI l00fhe0~7>c0001!qyuLGCX);VlK}#gpafe1472 TX - add r3, r4, r3 # add team and placement together => TP - PlayerPlacementsLoopSkipFormat: # write placement result to buffer - addi r4, REG_PlayerSlot, 0x3 # offset from LRAStarter based on current slot + addi r4, REG_PlayerSlot, GAME_END_TXB_PLACEMENTS stbx r3, r4, REG_Buffer # Write placement to buffer PlayerPlacementsLoopCheck: @@ -116,7 +120,7 @@ PlayerPlacementsEnd: #------------- Transfer Buffer ------------ mr r3,REG_Buffer - li r4,GAME_END_PAYLOAD_LENGTH+1 + li r4,GAME_END_TXB_SIZE li r5,CONST_ExiWrite branchl r12,FN_EXITransferBuffer @@ -130,41 +134,29 @@ PlayerPlacementsEnd: # Function: FN_GetPlayerPlacement ################################################################################ # Determines the player standing in last match for a given player slot -# TODO: move to a static fn (maybe?) # Inputs: # r3: Player slot (starting at 1) # Outputs: -# r3: Player placement -# r4: Player team +# r3: Player placement ################################################################################ FN_GetPlayerPlacement: -backup - -mr REG_PlayerSlot,r3 -load REG_MatchEndStruct,0x80479da4 -mulli REG_MatchEndPlayerStruct,REG_PlayerSlot,0xA8 -add REG_MatchEndPlayerStruct,REG_MatchEndPlayerStruct,REG_MatchEndStruct -#Check if last game data exists (is this necessary?) - lbz r3,0x4(REG_MatchEndStruct) - cmpwi r3,0x0 - beq FN_GetPlayerPlacementPlayerMissing - - lbz r3,0x58(REG_MatchEndPlayerStruct) - cmpwi r3,3 - beq FN_GetPlayerPlacementPlayerMissing +load r12, 0x80479da4 # MatchEndStruct +mulli r11, r3, 0xA8 +add r11, r11, r12 # MatchEndPlayerStruct #Check if player partook in last game - lbz r3,0x5E(REG_MatchEndPlayerStruct) # offset to player standing - lbz r4,0x5F(REG_MatchEndPlayerStruct) # offset to player team id (if any) - b FN_GetPlayerPlacementReturn +lbz r3, 0x58(r11) +cmpwi r3, 3 +beq FN_GetPlayerPlacementPlayerMissing + +lbz r3, 0x5E(r11) # offset to player standing +b FN_GetPlayerPlacementReturn FN_GetPlayerPlacementPlayerMissing: - li r3,-1 - li r4,-1 +li r3, -1 FN_GetPlayerPlacementReturn: -restore blr From 7325a24624fa4f92246f65abbcc897b0ada774c1 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 30 Aug 2022 12:08:11 -0400 Subject: [PATCH 136/217] add symbols for default backup/restore args --- Common/Common.s | 11 ++- Online/Menus/CSS/LoadCSSText.asm | 4 +- .../Menus/CSS/Teams/InitTeamToggleButton.asm | 4 +- Online/Menus/TitleMenu/OnMenuPrep.asm | 8 +- Online/Menus/VSScreen/InitVsSplash.asm | 4 +- Online/Static/SubtextFunctions.asm | 8 +- Output/Netplay/GALE01r2.ini | 90 +++++++++---------- Output/Netplay/GALJ01r2.ini | 90 +++++++++---------- 8 files changed, 113 insertions(+), 106 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 6b5595cc..9f2ce8c7 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -64,10 +64,17 @@ branchl r12, 0x8021b2d8 # This is where the free space in our stack frame starts .set BKP_FREE_SPACE_OFFSET, 8 +# The default free space such that we don't break any legacy codes, includes the location where +# the non-volatile registers were stored as well as the 0x78 of free space that used to exist. +# Now it's all just free space +.set BKP_DEFAULT_FREE_SPACE_SIZE, 0xA8 +.set BKP_DEFAULT_FREG, 0 +.set BKP_DEFAULT_REG, 12 + # backup is used to set up a stack frame in which LR and non-volatile registers will be stored. # It also sets up some free space on the stack for the function to use if needed. # More info: https://docs.google.com/document/d/1QJOQzy933fxpfzIJlq6xopcviZ5tALKQvi_OOqpjehE -.macro backup free_space=0xA8, num_freg=0, num_reg=12 +.macro backup free_space=BKP_DEFAULT_FREE_SPACE_SIZE, num_freg=BKP_DEFAULT_FREG, num_reg=BKP_DEFAULT_REG mflr r0 stw r0, 0x4(r1) # Stack allocation has to be 4-byte aligned otherwise it crashes on console. This section @@ -137,7 +144,7 @@ stwu r1,-(0x8 + ALIGNED_FREE_SPACE + 0x4 * \num_reg + 0x8 * \num_freg)(r1) .endif .endm -.macro restore free_space=0xA8, num_freg=0, num_reg=12 +.macro restore free_space=BKP_DEFAULT_FREE_SPACE_SIZE, num_freg=BKP_DEFAULT_FREG, num_reg=BKP_DEFAULT_REG # Stack allocation has to be 4-byte aligned otherwise it crashes on console .if \free_space % 4 == 0 .set ALIGNED_FREE_SPACE, \free_space diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index 9bffac9d..95dd4a42 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -1169,7 +1169,7 @@ blr CSS_ONLINE_CHAT_THINK: blrl mr REG_CHATMSG_GOBJ, r3 # Store GOBJ pointer -backup 0x78, 2 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -1386,7 +1386,7 @@ stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index CSS_ONLINE_CHAT_CHECK_EXIT: -restore 0x78, 2 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 2 blr diff --git a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm index e0a53085..244c11b6 100644 --- a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm +++ b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm @@ -75,7 +75,7 @@ INIT_BUTTON: .set REG_ICON_GOBJ, 20 .set REG_ICON_JOBJ, 21 .set REG_DATA_BUFFER, 23 -backup 0x78, 2 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 2 loadwz REG_CSSDT_ADDR, CSSDT_BUF_ADDR @@ -226,7 +226,7 @@ fmr f1, REG_F_0 # float 0.0 branchl r12, 0x80363C2C # HSD_MObjSetAlpha(mobj, float alpha) -restore 0x78, 2 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 2 b EXIT ################################################################################ # Function: Handles per frame updates of Custom Team Button diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index dc472d09..f314565b 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -522,7 +522,7 @@ blrl .short 0x0000 FN_CREATE_DIALOG: -backup 0x78, 2 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 2 # load jobjects in memory lwz r3, archiveDataBuffer(r13) @@ -682,7 +682,7 @@ mflr r4 # Function li r5, 15 # Priority branchl r12, GObj_AddProc -restore 0x78, 2 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 2 blr @@ -693,7 +693,7 @@ blr ################################################################################ FN_LogoutDialogThink: #801978fc blrl -backup 0x78, 2 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -847,7 +847,7 @@ b FN_LogoutDialogThink_Exit FN_LogoutDialogThink_Exit: -restore 0x78, 2 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 2 blr ################################################################################ diff --git a/Online/Menus/VSScreen/InitVsSplash.asm b/Online/Menus/VSScreen/InitVsSplash.asm index 17eb8e9c..c375fe32 100644 --- a/Online/Menus/VSScreen/InitVsSplash.asm +++ b/Online/Menus/VSScreen/InitVsSplash.asm @@ -282,7 +282,7 @@ b EXIT # f1 - X Pos ################################################################################ INIT_PLAYER_TEXT: -backup 0x78, 2 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 2 fmr REG_POS_X_START, f1 mr REG_LABEL_COLOR, r3 @@ -350,7 +350,7 @@ blt INIT_PLAYER_NAME_LOOP_START INIT_PLAYER_TEXT_EXIT: -restore 0x78, 2 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 2 blr diff --git a/Online/Static/SubtextFunctions.asm b/Online/Static/SubtextFunctions.asm index 4ee24ee6..3680f691 100644 --- a/Online/Static/SubtextFunctions.asm +++ b/Online/Static/SubtextFunctions.asm @@ -64,7 +64,7 @@ beq FN_CREATE_PREMADE_TEXT # FN_CREATE_SUBTEXT ################################################################################ FN_CREATE_SUBTEXT: -backup 0x78, 6 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 6 # Save arguments mr REG_TEXT_STRUCT_ADDR, r3 @@ -220,14 +220,14 @@ FN_CREATE_SUBTEXT_END: # Return subtext index mr r3, REG_SUBTEXT_INDEX -restore 0x78, 6 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 6 blr ################################################################################ # FN_CREATE_PREMADE_TEXT ################################################################################ FN_CREATE_PREMADE_TEXT: -backup 0x78, 4 +backup BKP_DEFAULT_FREE_SPACE_SIZE, 4 # Save arguments mr REG_TEXT_ID, r3 @@ -275,7 +275,7 @@ branchl r12, Text_CopyPremadeTextDataToStruct # return text struct address mr r3, REG_TEXT_STRUCT_ADDR -restore 0x78, 4 +restore BKP_DEFAULT_FREE_SPACE_SIZE, 4 blr ################################################################################ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 86f31c23..b4d27452 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -3194,9 +3194,9 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 -90010004 9421FF40 -BE810080 DBE100B0 -DBC100B8 4BFFF3B5 +90010004 9421FF10 +BE8100B0 DBE100E0 +DBC100E8 4BFFF3B5 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 @@ -3268,9 +3268,9 @@ C022AE28 3D808036 7E84A378 38840001 7C032000 41820008 4800000C 38600000 -987C0019 BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +987C0019 BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 @@ -3434,8 +3434,8 @@ C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 40820560 888DAFA0 2C040003 40820554 7C0802A6 90010004 -9421FF40 BE810080 -DBE100B0 DBC100B8 +9421FF10 BE8100B0 +DBE100E0 DBC100E8 3FC08000 63DE5614 83DE0000 4BFFFF91 7FE802A6 C3FF0011 @@ -3507,9 +3507,9 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 -BA810080 CBE100B0 -CBC100B8 800100C4 -382100C0 7C0803A6 +BA8100B0 CBE100E0 +CBC100E8 800100F4 +382100F0 7C0803A6 480002E8 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 @@ -4476,9 +4476,9 @@ A09C0000 3D808022 4E800021 06450646 0647064B 06480649 064A0000 7C0802A6 -90010004 9421FF40 -BE810080 DBE100B0 -DBC100B8 806DB518 +90010004 9421FF10 +BE8100B0 DBE100E0 +DBC100E8 806DB518 3C80803E 6084FA0C 3D808038 618C0358 7D8903A6 4E800421 @@ -4561,14 +4561,14 @@ FC20F890 3D808036 48000039 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +4E800421 BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF40 -BE810080 DBE100B0 -DBC100B8 4800022D +90010004 9421FF10 +BE8100B0 DBE100E0 +DBC100E8 4800022D 7FC802A6 C3FE0010 C3DE0014 7C781B78 83380028 8358002C @@ -4634,9 +4634,9 @@ FC20F890 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +48000004 BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 4E800021 C0B00000 C0333333 41B80000 @@ -4738,8 +4738,8 @@ A0DD026A 38600000 800100E4 382100E0 7C0803A6 4800018C 7C0802A6 90010004 -9421FF40 BE810080 -DBE100B0 DBC100B8 +9421FF10 BE8100B0 +DBE100E0 DBC100E8 FFE00890 7C761B78 7C942378 7CB92B78 7CDA3378 7CF83B78 @@ -4767,9 +4767,9 @@ FC60F090 3D808000 618C56B4 7D8903A6 4E800421 39CE0004 39EF0001 7C0FD000 -4180FFAC BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +4180FFAC BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 @@ -5608,10 +5608,10 @@ BA8100B0 800100E4 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FF20 BE810080 -DBE100B0 DBC100B8 -DBA100C0 DB8100C8 -DB6100D0 DB4100D8 +9421FEF0 BE8100B0 +DBE100E0 DBC100E8 +DBA100F0 DB8100F8 +DB610100 DB410108 7C751B78 7C962378 7CB82B78 7CD93378 90E10008 9101000C @@ -5670,16 +5670,16 @@ FC20F890 FC40F890 8141001C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA810080 CBE100B0 -CBC100B8 CBA100C0 -CB8100C8 CB6100D0 -CB4100D8 800100E4 -382100E0 7C0803A6 +BA8100B0 CBE100E0 +CBC100E8 CBA100F0 +CB8100F8 CB610100 +CB410108 80010114 +38210110 7C0803A6 4E800020 7C0802A6 -90010004 9421FF30 -BE810080 DBE100B0 -DBC100B8 DBA100C0 -DB8100C8 7C7D1B78 +90010004 9421FF00 +BE8100B0 DBE100E0 +DBC100E8 DBA100F0 +DB8100F8 7C7D1B78 7C9C2378 7CDB3378 FFC00890 FFA01090 FF801890 FFE02090 @@ -5698,10 +5698,10 @@ FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -BA810080 CBE100B0 -CBC100B8 CBA100C0 -CB8100C8 800100D4 -382100D0 7C0803A6 +BA8100B0 CBE100E0 +CBC100E8 CBA100F0 +CB8100F8 80010104 +38210100 7C0803A6 4E800020 4E800021 41100000 44160000 41A00000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index e87d6231..077c1218 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -3194,9 +3194,9 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 -90010004 9421FF40 -BE810080 DBE100B0 -DBC100B8 4BFFF3B5 +90010004 9421FF10 +BE8100B0 DBE100E0 +DBC100E8 4BFFF3B5 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 @@ -3268,9 +3268,9 @@ C022AE28 3D808036 7E84A378 38840001 7C032000 41820008 4800000C 38600000 -987C0019 BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +987C0019 BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 @@ -3434,8 +3434,8 @@ C22652F4 000000B8 #Online/Menus/CSS/Teams/InitTeamToggleButton.asm 40820560 888DAFA0 2C040003 40820554 7C0802A6 90010004 -9421FF40 BE810080 -DBE100B0 DBC100B8 +9421FF10 BE8100B0 +DBE100E0 DBC100E8 3FC08000 63DE5614 83DE0000 4BFFFF91 7FE802A6 C3FF0011 @@ -3507,9 +3507,9 @@ FC20F890 3D808036 80630008 FC20F890 3D808036 618C3C2C 7D8903A6 4E800421 -BA810080 CBE100B0 -CBC100B8 800100C4 -382100C0 7C0803A6 +BA8100B0 CBE100E0 +CBC100E8 800100F4 +382100F0 7C0803A6 480002E8 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 @@ -4476,9 +4476,9 @@ A09C0000 3D808022 4E800021 06450646 0647064B 06480649 064A0000 7C0802A6 -90010004 9421FF40 -BE810080 DBE100B0 -DBC100B8 806DB518 +90010004 9421FF10 +BE8100B0 DBE100E0 +DBC100E8 806DB518 3C80803E 6084FA0C 3D808038 618C0358 7D8903A6 4E800421 @@ -4561,14 +4561,14 @@ FC20F890 3D808036 48000039 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +4E800421 BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 4E800021 7C0802A6 -90010004 9421FF40 -BE810080 DBE100B0 -DBC100B8 4800022D +90010004 9421FF10 +BE8100B0 DBE100E0 +DBC100E8 4800022D 7FC802A6 C3FE0010 C3DE0014 7C781B78 83380028 8358002C @@ -4634,9 +4634,9 @@ FC20F890 2C1B0001 618C5CC4 7D8903A6 4E800421 3C600000 60630000 907C0008 -48000004 BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +48000004 BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 4E800021 C0B00000 C0333333 41B80000 @@ -4738,8 +4738,8 @@ A0DD026A 38600000 800100E4 382100E0 7C0803A6 4800018C 7C0802A6 90010004 -9421FF40 BE810080 -DBE100B0 DBC100B8 +9421FF10 BE8100B0 +DBE100E0 DBC100E8 FFE00890 7C761B78 7C942378 7CB92B78 7CDA3378 7CF83B78 @@ -4767,9 +4767,9 @@ FC60F090 3D808000 618C56B4 7D8903A6 4E800421 39CE0004 39EF0001 7C0FD000 -4180FFAC BA810080 -CBE100B0 CBC100B8 -800100C4 382100C0 +4180FFAC BA8100B0 +CBE100E0 CBC100E8 +800100F4 382100F0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 @@ -5608,10 +5608,10 @@ BA8100B0 800100E4 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FF20 BE810080 -DBE100B0 DBC100B8 -DBA100C0 DB8100C8 -DB6100D0 DB4100D8 +9421FEF0 BE8100B0 +DBE100E0 DBC100E8 +DBA100F0 DB8100F8 +DB610100 DB410108 7C751B78 7C962378 7CB82B78 7CD93378 90E10008 9101000C @@ -5670,16 +5670,16 @@ FC20F890 FC40F890 8141001C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA810080 CBE100B0 -CBC100B8 CBA100C0 -CB8100C8 CB6100D0 -CB4100D8 800100E4 -382100E0 7C0803A6 +BA8100B0 CBE100E0 +CBC100E8 CBA100F0 +CB8100F8 CB610100 +CB410108 80010114 +38210110 7C0803A6 4E800020 7C0802A6 -90010004 9421FF30 -BE810080 DBE100B0 -DBC100B8 DBA100C0 -DB8100C8 7C7D1B78 +90010004 9421FF00 +BE8100B0 DBE100E0 +DBC100E8 DBA100F0 +DB8100F8 7C7D1B78 7C9C2378 7CDB3378 FFC00890 FFA01090 FF801890 FFE02090 @@ -5698,10 +5698,10 @@ FC00F890 D0030024 D0030028 3D80803A 618C6368 7D8903A6 4E800421 7EA3AB78 -BA810080 CBE100B0 -CBC100B8 CBA100C0 -CB8100C8 800100D4 -382100D0 7C0803A6 +BA8100B0 CBE100E0 +CBC100E8 CBA100F0 +CB8100F8 80010104 +38210100 7C0803A6 4E800020 4E800021 41100000 44160000 41A00000 00000000 From d7827ac34ee0e6bbf0b9123cb4c2b285636d30c5 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 30 Aug 2022 18:13:13 -0400 Subject: [PATCH 137/217] add playback include to files that affect gameplay --- Binary/FreezeAllStages.bin | Bin 32 -> 0 bytes Binary/PreventWobbling.bin | Bin 272 -> 0 bytes .../Init Player Data.asm | 1 + .../Initialize Stage Data/Init Stage Data.asm | 1 + Common/NanaDeterminism/NanaDeterminism.asm | 1 + .../PSCameraIndependentMonitor.asm | 1 + .../Core/GetPreloadedTransition.asm | 1 + .../Core/Init isLoaded Bool.asm | 1 + .../Core/Load Transformation.asm | 1 + .../Core/Reset isLoaded.asm | 1 + .../Core/SkipNormalDecision1.asm | 1 + .../Core/SkipNormalDecision2.asm | 1 + External/FreezeGlitchFix/FreezeGlitchFix.asm | 1 + External/Frozen All/Core/1.asm | 3 +- External/Frozen All/Core/2.asm | 3 +- External/Frozen All/Core/3.asm | 3 +- External/Frozen All/Core/4.asm | 3 +- External/Frozen PS/Core/FreezePokemon.asm | 1 + External/NeutralSpawn/NeutralSpawn.asm | 1 + External/PreventWobbling/1.asm | 11 +++ External/PreventWobbling/2.asm | 69 ++++++++++++++++++ External/UCF 0.8/Logic/UCF DB.asm | 5 +- External/UCF 0.8/Logic/UCF SD.asm | 5 +- External/UCF 0.8/Logic/UCF Tumble.asm | 5 +- .../InitHitVelocity.asm | 1 + .../UpdateFallVelocity.asm | 1 + .../UpdateModelPos.asm | 1 + Output/Console/g_gameplay_both.txt | 4 +- Output/Console/g_gameplay_wobbling.txt | 4 +- console_gameplay_both.json | 5 +- console_gameplay_wobbling.json | 5 +- 31 files changed, 126 insertions(+), 15 deletions(-) delete mode 100644 Binary/FreezeAllStages.bin delete mode 100644 Binary/PreventWobbling.bin create mode 100644 External/PreventWobbling/1.asm create mode 100644 External/PreventWobbling/2.asm diff --git a/Binary/FreezeAllStages.bin b/Binary/FreezeAllStages.bin deleted file mode 100644 index 3c2462284f250b1afb57089d46c7ca4af25ca1ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ccmZRvOMk!s1T2cHo+N;1Sy2x#EoTg-0cr>ZcmMzZ diff --git a/Binary/PreventWobbling.bin b/Binary/PreventWobbling.bin deleted file mode 100644 index 36a418e9f0b467d9c3beb2d43405578bdcb84c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmX@ayYdbL0|T=~0t3U08sz|sg#Z6H)F=nlJ72BBs1uAG%G2Ew6IqL`5QWt8F(xj7#M9E8kiG%9D8az znV0!BuqZ;+PiUAekx|2}0Mcu+U Date: Wed, 31 Aug 2022 11:30:20 -0400 Subject: [PATCH 138/217] convert playback header entry to tags --- Common/Initialize Player Data/Init Player Data.asm | 2 +- Common/Initialize Stage Data/Init Stage Data.asm | 2 +- Common/NanaDeterminism/NanaDeterminism.asm | 2 +- .../PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm | 2 +- .../Core/GetPreloadedTransition.asm | 2 +- .../Preload Stadium Transformations/Core/Init isLoaded Bool.asm | 2 +- .../Core/Load Transformation.asm | 2 +- Common/Preload Stadium Transformations/Core/Reset isLoaded.asm | 2 +- .../Core/SkipNormalDecision1.asm | 2 +- .../Core/SkipNormalDecision2.asm | 2 +- External/FreezeGlitchFix/FreezeGlitchFix.asm | 2 +- External/Frozen All/Core/1.asm | 2 +- External/Frozen All/Core/2.asm | 2 +- External/Frozen All/Core/3.asm | 2 +- External/Frozen All/Core/4.asm | 2 +- External/Frozen PS/Core/FreezePokemon.asm | 2 +- External/NeutralSpawn/NeutralSpawn.asm | 2 +- External/PreventWobbling/1.asm | 2 +- External/PreventWobbling/2.asm | 2 +- External/UCF 0.8/Logic/UCF DB.asm | 2 +- External/UCF 0.8/Logic/UCF SD.asm | 2 +- External/UCF 0.8/Logic/UCF Tumble.asm | 2 +- Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm | 2 +- Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm | 2 +- Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Common/Initialize Player Data/Init Player Data.asm b/Common/Initialize Player Data/Init Player Data.asm index 5ab2e716..0cf189c2 100644 --- a/Common/Initialize Player Data/Init Player Data.asm +++ b/Common/Initialize Player Data/Init Player Data.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 80068eec -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Common/Initialize Stage Data/Init Stage Data.asm b/Common/Initialize Stage Data/Init Stage Data.asm index ab72723f..9d42fdfe 100644 --- a/Common/Initialize Stage Data/Init Stage Data.asm +++ b/Common/Initialize Stage Data/Init Stage Data.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801c154c -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Common/NanaDeterminism/NanaDeterminism.asm b/Common/NanaDeterminism/NanaDeterminism.asm index 903af401..695e61ce 100644 --- a/Common/NanaDeterminism/NanaDeterminism.asm +++ b/Common/NanaDeterminism/NanaDeterminism.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 800ac5b8 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ mr r29, r3 # replaced code line diff --git a/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm b/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm index 5878cfd8..470bba51 100644 --- a/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm +++ b/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801d24fc # PokemonStadium_Main replaces normal function call -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm b/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm index 5a162dcf..a37c9e5f 100644 --- a/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm +++ b/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801d460c -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm b/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm index 3606bae8..c090cdef 100644 --- a/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm +++ b/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801d14c8 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/Load Transformation.asm b/Common/Preload Stadium Transformations/Core/Load Transformation.asm index c57d9467..36e51b9a 100644 --- a/Common/Preload Stadium Transformations/Core/Load Transformation.asm +++ b/Common/Preload Stadium Transformations/Core/Load Transformation.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801d45ec -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm b/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm index 30ed5737..b8e376f6 100644 --- a/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm +++ b/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801d4f14 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm b/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm index 5d238755..bd8e3383 100644 --- a/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm +++ b/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm @@ -1,5 +1,5 @@ ################################################################################ # Address: 0x801d4610 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ b 0x4C diff --git a/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm b/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm index ea6ef405..7b1336a1 100644 --- a/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm +++ b/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm @@ -1,5 +1,5 @@ ################################################################################ # Address: 0x801d4724 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ b 0x3C diff --git a/External/FreezeGlitchFix/FreezeGlitchFix.asm b/External/FreezeGlitchFix/FreezeGlitchFix.asm index 767e0012..d99f2706 100644 --- a/External/FreezeGlitchFix/FreezeGlitchFix.asm +++ b/External/FreezeGlitchFix/FreezeGlitchFix.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801239A8 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ nop diff --git a/External/Frozen All/Core/1.asm b/External/Frozen All/Core/1.asm index 518b1b0f..76b4a25a 100644 --- a/External/Frozen All/Core/1.asm +++ b/External/Frozen All/Core/1.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x803E67E0 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .long 0 \ No newline at end of file diff --git a/External/Frozen All/Core/2.asm b/External/Frozen All/Core/2.asm index d779e7e9..f7b2c82b 100644 --- a/External/Frozen All/Core/2.asm +++ b/External/Frozen All/Core/2.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x8021AAE4 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ nop \ No newline at end of file diff --git a/External/Frozen All/Core/3.asm b/External/Frozen All/Core/3.asm index 00c8730c..55c858d2 100644 --- a/External/Frozen All/Core/3.asm +++ b/External/Frozen All/Core/3.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801D1548 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ nop \ No newline at end of file diff --git a/External/Frozen All/Core/4.asm b/External/Frozen All/Core/4.asm index 2a806231..831deb9c 100644 --- a/External/Frozen All/Core/4.asm +++ b/External/Frozen All/Core/4.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801E3348 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ nop \ No newline at end of file diff --git a/External/Frozen PS/Core/FreezePokemon.asm b/External/Frozen PS/Core/FreezePokemon.asm index 0c782370..8a7bd6a3 100644 --- a/External/Frozen PS/Core/FreezePokemon.asm +++ b/External/Frozen PS/Core/FreezePokemon.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801d45fc -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ b 0x9dc diff --git a/External/NeutralSpawn/NeutralSpawn.asm b/External/NeutralSpawn/NeutralSpawn.asm index c5f2bcb0..73c5e6c8 100644 --- a/External/NeutralSpawn/NeutralSpawn.asm +++ b/External/NeutralSpawn/NeutralSpawn.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 8016e510 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/PreventWobbling/1.asm b/External/PreventWobbling/1.asm index 2d171d99..29df6d5d 100644 --- a/External/PreventWobbling/1.asm +++ b/External/PreventWobbling/1.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800DA9DC -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ loc_0x0: diff --git a/External/PreventWobbling/2.asm b/External/PreventWobbling/2.asm index c9107b8b..1b5fac5a 100644 --- a/External/PreventWobbling/2.asm +++ b/External/PreventWobbling/2.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x8008F090 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.8/Logic/UCF DB.asm b/External/UCF 0.8/Logic/UCF DB.asm index f8c91af1..4ccc5c24 100644 --- a/External/UCF 0.8/Logic/UCF DB.asm +++ b/External/UCF 0.8/Logic/UCF DB.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800C9A44 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/UCF 0.8/Logic/UCF SD.asm b/External/UCF 0.8/Logic/UCF SD.asm index 1fd49235..c912091f 100644 --- a/External/UCF 0.8/Logic/UCF SD.asm +++ b/External/UCF 0.8/Logic/UCF SD.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800998A4 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/UCF 0.8/Logic/UCF Tumble.asm b/External/UCF 0.8/Logic/UCF Tumble.asm index aebe96cf..151f907a 100644 --- a/External/UCF 0.8/Logic/UCF Tumble.asm +++ b/External/UCF 0.8/Logic/UCF Tumble.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800908f4 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm b/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm index f8343cfd..2cdf6b0c 100644 --- a/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm +++ b/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800d4c1c -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm b/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm index f4c9a18c..58b386dd 100644 --- a/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm +++ b/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800d4d68 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" .include "Online/Online.s" diff --git a/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm b/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm index 5b4c3f97..7e77d5a6 100644 --- a/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm +++ b/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x80080e80 -# Playback: Include +# Tags: [alters-gameplay] ################################################################################ .include "Common/Common.s" .include "Online/Online.s" From 8d8c09bdbf9d17d6bb28acde28139451df953963 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 31 Aug 2022 12:57:15 -0400 Subject: [PATCH 139/217] change tag name again, add list-injections.bat --- .../Init Player Data.asm | 2 +- .../Initialize Stage Data/Init Stage Data.asm | 2 +- Common/NanaDeterminism/NanaDeterminism.asm | 2 +- .../PSCameraIndependentMonitor.asm | 2 +- .../Core/GetPreloadedTransition.asm | 2 +- .../Core/Init isLoaded Bool.asm | 2 +- .../Core/Load Transformation.asm | 2 +- .../Core/Reset isLoaded.asm | 2 +- .../Core/SkipNormalDecision1.asm | 2 +- .../Core/SkipNormalDecision2.asm | 2 +- External/FreezeGlitchFix/FreezeGlitchFix.asm | 2 +- External/Frozen All/Core/1.asm | 2 +- External/Frozen All/Core/2.asm | 2 +- External/Frozen All/Core/3.asm | 2 +- External/Frozen All/Core/4.asm | 2 +- External/Frozen PS/Core/FreezePokemon.asm | 2 +- External/NeutralSpawn/NeutralSpawn.asm | 2 +- External/PreventWobbling/1.asm | 2 +- External/PreventWobbling/2.asm | 2 +- External/UCF 0.8/Logic/UCF DB.asm | 2 +- External/UCF 0.8/Logic/UCF SD.asm | 2 +- External/UCF 0.8/Logic/UCF Tumble.asm | 2 +- .../InitHitVelocity.asm | 2 +- .../UpdateFallVelocity.asm | 2 +- .../UpdateModelPos.asm | 2 +- list-injections.bat | 28 +++++++++++++++++++ 26 files changed, 53 insertions(+), 25 deletions(-) create mode 100644 list-injections.bat diff --git a/Common/Initialize Player Data/Init Player Data.asm b/Common/Initialize Player Data/Init Player Data.asm index 0cf189c2..f0df63d2 100644 --- a/Common/Initialize Player Data/Init Player Data.asm +++ b/Common/Initialize Player Data/Init Player Data.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 80068eec -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Common/Initialize Stage Data/Init Stage Data.asm b/Common/Initialize Stage Data/Init Stage Data.asm index 9d42fdfe..966bc5d4 100644 --- a/Common/Initialize Stage Data/Init Stage Data.asm +++ b/Common/Initialize Stage Data/Init Stage Data.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801c154c -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Common/NanaDeterminism/NanaDeterminism.asm b/Common/NanaDeterminism/NanaDeterminism.asm index 695e61ce..4e4b0af9 100644 --- a/Common/NanaDeterminism/NanaDeterminism.asm +++ b/Common/NanaDeterminism/NanaDeterminism.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 800ac5b8 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ mr r29, r3 # replaced code line diff --git a/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm b/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm index 470bba51..6c95bbba 100644 --- a/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm +++ b/Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801d24fc # PokemonStadium_Main replaces normal function call -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm b/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm index a37c9e5f..9c4392d4 100644 --- a/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm +++ b/Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801d460c -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm b/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm index c090cdef..57cb541e 100644 --- a/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm +++ b/Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801d14c8 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/Load Transformation.asm b/Common/Preload Stadium Transformations/Core/Load Transformation.asm index 36e51b9a..bf3ec3c2 100644 --- a/Common/Preload Stadium Transformations/Core/Load Transformation.asm +++ b/Common/Preload Stadium Transformations/Core/Load Transformation.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801d45ec -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm b/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm index b8e376f6..473415c5 100644 --- a/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm +++ b/Common/Preload Stadium Transformations/Core/Reset isLoaded.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 801d4f14 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" .include "Common/Preload Stadium Transformations/Transformation.s" diff --git a/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm b/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm index bd8e3383..3bc32221 100644 --- a/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm +++ b/Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm @@ -1,5 +1,5 @@ ################################################################################ # Address: 0x801d4610 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ b 0x4C diff --git a/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm b/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm index 7b1336a1..0db54dbd 100644 --- a/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm +++ b/Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm @@ -1,5 +1,5 @@ ################################################################################ # Address: 0x801d4724 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ b 0x3C diff --git a/External/FreezeGlitchFix/FreezeGlitchFix.asm b/External/FreezeGlitchFix/FreezeGlitchFix.asm index d99f2706..e3e865af 100644 --- a/External/FreezeGlitchFix/FreezeGlitchFix.asm +++ b/External/FreezeGlitchFix/FreezeGlitchFix.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801239A8 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ nop diff --git a/External/Frozen All/Core/1.asm b/External/Frozen All/Core/1.asm index 76b4a25a..3fdea658 100644 --- a/External/Frozen All/Core/1.asm +++ b/External/Frozen All/Core/1.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x803E67E0 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .long 0 \ No newline at end of file diff --git a/External/Frozen All/Core/2.asm b/External/Frozen All/Core/2.asm index f7b2c82b..fa0ecc0f 100644 --- a/External/Frozen All/Core/2.asm +++ b/External/Frozen All/Core/2.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x8021AAE4 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ nop \ No newline at end of file diff --git a/External/Frozen All/Core/3.asm b/External/Frozen All/Core/3.asm index 55c858d2..103aaad4 100644 --- a/External/Frozen All/Core/3.asm +++ b/External/Frozen All/Core/3.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801D1548 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ nop \ No newline at end of file diff --git a/External/Frozen All/Core/4.asm b/External/Frozen All/Core/4.asm index 831deb9c..bcef20fb 100644 --- a/External/Frozen All/Core/4.asm +++ b/External/Frozen All/Core/4.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801E3348 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ nop \ No newline at end of file diff --git a/External/Frozen PS/Core/FreezePokemon.asm b/External/Frozen PS/Core/FreezePokemon.asm index 8a7bd6a3..be46b334 100644 --- a/External/Frozen PS/Core/FreezePokemon.asm +++ b/External/Frozen PS/Core/FreezePokemon.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x801d45fc -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ b 0x9dc diff --git a/External/NeutralSpawn/NeutralSpawn.asm b/External/NeutralSpawn/NeutralSpawn.asm index 73c5e6c8..6c1338a4 100644 --- a/External/NeutralSpawn/NeutralSpawn.asm +++ b/External/NeutralSpawn/NeutralSpawn.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 8016e510 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/PreventWobbling/1.asm b/External/PreventWobbling/1.asm index 29df6d5d..670c8fb8 100644 --- a/External/PreventWobbling/1.asm +++ b/External/PreventWobbling/1.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800DA9DC -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/PreventWobbling/2.asm b/External/PreventWobbling/2.asm index 1b5fac5a..61792425 100644 --- a/External/PreventWobbling/2.asm +++ b/External/PreventWobbling/2.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x8008F090 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.8/Logic/UCF DB.asm b/External/UCF 0.8/Logic/UCF DB.asm index 4ccc5c24..9fb596d5 100644 --- a/External/UCF 0.8/Logic/UCF DB.asm +++ b/External/UCF 0.8/Logic/UCF DB.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800C9A44 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/UCF 0.8/Logic/UCF SD.asm b/External/UCF 0.8/Logic/UCF SD.asm index c912091f..d820eb98 100644 --- a/External/UCF 0.8/Logic/UCF SD.asm +++ b/External/UCF 0.8/Logic/UCF SD.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800998A4 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/UCF 0.8/Logic/UCF Tumble.asm b/External/UCF 0.8/Logic/UCF Tumble.asm index 151f907a..4b211ef2 100644 --- a/External/UCF 0.8/Logic/UCF Tumble.asm +++ b/External/UCF 0.8/Logic/UCF Tumble.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800908f4 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm b/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm index 2cdf6b0c..2fb4115a 100644 --- a/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm +++ b/Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800d4c1c -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm b/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm index 58b386dd..ded2fbdd 100644 --- a/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm +++ b/Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x800d4d68 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" .include "Online/Online.s" diff --git a/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm b/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm index 7e77d5a6..f307e935 100644 --- a/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm +++ b/Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm @@ -1,6 +1,6 @@ ################################################################################ # Address: 0x80080e80 -# Tags: [alters-gameplay] +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" .include "Online/Online.s" diff --git a/list-injections.bat b/list-injections.bat new file mode 100644 index 00000000..05251312 --- /dev/null +++ b/list-injections.bat @@ -0,0 +1,28 @@ +@echo off + +set list=netplay.json +set list=%list%;console_core.json +set list=%list%;console_UCF.json +set list=%list%;console_UCF_stealth.json +set list=%list%;console_mods_stealth.json +set list=%list%;console_mods_tournament.json +set list=%list%;console_mods_friendlies.json +set list=%list%;console_PAL.json +set list=%list%;console_stages_stadium.json +set list=%list%;console_stages_all.json +set list=%list%;console_gameplay_lgl.json +set list=%list%;console_gameplay_wobbling.json +set list=%list%;console_gameplay_both.json +set list=%list%;console_lag_pd.json +set list=%list%;console_lag_pdhalfvb.json +set list=%list%;console_screen_wide.json +set list=%list%;console_screen_wide_shutters.json +set list=%list%;console_safety.json + +for %%a in (%list%) do ( + echo Listing %%a... + gecko list -i %%a -o Output/InjectionLists/list_%%a + echo. +) + +pause From 29a42c04e748ba9804bdbd618f5748c7ead9d3d4 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 31 Aug 2022 13:26:16 -0400 Subject: [PATCH 140/217] add injection list outputs --- Output/InjectionLists/list_console_PAL.json | 70 + Output/InjectionLists/list_console_UCF.json | 28 + .../list_console_UCF_stealth.json | 22 + Output/InjectionLists/list_console_core.json | 328 ++ .../list_console_gameplay_both.json | 52 + .../list_console_gameplay_lgl.json | 40 + .../list_console_gameplay_wobbling.json | 16 + .../InjectionLists/list_console_lag_pd.json | 22 + .../list_console_lag_pdhalfvb.json | 46 + .../list_console_mods_friendlies.json | 94 + .../list_console_mods_stealth.json | 34 + .../list_console_mods_tournament.json | 70 + .../InjectionLists/list_console_safety.json | 16 + .../list_console_screen_wide.json | 82 + .../list_console_screen_wide_shutters.json | 88 + .../list_console_stages_all.json | 40 + .../list_console_stages_stadium.json | 28 + Output/InjectionLists/list_netplay.json | 2746 +++++++++++++++++ 18 files changed, 3822 insertions(+) create mode 100644 Output/InjectionLists/list_console_PAL.json create mode 100644 Output/InjectionLists/list_console_UCF.json create mode 100644 Output/InjectionLists/list_console_UCF_stealth.json create mode 100644 Output/InjectionLists/list_console_core.json create mode 100644 Output/InjectionLists/list_console_gameplay_both.json create mode 100644 Output/InjectionLists/list_console_gameplay_lgl.json create mode 100644 Output/InjectionLists/list_console_gameplay_wobbling.json create mode 100644 Output/InjectionLists/list_console_lag_pd.json create mode 100644 Output/InjectionLists/list_console_lag_pdhalfvb.json create mode 100644 Output/InjectionLists/list_console_mods_friendlies.json create mode 100644 Output/InjectionLists/list_console_mods_stealth.json create mode 100644 Output/InjectionLists/list_console_mods_tournament.json create mode 100644 Output/InjectionLists/list_console_safety.json create mode 100644 Output/InjectionLists/list_console_screen_wide.json create mode 100644 Output/InjectionLists/list_console_screen_wide_shutters.json create mode 100644 Output/InjectionLists/list_console_stages_all.json create mode 100644 Output/InjectionLists/list_console_stages_stadium.json create mode 100644 Output/InjectionLists/list_netplay.json diff --git a/Output/InjectionLists/list_console_PAL.json b/Output/InjectionLists/list_console_PAL.json new file mode 100644 index 00000000..a334580a --- /dev/null +++ b/Output/InjectionLists/list_console_PAL.json @@ -0,0 +1,70 @@ +{ + "Details": [ + { + "InjectionAddress": "80068F30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802F9A3C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8010FC44", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8010FB64", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800796E0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801239A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803CE4D4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802B7E54", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802B808C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80266978", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DEC14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_UCF.json b/Output/InjectionLists/list_console_UCF.json new file mode 100644 index 00000000..5b676153 --- /dev/null +++ b/Output/InjectionLists/list_console_UCF.json @@ -0,0 +1,28 @@ +{ + "Details": [ + { + "InjectionAddress": "800C9A44", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800998A4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800908F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "802662D0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_UCF_stealth.json b/Output/InjectionLists/list_console_UCF_stealth.json new file mode 100644 index 00000000..8ac153ad --- /dev/null +++ b/Output/InjectionLists/list_console_UCF_stealth.json @@ -0,0 +1,22 @@ +{ + "Details": [ + { + "InjectionAddress": "800C9A44", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800998A4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800908F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_core.json b/Output/InjectionLists/list_console_core.json new file mode 100644 index 00000000..21868a20 --- /dev/null +++ b/Output/InjectionLists/list_console_core.json @@ -0,0 +1,328 @@ +{ + "Details": [ + { + "InjectionAddress": "801BFA20", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EE98", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EDDC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80164B14", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801648F4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EE4C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EE14", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D968", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D9D8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8017229C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801737B0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80164658", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801644E8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8030490C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803044F0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A48", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A4C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A50", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A60", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A78", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D94C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D984", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016B480", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B0A14", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802641B0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80397878", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801AF6F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8025B8BC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A70", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800679BC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803219EC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016D884", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016E74C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006DA34", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006B0DC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005604", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8008D698", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006C324", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800055F8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016D294", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801D460C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D14C8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D45EC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D4F14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D4610", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D4724", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "804DEC18", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801C154C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "80068EEC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800055F0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800055FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005600", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800AC5B8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D24FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_gameplay_both.json b/Output/InjectionLists/list_console_gameplay_both.json new file mode 100644 index 00000000..bf08f91e --- /dev/null +++ b/Output/InjectionLists/list_console_gameplay_both.json @@ -0,0 +1,52 @@ +{ + "Details": [ + { + "InjectionAddress": "801A5E90", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EBD8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B0498", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B05CC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B05C8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80165C48", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800DA9DC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8008F090", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_gameplay_lgl.json b/Output/InjectionLists/list_console_gameplay_lgl.json new file mode 100644 index 00000000..ed4e054a --- /dev/null +++ b/Output/InjectionLists/list_console_gameplay_lgl.json @@ -0,0 +1,40 @@ +{ + "Details": [ + { + "InjectionAddress": "801A5E90", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EBD8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B0498", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B05CC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B05C8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80165C48", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_gameplay_wobbling.json b/Output/InjectionLists/list_console_gameplay_wobbling.json new file mode 100644 index 00000000..8704e53e --- /dev/null +++ b/Output/InjectionLists/list_console_gameplay_wobbling.json @@ -0,0 +1,16 @@ +{ + "Details": [ + { + "InjectionAddress": "800DA9DC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8008F090", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_lag_pd.json b/Output/InjectionLists/list_console_lag_pd.json new file mode 100644 index 00000000..a3d10628 --- /dev/null +++ b/Output/InjectionLists/list_console_lag_pd.json @@ -0,0 +1,22 @@ +{ + "Details": [ + { + "InjectionAddress": "801A4DA0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4DB4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80019860", + "Codetype": "04", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_lag_pdhalfvb.json b/Output/InjectionLists/list_console_lag_pdhalfvb.json new file mode 100644 index 00000000..30602f13 --- /dev/null +++ b/Output/InjectionLists/list_console_lag_pdhalfvb.json @@ -0,0 +1,46 @@ +{ + "Details": [ + { + "InjectionAddress": "801A4D98", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A5050", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4BEC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80158268", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8034EB60", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80397878", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4570", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_mods_friendlies.json b/Output/InjectionLists/list_console_mods_friendlies.json new file mode 100644 index 00000000..978a211d --- /dev/null +++ b/Output/InjectionLists/list_console_mods_friendlies.json @@ -0,0 +1,94 @@ +{ + "Details": [ + { + "InjectionAddress": "8016E510", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "802FCCD8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802605FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DC47C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261A6C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80266CE0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802608D8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80259B84", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80259C40", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A5B14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80265220", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EA30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EBAC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_mods_stealth.json b/Output/InjectionLists/list_console_mods_stealth.json new file mode 100644 index 00000000..bc7e6975 --- /dev/null +++ b/Output/InjectionLists/list_console_mods_stealth.json @@ -0,0 +1,34 @@ +{ + "Details": [ + { + "InjectionAddress": "8016E510", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "802FCCD8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802605FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_mods_tournament.json b/Output/InjectionLists/list_console_mods_tournament.json new file mode 100644 index 00000000..a40a82b7 --- /dev/null +++ b/Output/InjectionLists/list_console_mods_tournament.json @@ -0,0 +1,70 @@ +{ + "Details": [ + { + "InjectionAddress": "8016E510", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "802FCCD8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802605FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DC47C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261A6C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80266CE0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802608D8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80259B84", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80259C40", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_safety.json b/Output/InjectionLists/list_console_safety.json new file mode 100644 index 00000000..160b2454 --- /dev/null +++ b/Output/InjectionLists/list_console_safety.json @@ -0,0 +1,16 @@ +{ + "Details": [ + { + "InjectionAddress": "8022F958", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80167F40", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_screen_wide.json b/Output/InjectionLists/list_console_screen_wide.json new file mode 100644 index 00000000..764a589b --- /dev/null +++ b/Output/InjectionLists/list_console_screen_wide.json @@ -0,0 +1,82 @@ +{ + "Details": [ + { + "InjectionAddress": "803BB05C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8036A4A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB58", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80086B24", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030C7C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030C88", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB34", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB2C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB28", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB4C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FCFC4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB84", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_screen_wide_shutters.json b/Output/InjectionLists/list_console_screen_wide_shutters.json new file mode 100644 index 00000000..c919d946 --- /dev/null +++ b/Output/InjectionLists/list_console_screen_wide_shutters.json @@ -0,0 +1,88 @@ +{ + "Details": [ + { + "InjectionAddress": "803BB05C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8036A4A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB58", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80086B24", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030C7C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030C88", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB34", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB2C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB28", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB4C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FCFC4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB84", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80302784", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_stages_all.json b/Output/InjectionLists/list_console_stages_all.json new file mode 100644 index 00000000..53632f53 --- /dev/null +++ b/Output/InjectionLists/list_console_stages_all.json @@ -0,0 +1,40 @@ +{ + "Details": [ + { + "InjectionAddress": "8025A530", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8025B718", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803E67E0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8021AAE4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D1548", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801E3348", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_stages_stadium.json b/Output/InjectionLists/list_console_stages_stadium.json new file mode 100644 index 00000000..3f7d372c --- /dev/null +++ b/Output/InjectionLists/list_console_stages_stadium.json @@ -0,0 +1,28 @@ +{ + "Details": [ + { + "InjectionAddress": "801D45FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8025A530", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8025B718", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DEC1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json new file mode 100644 index 00000000..e1c80ead --- /dev/null +++ b/Output/InjectionLists/list_netplay.json @@ -0,0 +1,2746 @@ +{ + "Details": [ + { + "InjectionAddress": "8015EE98", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EDDC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80164B14", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801648F4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EE4C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015EE14", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D968", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D9D8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8017229C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801737B0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80164658", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801644E8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8030490C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803044F0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A48", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A4C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A50", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A60", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D4A78", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801AF6F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D94C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015D984", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A5B14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016B480", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022D638", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B0A14", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016E510", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "802641B0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8021AAE4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8025B8BC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80452F54", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80452F58", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80452F5C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80452F60", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80452F64", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002CB34", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800C9A44", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800998A4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800908F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "802662D0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8026325C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801C26B0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8015ECEC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EBA8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A45A8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DC47C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261A6C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FCCD8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80266CE0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80265220", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EA30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261B30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802605FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801239A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8013C388", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016DED4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800679BC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803219EC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016D884", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016E74C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006DA34", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006B0DC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005604", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8008D698", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006C324", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800055F8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016D294", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801D460C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D14C8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D45EC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D4F14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D4610", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D4724", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "804DEC18", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801C154C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "80068EEC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8016EBAC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8006A880", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802F7094", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4DB4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80019614", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8034DED8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016E748", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016E904", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A5014", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016D26C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016CD08", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016EA30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80376A20", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4DE4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80376A28", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4CB4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800163FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800166B8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800D4C1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800D4D68", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "80080E80", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "80019260", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80376304", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803A63A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80321D70", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80019608", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801D4578", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023FFC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8038ADD0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8038D224", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80088224", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800882B0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8038D0B0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016BE28", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80266BC4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80261E5C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80260310", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80263258", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A3F9C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802652F0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80264534", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80262004", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802620AC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802600A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8026699C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80264118", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80262478", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80262768", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802652F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80260C28", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80260E14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80260B90", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80260C88", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C710", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C320", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023E730", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023E924", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023E290", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CCA4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CF9C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CF80", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023B3D0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C6C0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023E994", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C588", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CD74", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CA50", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CC14", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C33C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C72C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C81C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CCBC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023CCE0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8023C928", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803786A4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802F6694", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803A69C0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8025B8A4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80259CC8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B044", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802299F0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022E93C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B1040", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022D88C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802299C4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B3668", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80186EC4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80184DE4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B3650", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80185060", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80185050", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80184ADC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80184B1C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801BFA20", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A45B8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005694", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056BC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056AC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005690", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056B8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005698", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056B0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800055F4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005610", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056A4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8000560C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800055EC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005608", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056B4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80005618", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803775B0", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4C24", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8001985C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80019860", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80376200", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A5018", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80218D68", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8009E090", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8000569C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80068B40", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803753B0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800186A8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803BA3AC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801BFA24", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022C010", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022C170", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022C168", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229DA0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B9D8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B9A8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B9A0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229AD8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229AD0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229B08", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022DB1C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022DC18", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022A638", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B3F4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B224", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022AE48", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022E90C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022A010", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022A4D0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B7DC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022E630", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80266980", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229C14", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229DEC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229D98", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229E94", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801B1368", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229894", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80229E60", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8022B750", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015D9C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015C00", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015BC0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80018D80", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800158F0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80016138", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015F50", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015F88", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800158D8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015E18", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015CD4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800159B4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015984", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015B94", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80015914", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8037C050", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026680", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800285C8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027694", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80388A34", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027400", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800272DC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8000AEA0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8000AE68", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026CBC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800269F8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002313C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002356C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800237B4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023B50", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800283B4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028508", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800268E0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026C68", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267E0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023254", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023578", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80088008", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023148", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023B5C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A56F4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002785C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A57FC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028404", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028420", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028440", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002845C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028478", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028498", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026C3C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026C5C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026CB0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026CB4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026E38", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026CB4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028738", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028770", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002890C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028910", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028948", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002895C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028960", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028998", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800289AC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800289B0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800289E8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028780", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800287C4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800287C8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800287CC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800287D0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800288BC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800288C0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800288F8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267F4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267F0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267F8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267F8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002719C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027290", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800272D4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800272D8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027454", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027464", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027BB4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027D4C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027D50", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027CE8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027CAC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027CB0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027CFC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027D00", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80087D3C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800230D8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023630", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800268B8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027288", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027278", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800273B4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800273B8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023228", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027140", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026C34", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027008", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FF870", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803883F8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026880", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026EA4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002742C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026E10", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028970", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028748", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800288D0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800289C0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028920", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023E34", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80023234", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267DC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027AD0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026664", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026E60", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800268DC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027198", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028368", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002645C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800283A8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800283B8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028590", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80028530", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800286B0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80027E0C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800270D0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026FC8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80026C28", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800267C4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002749C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80024DC8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8002766C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800269DC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A50AC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A45BC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4444", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8001CEAC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4568", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A43E0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A448C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A3F2C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4560", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A43D8", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4484", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A3F24", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4D14", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A50A0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4D0C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A43EC", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A40C8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056A8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D70A0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7098", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7094", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7068", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7088", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D708C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7084", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7064", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D707C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800056A0", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7058", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7070", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7080", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D709C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7090", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7074", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7078", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80268648", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D7060", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803D706C", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8035E6E4", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8035E6E0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8035ECFC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8035ECE0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80360A38", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80360A3C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8035E918", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801A4C98", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80228C10", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80228BFC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80228AF8", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80394BD4", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80397838", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80394A74", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800AC5B8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "801D24FC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "803761EC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80376238", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80376A24", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802F666C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8000561C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CBB90", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CC8AC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CBE9C", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CBEF0", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CBF54", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80390838", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CD250", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "801CCDCC", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "803BB05C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8036A4A8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB58", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80086B24", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030C7C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030C88", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB30", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB34", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB2C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB28", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB4C", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FCFC4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "804DDB84", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80030E44", + "Codetype": "04", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8016E9AC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800C0148", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8008D690", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800355B4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FD1EC", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802FC9E4", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file From 6e605c72ce26246dd3cdff1fc51a00d0414ad2d5 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Wed, 31 Aug 2022 11:19:21 -0700 Subject: [PATCH 141/217] chore: update makefile and build check --- .github/workflows/build_check.yml | 2 +- Makefile | 38 +++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml index 15cecce3..8a428157 100644 --- a/.github/workflows/build_check.yml +++ b/.github/workflows/build_check.yml @@ -21,5 +21,5 @@ jobs: if: success() working-directory: ${{ github.workspace }} run: | - sudo docker run --volume=${PWD}:/work --workdir=/work nikhilnarayana/devkitpro-slippi make + sudo docker run --volume=${PWD}:/work --workdir=/work nikhilnarayana/devkitpro-slippi:latest make ini list - uses: numtide/clean-git-action@v1 diff --git a/Makefile b/Makefile index d177bd48..7b1e78bb 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,17 @@ # ----------------------------------------------------------------------------- # netplay.json and playback.json also build versions of GALJ01r2.ini for NTSC-J -NETPLAY_INI := Output/Netplay/GALE01r2.ini -PLAYBACK_INI := Output/Playback/GALE01r2.ini -ONLINE_INI := Output/Online/online.txt +NETPLAY := netplay.json +PLAYBACK := playback.json +NETPLAY_INI := Output/Netplay/GALE01r2.ini +PLAYBACK_INI := Output/Playback/GALE01r2.ini +ONLINE_INI := Output/Online/online.txt # GCT output for Nintendont # to add a new json just create a new var with the json name # and then add it to the CONSOLE list -CONSOLE_CORE := core +CONSOLE_CORE := console_core.json +CONSOLE_CORE_PORTB := core CONSOLE_CORE_PORTA := core_porta CONSOLE_UCF := console_UCF.json CONSOLE_UCF_STEALTH := console_UCF_stealth.json @@ -32,15 +35,18 @@ CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ $(CONSOLE_GAMEPLAY_WOBBLE) $(CONSOLE_GAMEPLAY_BOTH) $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) \ $(CONSOLE_SCREEN_WIDE) $(CONSOLE_SCREEN_SHUTTERS) $(CONSOLE_SAFETY) -ALL_TARGETS := $(ONLINE_INI) $(NETPLAY_INI) $(PLAYBACK_INI) \ - $(CONSOLE_CORE_PORTA) $(CONSOLE_CORE) $(CONSOLE) -.PHONY: $(ALL_TARGETS) clean -all: $(ALL_TARGETS) +GECKO_INJECTIONS := $(NETPLAY) $(CONSOLE_CORE) $(CONSOLE) +INI_TARGETS := $(ONLINE_INI) $(NETPLAY_INI) $(PLAYBACK_INI) \ + $(CONSOLE_CORE_PORTA) $(CONSOLE_CORE_PORTB) $(CONSOLE) +.PHONY: $(INI_TARGETS) clean +all: $(INI_TARGETS) +ini: $(INI_TARGETS) # ----------------------------------------------------------------------------- # Targets for binaries to-be-included in the Slippi Nintendont tree -$(CONSOLE_CORE): console_core.json +# PORT B is the general use case, PORT A is for debugging +$(CONSOLE_CORE_PORTB): console_core.json gecko build -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -c $< @echo "" @@ -55,13 +61,21 @@ $(CONSOLE): # ----------------------------------------------------------------------------- # Targets for Dolphin's {netplay,playback} .ini configuration files -$(NETPLAY_INI): netplay.json +$(NETPLAY_INI): $(NETPLAY) @gecko build -defsym "STG_EXIIndex=1" -c $< @echo "" -$(PLAYBACK_INI): playback.json +$(PLAYBACK_INI): $(PLAYBACK) @gecko build -defsym "STG_EXIIndex=1" -c $< @echo "" +# ----------------------------------------------------------------------------- +# Target for injection lists +list: + for json in $(GECKO_INJECTIONS); do\ + gecko list -i $${json} -o Output/InjectionLists/list_$${json}; \ + done + @echo "" + # ----------------------------------------------------------------------------- clean: - rm -f $(ALL_TARGETS) + rm -f $(INI_TARGETS) From 114bcb457ae6ac2ca380f375bc7a0c92dd74693b Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 31 Aug 2022 15:35:18 -0400 Subject: [PATCH 142/217] add two more affects-gameplay tags --- Online/Core/BrawlOffscreenDamage.asm | 1 + Online/Core/PreventFileAlarms/FreezeStadium.asm | 1 + Output/InjectionLists/list_netplay.json | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Online/Core/BrawlOffscreenDamage.asm b/Online/Core/BrawlOffscreenDamage.asm index 79a562ef..6bf1c31d 100644 --- a/Online/Core/BrawlOffscreenDamage.asm +++ b/Online/Core/BrawlOffscreenDamage.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 0x8006a880 # PlayerThink_Animation. Function call determines if player is in bubble normally +# Tags: [affects-gameplay] ################################################################################ # This function needs to return 1 or 0 determining whether a player is in the # damage zone for offscreen damage. 1 means we are offscreen diff --git a/Online/Core/PreventFileAlarms/FreezeStadium.asm b/Online/Core/PreventFileAlarms/FreezeStadium.asm index c4412017..84e76d45 100644 --- a/Online/Core/PreventFileAlarms/FreezeStadium.asm +++ b/Online/Core/PreventFileAlarms/FreezeStadium.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 0x801d4578 # PokemonStadium_TransformationDecide +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index e1c80ead..13c0fea4 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -472,7 +472,7 @@ "InjectionAddress": "8006A880", "Codetype": "Auto", "Annotation": "", - "Tags": "" + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802F7094", @@ -622,7 +622,7 @@ "InjectionAddress": "801D4578", "Codetype": "Auto", "Annotation": "", - "Tags": "" + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "80023FFC", From 02bec347e4c6c88198c9877532752f23953f9b68 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 1 Sep 2022 10:09:59 -0400 Subject: [PATCH 143/217] fixes non-volatile register clobbering --- Online/Menus/CSS/HandleInputsOnCSS.asm | 7 ++-- Online/Menus/CSS/LoadCSSText.asm | 6 ++-- Online/Menus/TitleMenu/OnMenuPrep.asm | 6 ++-- Online/Static/SubtextFunctions.asm | 6 ++-- Output/Netplay/GALE01r2.ini | 46 +++++++++++++------------- Output/Netplay/GALJ01r2.ini | 46 +++++++++++++------------- 6 files changed, 63 insertions(+), 54 deletions(-) diff --git a/Online/Menus/CSS/HandleInputsOnCSS.asm b/Online/Menus/CSS/HandleInputsOnCSS.asm index f1a8bb9e..6ea0a83f 100644 --- a/Online/Menus/CSS/HandleInputsOnCSS.asm +++ b/Online/Menus/CSS/HandleInputsOnCSS.asm @@ -759,7 +759,10 @@ blrl .set CHAT_WINDOW_HEADER_MARGIN_LINES, 0x2 # lines away from which to start drawing messages away from header mr REG_CHAT_WINDOW_GOBJ, r3 # Store GOBJ pointer 0x801954A4 -backup + +.set NUM_FREG, 0 +.set NUM_GPREG, 18 +backup BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG # get gobj and get values for each of the data buffer lwz REG_CHAT_WINDOW_GOBJ_DATA_ADDR, CHAT_ENTITY_DATA_OFFSET(REG_CHAT_WINDOW_GOBJ) # get address of data buffer @@ -1012,7 +1015,7 @@ mr r3, REG_CHAT_WINDOW_TEXT_STRUCT_ADDR branchl r12, Text_RemoveText CSS_ONLINE_CHAT_WINDOW_THINK_EXIT: -restore +restore BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG blr diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index 95dd4a42..c990261e 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -1168,8 +1168,10 @@ blr CSS_ONLINE_CHAT_THINK: blrl +.set NUM_FREG, 2 +.set NUM_GPREG, 18 +backup BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG mr REG_CHATMSG_GOBJ, r3 # Store GOBJ pointer -backup BKP_DEFAULT_FREE_SPACE_SIZE, 2 # INIT PROPERTIES bl TEXT_PROPERTIES @@ -1386,7 +1388,7 @@ stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index CSS_ONLINE_CHAT_CHECK_EXIT: -restore BKP_DEFAULT_FREE_SPACE_SIZE, 2 +restore BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG blr diff --git a/Online/Menus/TitleMenu/OnMenuPrep.asm b/Online/Menus/TitleMenu/OnMenuPrep.asm index f314565b..ef9a769a 100644 --- a/Online/Menus/TitleMenu/OnMenuPrep.asm +++ b/Online/Menus/TitleMenu/OnMenuPrep.asm @@ -234,7 +234,9 @@ blr FN_OnlineSubmenuThink: blrl -backup +.set NUM_FREG, 0 +.set NUM_GPREG, 18 +backup BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG ################################################################################ # Check if confirm dialog is open or not, and prevent input if it is @@ -493,7 +495,7 @@ mtctr r3 bctrl FN_OnlineSubmenuThink_EXIT: -restore +restore BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG ################################################################################ # Data: OnlineSubmenuOptions diff --git a/Online/Static/SubtextFunctions.asm b/Online/Static/SubtextFunctions.asm index 3680f691..0764c737 100644 --- a/Online/Static/SubtextFunctions.asm +++ b/Online/Static/SubtextFunctions.asm @@ -64,7 +64,9 @@ beq FN_CREATE_PREMADE_TEXT # FN_CREATE_SUBTEXT ################################################################################ FN_CREATE_SUBTEXT: -backup BKP_DEFAULT_FREE_SPACE_SIZE, 6 +.set NUM_FREG, 6 +.set NUM_GPREG, 18 +backup BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG # Save arguments mr REG_TEXT_STRUCT_ADDR, r3 @@ -220,7 +222,7 @@ FN_CREATE_SUBTEXT_END: # Return subtext index mr r3, REG_SUBTEXT_INDEX -restore BKP_DEFAULT_FREE_SPACE_SIZE, 6 +restore BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG blr ################################################################################ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index b4d27452..2086c4b8 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2565,8 +2565,8 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 820E002C +90010004 9421FF08 +BDC100B0 820E002C 82EE0028 8A300000 8A500002 82700003 82B00007 A2D50015 @@ -2649,8 +2649,8 @@ C02F001C 3D808000 4E800421 7E639B78 3D80803A 618C5CC4 7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 +B9C100B0 800100FC +382100F8 7C0803A6 4E800020 4E800021 00000000 3DCCCCCD C3960000 C3E20000 @@ -3193,10 +3193,10 @@ A07C000F 38630001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 -7C6E1B78 7C0802A6 -90010004 9421FF10 -BE8100B0 DBE100E0 -DBC100E8 4BFFF3B5 +7C0802A6 90010004 +9421FEF8 BDC100B0 +DBE100F8 DBC10100 +7C6E1B78 4BFFF3B5 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 @@ -3268,9 +3268,9 @@ C022AE28 3D808036 7E84A378 38840001 7C032000 41820008 4800000C 38600000 -987C0019 BA8100B0 -CBE100E0 CBC100E8 -800100F4 382100F0 +987C0019 B9C100B0 +CBE100F8 CBC10100 +8001010C 38210108 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 @@ -4356,7 +4356,7 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF20 BE8100B0 +9421FF08 BDC100B0 7C731B78 80730008 2C030000 40820344 3C60804A 3BA304F0 @@ -4468,8 +4468,8 @@ A09C0000 3D808022 7F6802A6 387B0004 7C6903A6 4E800421 387B0008 7C6903A6 -4E800421 BA8100B0 -800100E4 382100E0 +4E800421 B9C100B0 +800100FC 382100F8 7C0803A6 4E800021 803EB57C 430C0000 803EB684 07000000 @@ -5608,10 +5608,10 @@ BA8100B0 800100E4 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FEF0 BE8100B0 -DBE100E0 DBC100E8 -DBA100F0 DB8100F8 -DB610100 DB410108 +9421FED8 BDC100B0 +DBE100F8 DBC10100 +DBA10108 DB810110 +DB610118 DB410120 7C751B78 7C962378 7CB82B78 7CD93378 90E10008 9101000C @@ -5670,11 +5670,11 @@ FC20F890 FC40F890 8141001C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA8100B0 CBE100E0 -CBC100E8 CBA100F0 -CB8100F8 CB610100 -CB410108 80010114 -38210110 7C0803A6 +B9C100B0 CBE100F8 +CBC10100 CBA10108 +CB810110 CB610118 +CB410120 8001012C +38210128 7C0803A6 4E800020 7C0802A6 90010004 9421FF00 BE8100B0 DBE100E0 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 077c1218..bd42762b 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2565,8 +2565,8 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 820E002C +90010004 9421FF08 +BDC100B0 820E002C 82EE0028 8A300000 8A500002 82700003 82B00007 A2D50015 @@ -2649,8 +2649,8 @@ C02F001C 3D808000 4E800421 7E639B78 3D80803A 618C5CC4 7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 +B9C100B0 800100FC +382100F8 7C0803A6 4E800020 4E800021 00000000 3DCCCCCD C3960000 C3E20000 @@ -3193,10 +3193,10 @@ A07C000F 38630001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 -7C6E1B78 7C0802A6 -90010004 9421FF10 -BE8100B0 DBE100E0 -DBC100E8 4BFFF3B5 +7C0802A6 90010004 +9421FEF8 BDC100B0 +DBE100F8 DBC10100 +7C6E1B78 4BFFF3B5 7FA802A6 820E002C 8A300000 8A500001 8A700002 8A900003 @@ -3268,9 +3268,9 @@ C022AE28 3D808036 7E84A378 38840001 7C032000 41820008 4800000C 38600000 -987C0019 BA8100B0 -CBE100E0 CBC100E8 -800100F4 382100F0 +987C0019 B9C100B0 +CBE100F8 CBC10100 +8001010C 38210108 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 @@ -4356,7 +4356,7 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 4E800021 7C0802A6 90010004 -9421FF20 BE8100B0 +9421FF08 BDC100B0 7C731B78 80730008 2C030000 40820344 3C60804A 3BA304F0 @@ -4468,8 +4468,8 @@ A09C0000 3D808022 7F6802A6 387B0004 7C6903A6 4E800421 387B0008 7C6903A6 -4E800421 BA8100B0 -800100E4 382100E0 +4E800421 B9C100B0 +800100FC 382100F8 7C0803A6 4E800021 803EB57C 430C0000 803EB684 07000000 @@ -5608,10 +5608,10 @@ BA8100B0 800100E4 C20056B4 00000063 #Online/Static/SubtextFunctions.asm 2C050002 41820228 7C0802A6 90010004 -9421FEF0 BE8100B0 -DBE100E0 DBC100E8 -DBA100F0 DB8100F8 -DB610100 DB410108 +9421FED8 BDC100B0 +DBE100F8 DBC10100 +DBA10108 DB810110 +DB610118 DB410120 7C751B78 7C962378 7CB82B78 7CD93378 90E10008 9101000C @@ -5670,11 +5670,11 @@ FC20F890 FC40F890 8141001C 3D80803A 618C70A0 7D8903A6 4E800421 7EE3BB78 -BA8100B0 CBE100E0 -CBC100E8 CBA100F0 -CB8100F8 CB610100 -CB410108 80010114 -38210110 7C0803A6 +B9C100B0 CBE100F8 +CBC10100 CBA10108 +CB810110 CB610118 +CB410120 8001012C +38210128 7C0803A6 4E800020 7C0802A6 90010004 9421FF00 BE8100B0 DBE100E0 From adf85d157dbc1cbeff1e81d4d2d2ec83cad61852 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 1 Sep 2022 19:59:22 -0400 Subject: [PATCH 144/217] require at least 0.1 pos difference before desync --- Online/Core/StartEngineLoop.asm | 66 +++++-- Output/Netplay/GALE01r2.ini | 334 +++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 334 +++++++++++++++++--------------- 3 files changed, 399 insertions(+), 335 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index ffef4dd0..e2bd93a3 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -69,6 +69,8 @@ bl FN_COMPUTE_CHECKSUM_HELPER lwz r4, 0xB4(REG_PLAYER_STATIC_ADDRESS) # Get secondary player entity obj (gobj?) (sheik/nana) bl FN_COMPUTE_CHECKSUM_HELPER mr REG_CHECKSUM, r3 +lbz r4, 0x8E(REG_PLAYER_STATIC_ADDRESS) # Load stocks +xor REG_CHECKSUM, REG_CHECKSUM, r4 # Load stocks in case players start new game with diff values FN_COMPUTE_CHECKSUM_LOOP_CONTINUE: addi REG_PLAYER_STATIC_ADDRESS, REG_PLAYER_STATIC_ADDRESS, 0xE90 cmpw REG_PLAYER_STATIC_ADDRESS, REG_LAST_PLAYER_ADDRESS @@ -85,22 +87,60 @@ blr # ------------------------------------------------------------------------------ # Output: [r3] Checksum ################################################################################ +.set REG_CHAR_DATA, 31 +.set REG_CHECKSUM, 30 + +.set SPO_10, 0 # Float +.set SPO_FLOAT_TX_HIGH, SPO_10 + 4 # Double High +.set SPO_FLOAT_TX_LOW, SPO_FLOAT_TX_HIGH + 4 # Double Low +.set SPACE_NEEDED, SPO_FLOAT_TX_LOW + 4 + FN_COMPUTE_CHECKSUM_HELPER: +backup SPACE_NEEDED +mr REG_CHECKSUM, r3 cmpwi r4, 0 beq FN_COMPUTE_CHECKSUM_HELPER_EXIT -lwz r5, 0x2C(r4) # Fetch char data -lwz r4, 0x10(r5) # ActionStateID -xor r3, r3, r4 -lwz r4, 0xB0(r5) # Position X -xor r3, r3, r4 -lwz r4, 0xB4(r5) # Position Y -xor r3, r3, r4 -lwz r4, 0x1830(r5) # Percent damage -xor r3, r3, r4 -lwz r4, 0x8(r5) # Spawn #. Starts as 1 and 2 then after someone respawns they become 3 and so on -xor r3, r3, r4 -# logf LOG_LEVEL_INFO, "[SEL] Checksum Values: %08x | %08x | %08x | %08x | %08x", "lwz r9, 0x8(r5)", "lwz r8, 0x1830(r5)", "lwz r7, 0xB4(r5)", "lwz r6, 0xB0(r5)", "lwz r5, 0x10(r5)" +lwz REG_CHAR_DATA, 0x2C(r4) # Fetch char data + +# Store floating point 10 in the stack +load r4, 0x41200000 +stw r4, SPO_10(sp) + +# Load some character data and xor into the checksum +lwz r4, 0x10(REG_CHAR_DATA) # ActionStateID +xor REG_CHECKSUM, REG_CHECKSUM, r4 +lfs f1, 0xB0(REG_CHAR_DATA) # Position X +lfs f2, SPO_10(sp) +fmuls f1, f1, f2 +fctiwz f1, f1 +stfd f1, SPO_FLOAT_TX_HIGH(sp) +lwz r4, SPO_FLOAT_TX_LOW(sp) # Position X * 10 and cast to int +xor REG_CHECKSUM, REG_CHECKSUM, r4 +lfs f1, 0xB4(REG_CHAR_DATA) # Position Y +lfs f2, SPO_10(sp) +fmuls f1, f1, f2 +fctiwz f1, f1 +stfd f1, SPO_FLOAT_TX_HIGH(sp) +lwz r4, SPO_FLOAT_TX_LOW(sp) # Position Y * 10 and cast to int +xor REG_CHECKSUM, REG_CHECKSUM, r4 +lwz r4, 0x1830(REG_CHAR_DATA) # Percent damage +xor REG_CHECKSUM, REG_CHECKSUM, r4 +lwz r4, 0x8(REG_CHAR_DATA) # Spawn #. Starts as 1 and 2 then after someone respawns they become 3 and so on +xor REG_CHECKSUM, REG_CHECKSUM, r4 + +# Logging stuff +# lfs f1, 0xB0(REG_CHAR_DATA) # Pos X full precision +# lfs f2, 0xB4(REG_CHAR_DATA) # Pos Y full precision +# lfs f3, 0x1830(REG_CHAR_DATA) # Percent +# lwz r5, 0x10(REG_CHAR_DATA) # ActionStateId +# lwz r6, 0xB0(REG_CHAR_DATA) # Pos X +# lwz r7, 0xB4(REG_CHAR_DATA) # Pos Y +# lwz r8, 0x8(REG_CHAR_DATA) # Number of spawns +# logf LOG_LEVEL_WARN, "[SEL] Checksum Values: %X | %f (%08X) | %f (%08X) | %f | %d" + FN_COMPUTE_CHECKSUM_HELPER_EXIT: +mr r3, REG_CHECKSUM +restore SPACE_NEEDED blr ################################################################################ @@ -388,7 +428,7 @@ stw REG_FRAME_INDEX, DDLE_FRAME(REG_DESYNC_ENTRY_ADDRESS) # Compute and write the checksum bl FN_COMPUTE_CHECKSUM stw r3, DDLE_CHECKSUM(REG_DESYNC_ENTRY_ADDRESS) -# logf LOG_LEVEL_INFO, "Local checksum value %d: %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 3" +# logf LOG_LEVEL_WARN, "Local checksum value %d: %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 3" # Write timer loadwz r3, 0x8046B6C8 # Seconds remaining diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 2086c4b8..99ca42d9 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1556,10 +1556,10 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000B8 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000C4 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -480001AC 4E800021 +48000210 4E800021 3FA66666 C2340000 3D8F5C29 FF0000FF 44495343 4F4E4E45 @@ -1573,174 +1573,186 @@ CDFFB800 FF444553 3FE08045 63FF3080 3FA08045 63BD5C30 3BC00000 7FC3F378 -809F00B0 48000035 -809F00B4 4800002D -7C7E1B78 3BFF0E90 -7C1FE800 4081FFE0 +809F00B0 4800003D +809F00B4 48000035 +7C7E1B78 889F008E +7FDE2278 3BFF0E90 +7C1FE800 4081FFD8 7FC3F378 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -2C040000 41820030 -80A4002C 80850010 -7C632278 808500B0 -7C632278 808500B4 -7C632278 80851830 -7C632278 80850008 -7C632278 4E800020 7C0802A6 90010004 -9421FF20 BE8100B0 -7C7D1B78 4BFFFF11 -7FE802A6 7FFF2214 -C03F0000 C05F0004 -7FA3EB78 389F0010 -3D80803A 618C6B98 -7D8903A6 4E800421 -7C7E1B78 7FA3EB78 -7FC4F378 C03F0008 -C05F0008 3D80803A -618C7548 7D8903A6 -4E800421 7FA3EB78 -7FC4F378 38BF000C -3D80803A 618C74F0 -7D8903A6 4E800421 -7FC3F378 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -886DAFA0 2C030000 -40820028 818DB61C -3C608046 6063B6A0 -888C0001 98830001 -38800007 98830008 -38800037 988324D5 +9421FFBC BE810014 +7C7E1B78 2C040000 +41820064 83E4002C +3C804120 60840000 +90810000 809F0010 +7FDE2278 C03F00B0 +C0410000 EC2100B2 +FC20081E D8210004 +80810008 7FDE2278 +C03F00B4 C0410000 +EC2100B2 FC20081E +D8210004 80810008 +7FDE2278 809F1830 +7FDE2278 809F0008 +7FDE2278 7FC3F378 +BA810014 80010048 +38210044 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 -BE8100B0 3C608048 -80639D30 5463443E -2C030208 408203CC -3C608047 60639D64 -80630000 2C030000 -408203B8 83CDB61C -3FE08048 83FF9D60 -839E00DA 3D808034 -618C7364 7D8903A6 -4E800421 7C791B78 -887E0011 2C030000 -4082003C 887E0010 -2C030000 41820030 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0911 -38800000 4BFFFEA5 -38600001 987E0011 -4BFFFF31 887E08FE -2C030000 418200B0 -887E0903 2C030000 -41820094 807E0904 -7C1F1800 41820024 -41800094 807E039F -809E0904 80BE03A3 -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E038C 907E0003 -38600000 987E038B -987E039C 987E039D -987E039E 987E00DF -987E0903 3D808001 -618C95FC 7D8903A6 -4E800421 807E0919 -7C1F1800 4181000C -7FE3FB78 48000004 -809E0908 7C032000 -40810008 907E0908 -807E0921 38630001 -7C63F851 889E0925 -41800020 88DE0925 -38C60001 2C060015 -41800008 38C00000 -98DE0925 93FE0921 -38A00015 7C841A14 -7CC42BD6 7CC629D6 -7CC62050 7C853214 -7CC42BD6 7CC629D6 -7C862050 1C840018 -38640926 7FBE1A14 -93FD0000 4BFFFCBD -907D0004 3C608046 -6063B6C8 80630000 -907D0008 3B000000 -7F03C378 3D808003 -618C42B4 7D8903A6 -4E800421 1C980003 -3884000D 7C7D232E -7F03C378 3D808003 -618C3BD8 7D8903A6 -4E800421 1C980003 -3884000C 7C7D21AE -3B180001 2C180004 -4180FFB8 2C1F0000 -418200CC 3BA00000 -887E0012 2C030000 -408200E8 39800000 -1C6C0008 38630002 -7D7C1A14 814B0000 -807E0908 7C0A1800 -4181008C 2C0A0054 -40810084 39200000 -1C690018 38630926 -7D1E1A14 80680000 -7C0A1800 4082005C -2C1D0000 41820010 -80680000 2C0A0003 -40800008 7D1D4378 -80680004 808B0004 -7C032000 41820040 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0911 -3880001D 4BFFFC4D -38600001 987E0012 -4BFFFCD9 4800004C -39290001 2C090015 -4180FF88 398C0001 -887C0001 7C0C1800 -4180FF50 2C1D0000 -41820028 807D0008 -907E0B1E 387E0B22 -389D000C 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -887E038B 2C030000 -4182002C 807E0908 -7C1F1800 40810020 -807E039F 7FE4FB78 -80BE03A3 3D808000 -618C5608 7D8903A6 -4E800421 887E000F -2C030001 41820058 -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -907E000B 48000038 -807E000B 2C030000 -40820008 93FE000B -807E000B 7C63F850 -2C030007 40810018 -38600001 987E000F -807E08FA 7C6903A6 -4E800421 7F23CB78 -3D808034 618C738C +BE8100B0 7C7D1B78 +4BFFFEAD 7FE802A6 +7FFF2214 C03F0000 +C05F0004 7FA3EB78 +389F0010 3D80803A +618C6B98 7D8903A6 +4E800421 7C7E1B78 +7FA3EB78 7FC4F378 +C03F0008 C05F0008 +3D80803A 618C7548 7D8903A6 4E800421 +7FA3EB78 7FC4F378 +38BF000C 3D80803A +618C74F0 7D8903A6 +4E800421 7FC3F378 BA8100B0 800100E4 382100E0 7C0803A6 -60000000 00000000 +4E800020 886DAFA0 +2C030000 40820028 +818DB61C 3C608046 +6063B6A0 888C0001 +98830001 38800007 +98830008 38800037 +988324D5 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +3C608048 80639D30 +5463443E 2C030208 +408203CC 3C608047 +60639D64 80630000 +2C030000 408203B8 +83CDB61C 3FE08048 +83FF9D60 839E00DA +3D808034 618C7364 +7D8903A6 4E800421 +7C791B78 887E0011 +2C030000 4082003C +887E0010 2C030000 +41820030 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0911 38800000 +4BFFFEA5 38600001 +987E0011 4BFFFF31 +887E08FE 2C030000 +418200B0 887E0903 +2C030000 41820094 +807E0904 7C1F1800 +41820024 41800094 +807E039F 809E0904 +80BE03A3 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E038C +907E0003 38600000 +987E038B 987E039C +987E039D 987E039E +987E00DF 987E0903 +3D808001 618C95FC +7D8903A6 4E800421 +807E0919 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0908 +7C032000 40810008 +907E0908 807E0921 +38630001 7C63F851 +889E0925 41800020 +88DE0925 38C60001 +2C060015 41800008 +38C00000 98DE0925 +93FE0921 38A00015 +7C841A14 7CC42BD6 +7CC629D6 7CC62050 +7C853214 7CC42BD6 +7CC629D6 7C862050 +1C840018 38640926 +7FBE1A14 93FD0000 +4BFFFC59 907D0004 +3C608046 6063B6C8 +80630000 907D0008 +3B000000 7F03C378 +3D808003 618C42B4 +7D8903A6 4E800421 +1C980003 3884000D +7C7D232E 7F03C378 +3D808003 618C3BD8 +7D8903A6 4E800421 +1C980003 3884000C +7C7D21AE 3B180001 +2C180004 4180FFB8 +2C1F0000 418200CC +3BA00000 887E0012 +2C030000 408200E8 +39800000 1C6C0008 +38630002 7D7C1A14 +814B0000 807E0908 +7C0A1800 4181008C +2C0A0054 40810084 +39200000 1C690018 +38630926 7D1E1A14 +80680000 7C0A1800 +4082005C 2C1D0000 +41820010 80680000 +2C0A0003 40800008 +7D1D4378 80680004 +808B0004 7C032000 +41820040 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0911 3880001D +4BFFFC4D 38600001 +987E0012 4BFFFCD9 +4800004C 39290001 +2C090015 4180FF88 +398C0001 887C0001 +7C0C1800 4180FF50 +2C1D0000 41820028 +807D0008 907E0B1E +387E0B22 389D000C +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 887E038B +2C030000 4182002C +807E0908 7C1F1800 +40810020 807E039F +7FE4FB78 80BE03A3 +3D808000 618C5608 +7D8903A6 4E800421 +887E000F 2C030001 +41820058 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 907E000B +48000038 807E000B +2C030000 40820008 +93FE000B 807E000B +7C63F850 2C030007 +40810018 38600001 +987E000F 807E08FA +7C6903A6 4E800421 +7F23CB78 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 00000000 C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index bd42762b..4cca92db 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1556,10 +1556,10 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000B8 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000C4 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 -480001AC 4E800021 +48000210 4E800021 3FA66666 C2340000 3D8F5C29 FF0000FF 44495343 4F4E4E45 @@ -1573,174 +1573,186 @@ CDFFB800 FF444553 3FE08045 63FF3080 3FA08045 63BD5C30 3BC00000 7FC3F378 -809F00B0 48000035 -809F00B4 4800002D -7C7E1B78 3BFF0E90 -7C1FE800 4081FFE0 +809F00B0 4800003D +809F00B4 48000035 +7C7E1B78 889F008E +7FDE2278 3BFF0E90 +7C1FE800 4081FFD8 7FC3F378 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -2C040000 41820030 -80A4002C 80850010 -7C632278 808500B0 -7C632278 808500B4 -7C632278 80851830 -7C632278 80850008 -7C632278 4E800020 7C0802A6 90010004 -9421FF20 BE8100B0 -7C7D1B78 4BFFFF11 -7FE802A6 7FFF2214 -C03F0000 C05F0004 -7FA3EB78 389F0010 -3D80803A 618C6B98 -7D8903A6 4E800421 -7C7E1B78 7FA3EB78 -7FC4F378 C03F0008 -C05F0008 3D80803A -618C7548 7D8903A6 -4E800421 7FA3EB78 -7FC4F378 38BF000C -3D80803A 618C74F0 -7D8903A6 4E800421 -7FC3F378 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -886DAFA0 2C030000 -40820028 818DB61C -3C608046 6063B6A0 -888C0001 98830001 -38800007 98830008 -38800037 988324D5 +9421FFBC BE810014 +7C7E1B78 2C040000 +41820064 83E4002C +3C804120 60840000 +90810000 809F0010 +7FDE2278 C03F00B0 +C0410000 EC2100B2 +FC20081E D8210004 +80810008 7FDE2278 +C03F00B4 C0410000 +EC2100B2 FC20081E +D8210004 80810008 +7FDE2278 809F1830 +7FDE2278 809F0008 +7FDE2278 7FC3F378 +BA810014 80010048 +38210044 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 -BE8100B0 3C608048 -80639D30 5463443E -2C030208 408203CC -3C608047 60639D64 -80630000 2C030000 -408203B8 83CDB61C -3FE08048 83FF9D60 -839E00DA 3D808034 -618C7364 7D8903A6 -4E800421 7C791B78 -887E0011 2C030000 -4082003C 887E0010 -2C030000 41820030 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0911 -38800000 4BFFFEA5 -38600001 987E0011 -4BFFFF31 887E08FE -2C030000 418200B0 -887E0903 2C030000 -41820094 807E0904 -7C1F1800 41820024 -41800094 807E039F -809E0904 80BE03A3 -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E038C 907E0003 -38600000 987E038B -987E039C 987E039D -987E039E 987E00DF -987E0903 3D808001 -618C95FC 7D8903A6 -4E800421 807E0919 -7C1F1800 4181000C -7FE3FB78 48000004 -809E0908 7C032000 -40810008 907E0908 -807E0921 38630001 -7C63F851 889E0925 -41800020 88DE0925 -38C60001 2C060015 -41800008 38C00000 -98DE0925 93FE0921 -38A00015 7C841A14 -7CC42BD6 7CC629D6 -7CC62050 7C853214 -7CC42BD6 7CC629D6 -7C862050 1C840018 -38640926 7FBE1A14 -93FD0000 4BFFFCBD -907D0004 3C608046 -6063B6C8 80630000 -907D0008 3B000000 -7F03C378 3D808003 -618C42B4 7D8903A6 -4E800421 1C980003 -3884000D 7C7D232E -7F03C378 3D808003 -618C3BD8 7D8903A6 -4E800421 1C980003 -3884000C 7C7D21AE -3B180001 2C180004 -4180FFB8 2C1F0000 -418200CC 3BA00000 -887E0012 2C030000 -408200E8 39800000 -1C6C0008 38630002 -7D7C1A14 814B0000 -807E0908 7C0A1800 -4181008C 2C0A0054 -40810084 39200000 -1C690018 38630926 -7D1E1A14 80680000 -7C0A1800 4082005C -2C1D0000 41820010 -80680000 2C0A0003 -40800008 7D1D4378 -80680004 808B0004 -7C032000 41820040 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0911 -3880001D 4BFFFC4D -38600001 987E0012 -4BFFFCD9 4800004C -39290001 2C090015 -4180FF88 398C0001 -887C0001 7C0C1800 -4180FF50 2C1D0000 -41820028 807D0008 -907E0B1E 387E0B22 -389D000C 38A0000C -3D808000 618C31F4 -7D8903A6 4E800421 -887E038B 2C030000 -4182002C 807E0908 -7C1F1800 40810020 -807E039F 7FE4FB78 -80BE03A3 3D808000 -618C5608 7D8903A6 -4E800421 887E000F -2C030001 41820058 -3C608046 6063B6A0 -88630008 2C030000 -40820010 38600000 -907E000B 48000038 -807E000B 2C030000 -40820008 93FE000B -807E000B 7C63F850 -2C030007 40810018 -38600001 987E000F -807E08FA 7C6903A6 -4E800421 7F23CB78 -3D808034 618C738C +BE8100B0 7C7D1B78 +4BFFFEAD 7FE802A6 +7FFF2214 C03F0000 +C05F0004 7FA3EB78 +389F0010 3D80803A +618C6B98 7D8903A6 +4E800421 7C7E1B78 +7FA3EB78 7FC4F378 +C03F0008 C05F0008 +3D80803A 618C7548 7D8903A6 4E800421 +7FA3EB78 7FC4F378 +38BF000C 3D80803A +618C74F0 7D8903A6 +4E800421 7FC3F378 BA8100B0 800100E4 382100E0 7C0803A6 -60000000 00000000 +4E800020 886DAFA0 +2C030000 40820028 +818DB61C 3C608046 +6063B6A0 888C0001 +98830001 38800007 +98830008 38800037 +988324D5 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +3C608048 80639D30 +5463443E 2C030208 +408203CC 3C608047 +60639D64 80630000 +2C030000 408203B8 +83CDB61C 3FE08048 +83FF9D60 839E00DA +3D808034 618C7364 +7D8903A6 4E800421 +7C791B78 887E0011 +2C030000 4082003C +887E0010 2C030000 +41820030 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0911 38800000 +4BFFFEA5 38600001 +987E0011 4BFFFF31 +887E08FE 2C030000 +418200B0 887E0903 +2C030000 41820094 +807E0904 7C1F1800 +41820024 41800094 +807E039F 809E0904 +80BE03A3 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E038C +907E0003 38600000 +987E038B 987E039C +987E039D 987E039E +987E00DF 987E0903 +3D808001 618C95FC +7D8903A6 4E800421 +807E0919 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0908 +7C032000 40810008 +907E0908 807E0921 +38630001 7C63F851 +889E0925 41800020 +88DE0925 38C60001 +2C060015 41800008 +38C00000 98DE0925 +93FE0921 38A00015 +7C841A14 7CC42BD6 +7CC629D6 7CC62050 +7C853214 7CC42BD6 +7CC629D6 7C862050 +1C840018 38640926 +7FBE1A14 93FD0000 +4BFFFC59 907D0004 +3C608046 6063B6C8 +80630000 907D0008 +3B000000 7F03C378 +3D808003 618C42B4 +7D8903A6 4E800421 +1C980003 3884000D +7C7D232E 7F03C378 +3D808003 618C3BD8 +7D8903A6 4E800421 +1C980003 3884000C +7C7D21AE 3B180001 +2C180004 4180FFB8 +2C1F0000 418200CC +3BA00000 887E0012 +2C030000 408200E8 +39800000 1C6C0008 +38630002 7D7C1A14 +814B0000 807E0908 +7C0A1800 4181008C +2C0A0054 40810084 +39200000 1C690018 +38630926 7D1E1A14 +80680000 7C0A1800 +4082005C 2C1D0000 +41820010 80680000 +2C0A0003 40800008 +7D1D4378 80680004 +808B0004 7C032000 +41820040 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0911 3880001D +4BFFFC4D 38600001 +987E0012 4BFFFCD9 +4800004C 39290001 +2C090015 4180FF88 +398C0001 887C0001 +7C0C1800 4180FF50 +2C1D0000 41820028 +807D0008 907E0B1E +387E0B22 389D000C +38A0000C 3D808000 +618C31F4 7D8903A6 +4E800421 887E038B +2C030000 4182002C +807E0908 7C1F1800 +40810020 807E039F +7FE4FB78 80BE03A3 +3D808000 618C5608 +7D8903A6 4E800421 +887E000F 2C030001 +41820058 3C608046 +6063B6A0 88630008 +2C030000 40820010 +38600000 907E000B +48000038 807E000B +2C030000 40820008 +93FE000B 807E000B +7C63F850 2C030007 +40810018 38600001 +987E000F 807E08FA +7C6903A6 4E800421 +7F23CB78 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 00000000 C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF20 BE8100B0 From 63913f933710968760cee73e387680c67b661d34 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 8 Sep 2022 12:32:00 -0400 Subject: [PATCH 145/217] fix stack offset bug probably wasn't actually causing any problems because we werent calling any functions --- Online/Core/StartEngineLoop.asm | 2 +- Output/Netplay/GALE01r2.ini | 18 +++++++++--------- Output/Netplay/GALJ01r2.ini | 18 +++++++++--------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index e2bd93a3..74266f0b 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -90,7 +90,7 @@ blr .set REG_CHAR_DATA, 31 .set REG_CHECKSUM, 30 -.set SPO_10, 0 # Float +.set SPO_10, BKP_FREE_SPACE_OFFSET # Float .set SPO_FLOAT_TX_HIGH, SPO_10 + 4 # Double High .set SPO_FLOAT_TX_LOW, SPO_FLOAT_TX_HIGH + 4 # Double Low .set SPACE_NEEDED, SPO_FLOAT_TX_LOW + 4 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 99ca42d9..25a0234a 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1582,23 +1582,23 @@ CDFFB800 FF444553 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FFBC BE810014 +9421FFB4 BE81001C 7C7E1B78 2C040000 41820064 83E4002C 3C804120 60840000 -90810000 809F0010 +90810008 809F0010 7FDE2278 C03F00B0 -C0410000 EC2100B2 -FC20081E D8210004 -80810008 7FDE2278 -C03F00B4 C0410000 +C0410008 EC2100B2 +FC20081E D821000C +80810010 7FDE2278 +C03F00B4 C0410008 EC2100B2 FC20081E -D8210004 80810008 +D821000C 80810010 7FDE2278 809F1830 7FDE2278 809F0008 7FDE2278 7FC3F378 -BA810014 80010048 -38210044 7C0803A6 +BA81001C 80010050 +3821004C 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 7C7D1B78 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 4cca92db..af1aec1a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1582,23 +1582,23 @@ CDFFB800 FF444553 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 -9421FFBC BE810014 +9421FFB4 BE81001C 7C7E1B78 2C040000 41820064 83E4002C 3C804120 60840000 -90810000 809F0010 +90810008 809F0010 7FDE2278 C03F00B0 -C0410000 EC2100B2 -FC20081E D8210004 -80810008 7FDE2278 -C03F00B4 C0410000 +C0410008 EC2100B2 +FC20081E D821000C +80810010 7FDE2278 +C03F00B4 C0410008 EC2100B2 FC20081E -D8210004 80810008 +D821000C 80810010 7FDE2278 809F1830 7FDE2278 809F0008 7FDE2278 7FC3F378 -BA810014 80010048 -38210044 7C0803A6 +BA81001C 80010050 +3821004C 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 7C7D1B78 From 72c2b70443d64a6a45c0644b9ca836e96717a75e Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 8 Sep 2022 17:54:42 -0400 Subject: [PATCH 146/217] [PR] Desync detection improvements (#108) * add desync warning * build codeset * add loggers * fix incorrect instruction * adjust hud text positions --- Online/Core/StartEngineLoop.asm | 208 +++++++---- Online/Menus/InGame/InitInGame.asm | 2 +- Online/Online.s | 3 +- Output/Console/GALE01r2.ini | 4 +- Output/Console/g_core.bin | Bin 5344 -> 5344 bytes Output/Console/g_core_porta.bin | Bin 5344 -> 5344 bytes Output/Netplay/GALE01r2.ini | 573 +++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 573 +++++++++++++++-------------- 8 files changed, 725 insertions(+), 638 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 74266f0b..b6d848d5 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -13,6 +13,10 @@ .set REG_INPUT_PROCESS_COUNTER, 26 # From parent .set REG_INTERRUPT_IDX, 25 .set REG_LOOP_IDX, 24 +.set REG_REMOTE_DESYNC_ENTRY, 23 +.set REG_DESYNC_ENTRY_FRAME, 22 +.set REG_LOOP_IDX_2, 21 +.set REG_LOCAL_DESYNC_ENTRY, 20 # Replaced code branchl r12, HSD_PerfSetStartTime @@ -28,22 +32,31 @@ blrl # Text entry for disconnect text .set DOFST_DISCONNECT_TEXT_ENTRY, 0 -.float 1.3 # x-pos -.float -45 # y-pos -.float 0.07 # text size +.float 9 # x-pos +.float -162 # y-pos +.float 0.7 # text size .long 0xFF0000FF # text color .string "DISCONNECTED" # text .set DOFST_DISCONNECT_TEXT_ENTRY_SIZE, 16 + 13 # Text entry for desync text .set DOFST_DESYNC_TEXT_ENTRY, DOFST_DISCONNECT_TEXT_ENTRY + DOFST_DISCONNECT_TEXT_ENTRY_SIZE -.float 1.3 # x-pos -.float -43 # y-pos -.float 0.05 # text size +.float 9 # x-pos +.float -140 # y-pos +.float 0.5 # text size .long 0xFFB800FF # text color .string "DESYNC DETECTED" # text .set DOFST_DISCONNECT_TEXT_ENTRY_SIZE, 16 + 16 +# Text entry for desync risk +.set DOFST_DESYNC_RISK_TEXT_ENTRY, DOFST_DESYNC_TEXT_ENTRY + DOFST_DISCONNECT_TEXT_ENTRY_SIZE +.float 228 +.float 194 +.float 0.38 # text size +.long 0xFFB800FF # text color +.string "Desync Risk" # text +.set DOFST_DISCONNECT_TEXT_ENTRY_SIZE, 16 + 12 + .align 2 ################################################################################ @@ -53,80 +66,98 @@ blrl .set REG_CHECKSUM, 30 .set REG_LAST_PLAYER_ADDRESS, 29 +.set SPO_CHECKSUM, BKP_FREE_SPACE_OFFSET +.set SPO_FLOAT_SUM, SPO_CHECKSUM + 4 +.set SPO_FTI_CAST_HIGH, SPO_FLOAT_SUM + 4 +.set SPO_FTI_CAST_LOW, SPO_FTI_CAST_HIGH + 4 +.set SPACE_NEEDED, SPO_FTI_CAST_LOW + 4 + FN_COMPUTE_CHECKSUM: -backup +backup SPACE_NEEDED load REG_PLAYER_STATIC_ADDRESS, 0x80453080 load REG_LAST_PLAYER_ADDRESS, 0x80455C30 -li REG_CHECKSUM, 0 + +# Initialize checksum and pos to 0 +li r3, 0 +stw r3, SPO_CHECKSUM(sp) +stw r3, SPO_FLOAT_SUM(sp) FN_COMPUTE_CHECKSUM_LOOP_START: # The helper function will do nothing if the player entity obj's are zero, so missing players # will be ignored correctly in the checksum -mr r3, REG_CHECKSUM +addi r3, sp, SPO_CHECKSUM lwz r4, 0xB0(REG_PLAYER_STATIC_ADDRESS) # Get player entity obj (gobj?) bl FN_COMPUTE_CHECKSUM_HELPER +addi r3, sp, SPO_CHECKSUM lwz r4, 0xB4(REG_PLAYER_STATIC_ADDRESS) # Get secondary player entity obj (gobj?) (sheik/nana) bl FN_COMPUTE_CHECKSUM_HELPER -mr REG_CHECKSUM, r3 +lwz REG_CHECKSUM, SPO_CHECKSUM(sp) lbz r4, 0x8E(REG_PLAYER_STATIC_ADDRESS) # Load stocks xor REG_CHECKSUM, REG_CHECKSUM, r4 # Load stocks in case players start new game with diff values +stw REG_CHECKSUM, SPO_CHECKSUM(sp) FN_COMPUTE_CHECKSUM_LOOP_CONTINUE: addi REG_PLAYER_STATIC_ADDRESS, REG_PLAYER_STATIC_ADDRESS, 0xE90 cmpw REG_PLAYER_STATIC_ADDRESS, REG_LAST_PLAYER_ADDRESS ble FN_COMPUTE_CHECKSUM_LOOP_START # Loops until we have processed all 4 potential players -mr r3, REG_CHECKSUM -restore +# Now we split the checksum into two parts, the upper two bytes will be the "full" +# checksum that will serve as a warning. The lower two bytes will only contain the +# casted sum of positions and percents which can be subtracted to allow for slight +# tolerances. These lower bytes will be the "hard" desync detection method +lhz r3, SPO_CHECKSUM(sp) +lhz r4, 2+SPO_CHECKSUM(sp) +xor r3, r3, r4 # Combine the first 16 bits and last 16 bits of checksum +rlwinm r3, r3, 16, 0xFFFFFFFF +lfs f1, SPO_FLOAT_SUM(sp) +fctiwz f1, f1 # Casts float to int +stfd f1, SPO_FTI_CAST_HIGH(sp) +lhz r4, 2+SPO_FTI_CAST_LOW(sp) +or r3, r3, r4 # Combined checksum and float sum + +restore SPACE_NEEDED blr ################################################################################ # Helper function for computing checksum # ------------------------------------------------------------------------------ -# Inputs: [r3] Checksum, [r4] PlayerEntityGobj -# ------------------------------------------------------------------------------ -# Output: [r3] Checksum +# Inputs: [r3] ChecksumAndPosPtr, [r4] PlayerEntityGobj ################################################################################ -.set REG_CHAR_DATA, 31 -.set REG_CHECKSUM, 30 - -.set SPO_10, BKP_FREE_SPACE_OFFSET # Float -.set SPO_FLOAT_TX_HIGH, SPO_10 + 4 # Double High -.set SPO_FLOAT_TX_LOW, SPO_FLOAT_TX_HIGH + 4 # Double Low -.set SPACE_NEEDED, SPO_FLOAT_TX_LOW + 4 +.set REG_CHAR_DATA, 12 +.set REG_CHKSM_FSUM_PTR, 11 +.set REG_CHECKSUM, 10 +.set FREG_SUM, 12 FN_COMPUTE_CHECKSUM_HELPER: -backup SPACE_NEEDED -mr REG_CHECKSUM, r3 cmpwi r4, 0 -beq FN_COMPUTE_CHECKSUM_HELPER_EXIT +beq FN_COMPUTE_CHECKSUM_HELPER_EXIT # Exit function if no player ptr lwz REG_CHAR_DATA, 0x2C(r4) # Fetch char data -# Store floating point 10 in the stack -load r4, 0x41200000 -stw r4, SPO_10(sp) +mr REG_CHKSM_FSUM_PTR, r3 # Load some character data and xor into the checksum +lwz REG_CHECKSUM, 0x0(REG_CHKSM_FSUM_PTR) lwz r4, 0x10(REG_CHAR_DATA) # ActionStateID xor REG_CHECKSUM, REG_CHECKSUM, r4 -lfs f1, 0xB0(REG_CHAR_DATA) # Position X -lfs f2, SPO_10(sp) -fmuls f1, f1, f2 -fctiwz f1, f1 -stfd f1, SPO_FLOAT_TX_HIGH(sp) -lwz r4, SPO_FLOAT_TX_LOW(sp) # Position X * 10 and cast to int +lwz r4, 0xB0(REG_CHAR_DATA) # Position X xor REG_CHECKSUM, REG_CHECKSUM, r4 -lfs f1, 0xB4(REG_CHAR_DATA) # Position Y -lfs f2, SPO_10(sp) -fmuls f1, f1, f2 -fctiwz f1, f1 -stfd f1, SPO_FLOAT_TX_HIGH(sp) -lwz r4, SPO_FLOAT_TX_LOW(sp) # Position Y * 10 and cast to int +lwz r4, 0xB4(REG_CHAR_DATA) # Position Y xor REG_CHECKSUM, REG_CHECKSUM, r4 lwz r4, 0x1830(REG_CHAR_DATA) # Percent damage xor REG_CHECKSUM, REG_CHECKSUM, r4 lwz r4, 0x8(REG_CHAR_DATA) # Spawn #. Starts as 1 and 2 then after someone respawns they become 3 and so on xor REG_CHECKSUM, REG_CHECKSUM, r4 +stw REG_CHECKSUM, 0x0(REG_CHKSM_FSUM_PTR) + +# Load positions/percent and sum them all to keep track of a value that can be compared +lfs FREG_SUM, 0x4(REG_CHKSM_FSUM_PTR) +lfs f1, 0xB0(REG_CHAR_DATA) # Position X +fadds FREG_SUM, FREG_SUM, f1 +lfs f1, 0xB4(REG_CHAR_DATA) # Position Y +fadds FREG_SUM, FREG_SUM, f1 +lfs f1, 0x1830(REG_CHAR_DATA) # Percent damage +fadds FREG_SUM, FREG_SUM, f1 +stfs FREG_SUM, 0x4(REG_CHKSM_FSUM_PTR) # Logging stuff # lfs f1, 0xB0(REG_CHAR_DATA) # Pos X full precision @@ -139,8 +170,6 @@ xor REG_CHECKSUM, REG_CHECKSUM, r4 # logf LOG_LEVEL_WARN, "[SEL] Checksum Values: %X | %f (%08X) | %f (%08X) | %f | %d" FN_COMPUTE_CHECKSUM_HELPER_EXIT: -mr r3, REG_CHECKSUM -restore SPACE_NEEDED blr ################################################################################ @@ -472,50 +501,57 @@ lbz r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) cmpwi r3, 0 bne DESYNC_CHECK_EXIT -li r12, 0 # Player index +li REG_LOOP_IDX, 0 # Player index CHECKSUM_CHECK_PLAYER_LOOP_START: -mulli r3, r12, DDRE_SIZE +mulli r3, REG_LOOP_IDX, DDRE_SIZE addi r3, r3, RXB_OPNT_DESYNC_ENTRY -add r11, REG_REMOTE_RXB, r3 # r11 now stores desync entry address for this remote player -lwz r10, DDRE_FRAME(r11) # r10 now contains the desync entry frame +add REG_REMOTE_DESYNC_ENTRY, REG_REMOTE_RXB, r3 # now stores desync entry address for this remote player +lwz REG_DESYNC_ENTRY_FRAME, DDRE_FRAME(REG_REMOTE_DESYNC_ENTRY) # now contains the desync entry frame lwz r3, ODB_STABLE_FINALIZED_FRAME(REG_ODB_ADDRESS) -# logf LOG_LEVEL_ERROR, "[SEL] [%d] Checksum for Idx %d. StableFinalized: %d. Looking for %d -> %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 3", "mr r8, 10", "lwz r9, DDRE_CHECKSUM(r11)" -cmpw r10, r3 # If this checksum frame is greater than our stable finalized frame, skip for now +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Checksum for Idx %d. StableFinalized: %d. Looking for %d -> %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 3", "mr r8, 10", "lwz r9, DDRE_CHECKSUM(REG_REMOTE_DESYNC_ENTRY)" +cmpw REG_DESYNC_ENTRY_FRAME, r3 # If this checksum frame is greater than our stable finalized frame, skip for now bgt CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE -cmpwi r10, UNFREEZE_INPUTS_FRAME +cmpwi REG_DESYNC_ENTRY_FRAME, UNFREEZE_INPUTS_FRAME ble CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE # Now we loop through all of our local frames to find the entry that matches -li r9, 0 +li REG_LOOP_IDX_2, 0 FIND_CHECKSUM_LOOP_START: -mulli r3, r9, DDLE_SIZE +mulli r3, REG_LOOP_IDX_2, DDLE_SIZE addi r3, r3, ODB_LOCAL_DESYNC_ARR -add r8, REG_ODB_ADDRESS, r3 # r8 now contains the desync entry for our local player -lwz r3, DDLE_FRAME(r8) -cmpw r10, r3 +add REG_LOCAL_DESYNC_ENTRY, REG_ODB_ADDRESS, r3 # now contains the desync entry for our local player +lwz r3, DDLE_FRAME(REG_LOCAL_DESYNC_ENTRY) +cmpw REG_DESYNC_ENTRY_FRAME, r3 bne FIND_CHECKSUM_LOOP_CONTINUE # Here we have found the desync entry for the latest finalized frame # Store this desync entry if it is the first encountered cmpwi REG_DESYNC_ENTRY_ADDRESS, 0 beq CONFIRMED_SYNC_SET -lwz r3, DDLE_FRAME(r8) -cmpwi r10, r3 # If the current frame is later than the stored one, don't switch +lwz r3, DDLE_FRAME(REG_LOCAL_DESYNC_ENTRY) +cmpwi REG_DESYNC_ENTRY_FRAME, r3 # If the current frame is later than the stored one, don't switch bge SKIP_CONFIRMED_SYNC_SET CONFIRMED_SYNC_SET: -mr REG_DESYNC_ENTRY_ADDRESS, r8 +mr REG_DESYNC_ENTRY_ADDRESS, REG_LOCAL_DESYNC_ENTRY SKIP_CONFIRMED_SYNC_SET: -# Compare remote and local checksums -lwz r3, DDLE_CHECKSUM(r8) -lwz r4, DDRE_CHECKSUM(r11) -# logf LOG_LEVEL_ERROR, "[SEL] [%d] Comparing Checksums. RemoteIdx: %d, Frame: %d, %08x vs %08x", "mr r5, REG_FRAME_INDEX", "mr r6, 12", "mr r7, 10", "mr r8, 3", "mr r9, 4" - -cmpw r3, r4 -beq FIND_CHECKSUM_LOOP_EXIT - -# Here we have detected a desync, It's okay that we're calling functions here and clobbering the -# volatile registers because we're about to exit the loops anyway -# logf LOG_LEVEL_ERROR, "[SEL] [%d] Desync detected on frame %d", "mr r5, REG_FRAME_INDEX", "mr r6, 10" +# Grab float sums from the clients +lhz r3, 2+DDLE_CHECKSUM(REG_LOCAL_DESYNC_ENTRY) +lhz r4, 2+DDRE_CHECKSUM(REG_REMOTE_DESYNC_ENTRY) + +# Subtract the float sums +extsh r3, r3 +extsh r4, r4 +# logf LOG_LEVEL_WARN, "[SEL] [%d] Hard Desync Check Values: %d vs %d", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "mr r7, 4" +sub r3, r3, r4 + +# Check if the sums are off by more than abs(1), if so, this is a hard desync +cmpwi r3, -1 +blt HARD_DESYNC_DETECTED +cmpwi r3, 1 +bgt HARD_DESYNC_DETECTED +b HARD_DESYNC_HANDLER_END +HARD_DESYNC_DETECTED: +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Hard Desync detected on frame %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_DESYNC_ENTRY_FRAME" # Play error sound li r3, 3 @@ -526,8 +562,7 @@ lwz r3, ODB_HUD_TEXT_STRUCT(REG_ODB_ADDRESS) li r4, DOFST_DESYNC_TEXT_ENTRY bl FN_CREATE_HUD_SUBTEXT -# Indicate desync has been detected so we don't continue looking. It might be worth being able -# to clear the desync status display.. in the case we get a spurious value? Not sure yet +# Indicate desync has been detected so we don't continue looking. li r3, 1 stb r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) @@ -535,16 +570,41 @@ stb r3, ODB_IS_DESYNC_STATE_DISPLAYED(REG_ODB_ADDRESS) bl FN_END_GAME_IF_RANKED b DESYNC_CHECK_EXIT +HARD_DESYNC_HANDLER_END: +lbz r3, ODB_IS_DESYNC_RISK_DISPLAYED(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne SOFT_DESYNC_HANDLER_END + +# Grab checksum values +lhz r3, DDLE_CHECKSUM(REG_LOCAL_DESYNC_ENTRY) +lhz r4, DDRE_CHECKSUM(REG_REMOTE_DESYNC_ENTRY) +# logf LOG_LEVEL_WARN, "[SEL] [%d] Soft Desync Check Values: %04X vs %04X", "mr r5, REG_FRAME_INDEX", "mr r6, 3", "mr r7, 4" +cmpw r3, r4 +beq SOFT_DESYNC_HANDLER_END +# logf LOG_LEVEL_ERROR, "[SEL] [%d] Soft Desync detected on frame %d", "mr r5, REG_FRAME_INDEX", "mr r6, REG_DESYNC_ENTRY_FRAME" + +# Create subtext +lwz r3, ODB_HUD_TEXT_STRUCT(REG_ODB_ADDRESS) +li r4, DOFST_DESYNC_RISK_TEXT_ENTRY +bl FN_CREATE_HUD_SUBTEXT + +# Indicate desync risk has been displayed so we dont display it again +li r3, 1 +stb r3, ODB_IS_DESYNC_RISK_DISPLAYED(REG_ODB_ADDRESS) + +SOFT_DESYNC_HANDLER_END: +b FIND_CHECKSUM_LOOP_EXIT + FIND_CHECKSUM_LOOP_CONTINUE: -addi r9, r9, 1 -cmpwi r9, DESYNC_ENTRY_COUNT +addi REG_LOOP_IDX_2, REG_LOOP_IDX_2, 1 +cmpwi REG_LOOP_IDX_2, DESYNC_ENTRY_COUNT blt FIND_CHECKSUM_LOOP_START FIND_CHECKSUM_LOOP_EXIT: CHECKSUM_CHECK_PLAYER_LOOP_CONTINUE: -addi r12, r12, 1 +addi REG_LOOP_IDX, REG_LOOP_IDX, 1 lbz r3, RXB_OPNT_COUNT(REG_REMOTE_RXB) -cmpw r12, r3 +cmpw REG_LOOP_IDX, r3 blt CHECKSUM_CHECK_PLAYER_LOOP_START CHECKSUM_CHECK_PLAYER_LOOP_EXIT: diff --git a/Online/Menus/InGame/InitInGame.asm b/Online/Menus/InGame/InitInGame.asm index 5f92867e..321c255b 100644 --- a/Online/Menus/InGame/InitInGame.asm +++ b/Online/Menus/InGame/InitInGame.asm @@ -21,7 +21,7 @@ blrl .set DOFST_TEXT_BASE_CANVAS_SCALING, DOFST_TEXT_BASE_Z + 4 .float 0.1 .set DOFST_TEXT_BASE_CANVAS_SCALING_1, DOFST_TEXT_BASE_CANVAS_SCALING + 4 -.float 1 +.float 0.1 # delay values .set DOFST_TEXT_X_POS, DOFST_TEXT_BASE_CANVAS_SCALING_1 + 4 diff --git a/Online/Online.s b/Online/Online.s index 98efbd5c..e82ef8e6 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -231,7 +231,8 @@ .set ODB_IS_DISCONNECTED, ODB_IS_GAME_OVER + 1 # bool .set ODB_IS_DISCONNECT_STATE_DISPLAYED, ODB_IS_DISCONNECTED + 1 # bool .set ODB_IS_DESYNC_STATE_DISPLAYED, ODB_IS_DISCONNECT_STATE_DISPLAYED + 1 # bool -.set ODB_IS_FRAME_ADVANCE, ODB_IS_DESYNC_STATE_DISPLAYED + 1 # bool +.set ODB_IS_DESYNC_RISK_DISPLAYED, ODB_IS_DESYNC_STATE_DISPLAYED + 1 # bool +.set ODB_IS_FRAME_ADVANCE, ODB_IS_DESYNC_RISK_DISPLAYED + 1 # bool .set ODB_LAST_LOCAL_INPUTS, ODB_IS_FRAME_ADVANCE + 1 # PAD_REPORT_SIZE .set ODB_DELAY_FRAMES, ODB_LAST_LOCAL_INPUTS + PAD_REPORT_SIZE # u8 .set ODB_DELAY_BUFFER_INDEX, ODB_DELAY_FRAMES + 1 # u8 diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 3c12ff16..6b0c7a4d 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -70,8 +70,8 @@ C23219EC 0000001D #Recording/FlushFrameBuffer.asm 80ADB61C 88850010 2C040000 4082002C 8885000F 2C040000 -40820020 80850908 -3884FF85 80E50915 +40820020 80850909 +3884FF85 80E50916 7C872050 7C041800 40800008 7C832378 907C0005 3BBD0009 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 2030a456205ddf69f45714b9fa22f4560f96cef1..3fa45e22c6b8bd2ffdd8f0aa7f5019e264fc85da 100644 GIT binary patch delta 22 ecmaE$`9O2Senw7Ci Date: Tue, 13 Sep 2022 17:51:00 -0400 Subject: [PATCH 147/217] trim m-ex codeset further using only scene related changes --- Binary/m-ex.bin | Bin 21000 -> 14456 bytes Bootloader/AddHeap.asm | 10 + Output/Bootloader/bootloader.gct | Bin 1344 -> 1352 bytes Output/Bootloader/bootloader.txt | 29 +- Output/Netplay/GALE01r2.ini | 854 +------------------------------ Output/Netplay/GALJ01r2.ini | 854 +------------------------------ 6 files changed, 61 insertions(+), 1686 deletions(-) create mode 100644 Bootloader/AddHeap.asm diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin index 07876107b6a3dc7d3786fb67f07566a49df313eb..81ea9555b8a2d20ed42f009a41a2e76f80e4f1fc 100644 GIT binary patch delta 148 zcmeBJ!uX>==8$>t76t}}m>LeIWfK?~Sf(icXV}-sz~RBb)HrzwV>Kh|WCbQWCdR9i z6PP4q8Y&nVCL}Rj0n#i$`i4aUgYJYR#uOmVnEZyxh>5XfvjTG*qe5_Uo?c2~3D9J} t1_njnis0nbyi_ndS2q=C$mC0GYLox4@7_0DAD%d@*yRO#I*6#*($%S=LfYQ?3Vk?6dOOhEA4wBE zv@g1!bSt$YoI6CCedz0KC($-*LY;b8hZ0fCm~i?TLG_z5PwW^QC8jIIrN<-K&ilZrXXOl#Fi5rY)6 z^a!mLm7`G1h}99n3Q;ji9VH_iE?s_b@m;JHT6xWHr!l-e*V>(=e)eW`r}E;P`yR2? z`)+C6Y+bgbDzJyTa{8_#D&kFq`?M7x=v>SX&D(?szf=ShzrAthErI`(v}6jWBLfp<@IC@(4Y zx=d3#nSog81K50BGLv+k@9WKaIBBF+Dx?$1J}CRJ>>WHRpBvCeT$(tZL+-PI=OFQ_ zphSX_TaX$nHbXHv5s^JJ3Q|b+EFehEVrH#NT&Dz{Lz0~%Aml37C~0)rGf$nEr%o-h zZ$=-H+@!L23z2SP2)kN#;5kT^?1k*}vY$Y&(>mFAN~9qBqU`s|o<#&DO^}$6P8($3 zjlNm(Z#I~@q$MA+$eG0U!z0~i5l)R^D?Au z3`u85z73M5K_U&3vO&@`bW7n4E)ffN#F8W;Nkr0&2uwN4?jT}!kaQeMjeKUoB>7MU zt@NRKw`Kwbb46&I;!9lclP_E?Y7-MX2SiG`$C zv@l~WBH~mQh`Jcbv<{2g__V}y*L%nmInu--(#2^Cic1vYMVvUrUi@vsUmubv4*^H;cLsls zP{q>IW<{$-E@nbVS+!mvikB~47G7VWS{*eYyau%?AW+scefTGcy?D2->!mj z?6ed1t?nw1UBQqLbk5z?Nzia*h0tu=6AFmR@!z*#SZwX8%f^;VD_P+6wAHUp*@wU8 z65f(5l)n3AZRwxO;&yUJdSI)uX<)F|SUF;(xAu-0Lt8UOZ+2iL1KT^TtjglBW`2QF z9$>!WjpIkf@#E80{ug14`y3e?k9rlqlN`FaxaiqPX6_ONa|e~~_EWO@Cd8eNdr|Tl zv9MkW7^jBlhg`86o8~fU|B{sU3g(tyVFP`H&3;yjJ`}Opt+~^r9H#yw4 z=yxN%X`?y2vfH@d8G2sH^o}fABnvH*t>2nV_omyV*{f^2dWX^jLw$@gwsORwUsT#= z{M3%ycL;V-S>65x2A#`2qRR=c0HPL^11X`ok*ioWGKj7~T?Ed^c`tBGEas-s+Xp!K zF!u9URtMh){1Y!NIf}(WDk5b~@iE!D_=7tyMMF`Vz5R=5G}@p8F779a(5S{y~Eh@dHg9#N;Y+Z+x1 zy@vxm)5KIAE4S2dZh$ocnh z-xG?W#p@Na^Z6;7zo5-FiVzF34S^{`Shhqb7*Bp%&{H)JJDTd#ZAR5`q-QHMM^R0oIS; z>*slKkov77)MWA`nx^*6Ft4&|uik)nUkrRFZ@Jd1b=jN>-{U;x#E)8}VfSm2h5uak zOv>f4{Q&&<2+p)o((K${n-KA21^(8ABv-7T%LKpDCJ<&nJ1uE*Jyf(m{U$pO;S;zI zS~f@gG8yrMVu_4+j($_zfi&5Hn`kN$7vs=AWi%l(IywZci{oy=7t_&HIXt>|rmGeA z2rE28n2UsU_<5s)5a)a?0Zc1y%DpyPIAdQiZMaXFT6!Er`w6_0}ZhM+`j8!si zdr4_~2c?Udja4?-r@!H1&%2)XcJ0K3ikMJkOrW9|*fje(i=ifA_J3}s_8hlT*WR*H zn}(g3d8lPx%;8HgcMffboKiLpeD1j762r$fpVLtMfmD@BtE3o|q z%=-jhc*}a#6PSq16S!>Sx1g_u47Y}Cjg3y)&KJsrO~a^qFeUsJFxiv_%+B}!5KR9z zc0tL)>~VyY%4WJ-(xWc|q*;`rEuAcB5d=RE_1r%FKonZPIn1(R^3nMN`xTnE% zIH1({sSfw%G7KL&E_ByC;jVdd&KioJ3f^LkUFw8+RwN6*+3zue&jT=#ZsnJSC(=ln zE#q-!K9`PZn3lhQCsNW)H^m6(Q7yOidwj8h=)97B=dAxhoSE>5v1=R{mGh;pyO-L_ zp1XlSy6wO&TJnD=fxzqzyL=7sL15-J3@RUPB1K_=^Mo641A{t-`ZHDlj@rS^#zY53 z{{%DO1svgiTz7G<1%6zz0{uS5=L;T8NSq5_o>nV2u5E+anhDn>o^Fe zL7<8<7M>y9#0xjz&H-}~IPMpwL>V7K5d^&}$QrG0;;HYa-wk@Zs&R1ERJ(_nk!z|@ zkWG;asnixP(bM7Pfp+s{k9N4mg|v+KMd z)lF%CAozyb;F}1|MsFs4YeqXc3u@UC{9}|TkS5@N@d>Kv4BrPTl`&Q6j^TE_cAUaR z)B(Qk7i;i`+qZY^w|&=Z#ah@QKO&v#W_eZ9fFLM1x*mgPdSB3vb}{aAl^dLvKiGl@ zHrG|wF&`h>=W}b?HxWdI@)q3iULXSKHtiUxkrNKWyShshvr7k-RMPinr zeZPbyO#!vw}5su*FeqSg+34&CZwazdj6n5i17s zE9a?@J~!h%|4wx<->i4)1=|UeR=;#i-%iz-^Yrru5N)gMSQh< zk;6x6S$$Os#Iu?El6;D6a_Ru*`(flceo_ZRC^BTaj7_2WD_s8<5(ghK1^P1{{kDCK zd;D!)&8@8F`Z0KU>=T@R;nsNWDB~U@6EEDrM+P5mLyw!OMAfDEoGW5lO`Hsd(;%i#?0;e(Cx z{GTtN?<2Y3AQpV!7m(S{xV(_uWYVXl00DZOdOpj&JXq!P5B$*df#-q&>6)Ah{tM&y x0Rlhoo;VyDt+|IbvQ2AHCDyD($r^*oxU6Y$eEQ-xivO)hHgT$)h%7Nz{112>0Db@f diff --git a/Bootloader/AddHeap.asm b/Bootloader/AddHeap.asm new file mode 100644 index 00000000..98911480 --- /dev/null +++ b/Bootloader/AddHeap.asm @@ -0,0 +1,10 @@ +################################################################################ +# Address: 8015ff60 +################################################################################ + +################################################################################ +# Description: adjusts the number of heaps from 4 to 6. +# Slippi uses heap 5 and m-ex uses heap 6. +################################################################################ + +li r4, 6 diff --git a/Output/Bootloader/bootloader.gct b/Output/Bootloader/bootloader.gct index 5effb38c7d09f880b5d5e0c918d5b3a8fcd5ae3f..5343b580b2b27224d5c67eef3dc152bb0175c44d 100644 GIT binary patch delta 163 zcmX@Wb%INP;lhD?Aj~5AKf$7bfo&p(HmkzEMurU=E$SH|tjT*A{aHDz8yPqz3ou2? zZfIa+cw(W*@Sui+d6{1WgTgMLYM9vM4kl%YuFV^mtQmFT5-`OKKyZj5^be3ytl?l< aHi40WWs2f|u$7Y~SRQl2bxdYqwE+N*do-5- delta 129 zcmX@Xb%2Y5;lhD?AUsh(n>AoxBLl}qhk8Z`Yw{6Be^v|YMh1(?5=_yu91V;NTPzeA uHq>x1FY{|)P}l`j4HKI@fk_#nYx52!Yer6l#2;pPsBsD`kCDWASZx4=jV8wc diff --git a/Output/Bootloader/bootloader.txt b/Output/Bootloader/bootloader.txt index 25efadc9..9fc575fa 100644 --- a/Output/Bootloader/bootloader.txt +++ b/Output/Bootloader/bootloader.txt @@ -1,10 +1,11 @@ $Slippi Bootloader [] +0415FF60 38800006 #Bootloader/AddHeap.asm 04346314 48000058 #Bootloader/EXISpoof.asm C2375380 00000050 #Bootloader/main.asm 3D808034 618C44E0 7D8903A6 4E800421 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 389F0040 7FE3FB78 3D808034 618C40E8 7D8903A6 4E800421 @@ -52,8 +53,8 @@ C2375380 00000050 #Bootloader/main.asm 906DAFC4 480000E0 4E800021 2C050000 418200D0 7C0802A6 -90010004 9421FF50 -BE810008 7C9E2378 +90010004 9421FF20 +BE8100B0 7C9E2378 7CBB2B78 80BE0000 54A501FE 64BD8000 2C030004 41820014 @@ -63,7 +64,7 @@ BE810008 7C9E2378 3B9E0008 48000040 389E0008 7C7D2050 546301BA 64634800 -90610038 3B810038 +90610008 3B810008 807E0004 1C630008 7C83F214 387D0004 7C641850 546301BA @@ -75,15 +76,15 @@ BE810008 7C9E2378 7FA3EB78 7F64DB78 3D808032 618C8F50 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 -4E800020 BA810008 -800100B4 382100B0 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 BA8100B0 +800100E4 382100E0 7C0803A6 83EDC018 60000000 00000000 C20055F0 0000002C #Common/EXITransferBuffer/EXITransferBuffer.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7E1B78 7C9D2378 7CBF2B78 3D808034 618C7364 7D8903A6 @@ -123,12 +124,12 @@ C20055F0 0000002C #Common/EXITransferBuffer/EXITransferBuffer.asm 4C00012C 7F83E378 3D808034 618C738C 7D8903A6 4E800421 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 C20055FC 00000021 #Common/Gecko/ProcessCodeList.asm 7C0802A6 90010004 -9421FF50 BE810008 +9421FF20 BE8100B0 7C7D1B78 7C7A1B78 7C9E2378 3B800000 807D0000 5463463C @@ -157,8 +158,8 @@ C20055FC 00000021 #Common/Gecko/ProcessCodeList.asm 7F25CB78 7FC903A6 4E800421 7FBDDA14 4BFFFF38 7C7AE850 -BA810008 800100B4 -382100B0 7C0803A6 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 00000000 $Early Load Codes, Must Run Before Bootloader [] diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 8fcc1237..9227a45b 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5916,59 +5916,10 @@ BB010028 00000000 C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm 38600021 4E800020 60000000 00000000 -C2068B40 00000030 #m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi +C23753B4 0000005C #m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi 7C0802A6 90010004 9421FF00 BE810008 -3B400000 839F0004 -80620098 1C9C0008 -7C632214 83A30004 -7FA3EB78 48000071 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820030 7F63DB78 -3D80803D 618C7074 -7D8903A6 4E800421 -7F63DB78 80820178 -8084000C 7F85E378 -4800005D 3B400001 -7FA3EB78 7F84E378 -38A00000 3D80803D -618C7070 7D8903A6 -4E800421 7F5A1B78 -480000B0 4E800021 -66744675 6E637469 -6F6E0000 4E800021 -6B624675 6E637469 -6F6E0000 4E800021 -6D657850 61746368 -00000000 7C6C1B78 -7C892378 7CA62B78 -80EC000C 814C0000 -39000000 48000054 -1C680008 7D633A14 -806B0000 54600001 -40820020 1C630004 -7C83482E 806B0004 -7C635214 1CA60004 -7C64292E 48000020 -808B0004 7C845214 -7C832050 548401BA -64844800 90830000 -48000004 39080001 -806C0010 7C081800 -4180FFA8 4E800020 -2C1B0000 4182001C -807D0040 809D0000 -3D808032 618C8F50 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -38000000 00000000 -C23753B0 000000AE -7C0802A6 90010004 -9421FF00 BE810008 -480002D9 7C6802A6 +48000281 7C6802A6 3D808001 618C63D8 7D8903A6 4E800421 3B830000 3B9C001F @@ -5983,7 +5934,7 @@ C23753B0 000000AE 7F43D378 7F84E378 3D808034 618C3EF0 7D8903A6 4E800421 -7C7B1B78 4800025D +7C7B1B78 48000205 7C6802A6 7F64DB78 38A10080 3D808001 618C668C 7D8903A6 @@ -5991,31 +5942,20 @@ C23753B0 000000AE 7F23CB78 7F64DB78 3D808001 618C6A54 7D8903A6 4E800421 -7F23CB78 4800022D +7F23CB78 480001D5 7C8802A6 3D808038 618C0358 7D8903A6 4E800421 7C781B78 -93020178 48000225 -7D2802A6 3929FFFE -39000000 1CE80004 -A0690002 7C630734 -2C03FFFF 4182002C -7F06C378 A4690002 -7C630734 2C03FFFF -4182000C 7CC3302E -4BFFFFEC 7CC7112E -39080001 4BFFFFC8 -8062014C 3C80803B -6084A648 38A00000 -90640000 38840008 -38A50001 2C050008 -4180FFF0 7F63DB78 +80780000 906200D4 +80780004 906200D8 +3860002D 90620164 +90620168 7F63DB78 7F84E378 3D808032 618C8F50 7D8903A6 4E800421 4800001D 7C6802A6 90620184 480000E9 7C6802A6 -906200F8 480003B8 +906200F8 48000184 4E800021 00000000 00000000 00000000 00000000 FFFFFFFF @@ -6059,87 +5999,16 @@ FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -4E800021 4D784474 -2E646174 00000000 -4E800021 6D657844 -61746100 4E800021 +4E800021 4D785363 +6E2E6461 74000000 +4E800021 4D785363 +656E6500 4E800021 6D2D6578 00000000 -4E800021 00040004 -FFFF0008 0000FFFF -0008000C FFFF0008 -0014FFFF 00080004 -FFFF0008 001CFFFF -00080024 FFFF0018 -0000FFFF 00080038 -FFFF0010 0000FFFF -00080020 FFFF000C -000CFFFF 000C0000 -FFFF000C 0004FFFF -000C0028 FFFF000C -002CFFFF 000C0018 -FFFF000C 001CFFFF -000C0010 FFFF000C -0014FFFF 000C0020 -FFFF000C 0024FFFF -00080010 FFFF0008 -003CFFFF 0010000C -FFFF0010 0000FFFF -00100004 FFFF0008 -0028FFFF 00080008 -FFFF0008 002CFFFF -00080018 FFFF0008 -0034FFFF 00080030 -FFFF0018 0020FFFF -001CFFFF 0008FFFF -00100008 FFFF0014 -0000FFFF 00080040 -FFFF000C 007CFFFF -000C0080 FFFF000C -0084FFFF 000C0088 -FFFF0008 0044FFFF -00080048 FFFF000C -008CFFFF 000C0090 -FFFF000C 0094FFFF -000C0034 FFFF000C -0044FFFF 000C0040 -FFFF0008 0054FFFF -00080058 FFFF0030 -0000FFFF 00300004 -FFFF0018 0004FFFF -00180008 FFFF0018 -000CFFFF 00180010 -FFFF0018 0014FFFF -00180018 FFFF0018 -001CFFFF 00000004 -FFFF0004 0000FFFF -00040008 FFFF0028 -0000FFFF 00280004 -FFFF002C FFFF0028 -0008FFFF 00200000 -FFFF0020 0008FFFF -00200010 FFFF0020 -000CFFFF 00200004 -FFFF0020 0014FFFF -00240000 FFFF0024 -0004FFFF 00240008 -FFFF0024 000CFFFF -00240010 FFFF0024 -0014FFFF 00240018 -FFFF0000 0004FFFF -00000008 FFFF0000 -000CFFFF 00000018 -FFFF0000 001CFFFF -00000020 FFFF0000 -0024FFFF 0000002C -FFFF0000 0030FFFF -00000010 FFFF0000 -0014FFFF 0000FFFF -FFFF0000 7FE3FB78 -BA810008 80010104 -38210100 7C0803A6 -7C7F1B78 93EDC018 -7FE3FB78 7FA4EB78 -60000000 00000000 +7FE3FB78 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +93EDC018 7FE3FB78 +7FA4EB78 00000000 C20186A8 0000000C 90010054 38610028 48000021 7C8802A6 @@ -6153,7 +6022,6 @@ C20186A8 0000000C 803BA6D8 00000000 02000000 804D37E4 00000000 00000000 -043BA3AC 0064B400 C21BFA24 00000008 3C60801A 60635014 80630000 3C804082 @@ -6581,686 +6449,6 @@ D03D0034 48000010 4082FFC0 3D808037 618CC0A8 7D8903A6 4E800420 00000000 -C2026680 0000000E -38600000 80E20090 -7CA82B78 7C892378 -81620158 396B0001 -88070001 7C000774 -7C0A0000 40820020 -80080000 2C000001 -40820014 80090000 -2C00FFFF 40820008 -4E800020 38E70004 -39080004 39290004 -38630001 7C035800 -4180FFC0 354AFFFF -4080FFA0 3860FFFF -4E800020 00000000 -C20285C8 0000000D -39000000 81220158 -39290001 80620060 -80830004 80A30008 -80C3000C 80E30010 -3860FFFF 90640000 -90650000 90660000 -90670000 38840004 -38A50004 38C60004 -38E70004 39080001 -7C084800 4180FFD8 -3D808002 618C8660 -7D8903A6 4E800420 -60000000 00000000 -C2027694 0000000D -38800000 7FC8F378 -7FA9EB78 81820158 -398C0001 80080000 -2C000001 40820018 -80090000 2C00FFFF -4082000C 38000001 -48000024 39080004 -39290004 38840001 -7C046000 4180FFD0 -354AFFFF 4080FFB4 -38000000 3D808002 -618C7838 7D8903A6 -4E800420 00000000 -C2388A34 00000011 -7C7E1B78 2C1EFFFF -4082007C 4800004D -7C6802A6 7FA4EB78 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 6572726F -723A2061 7564696F -2066696C 65202573 -20646F65 73206E6F -74206578 6973740A -00000000 00000000 -C2027400 00000037 -7C0802A6 90010004 -9421FF00 BE810008 -48000131 7C6802A6 -808DADA8 80ADADB0 -7C842A14 80ADAD98 -3D808034 618C56A8 -7D8903A6 4E800421 -48000131 7C6802A6 -3D808034 618C56A8 -7D8903A6 4E800421 -80620060 83E3000C -83A20158 3BC00000 -4800003C 801F0000 -2C00FFFF 41820028 -48000121 7C6802A6 -80820024 1CBE0004 -7C84282E 3D808034 -618C56A8 7D8903A6 -4E800421 3BDE0001 -3BFF0004 7C1EE800 -4180FFC4 480000D9 -7C6802A6 3D808034 -618C56A8 7D8903A6 -4E800421 3BE00000 -80620060 83C30008 -83A30010 83820158 -4800004C 801E0000 -2C000001 40820034 -801D0000 2C00FFFF -40820028 480000A5 -7C6802A6 80820024 -1CBF0004 7C84282E -3D808034 618C56A8 -7D8903A6 4E800421 -3BDE0004 3BBD0004 -3BFF0001 7C1FE000 -4180FFB4 48000075 -7C6802A6 3D808034 -618C56A8 7D8903A6 -4E800421 48000064 -4E800021 0A46474D -20486561 703A0A55 -73656420 30782558 -202F2030 78255820 -62797465 730A0A00 -4E800021 46474D20 -4C6F6164 65643A0A -00000000 4E800021 -0A46474D 2050656E -64696E67 3A0A0000 -4E800021 25730A00 -4E800021 0A000000 -BA810008 80010104 -38210100 7C0803A6 -387F1780 00000000 -C20272DC 00000008 -38A00000 81820158 -398C0001 80030000 -90040000 38630004 -38840004 38A50001 -7C056000 4180FFE8 -3D808002 618C73D4 -7D8903A6 4E800420 -60000000 00000000 -0400AEA0 38000001 -0400AE68 38000001 -C2026CBC 00000012 -81620158 396B0001 -38800000 80A20090 -80E20060 80C70008 -80E7000C 39800000 -88050001 7C000774 -7C030000 4082002C -80060000 2C000001 -40820020 80070000 -2C00FFFF 40820014 -3D808002 618C6DF8 -7D8903A6 4E800420 -38840001 38A50004 -38C60004 38E70004 -398C0001 7C0C5800 -4180FFB0 3463FFFF -4080FF88 3D808002 -618C6DF4 7D8903A6 -4E800420 00000000 -C20269F8 00000028 -7C0802A6 90010004 -9421FF00 BE810008 -83620158 3B7B0001 -83C20090 80620060 -8383000C 83A30010 -3BE00000 881E0001 -2C000005 41820044 -801D0000 2C00FFFF -41820038 801C0000 -2C00FFFF 4082002C -807D0000 3D808038 -618C8B60 7D8903A6 -4E800421 2C030001 -41820004 3800FFFF -901D0000 901C0000 -3BDE0004 3BBD0004 -3B9C0004 3BFF0001 -7C1FD800 4180FFA0 -83C20090 80620060 -8383000C 83A30010 -3D808038 618C8B50 -7D8903A6 4E800421 -2C030000 41820064 -3C608001 606395D0 -3D808038 618C8B0C -7D8903A6 4E800421 -38600002 3D808038 -618C8D30 7D8903A6 -4E800421 3BE00000 -881E0001 2C000005 -41820010 3800FFFF -901D0000 901C0000 -3BDE0004 3BBD0004 -3B9C0004 3BFF0001 -7C1FD800 4180FFD4 -BA810008 80010104 -38210100 7C0803A6 -3D808002 618C6BF0 -7D8903A6 4E800420 -60000000 00000000 -C202313C 00000002 -80820158 38840001 -1C042710 00000000 -C202356C 00000002 -80620158 38630001 -1C032710 00000000 -C20237B4 00000002 -80C20158 38C60001 -1C062710 00000000 -C2023B50 00000002 -80620158 38630001 -1C032710 00000000 -C20283B4 00000002 -83E20068 3BFFEE1C -60000000 00000000 -C2028508 00000002 -3FE0803B 63FFB300 -3C800001 00000000 -040268E0 80E20068 -C2026C68 00000002 -80A20068 7CA5002E -60000000 00000000 -040267E0 83E20068 -C2023254 00000028 -7C0802A6 90010004 -9421FE00 BE810008 -7C7A1B78 83020060 -83180014 83820158 -1C7C0004 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -3BA00000 3B3E0000 -1C7D0004 7F83C12E -38000000 7C03C92E -3BBD0001 7C1DE000 -4180FFE8 3A800000 -7F15C378 3BA00000 -83620090 7FD6F378 -82E20068 881B0000 -7C000774 7C1A0000 -4082006C 80160000 -2C000000 40820060 -80170000 80750000 -54631838 80820068 -7C63202E 7C030040 -40800044 387CFFFF -1C630004 7D63C214 -7D94E050 398CFFFF -7C14E000 4080001C -800BFFFC 900B0000 -396BFFFC 398CFFFF -2C0C0000 4181FFEC -93B50000 38000001 -90160000 3AD60004 -3B7B0004 3AF70008 -3BBD0001 7C1DE000 -4081FF74 3A940001 -3AB50004 7C14E000 -4081FF54 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 80010204 -38210200 7C0803A6 -4E800020 00000000 -C2023578 00000005 -3C6068DB 60638BAD -7C63F096 7C636670 -3D808002 618C3634 -7D8903A6 4E800420 -60000000 00000000 -C2088008 00000003 -38802710 7C6419D6 -90610018 38600000 -60000000 00000000 -C2023148 00000003 -3C8068DB 60848BAD -7C841896 7C836670 -4E800020 00000000 -C2023B5C 00000005 -3C6068DB 60638BAD -7C63D896 7C7A6670 -3D808002 618C3C18 -7D8903A6 4E800420 -60000000 00000000 -C21A56F4 0000000D -38600014 3D808002 -618C6F2C 7D8903A6 -4E800421 887F0070 -81820150 398C0001 -7C036000 40800020 -80820020 1C630010 -7C6320AE 3D808000 -618C56A8 7D8903A6 -4E800421 3B9C0001 -3BFF0024 2C1C0006 -4180FFC4 3D80801A -618C5730 7D8903A6 -4E800420 00000000 -C202785C 0000004A -7C0802A6 90010004 -9421FF00 BE810008 -3860000C 3D808002 -618C6F2C 7D8903A6 -4E800421 3D808016 -618CB184 7D8903A6 -4E800421 2C030000 -41820090 38600000 -3D808003 618C2330 -7D8903A6 4E800421 -8082014C 7C032000 -41810070 80820020 -1C630010 7C6320AE -3D808000 618C56A8 -7D8903A6 4E800421 -3A800000 7E83A378 -3D808016 618C9370 -7D8903A6 4E800421 -8082014C 7C032000 -41810020 80820020 -1C630010 7C6320AE -3D808000 618C56A8 -7D8903A6 4E800421 -3A940001 2C140003 -4180FFBC 4800006C -3A800000 7E83A378 -3D808003 618C241C -7D8903A6 4E800421 -2C030003 41820040 -7E83A378 3D808003 -618C2330 7D8903A6 -4E800421 8082014C -7C032000 41810020 -80820020 1C630010 -7C6320AE 3D808000 -618C56A8 7D8903A6 -4E800421 3A940001 -2C140004 4180FFA0 -806D9348 2C0300D9 -41820010 2C0300E5 -41820008 48000020 -3860000C 38A00002 -38C04000 3D808002 -618C702C 7D8903A6 -4E800421 806D9348 -2C030046 41820010 -2C030047 41820008 -48000020 3860000C -38A00000 38C00C00 -3D808002 618C702C -7D8903A6 4E800421 -806D9348 3D808022 -618C519C 7D8903A6 -4E800421 1C630003 -80820108 7C841A14 -88640001 906D8238 -806D9348 3D808022 -618C519C 7D8903A6 -4E800421 80820108 -1C630003 7C632214 -88630000 3D808000 -618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 -4E800421 4800001C -3C608001 606395D0 -3D808038 618C8B0C -7D8903A6 4E800421 -3D808002 618C7488 -7D8903A6 4E800421 -2C030001 4182FFD4 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C21A57FC 00000009 -A07E0016 3D808022 -618C519C 7D8903A6 -4E800421 80820108 -1C630003 7C632214 -88630000 3D808000 -618C56A8 7D8903A6 -4E800421 3D80801A -618C5814 7D8903A6 -4E800420 00000000 -C2028404 00000002 -80620060 80630014 -80030000 00000000 -C2028420 00000002 -81820060 818C0014 -800C0000 00000000 -C2028440 00000002 -81820060 818C0014 -800C0004 00000000 -C202845C 00000002 -81820060 818C0014 -800C0008 00000000 -C2028478 00000002 -81820060 818C0014 -800C000C 00000000 -C2028498 00000002 -80620060 80630014 -80030000 00000000 -C2026C3C 00000002 -80820060 80840010 -60000000 00000000 -C2026C5C 00000003 -80620060 8063000C -1C850004 7C04192E -60000000 00000000 -C2026CB0 00000002 -80C20060 80C60008 -60000000 00000000 -C2026CB4 00000002 -80E20060 80E7000C -60000000 00000000 -C2026E38 00000002 -80820060 80840010 -7C7D212E 00000000 -C2026CB4 00000002 -80E20060 80E7000C -60000000 00000000 -C2028738 00000002 -80620060 8063000C -80030000 00000000 -C2028770 00000002 -81820060 818C0010 -906C0000 00000000 -C202890C 00000002 -81820060 818C000C -3BAC0004 00000000 -C2028910 00000002 -80620060 8063000C -80030004 00000000 -C2028948 00000002 -81820060 818C0010 -906C0004 00000000 -C202895C 00000002 -81820060 818C000C -3BAC00D8 00000000 -C2028960 00000002 -80620060 8063000C -800300D8 00000000 -C2028998 00000002 -81820060 818C0010 -906C00D8 00000000 -C20289AC 00000002 -81820060 818C000C -3BAC0008 00000000 -C20289B0 00000002 -80620060 8063000C -80030008 00000000 -C20289E8 00000002 -81820060 818C0010 -906C0008 00000000 -C2028780 00000002 -81820060 818C000C -900C0000 00000000 -C20287C4 00000002 -80620060 80630010 -60000000 00000000 -C20287C8 00000002 -80820060 80840004 -60000000 00000000 -C20287CC 00000002 -80A20060 80A50008 -60000000 00000000 -C20287D0 00000002 -80C20060 80C6000C -60000000 00000000 -C20288BC 00000002 -81820060 818C000C -3BAC00CC 00000000 -C20288C0 00000002 -80620060 8063000C -800300CC 00000000 -C20288F8 00000002 -81820060 818C0010 -906C00CC 00000000 -C20267F4 00000002 -83420060 835A0008 -60000000 00000000 -C20267F0 00000002 -83820060 839C000C -60000000 00000000 -C20267F8 00000002 -83220060 83390010 -60000000 00000000 -C20267F8 00000002 -83220060 83390010 -60000000 00000000 -C202719C 00000002 -80C20060 80C6000C -60000000 00000000 -C2027290 00000002 -80820060 80840004 -60000000 00000000 -C20272D4 00000002 -80620060 80630004 -60000000 00000000 -C20272D8 00000002 -80820060 80840008 -60000000 00000000 -C2027454 00000002 -80820060 80840010 -7C7D212E 00000000 -C2027464 00000002 -80620060 80630004 -60000000 00000000 -C2027BB4 0000000D -81820060 806C0010 -808C0004 80AC0008 -80CC000C 38E00000 -3800FFFF 81020158 -2C070000 41820014 -90030000 90040000 -90050000 90060000 -38630004 38840004 -38A50004 38C60004 -38E70001 7C074000 -4180FFD0 3D808002 -618C7C9C 7D8903A6 -4E800420 00000000 -C2027D4C 00000002 -81820060 818C000C -3BAC00D8 00000000 -C2027D50 00000002 -80620060 8063000C -800300D8 00000000 -C2027CE8 00000002 -81820060 818C000C -906C00CC 00000000 -C2027CAC 00000002 -81820060 818C000C -3BAC00CC 00000000 -C2027CB0 00000002 -81820060 818C000C -800C00CC 00000000 -C2027CFC 00000002 -81820060 818C000C -3BAC0004 00000000 -C2027D00 00000002 -80620060 8063000C -80030004 00000000 -C2087D3C 00000011 -2C1E0000 41820010 -2C1E000D 41820018 -48000024 3D808008 -618C7D78 7D8903A6 -4E800420 3D808008 -618C7F84 7D8903A6 -4E800420 81820020 -81420148 39600000 -4800001C 1C6B0010 -7C636214 88630000 -7C03F000 41820020 -396B0001 7C0B5000 -4180FFE4 3D808008 -618C803C 7D8903A6 -4E800420 3D808008 -618C7FFC 7D8903A6 -4E800420 00000000 -C20230D8 00000002 -80020158 2C030000 -60000000 00000000 -04023630 80620158 -040268B8 80020158 -C2027288 00000002 -81820158 7C056000 -60000000 00000000 -C2027278 00000002 -80620158 7C051810 -60000000 00000000 -C20273B4 00000002 -81820158 7C056010 -60000000 00000000 -C20273B8 00000002 -81820158 7C056000 -60000000 00000000 -C2023228 00000002 -81820158 7C036000 -60000000 00000000 -C2027140 00000002 -81820158 7C1C6000 -60000000 00000000 -04026C34 80020158 -C2027008 00000002 -81820158 7C1B6000 -60000000 00000000 -C22FF870 0000000A -80620158 48000019 -D03F0154 8062015C -4800000D D03F0194 -4800002C 9421FFF4 -6C638000 C822CA08 -90610008 3C604330 -90610004 C8410004 -EC220828 3821000C -4E800020 80010024 -60000000 00000000 -043883F8 38840037 -C2026880 00000002 -80620158 7C171800 -60000000 00000000 -04026EA4 80820020 -C202742C 00000002 -80820024 7C84E82E -60000000 00000000 -C2026E10 00000002 -80820024 7C84E82E -60000000 00000000 -C2028970 00000002 -80820024 808400D8 -60000000 00000000 -C2028748 00000002 -80820024 80840000 -60000000 00000000 -C20288D0 00000002 -80820024 808400CC -60000000 00000000 -C20289C0 00000002 -80820024 80840008 -60000000 00000000 -C2028920 00000002 -80820024 80840004 -60000000 00000000 -C2023E34 00000002 -80820024 7C84002E -60000000 00000000 -04023234 80820090 -040267DC 83C20090 -C2027AD0 00000002 -83C20060 83DE0000 -60000000 00000000 -C2026664 00000002 -80820060 80A40008 -8084000C 00000000 -C2026E60 00000002 -80820060 8004000C -60000000 00000000 -C20268DC 00000002 -80C20060 80A60008 -80C6000C 00000000 -C2027198 00000002 -83C20060 83DE0000 -60000000 00000000 -C2028368 00000002 -80620060 80630000 -60000000 00000000 -C202645C 00000002 -80620060 80630000 -60000000 00000000 -C20283A8 00000002 -83C20060 83DE0000 -60000000 00000000 -C20283B8 00000002 -3C608043 60633C24 -60000000 00000000 -C2028590 00000002 -3CC08044 60C61064 -60000000 00000000 -C2028530 00000002 -3CC08043 60C63C64 -60000000 00000000 -C20286B0 00000002 -83C20060 83DE0000 -60000000 00000000 -C2027E0C 00000002 -83E20060 83FF0000 -60000000 00000000 -C20270D0 00000002 -83E20060 83FF0004 -60000000 00000000 -C2026FC8 00000002 -83820060 839C0004 -60000000 00000000 -C2026C28 00000002 -83C20060 83DE0000 -60000000 00000000 -C20267C4 00000002 -83A20060 83BD0000 -60000000 00000000 -C202749C 00000002 -80C20060 80A60008 -80C6000C 00000000 -C2024DC8 00000002 -80A20060 80A50000 -60000000 00000000 -C202766C 00000002 -83A20060 83DD0008 -83BD000C 00000000 -C20269DC 00000002 -83020060 8338000C -83180010 00000000 C21A50AC 00000002 806200D4 4E800020 60000000 00000000 @@ -7436,12 +6624,6 @@ C21A40C8 0000002B 80010104 38210100 7C0803A6 7F23CB78 60000000 00000000 -C20056A8 00000005 -2C030037 41820018 -81820060 818C0004 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 C23D70A0 0000005C 7C0802A6 90010004 9421FF00 BE810008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 20c64199..26fba62a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5916,59 +5916,10 @@ BB010028 00000000 C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm 38600021 4E800020 60000000 00000000 -C2068B40 00000030 #m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi +C23753B4 0000005C #m-ex codeset generated from https://github.com/JLaferri/m-ex/tree/support%2Fslippi 7C0802A6 90010004 9421FF00 BE810008 -3B400000 839F0004 -80620098 1C9C0008 -7C632214 83A30004 -7FA3EB78 48000071 -7C8802A6 3D808038 -618C0358 7D8903A6 -4E800421 7C7B1B79 -41820030 7F63DB78 -3D80803D 618C7074 -7D8903A6 4E800421 -7F63DB78 80820178 -8084000C 7F85E378 -4800005D 3B400001 -7FA3EB78 7F84E378 -38A00000 3D80803D -618C7070 7D8903A6 -4E800421 7F5A1B78 -480000B0 4E800021 -66744675 6E637469 -6F6E0000 4E800021 -6B624675 6E637469 -6F6E0000 4E800021 -6D657850 61746368 -00000000 7C6C1B78 -7C892378 7CA62B78 -80EC000C 814C0000 -39000000 48000054 -1C680008 7D633A14 -806B0000 54600001 -40820020 1C630004 -7C83482E 806B0004 -7C635214 1CA60004 -7C64292E 48000020 -808B0004 7C845214 -7C832050 548401BA -64844800 90830000 -48000004 39080001 -806C0010 7C081800 -4180FFA8 4E800020 -2C1B0000 4182001C -807D0040 809D0000 -3D808032 618C8F50 -7D8903A6 4E800421 -BA810008 80010104 -38210100 7C0803A6 -38000000 00000000 -C23753B0 000000AE -7C0802A6 90010004 -9421FF00 BE810008 -480002D9 7C6802A6 +48000281 7C6802A6 3D808001 618C63D8 7D8903A6 4E800421 3B830000 3B9C001F @@ -5983,7 +5934,7 @@ C23753B0 000000AE 7F43D378 7F84E378 3D808034 618C3EF0 7D8903A6 4E800421 -7C7B1B78 4800025D +7C7B1B78 48000205 7C6802A6 7F64DB78 38A10080 3D808001 618C668C 7D8903A6 @@ -5991,31 +5942,20 @@ C23753B0 000000AE 7F23CB78 7F64DB78 3D808001 618C6A54 7D8903A6 4E800421 -7F23CB78 4800022D +7F23CB78 480001D5 7C8802A6 3D808038 618C0358 7D8903A6 4E800421 7C781B78 -93020178 48000225 -7D2802A6 3929FFFE -39000000 1CE80004 -A0690002 7C630734 -2C03FFFF 4182002C -7F06C378 A4690002 -7C630734 2C03FFFF -4182000C 7CC3302E -4BFFFFEC 7CC7112E -39080001 4BFFFFC8 -8062014C 3C80803B -6084A648 38A00000 -90640000 38840008 -38A50001 2C050008 -4180FFF0 7F63DB78 +80780000 906200D4 +80780004 906200D8 +3860002D 90620164 +90620168 7F63DB78 7F84E378 3D808032 618C8F50 7D8903A6 4E800421 4800001D 7C6802A6 90620184 480000E9 7C6802A6 -906200F8 480003B8 +906200F8 48000184 4E800021 00000000 00000000 00000000 00000000 FFFFFFFF @@ -6059,87 +5999,16 @@ FFFFFFFF 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -4E800021 4D784474 -2E646174 00000000 -4E800021 6D657844 -61746100 4E800021 +4E800021 4D785363 +6E2E6461 74000000 +4E800021 4D785363 +656E6500 4E800021 6D2D6578 00000000 -4E800021 00040004 -FFFF0008 0000FFFF -0008000C FFFF0008 -0014FFFF 00080004 -FFFF0008 001CFFFF -00080024 FFFF0018 -0000FFFF 00080038 -FFFF0010 0000FFFF -00080020 FFFF000C -000CFFFF 000C0000 -FFFF000C 0004FFFF -000C0028 FFFF000C -002CFFFF 000C0018 -FFFF000C 001CFFFF -000C0010 FFFF000C -0014FFFF 000C0020 -FFFF000C 0024FFFF -00080010 FFFF0008 -003CFFFF 0010000C -FFFF0010 0000FFFF -00100004 FFFF0008 -0028FFFF 00080008 -FFFF0008 002CFFFF -00080018 FFFF0008 -0034FFFF 00080030 -FFFF0018 0020FFFF -001CFFFF 0008FFFF -00100008 FFFF0014 -0000FFFF 00080040 -FFFF000C 007CFFFF -000C0080 FFFF000C -0084FFFF 000C0088 -FFFF0008 0044FFFF -00080048 FFFF000C -008CFFFF 000C0090 -FFFF000C 0094FFFF -000C0034 FFFF000C -0044FFFF 000C0040 -FFFF0008 0054FFFF -00080058 FFFF0030 -0000FFFF 00300004 -FFFF0018 0004FFFF -00180008 FFFF0018 -000CFFFF 00180010 -FFFF0018 0014FFFF -00180018 FFFF0018 -001CFFFF 00000004 -FFFF0004 0000FFFF -00040008 FFFF0028 -0000FFFF 00280004 -FFFF002C FFFF0028 -0008FFFF 00200000 -FFFF0020 0008FFFF -00200010 FFFF0020 -000CFFFF 00200004 -FFFF0020 0014FFFF -00240000 FFFF0024 -0004FFFF 00240008 -FFFF0024 000CFFFF -00240010 FFFF0024 -0014FFFF 00240018 -FFFF0000 0004FFFF -00000008 FFFF0000 -000CFFFF 00000018 -FFFF0000 001CFFFF -00000020 FFFF0000 -0024FFFF 0000002C -FFFF0000 0030FFFF -00000010 FFFF0000 -0014FFFF 0000FFFF -FFFF0000 7FE3FB78 -BA810008 80010104 -38210100 7C0803A6 -7C7F1B78 93EDC018 -7FE3FB78 7FA4EB78 -60000000 00000000 +7FE3FB78 BA810008 +80010104 38210100 +7C0803A6 7C7F1B78 +93EDC018 7FE3FB78 +7FA4EB78 00000000 C20186A8 0000000C 90010054 38610028 48000021 7C8802A6 @@ -6153,7 +6022,6 @@ C20186A8 0000000C 803BA6D8 00000000 02000000 804D37E4 00000000 00000000 -043BA3AC 0064B400 C21BFA24 00000008 3C60801A 60635014 80630000 3C804082 @@ -6581,686 +6449,6 @@ D03D0034 48000010 4082FFC0 3D808037 618CC0A8 7D8903A6 4E800420 00000000 -C2026680 0000000E -38600000 80E20090 -7CA82B78 7C892378 -81620158 396B0001 -88070001 7C000774 -7C0A0000 40820020 -80080000 2C000001 -40820014 80090000 -2C00FFFF 40820008 -4E800020 38E70004 -39080004 39290004 -38630001 7C035800 -4180FFC0 354AFFFF -4080FFA0 3860FFFF -4E800020 00000000 -C20285C8 0000000D -39000000 81220158 -39290001 80620060 -80830004 80A30008 -80C3000C 80E30010 -3860FFFF 90640000 -90650000 90660000 -90670000 38840004 -38A50004 38C60004 -38E70004 39080001 -7C084800 4180FFD8 -3D808002 618C8660 -7D8903A6 4E800420 -60000000 00000000 -C2027694 0000000D -38800000 7FC8F378 -7FA9EB78 81820158 -398C0001 80080000 -2C000001 40820018 -80090000 2C00FFFF -4082000C 38000001 -48000024 39080004 -39290004 38840001 -7C046000 4180FFD0 -354AFFFF 4080FFB4 -38000000 3D808002 -618C7838 7D8903A6 -4E800420 00000000 -C2388A34 00000011 -7C7E1B78 2C1EFFFF -4082007C 4800004D -7C6802A6 7FA4EB78 -3D808034 618C56A8 -7D8903A6 4E800421 -48000025 7C6802A6 -38800000 3CA0804D -60A53940 3D808038 -618C8220 7D8903A6 -4E800421 4E800021 -6D2D6578 00000000 -4E800021 6572726F -723A2061 7564696F -2066696C 65202573 -20646F65 73206E6F -74206578 6973740A -00000000 00000000 -C2027400 00000037 -7C0802A6 90010004 -9421FF00 BE810008 -48000131 7C6802A6 -808DADA8 80ADADB0 -7C842A14 80ADAD98 -3D808034 618C56A8 -7D8903A6 4E800421 -48000131 7C6802A6 -3D808034 618C56A8 -7D8903A6 4E800421 -80620060 83E3000C -83A20158 3BC00000 -4800003C 801F0000 -2C00FFFF 41820028 -48000121 7C6802A6 -80820024 1CBE0004 -7C84282E 3D808034 -618C56A8 7D8903A6 -4E800421 3BDE0001 -3BFF0004 7C1EE800 -4180FFC4 480000D9 -7C6802A6 3D808034 -618C56A8 7D8903A6 -4E800421 3BE00000 -80620060 83C30008 -83A30010 83820158 -4800004C 801E0000 -2C000001 40820034 -801D0000 2C00FFFF -40820028 480000A5 -7C6802A6 80820024 -1CBF0004 7C84282E -3D808034 618C56A8 -7D8903A6 4E800421 -3BDE0004 3BBD0004 -3BFF0001 7C1FE000 -4180FFB4 48000075 -7C6802A6 3D808034 -618C56A8 7D8903A6 -4E800421 48000064 -4E800021 0A46474D -20486561 703A0A55 -73656420 30782558 -202F2030 78255820 -62797465 730A0A00 -4E800021 46474D20 -4C6F6164 65643A0A -00000000 4E800021 -0A46474D 2050656E -64696E67 3A0A0000 -4E800021 25730A00 -4E800021 0A000000 -BA810008 80010104 -38210100 7C0803A6 -387F1780 00000000 -C20272DC 00000008 -38A00000 81820158 -398C0001 80030000 -90040000 38630004 -38840004 38A50001 -7C056000 4180FFE8 -3D808002 618C73D4 -7D8903A6 4E800420 -60000000 00000000 -0400AEA0 38000001 -0400AE68 38000001 -C2026CBC 00000012 -81620158 396B0001 -38800000 80A20090 -80E20060 80C70008 -80E7000C 39800000 -88050001 7C000774 -7C030000 4082002C -80060000 2C000001 -40820020 80070000 -2C00FFFF 40820014 -3D808002 618C6DF8 -7D8903A6 4E800420 -38840001 38A50004 -38C60004 38E70004 -398C0001 7C0C5800 -4180FFB0 3463FFFF -4080FF88 3D808002 -618C6DF4 7D8903A6 -4E800420 00000000 -C20269F8 00000028 -7C0802A6 90010004 -9421FF00 BE810008 -83620158 3B7B0001 -83C20090 80620060 -8383000C 83A30010 -3BE00000 881E0001 -2C000005 41820044 -801D0000 2C00FFFF -41820038 801C0000 -2C00FFFF 4082002C -807D0000 3D808038 -618C8B60 7D8903A6 -4E800421 2C030001 -41820004 3800FFFF -901D0000 901C0000 -3BDE0004 3BBD0004 -3B9C0004 3BFF0001 -7C1FD800 4180FFA0 -83C20090 80620060 -8383000C 83A30010 -3D808038 618C8B50 -7D8903A6 4E800421 -2C030000 41820064 -3C608001 606395D0 -3D808038 618C8B0C -7D8903A6 4E800421 -38600002 3D808038 -618C8D30 7D8903A6 -4E800421 3BE00000 -881E0001 2C000005 -41820010 3800FFFF -901D0000 901C0000 -3BDE0004 3BBD0004 -3B9C0004 3BFF0001 -7C1FD800 4180FFD4 -BA810008 80010104 -38210100 7C0803A6 -3D808002 618C6BF0 -7D8903A6 4E800420 -60000000 00000000 -C202313C 00000002 -80820158 38840001 -1C042710 00000000 -C202356C 00000002 -80620158 38630001 -1C032710 00000000 -C20237B4 00000002 -80C20158 38C60001 -1C062710 00000000 -C2023B50 00000002 -80620158 38630001 -1C032710 00000000 -C20283B4 00000002 -83E20068 3BFFEE1C -60000000 00000000 -C2028508 00000002 -3FE0803B 63FFB300 -3C800001 00000000 -040268E0 80E20068 -C2026C68 00000002 -80A20068 7CA5002E -60000000 00000000 -040267E0 83E20068 -C2023254 00000028 -7C0802A6 90010004 -9421FE00 BE810008 -7C7A1B78 83020060 -83180014 83820158 -1C7C0004 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -3BA00000 3B3E0000 -1C7D0004 7F83C12E -38000000 7C03C92E -3BBD0001 7C1DE000 -4180FFE8 3A800000 -7F15C378 3BA00000 -83620090 7FD6F378 -82E20068 881B0000 -7C000774 7C1A0000 -4082006C 80160000 -2C000000 40820060 -80170000 80750000 -54631838 80820068 -7C63202E 7C030040 -40800044 387CFFFF -1C630004 7D63C214 -7D94E050 398CFFFF -7C14E000 4080001C -800BFFFC 900B0000 -396BFFFC 398CFFFF -2C0C0000 4181FFEC -93B50000 38000001 -90160000 3AD60004 -3B7B0004 3AF70008 -3BBD0001 7C1DE000 -4081FF74 3A940001 -3AB50004 7C14E000 -4081FF54 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA810008 80010204 -38210200 7C0803A6 -4E800020 00000000 -C2023578 00000005 -3C6068DB 60638BAD -7C63F096 7C636670 -3D808002 618C3634 -7D8903A6 4E800420 -60000000 00000000 -C2088008 00000003 -38802710 7C6419D6 -90610018 38600000 -60000000 00000000 -C2023148 00000003 -3C8068DB 60848BAD -7C841896 7C836670 -4E800020 00000000 -C2023B5C 00000005 -3C6068DB 60638BAD -7C63D896 7C7A6670 -3D808002 618C3C18 -7D8903A6 4E800420 -60000000 00000000 -C21A56F4 0000000D -38600014 3D808002 -618C6F2C 7D8903A6 -4E800421 887F0070 -81820150 398C0001 -7C036000 40800020 -80820020 1C630010 -7C6320AE 3D808000 -618C56A8 7D8903A6 -4E800421 3B9C0001 -3BFF0024 2C1C0006 -4180FFC4 3D80801A -618C5730 7D8903A6 -4E800420 00000000 -C202785C 0000004A -7C0802A6 90010004 -9421FF00 BE810008 -3860000C 3D808002 -618C6F2C 7D8903A6 -4E800421 3D808016 -618CB184 7D8903A6 -4E800421 2C030000 -41820090 38600000 -3D808003 618C2330 -7D8903A6 4E800421 -8082014C 7C032000 -41810070 80820020 -1C630010 7C6320AE -3D808000 618C56A8 -7D8903A6 4E800421 -3A800000 7E83A378 -3D808016 618C9370 -7D8903A6 4E800421 -8082014C 7C032000 -41810020 80820020 -1C630010 7C6320AE -3D808000 618C56A8 -7D8903A6 4E800421 -3A940001 2C140003 -4180FFBC 4800006C -3A800000 7E83A378 -3D808003 618C241C -7D8903A6 4E800421 -2C030003 41820040 -7E83A378 3D808003 -618C2330 7D8903A6 -4E800421 8082014C -7C032000 41810020 -80820020 1C630010 -7C6320AE 3D808000 -618C56A8 7D8903A6 -4E800421 3A940001 -2C140004 4180FFA0 -806D9348 2C0300D9 -41820010 2C0300E5 -41820008 48000020 -3860000C 38A00002 -38C04000 3D808002 -618C702C 7D8903A6 -4E800421 806D9348 -2C030046 41820010 -2C030047 41820008 -48000020 3860000C -38A00000 38C00C00 -3D808002 618C702C -7D8903A6 4E800421 -806D9348 3D808022 -618C519C 7D8903A6 -4E800421 1C630003 -80820108 7C841A14 -88640001 906D8238 -806D9348 3D808022 -618C519C 7D8903A6 -4E800421 80820108 -1C630003 7C632214 -88630000 3D808000 -618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 -4E800421 4800001C -3C608001 606395D0 -3D808038 618C8B0C -7D8903A6 4E800421 -3D808002 618C7488 -7D8903A6 4E800421 -2C030001 4182FFD4 -BA810008 80010104 -38210100 7C0803A6 -4E800020 00000000 -C21A57FC 00000009 -A07E0016 3D808022 -618C519C 7D8903A6 -4E800421 80820108 -1C630003 7C632214 -88630000 3D808000 -618C56A8 7D8903A6 -4E800421 3D80801A -618C5814 7D8903A6 -4E800420 00000000 -C2028404 00000002 -80620060 80630014 -80030000 00000000 -C2028420 00000002 -81820060 818C0014 -800C0000 00000000 -C2028440 00000002 -81820060 818C0014 -800C0004 00000000 -C202845C 00000002 -81820060 818C0014 -800C0008 00000000 -C2028478 00000002 -81820060 818C0014 -800C000C 00000000 -C2028498 00000002 -80620060 80630014 -80030000 00000000 -C2026C3C 00000002 -80820060 80840010 -60000000 00000000 -C2026C5C 00000003 -80620060 8063000C -1C850004 7C04192E -60000000 00000000 -C2026CB0 00000002 -80C20060 80C60008 -60000000 00000000 -C2026CB4 00000002 -80E20060 80E7000C -60000000 00000000 -C2026E38 00000002 -80820060 80840010 -7C7D212E 00000000 -C2026CB4 00000002 -80E20060 80E7000C -60000000 00000000 -C2028738 00000002 -80620060 8063000C -80030000 00000000 -C2028770 00000002 -81820060 818C0010 -906C0000 00000000 -C202890C 00000002 -81820060 818C000C -3BAC0004 00000000 -C2028910 00000002 -80620060 8063000C -80030004 00000000 -C2028948 00000002 -81820060 818C0010 -906C0004 00000000 -C202895C 00000002 -81820060 818C000C -3BAC00D8 00000000 -C2028960 00000002 -80620060 8063000C -800300D8 00000000 -C2028998 00000002 -81820060 818C0010 -906C00D8 00000000 -C20289AC 00000002 -81820060 818C000C -3BAC0008 00000000 -C20289B0 00000002 -80620060 8063000C -80030008 00000000 -C20289E8 00000002 -81820060 818C0010 -906C0008 00000000 -C2028780 00000002 -81820060 818C000C -900C0000 00000000 -C20287C4 00000002 -80620060 80630010 -60000000 00000000 -C20287C8 00000002 -80820060 80840004 -60000000 00000000 -C20287CC 00000002 -80A20060 80A50008 -60000000 00000000 -C20287D0 00000002 -80C20060 80C6000C -60000000 00000000 -C20288BC 00000002 -81820060 818C000C -3BAC00CC 00000000 -C20288C0 00000002 -80620060 8063000C -800300CC 00000000 -C20288F8 00000002 -81820060 818C0010 -906C00CC 00000000 -C20267F4 00000002 -83420060 835A0008 -60000000 00000000 -C20267F0 00000002 -83820060 839C000C -60000000 00000000 -C20267F8 00000002 -83220060 83390010 -60000000 00000000 -C20267F8 00000002 -83220060 83390010 -60000000 00000000 -C202719C 00000002 -80C20060 80C6000C -60000000 00000000 -C2027290 00000002 -80820060 80840004 -60000000 00000000 -C20272D4 00000002 -80620060 80630004 -60000000 00000000 -C20272D8 00000002 -80820060 80840008 -60000000 00000000 -C2027454 00000002 -80820060 80840010 -7C7D212E 00000000 -C2027464 00000002 -80620060 80630004 -60000000 00000000 -C2027BB4 0000000D -81820060 806C0010 -808C0004 80AC0008 -80CC000C 38E00000 -3800FFFF 81020158 -2C070000 41820014 -90030000 90040000 -90050000 90060000 -38630004 38840004 -38A50004 38C60004 -38E70001 7C074000 -4180FFD0 3D808002 -618C7C9C 7D8903A6 -4E800420 00000000 -C2027D4C 00000002 -81820060 818C000C -3BAC00D8 00000000 -C2027D50 00000002 -80620060 8063000C -800300D8 00000000 -C2027CE8 00000002 -81820060 818C000C -906C00CC 00000000 -C2027CAC 00000002 -81820060 818C000C -3BAC00CC 00000000 -C2027CB0 00000002 -81820060 818C000C -800C00CC 00000000 -C2027CFC 00000002 -81820060 818C000C -3BAC0004 00000000 -C2027D00 00000002 -80620060 8063000C -80030004 00000000 -C2087D3C 00000011 -2C1E0000 41820010 -2C1E000D 41820018 -48000024 3D808008 -618C7D78 7D8903A6 -4E800420 3D808008 -618C7F84 7D8903A6 -4E800420 81820020 -81420148 39600000 -4800001C 1C6B0010 -7C636214 88630000 -7C03F000 41820020 -396B0001 7C0B5000 -4180FFE4 3D808008 -618C803C 7D8903A6 -4E800420 3D808008 -618C7FFC 7D8903A6 -4E800420 00000000 -C20230D8 00000002 -80020158 2C030000 -60000000 00000000 -04023630 80620158 -040268B8 80020158 -C2027288 00000002 -81820158 7C056000 -60000000 00000000 -C2027278 00000002 -80620158 7C051810 -60000000 00000000 -C20273B4 00000002 -81820158 7C056010 -60000000 00000000 -C20273B8 00000002 -81820158 7C056000 -60000000 00000000 -C2023228 00000002 -81820158 7C036000 -60000000 00000000 -C2027140 00000002 -81820158 7C1C6000 -60000000 00000000 -04026C34 80020158 -C2027008 00000002 -81820158 7C1B6000 -60000000 00000000 -C22FF870 0000000A -80620158 48000019 -D03F0154 8062015C -4800000D D03F0194 -4800002C 9421FFF4 -6C638000 C822CA08 -90610008 3C604330 -90610004 C8410004 -EC220828 3821000C -4E800020 80010024 -60000000 00000000 -043883F8 38840037 -C2026880 00000002 -80620158 7C171800 -60000000 00000000 -04026EA4 80820020 -C202742C 00000002 -80820024 7C84E82E -60000000 00000000 -C2026E10 00000002 -80820024 7C84E82E -60000000 00000000 -C2028970 00000002 -80820024 808400D8 -60000000 00000000 -C2028748 00000002 -80820024 80840000 -60000000 00000000 -C20288D0 00000002 -80820024 808400CC -60000000 00000000 -C20289C0 00000002 -80820024 80840008 -60000000 00000000 -C2028920 00000002 -80820024 80840004 -60000000 00000000 -C2023E34 00000002 -80820024 7C84002E -60000000 00000000 -04023234 80820090 -040267DC 83C20090 -C2027AD0 00000002 -83C20060 83DE0000 -60000000 00000000 -C2026664 00000002 -80820060 80A40008 -8084000C 00000000 -C2026E60 00000002 -80820060 8004000C -60000000 00000000 -C20268DC 00000002 -80C20060 80A60008 -80C6000C 00000000 -C2027198 00000002 -83C20060 83DE0000 -60000000 00000000 -C2028368 00000002 -80620060 80630000 -60000000 00000000 -C202645C 00000002 -80620060 80630000 -60000000 00000000 -C20283A8 00000002 -83C20060 83DE0000 -60000000 00000000 -C20283B8 00000002 -3C608043 60633C24 -60000000 00000000 -C2028590 00000002 -3CC08044 60C61064 -60000000 00000000 -C2028530 00000002 -3CC08043 60C63C64 -60000000 00000000 -C20286B0 00000002 -83C20060 83DE0000 -60000000 00000000 -C2027E0C 00000002 -83E20060 83FF0000 -60000000 00000000 -C20270D0 00000002 -83E20060 83FF0004 -60000000 00000000 -C2026FC8 00000002 -83820060 839C0004 -60000000 00000000 -C2026C28 00000002 -83C20060 83DE0000 -60000000 00000000 -C20267C4 00000002 -83A20060 83BD0000 -60000000 00000000 -C202749C 00000002 -80C20060 80A60008 -80C6000C 00000000 -C2024DC8 00000002 -80A20060 80A50000 -60000000 00000000 -C202766C 00000002 -83A20060 83DD0008 -83BD000C 00000000 -C20269DC 00000002 -83020060 8338000C -83180010 00000000 C21A50AC 00000002 806200D4 4E800020 60000000 00000000 @@ -7436,12 +6624,6 @@ C21A40C8 0000002B 80010104 38210100 7C0803A6 7F23CB78 60000000 00000000 -C20056A8 00000005 -2C030037 41820018 -81820060 818C0004 -38800001 1C630004 -7C83612E 4E800020 -60000000 00000000 C23D70A0 0000005C 7C0802A6 90010004 9421FF00 BE810008 From 1a0b1e49bd30fddcc1fda7918de2da527fea2a3f Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Tue, 13 Sep 2022 18:29:18 -0400 Subject: [PATCH 148/217] add compatibility hooks back --- Binary/m-ex.bin | Bin 14456 -> 12904 bytes .../{WithMexBase => }/GetFighterNum.asm | 0 Output/Netplay/GALE01r2.ini | 210 ++---------------- Output/Netplay/GALJ01r2.ini | 210 ++---------------- netplay.json | 2 +- 5 files changed, 31 insertions(+), 391 deletions(-) rename Common/CompatibilityHooks/{WithMexBase => }/GetFighterNum.asm (100%) diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin index 81ea9555b8a2d20ed42f009a41a2e76f80e4f1fc..4d4402a02e800e8551a97f0c71b60fccc273c964 100644 GIT binary patch delta 17 YcmexS@FHb{r~Kwdc_GHl*=oE(0817ImH+?% delta 1376 zcma)5O=uit7=CAWtV0@Q(Xp;%Xuj=_tYnSB_Am`CY@kRA8bl>}V1^co?4ddB5*_ zf1lZz*e!i`rS}|-Hi_t1CQi~&jZ~f^rY%##GugMpB)Fu2$2(je;lwsC_r56kB|LlE zQ)26(MDj|iMYk47@xD6kdbj#qJiX)9W9yeV*Nq_lUiH)X`Usa(UbSZ)X_~cFqCq6i zs6^nQUL{%kg5-s5)}J}i_DwHrZ@PGY$p}hL^xpsdiR=IT*j@PA|3)PF(6f8o#X0I; z93{Gdir_n=)ltaW`zp6c_RM!w{s|F!kiCg3{TCFH_#FCEk~G9yzYhLDlJ`PW*jyhc zX_%xHAmT^?dQI8R8y^)+$1WC#yqO-?`wR_k^tlp%jSk)go&kRVOe4ksUv4*cUN>96z?R`lkAYkT zQ9v}<;*v<1fc-q|1Z-I|>7qz3wwBp1Sol}PYQ)_Gwg~!`HyvBAT4Rmdy}8$n!aTDb zD_>!g#WFivVP_}0Fkms1NqcJAvC3_`;uupF{EbJ))yCFK$9)cBAJxUZpNQYPLCe6p z=VOf5PrI$(l(4mx2wTl$xOAH`92!8^a<&#LEq!oGhx9IMUy2n%6Ya@K!`gLX{t~8{ zlhQ}d0)9=b*{7tBj)hQkP7g0O8R=U@du%t{%RUPC#&<%9>X;EUHX>1peTP+2^#v&e zCiL-EE37`X#y^f$CVAi?cmlWr><+8(`y4)z=TL0F9sIAI!@=W!h>QD)|NK5W+ltkl zJ=)D?Yc$X~?=}KiiOxH|r;XtCY~;h5lK=Y8y&L(tCyGineHf@Rbq%Nj*MLdjO`rzc z5Xwf7SH!M)O;WWVA<*S?KZ-kV1fw^jfVejxmTi^G#quDV$xU{C1ZEe69P)OhVi%@Z zzBp%Hoh?q;CUcD3tZxaG{J#Wr_dtRJAtxO(Kfx;V`CM_fOT>EhXtDmC$6}gC3MM|n zNB^mKKg!`^je?yw#NXT&HMHwk`?^MwR6EHk$^Q{J-DsXX@vL28g`&e|>~e0tiyEbq Z1L6;&ZHRjt;s(|m<1hDYj Date: Tue, 13 Sep 2022 18:34:01 -0400 Subject: [PATCH 149/217] further trim unneeded m-ex codes --- Binary/m-ex.bin | Bin 12904 -> 6992 bytes Output/Netplay/GALE01r2.ini | 739 ------------------------------------ Output/Netplay/GALJ01r2.ini | 739 ------------------------------------ 3 files changed, 1478 deletions(-) diff --git a/Binary/m-ex.bin b/Binary/m-ex.bin index 4d4402a02e800e8551a97f0c71b60fccc273c964..1ae51b97650ae95d5abd93ae8e7e69d2459d8227 100644 GIT binary patch delta 27 jcmaEna=~mv0P|)IK1rs{D+Q`pH%BXQaBODQO633mk+BHS delta 5040 zcmb7IeQX@n5udwT<86Ep;~a_=U*h#Sp$07`fD7l?2{r^ZUq+@Fa?r}HisV1~2NIELi4vv4f24v|lvKU` zW_Qm%pKaPc`Du3d&Agd6^P8D>o_X+k^o?$xm9P7HBN55%npmgl-2tH!wTq5%Ek)I) zPoa)+suue^34Cwb0lu(Co~=Txi)0@8YV@e@+~Y!OfIQ_xxoQyq*sYgmRhg)BoVv~Z zb%yyuqapf93RY5JH0ce9ILX0VNFIIE8&E6BVn%;DPOGtbFujUAHZxJc)V+bUZhw~^ z7o?~@R>O*}41-jPK`6pE$Tz__DP4~ZAje9M{gGC~$WSD6!&@26r_dD{I zy}_RH4aQ*Qq($DK&X)clU>gR7%*RUDxMLqIuSCP{Jo2HFlOStN*?VrnL(=hv0{wc7 z*|a*fOi@19(Y9_#d|tKUdD+z z;ceD<6O4T5-SZ$7B_Z=Oj=*Q}1K~jm3nDz)Lkhh+$f-A_qI^)Q_CPS{W z#PB9I{OBkQuL4F~!-E^FGOJH}n;{6rpWr|wm26NAX2qeU=?FzoRhiD^++A`>ZU; za>)yhH8Qf9FJGOu&J z!SgGYc^)r0qCLO6Z`>(7@n})VwCarH6%tugEY8=kAVQI<1iu`fCD97xw<@3=M3CJQ z$wY!hSs2-+>9<#BKP5>VL4Of=Pu;$8B1#eztDN=|gO{yYyeO#e4P8dpf#zr=K^Xi# z7&E$J2M$qrae|;v0}qeTcK$~#`X+kBv(eow+gp@5zD#bM>C)dkeS* z*_bDchx_{amS7&y=8+G*(+#q^JTxVZbq6|u|A;SHJdkg>11<4(Lz%mm7%+Tkm#^My zJ(OeperxU~m%rk* zL>jk|+<7!{1M}lsL(4aCh@e_O%ltz`ha2HY%@mJJ!&Mk zktz<81al-5J5{Y;lkOBAq1LY*?iAFb*4OodcB}RE9iVZwzOe~3?eg`yd_6ATFzOq% zo}M#cMy+^-q|rv@;%MV;9Nlw=`HbCYEoSnxp1wY@l!^Z4GDR0}6bdhFL?5|4O^f$g z#PbW6Cn%mFGX1r1JYB%EG^$$~w`pFG-G$?L_K)iJcdkE=Y5LD59Vh>Cx|mL8qRt5a zn7(x)K~nZhlCy7;Ki5t)(?Zpt5@-Na2CdDt+24b?EjCq-B&Updd}I$-RfWYkrEn>g zOkHV)@A*pp28RunML2KRcX&R^y(TyfOV8dP7=1xEvPRAJ=wl-zLnB+1zJdMyiP(s; zDXK(=Vh5E2LkXon@?1>WbWn-)^~LlAmR2Dk*tlVEC>o37c{riR_s0&P3{huM5sumt z$vj=eQv<5T&$F4DjUE3@5wtuKgUW%Sk)FuDc#M_t$Zs9y+P}7lxGlnN({W)neiaOm zbYzN}$NvsMueDF!t>OX$56CcTWB3rR_aA;?gx?|=hE+x~U1l)`%dhX5ELoSf97kEN zZ~W3kJ45m28kS!R-y<A~xtI4e`;@ zWbCt`_|p3F7GfT$Gf*vdYWlV5Nx6m>^q8oCj^l++ddR~tg_NcvBnNxblT1_1Y+@NGvIRq;hffEN8+9pBM})% z4CwKgvU9r=kFZuK@Hsnh07e(L_f_Q)DcT5|({O+xQpk`L1)Tp$AR1@@uCrw9(ThDA z+#1zWdfwpaCBSMb1s1Azn)eOsg*EJK>w^Xc8`qkJGvZptV7sr&*q&HOGkxelA~JA5 zaieD^+kzA90_s|LX?9hWTw%aQe|EMi&{B3d8H#;CIsZ?Cg8H|sP5tWtAQX&bo}4Qd zMBd85@SQKfIJ&dkV@dqZQ0wfTPi@c78MvjAT5nh5mK6}fwP_w1;xz6LDZ5t%OYx6e z|4uD+Z5nIeNe5FU@Tjwsq1J}SYfdsuzzA5!3DITeYV;G^b*+nCXZN;pT+otVJNW73 Kzx0=yxcncqjfz Date: Wed, 14 Sep 2022 10:04:27 -0400 Subject: [PATCH 150/217] build codeset --- Output/Playback/GALE01r2.ini | 6 +++--- Output/Playback/GALJ01r2.ini | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 1e69d464..2d39bee1 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -895,6 +895,9 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm 2C030001 41820018 3C60803B 6063B3C0 @@ -909,9 +912,6 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 38800001 1C630004 7C83612E 4E800020 60000000 00000000 -C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 $Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337] *Show players' Slippi Online display names as HUD elements when available diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 1542a0dc..d97d3287 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -895,6 +895,9 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm +38600021 4E800020 +60000000 00000000 C20056A0 00000007 #Common/CompatibilityHooks/GetSSMIndex.asm 2C030001 41820018 3C60803B 6063B3C0 @@ -909,9 +912,6 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 38800001 1C630004 7C83612E 4E800020 60000000 00000000 -C200569C 00000002 #Common/CompatibilityHooks/WithMexBase/GetFighterNum.asm -38600021 4E800020 -60000000 00000000 $Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337] *Show players' Slippi Online display names as HUD elements when available From 43ad1d560c028dce48110d50173522b3d72816f5 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 14 Sep 2022 10:47:23 -0400 Subject: [PATCH 151/217] build injection lists --- Output/InjectionLists/list_netplay.json | 1082 +---------------------- 1 file changed, 28 insertions(+), 1054 deletions(-) diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 13c0fea4..3f756d97 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -1177,1046 +1177,116 @@ "Tags": "" }, { - "InjectionAddress": "80068B40", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803753B0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800186A8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803BA3AC", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "801BFA24", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022C010", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022C170", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022C168", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229DA0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B9D8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B9A8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B9A0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229AD8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229AD0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229B08", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022DB1C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022DC18", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022A638", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B3F4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B224", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022AE48", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022E90C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022A010", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022A4D0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B7DC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022E630", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80266980", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229C14", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229DEC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229D98", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229E94", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "801B1368", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229894", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80229E60", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8022B750", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015D9C", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015C00", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015BC0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80018D80", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800158F0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80016138", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015F50", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015F88", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800158D8", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015E18", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015CD4", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800159B4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015984", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015B94", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80015914", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8037C050", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026680", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800285C8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027694", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80388A34", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027400", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800272DC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8000AEA0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8000AE68", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026CBC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800269F8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002313C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002356C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800237B4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023B50", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800283B4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028508", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800268E0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026C68", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800267E0", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023254", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023578", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80088008", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023148", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023B5C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "801A56F4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002785C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "801A57FC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028404", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028420", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028440", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002845C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028478", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028498", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026C3C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026C5C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026CB0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026CB4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026E38", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026CB4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028738", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028770", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002890C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028910", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028948", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002895C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028960", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028998", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800289AC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800289B0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800289E8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028780", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800287C4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800287C8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800287CC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800287D0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800288BC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800288C0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800288F8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800267F4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800267F0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800267F8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800267F8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002719C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027290", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800272D4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800272D8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027454", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027464", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027BB4", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027D4C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027D50", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027CE8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027CAC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027CB0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027CFC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027D00", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80087D3C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800230D8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023630", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800268B8", - "Codetype": "04", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027288", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027278", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800273B4", - "Codetype": "C2", + "InjectionAddress": "800056A0", + "Codetype": "Auto", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "800273B8", - "Codetype": "C2", + "InjectionAddress": "800056A8", + "Codetype": "Auto", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80023228", + "InjectionAddress": "803753B4", "Codetype": "C2", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80027140", + "InjectionAddress": "800186A8", "Codetype": "C2", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80026C34", + "InjectionAddress": "80015D9C", "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80027008", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "802FF870", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803883F8", + "InjectionAddress": "80015C00", "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80026880", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026EA4", + "InjectionAddress": "80015BC0", "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "8002742C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026E10", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028970", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028748", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800288D0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800289C0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028920", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80023E34", + "InjectionAddress": "80018D80", "Codetype": "C2", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80023234", + "InjectionAddress": "800158F0", "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "800267DC", + "InjectionAddress": "80016138", "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80027AD0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026664", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80026E60", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800268DC", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027198", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028368", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "8002645C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800283A8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800283B8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028590", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80028530", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800286B0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80027E0C", - "Codetype": "C2", + "InjectionAddress": "80015F50", + "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "800270D0", + "InjectionAddress": "80015F88", "Codetype": "C2", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80026FC8", - "Codetype": "C2", + "InjectionAddress": "800158D8", + "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80026C28", - "Codetype": "C2", + "InjectionAddress": "80015E18", + "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "800267C4", - "Codetype": "C2", + "InjectionAddress": "80015CD4", + "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "8002749C", + "InjectionAddress": "800159B4", "Codetype": "C2", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "80024DC8", - "Codetype": "C2", + "InjectionAddress": "80015984", + "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "8002766C", - "Codetype": "C2", + "InjectionAddress": "80015B94", + "Codetype": "04", "Annotation": "", "Tags": "" }, { - "InjectionAddress": "800269DC", - "Codetype": "C2", + "InjectionAddress": "80015914", + "Codetype": "04", "Annotation": "", "Tags": "" }, @@ -2322,90 +1392,6 @@ "Annotation": "", "Tags": "" }, - { - "InjectionAddress": "800056A8", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D70A0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7098", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7094", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7068", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7088", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D708C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7084", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7064", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D707C", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "800056A0", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7058", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7070", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "803D7080", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, { "InjectionAddress": "803D709C", "Codetype": "C2", @@ -2424,18 +1410,6 @@ "Annotation": "", "Tags": "" }, - { - "InjectionAddress": "803D7078", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, - { - "InjectionAddress": "80268648", - "Codetype": "C2", - "Annotation": "", - "Tags": "" - }, { "InjectionAddress": "803D7060", "Codetype": "C2", From e9ad444cc31f967b3c4d1a706fbdbf35c489b375 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 14 Sep 2022 12:53:53 -0400 Subject: [PATCH 152/217] ensure game gets reported on direct LRAS --- Online/Core/ReportNoContestLRAS.asm | 33 +++++++++++++++++++++++++ Output/InjectionLists/list_netplay.json | 6 +++++ Output/Netplay/GALE01r2.ini | 9 +++++++ Output/Netplay/GALJ01r2.ini | 9 +++++++ 4 files changed, 57 insertions(+) create mode 100644 Online/Core/ReportNoContestLRAS.asm diff --git a/Online/Core/ReportNoContestLRAS.asm b/Online/Core/ReportNoContestLRAS.asm new file mode 100644 index 00000000..16fe7546 --- /dev/null +++ b/Online/Core/ReportNoContestLRAS.asm @@ -0,0 +1,33 @@ +################################################################################ +# Address: 0x8016e9e8 +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" + +# This code ensures that the game has been reported before leaving the game scene. In direct mode +# on an LRAS, the game wasn't being reported in StartEngineLoop.asm + +# Ensure that this is an online match +getMinorMajor r3 +cmpwi r3, SCENE_ONLINE_IN_GAME +bne EXIT + +lwz r12, OFST_R13_ODB_ADDR(r13) # data buffer address + +# Check if game is already ended. For everything but direct LRAS this flag should be true already +lbz r3, ODB_IS_GAME_OVER(r12) +cmpwi r3, 0 +bne EXIT + +# Mark game as being over +li r3, 1 +stb r3, ODB_IS_GAME_OVER(r12) + +# Call game end handler function +lwz r3, ODB_FN_HANDLE_GAME_OVER_ADDR(r12) +mtctr r3 +bctrl + +EXIT: +lbz r0, 0x000E(r31) \ No newline at end of file diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 3f756d97..13bdfb75 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -534,6 +534,12 @@ "Annotation": "", "Tags": "" }, + { + "InjectionAddress": "8016E9E8", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + }, { "InjectionAddress": "80376A20", "Codetype": "Auto", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index c0721f26..378f7945 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1543,6 +1543,15 @@ C216EA30 00000004 #Online/Core/Remember Who LRA Started.asm 40820014 3C808046 6084B6A0 88840001 989E000C 00000000 +C216E9E8 00000008 #Online/Core/ReportNoContestLRAS.asm +3C608048 80639D30 +5463443E 2C030208 +40820028 818DB61C +886C000F 2C030000 +40820018 38600001 +986C000F 806C08FB +7C6903A6 4E800421 +881F000E 00000000 C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 3C608048 80639D30 5463443E 2C030208 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7ad57635..a7d469b4 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1543,6 +1543,15 @@ C216EA30 00000004 #Online/Core/Remember Who LRA Started.asm 40820014 3C808046 6084B6A0 88840001 989E000C 00000000 +C216E9E8 00000008 #Online/Core/ReportNoContestLRAS.asm +3C608048 80639D30 +5463443E 2C030208 +40820028 818DB61C +886C000F 2C030000 +40820018 38600001 +986C000F 806C08FB +7C6903A6 4E800421 +881F000E 00000000 C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 3C608048 80639D30 5463443E 2C030208 From 3d7e0273d647eb138adba78973621fbf75725615 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 19 Sep 2022 20:01:06 -0400 Subject: [PATCH 153/217] move player rng recovery into should resync block --- Output/Playback/GALE01r2.ini | 20 ++++++++++---------- Output/Playback/GALJ01r2.ini | 20 ++++++++++---------- Playback/Core/RestoreGameFrame.asm | 6 +++--- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 2d39bee1..daa19788 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -188,16 +188,16 @@ C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm 7C741B78 389B0007 88BF000C 1CA50062 7C842A14 1CB40031 -7F442A14 3C80804D -807A0000 90645F90 -807A0004 907F0620 -807A0008 907F0624 -807A000C 907F0638 -807A0010 907F063C -807A0014 907F0650 -807A0018 907F065C -8879056F 2C030000 -41820024 807A001C +7F442A14 807A0004 +907F0620 807A0008 +907F0624 807A000C +907F0638 807A0010 +907F063C 807A0014 +907F0650 807A0018 +907F065C 8879056F +2C030000 41820030 +3C80804D 807A0000 +90645F90 807A001C 907F00B0 807A0020 907F00B4 807A0024 907F002C 807A0028 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index d97d3287..b03f4977 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -188,16 +188,16 @@ C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm 7C741B78 389B0007 88BF000C 1CA50062 7C842A14 1CB40031 -7F442A14 3C80804D -807A0000 90645F90 -807A0004 907F0620 -807A0008 907F0624 -807A000C 907F0638 -807A0010 907F063C -807A0014 907F0650 -807A0018 907F065C -8879056F 2C030000 -41820024 807A001C +7F442A14 807A0004 +907F0620 807A0008 +907F0624 807A000C +907F0638 807A0010 +907F063C 807A0014 +907F0650 807A0018 +907F065C 8879056F +2C030000 41820030 +3C80804D 807A0000 +90645F90 807A001C 907F00B0 807A0020 907F00B4 807A0024 907F002C 807A0028 diff --git a/Playback/Core/RestoreGameFrame.asm b/Playback/Core/RestoreGameFrame.asm index f1083613..b22efa23 100644 --- a/Playback/Core/RestoreGameFrame.asm +++ b/Playback/Core/RestoreGameFrame.asm @@ -98,9 +98,6 @@ DesyncDetected: RestoreData: # Restore data - lis r4,0x804D - lwz r3,RNGSeed(PlayerBackup) - stw r3,0x5F90(r4) #RNG seed lwz r3,AnalogX(PlayerBackup) stw r3,0x620(PlayerData) #analog X lwz r3,AnalogY(PlayerBackup) @@ -120,6 +117,9 @@ RestoreData: cmpwi r3, 0 beq SKIP_RESYNC + lis r4,0x804D + lwz r3,RNGSeed(PlayerBackup) + stw r3,0x5F90(r4) #RNG seed lwz r3,XPos(PlayerBackup) stw r3,0xB0(PlayerData) #x position lwz r3,YPos(PlayerBackup) From f31edc158aaacba28a34d1c2601f2695ca55ce94 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Wed, 12 Oct 2022 13:12:31 -0400 Subject: [PATCH 154/217] dont restore follower inputs when not resyncing --- Output/Playback/GALE01r2.ini | 124 +++++++++++++++-------------- Output/Playback/GALJ01r2.ini | 124 +++++++++++++++-------------- Playback/Core/RestoreGameFrame.asm | 8 ++ 3 files changed, 134 insertions(+), 122 deletions(-) diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index daa19788..c7cf5e00 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -175,7 +175,7 @@ BE8100B0 806DB64C BA8100B0 800100E4 382100E0 7C0803A6 881F0008 00000000 -C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm +C206B0DC 00000048 #Playback/Core/RestoreGameFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 8BBF000C 7FA3EB78 @@ -185,67 +185,69 @@ C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm 83790000 7FE3FB78 3D808000 618C55F8 7D8903A6 4E800421 -7C741B78 389B0007 -88BF000C 1CA50062 -7C842A14 1CB40031 -7F442A14 807A0004 -907F0620 807A0008 -907F0624 807A000C -907F0638 807A0010 -907F063C 807A0014 -907F0650 807A0018 -907F065C 8879056F -2C030000 41820030 -3C80804D 807A0000 -90645F90 807A001C -907F00B0 807A0020 -907F00B4 807A0024 -907F002C 807A0028 -907F0010 3C608046 -6063B108 3C80804C -60841F78 88840001 -3884FFFF 2C040000 -40A00008 38840005 -1C840030 7C632214 -889F0618 1C84000C -7E832214 887A002C -98740002 8879056F -2C030000 4182004C -807A002D 2C03FFFF -41820040 90610040 -C0210040 C05F1830 -EC211028 C0429500 -FC011040 41820024 -7FE3FB78 C0210040 +7C741B78 2C140000 +41820010 8879056F +2C030000 418201CC +389B0007 88BF000C +1CA50062 7C842A14 +1CB40031 7F442A14 +807A0004 907F0620 +807A0008 907F0624 +807A000C 907F0638 +807A0010 907F063C +807A0014 907F0650 +807A0018 907F065C +8879056F 2C030000 +41820030 3C80804D +807A0000 90645F90 +807A001C 907F00B0 +807A0020 907F00B4 +807A0024 907F002C +807A0028 907F0010 +3C608046 6063B108 +3C80804C 60841F78 +88840001 3884FFFF +2C040000 40A00008 +38840005 1C840030 +7C632214 889F0618 +1C84000C 7E832214 +887A002C 98740002 +8879056F 2C030000 +4182004C 807A002D +2C03FFFF 41820040 +90610040 C0210040 C05F1830 EC211028 -3D808006 618CCC7C -7D8903A6 4E800421 -806DB654 2C03FF85 -408200AC 7FE3FB78 -38800000 C0228874 -3D808007 618C592C -7D8903A6 4E800421 -807F00B0 907F06F4 -907F070C 807F00B4 -907F06F8 907F0710 -807F00B8 907F06FC -907F0714 C03F00B4 -D03F2344 806DAE0C -907F0728 887F000C -889F221F 5484EFFE -38BF00B0 3D808003 -618C2828 7D8903A6 -4E800421 7FC3F378 -3D808007 618C61C8 -7D8903A6 4E800421 -807F0890 C0230040 -D023002C C0230044 -D0230030 3D808002 -618CF3AC 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 881F2219 -60000000 00000000 +C0429500 FC011040 +41820024 7FE3FB78 +C0210040 C05F1830 +EC211028 3D808006 +618CCC7C 7D8903A6 +4E800421 806DB654 +2C03FF85 408200AC +7FE3FB78 38800000 +C0228874 3D808007 +618C592C 7D8903A6 +4E800421 807F00B0 +907F06F4 907F070C +807F00B4 907F06F8 +907F0710 807F00B8 +907F06FC 907F0714 +C03F00B4 D03F2344 +806DAE0C 907F0728 +887F000C 889F221F +5484EFFE 38BF00B0 +3D808003 618C2828 +7D8903A6 4E800421 +7FC3F378 3D808007 +618C61C8 7D8903A6 +4E800421 807F0890 +C0230040 D023002C +C0230044 D0230030 +3D808002 618CF3AC +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +881F2219 00000000 C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index b03f4977..7412a71d 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -175,7 +175,7 @@ BE8100B0 806DB64C BA8100B0 800100E4 382100E0 7C0803A6 881F0008 00000000 -C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm +C206B0DC 00000048 #Playback/Core/RestoreGameFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 8BBF000C 7FA3EB78 @@ -185,67 +185,69 @@ C206B0DC 00000046 #Playback/Core/RestoreGameFrame.asm 83790000 7FE3FB78 3D808000 618C55F8 7D8903A6 4E800421 -7C741B78 389B0007 -88BF000C 1CA50062 -7C842A14 1CB40031 -7F442A14 807A0004 -907F0620 807A0008 -907F0624 807A000C -907F0638 807A0010 -907F063C 807A0014 -907F0650 807A0018 -907F065C 8879056F -2C030000 41820030 -3C80804D 807A0000 -90645F90 807A001C -907F00B0 807A0020 -907F00B4 807A0024 -907F002C 807A0028 -907F0010 3C608046 -6063B108 3C80804C -60841F78 88840001 -3884FFFF 2C040000 -40A00008 38840005 -1C840030 7C632214 -889F0618 1C84000C -7E832214 887A002C -98740002 8879056F -2C030000 4182004C -807A002D 2C03FFFF -41820040 90610040 -C0210040 C05F1830 -EC211028 C0429500 -FC011040 41820024 -7FE3FB78 C0210040 +7C741B78 2C140000 +41820010 8879056F +2C030000 418201CC +389B0007 88BF000C +1CA50062 7C842A14 +1CB40031 7F442A14 +807A0004 907F0620 +807A0008 907F0624 +807A000C 907F0638 +807A0010 907F063C +807A0014 907F0650 +807A0018 907F065C +8879056F 2C030000 +41820030 3C80804D +807A0000 90645F90 +807A001C 907F00B0 +807A0020 907F00B4 +807A0024 907F002C +807A0028 907F0010 +3C608046 6063B108 +3C80804C 60841F78 +88840001 3884FFFF +2C040000 40A00008 +38840005 1C840030 +7C632214 889F0618 +1C84000C 7E832214 +887A002C 98740002 +8879056F 2C030000 +4182004C 807A002D +2C03FFFF 41820040 +90610040 C0210040 C05F1830 EC211028 -3D808006 618CCC7C -7D8903A6 4E800421 -806DB654 2C03FF85 -408200AC 7FE3FB78 -38800000 C0228874 -3D808007 618C592C -7D8903A6 4E800421 -807F00B0 907F06F4 -907F070C 807F00B4 -907F06F8 907F0710 -807F00B8 907F06FC -907F0714 C03F00B4 -D03F2344 806DAE0C -907F0728 887F000C -889F221F 5484EFFE -38BF00B0 3D808003 -618C2828 7D8903A6 -4E800421 7FC3F378 -3D808007 618C61C8 -7D8903A6 4E800421 -807F0890 C0230040 -D023002C C0230044 -D0230030 3D808002 -618CF3AC 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 881F2219 -60000000 00000000 +C0429500 FC011040 +41820024 7FE3FB78 +C0210040 C05F1830 +EC211028 3D808006 +618CCC7C 7D8903A6 +4E800421 806DB654 +2C03FF85 408200AC +7FE3FB78 38800000 +C0228874 3D808007 +618C592C 7D8903A6 +4E800421 807F00B0 +907F06F4 907F070C +807F00B4 907F06F8 +907F0710 807F00B8 +907F06FC 907F0714 +C03F00B4 D03F2344 +806DAE0C 907F0728 +887F000C 889F221F +5484EFFE 38BF00B0 +3D808003 618C2828 +7D8903A6 4E800421 +7FC3F378 3D808007 +618C61C8 7D8903A6 +4E800421 807F0890 +C0230040 D023002C +C0230044 D0230030 +3D808002 618CF3AC +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +881F2219 00000000 C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Playback/Core/RestoreGameFrame.asm b/Playback/Core/RestoreGameFrame.asm index b22efa23..60248abd 100644 --- a/Playback/Core/RestoreGameFrame.asm +++ b/Playback/Core/RestoreGameFrame.asm @@ -40,6 +40,14 @@ branchl r12,FN_GetIsFollower mr r20,r3 +# If we are not resyncing, let the follower's inputs be calculated by the game + cmpwi r20, 0 + beq SKIP_FOLLOWER_RESYNC_CHECK + lbz r3, PDB_SHOULD_RESYNC(REG_PDB_ADDR) + cmpwi r3, 0 + beq Injection_Exit + SKIP_FOLLOWER_RESYNC_CHECK: + # Get players offset in buffer () addi r4,BufferPointer, GameFrame_Start #get to player frame data start lbz r5,0xC(PlayerData) #get player number From 1596c1a4f7088fd0c682e937182430ef697c90dc Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 13 Oct 2022 11:23:20 -0400 Subject: [PATCH 155/217] add built console core script --- .gitignore | 1 + build-console-core.bat | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 build-console-core.bat diff --git a/.gitignore b/.gitignore index fa302cb2..992f0cd8 100644 --- a/.gitignore +++ b/.gitignore @@ -221,6 +221,7 @@ pip-log.txt .vscode +Output/Console/install.bat Output/Netplay/install.bat Output/Netplay/build-netplay.bat - Shortcut.lnk Output/Playback/install.bat diff --git a/build-console-core.bat b/build-console-core.bat new file mode 100644 index 00000000..1f6cbc13 --- /dev/null +++ b/build-console-core.bat @@ -0,0 +1,10 @@ +@echo off +echo Building console_core.json for Port A... +gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" +echo. + +echo Building console_core.json... +gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" +echo. + +pause From c0b4219aff88df8596eec97831370f863ef5b012 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 17 Oct 2022 15:45:31 -0400 Subject: [PATCH 156/217] add additional output on game crash --- .gitignore | 1 + .../AdditionalCrashInfo.asm | 47 ++++++++++++++++++ .../AdditionalCrashInfoStatic.s | 17 +++++++ Output/Console/g_crash_output.bin | Bin 0 -> 288 bytes Output/Console/g_crash_output.txt | 38 ++++++++++++++ build-console-all.bat | 34 +++++++++++++ build.bat | 1 + console_crash_output.json | 28 +++++++++++ 8 files changed, 166 insertions(+) create mode 100644 Debugging/AdditionalCrashInfo/AdditionalCrashInfo.asm create mode 100644 Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s create mode 100644 Output/Console/g_crash_output.bin create mode 100644 Output/Console/g_crash_output.txt create mode 100644 build-console-all.bat create mode 100644 console_crash_output.json diff --git a/.gitignore b/.gitignore index 992f0cd8..dbe4d61c 100644 --- a/.gitignore +++ b/.gitignore @@ -222,6 +222,7 @@ pip-log.txt .vscode Output/Console/install.bat +Output/Console/install-core-only.bat Output/Netplay/install.bat Output/Netplay/build-netplay.bat - Shortcut.lnk Output/Playback/install.bat diff --git a/Debugging/AdditionalCrashInfo/AdditionalCrashInfo.asm b/Debugging/AdditionalCrashInfo/AdditionalCrashInfo.asm new file mode 100644 index 00000000..38245362 --- /dev/null +++ b/Debugging/AdditionalCrashInfo/AdditionalCrashInfo.asm @@ -0,0 +1,47 @@ +################################################################################ +# Address: 0x80394a68 +################################################################################ + +.include "Common/Common.s" +.include "Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s" + +b CODE_START + +STATIC_MEMORY_TABLE_BLRL: +blrl +createAdditionalCrashInfoStaticMem + +FN_PRINT_STR_AT_OFFSET: +backup + +# Get string to print, save to r3 +mr r31, r3 +bl STATIC_MEMORY_TABLE_BLRL +mflr r3 +add r3, r3, r31 + +# Call OSReport function, r4+ and f1+ args should have been set by caller +branchl r12, OSReport + +restore +blr + +CODE_START: +addi r27, r4, 0 # replaced code line + +li r3, ACISMO_NEW_LINE_CHAR_STR +bl FN_PRINT_STR_AT_OFFSET +li r3, ACISMO_VERSION_STR +bl FN_PRINT_STR_AT_OFFSET +li r3, ACISMO_NEW_LINE_CHAR_STR +bl FN_PRINT_STR_AT_OFFSET +li r3, ACISMO_CONSOLE_RUNTIME_STR +loadwz r4, 0x804d7420 # Console runtime frame count +bl FN_PRINT_STR_AT_OFFSET +li r3, ACISMO_SCENE_RUNTIME_STR +loadGlobalFrame r4 # Scene runtime frame count +bl FN_PRINT_STR_AT_OFFSET +li r3, ACISMO_NEW_LINE_CHAR_STR +bl FN_PRINT_STR_AT_OFFSET + +EXIT: \ No newline at end of file diff --git a/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s b/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s new file mode 100644 index 00000000..3ba49697 --- /dev/null +++ b/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s @@ -0,0 +1,17 @@ +# Define additional crash info static mem offsets, these must be synced with the static mem +# defined below +.set ACISMO_VERSION_STR, 0 # char[64] +.set ACISMO_CONSOLE_RUNTIME_STR, ACISMO_VERSION_STR + 64 # char[29] +.set ACISMO_SCENE_RUNTIME_STR, ACISMO_CONSOLE_RUNTIME_STR + 29 # char[27] +.set ACISMO_NEW_LINE_CHAR_STR, ACISMO_SCENE_RUNTIME_STR + 27 # char[2] + +.macro createAdditionalCrashInfoStaticMem +# The string below should be overwritten by the application to provide correct version +# IMPORTANT: The version string should ALWAYS be first +.string "Placeholder for Version and Application: v00.00.00-000-00000000" +.string " Console runtime: %d frames\n" +.string " Scene runtime: %d frames\n" +.string "\n" + +.align 2 +.endm \ No newline at end of file diff --git a/Output/Console/g_crash_output.bin b/Output/Console/g_crash_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..5b914e6fa4fa57bb072e4c0e26d6c6498d49cab4 GIT binary patch literal 288 zcmX?P>6O92z@Y5Gz;ME^fk81KCowrSBR?l4wMZc?zepi0wWv5VKTjbsFGazzpdcqR zIk5!Dw^ArGFwg@dT>}FH5C#JV1?T*{;{2Rcg`(2DlFZyxD+SdQg|wo?+|*(&28H0{ z)I97`TtG+Ea4;>Kz{tQdMe)DFzD9-(HTBXJ-v9sS)?_d(t4aPPV%yMQlGqcrqPCNH znO_5o;x3??21bS_7K#iHYB)e*3<}mM3=9?t3?O}5fiweS4Gq2tEhP#K cEnvBcK(Sb$m`6j)+ytQ7MyT3KpjI#d0I+0Y?*IS* literal 0 HcmV?d00001 diff --git a/Output/Console/g_crash_output.txt b/Output/Console/g_crash_output.txt new file mode 100644 index 00000000..cc7093f2 --- /dev/null +++ b/Output/Console/g_crash_output.txt @@ -0,0 +1,38 @@ +$Crash Output [Fizzi] +*Outputs additional information when the game crashes +C2394A68 00000023 #Debugging/AdditionalCrashInfo/AdditionalCrashInfo.asm +480000C8 4E800021 +506C6163 65686F6C +64657220 666F7220 +56657273 696F6E20 +616E6420 4170706C +69636174 696F6E3A +20763030 2E30302E +30302D30 30302D30 +30303030 30303000 +20436F6E 736F6C65 +2072756E 74696D65 +3A202564 20667261 +6D65730A 00205363 +656E6520 72756E74 +696D653A 20256420 +6672616D 65730A00 +0A000000 7C0802A6 +90010004 9421FF20 +BE8100B0 7C7F1B78 +4BFFFF6D 7C6802A6 +7C63FA14 3D808034 +618C56A8 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +3B640000 38600078 +4BFFFFB5 38600000 +4BFFFFAD 38600078 +4BFFFFA5 38600040 +3C80804D 60847420 +80840000 4BFFFF91 +3860005D 3C808048 +80849D60 4BFFFF81 +38600078 4BFFFF79 +60000000 00000000 diff --git a/build-console-all.bat b/build-console-all.bat new file mode 100644 index 00000000..a55a058b --- /dev/null +++ b/build-console-all.bat @@ -0,0 +1,34 @@ +@echo off +echo Building console_core.json for Port A... +gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" +echo. + +echo Building console_core.json... +gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" +echo. + +set list=console_UCF.json +set list=%list%;console_UCF_stealth.json +set list=%list%;console_mods_stealth.json +set list=%list%;console_mods_tournament.json +set list=%list%;console_mods_friendlies.json +set list=%list%;console_PAL.json +set list=%list%;console_stages_stadium.json +set list=%list%;console_stages_all.json +set list=%list%;console_gameplay_lgl.json +set list=%list%;console_gameplay_wobbling.json +set list=%list%;console_gameplay_both.json +set list=%list%;console_lag_pd.json +set list=%list%;console_lag_pdhalfvb.json +set list=%list%;console_screen_wide.json +set list=%list%;console_screen_wide_shutters.json +set list=%list%;console_safety.json +set list=%list%;console_crash_output.json + +for %%a in (%list%) do ( + echo Building %%a... + gecko build -c %%a + echo. +) + +pause diff --git a/build.bat b/build.bat index 8b106485..b785903e 100644 --- a/build.bat +++ b/build.bat @@ -31,6 +31,7 @@ set list=%list%;console_lag_pdhalfvb.json set list=%list%;console_screen_wide.json set list=%list%;console_screen_wide_shutters.json set list=%list%;console_safety.json +set list=%list%;console_crash_output.json for %%a in (%list%) do ( echo Building %%a... diff --git a/console_crash_output.json b/console_crash_output.json new file mode 100644 index 00000000..23d7cc93 --- /dev/null +++ b/console_crash_output.json @@ -0,0 +1,28 @@ +{ + "outputFiles": [ + { + "file": "Output/Console/g_crash_output.bin" + }, + { + "file": "Output/Console/g_crash_output.txt" + } + ], + "codes": [ + { + "name": "Crash Output", + "authors": [ + "Fizzi" + ], + "description": [ + "Outputs additional information when the game crashes" + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "Debugging/AdditionalCrashInfo", + "annotation": "Prints crash info [Fizzi]" + } + ] + } + ] +} \ No newline at end of file From 3fc22e719323e8d8a8f7ce1964118100d637a043 Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Mon, 17 Oct 2022 18:05:56 -0400 Subject: [PATCH 157/217] update wobbling code breaks Popo's grab after four pummels if the victim has not left hitstun since the first pummel more closely adheres to the SWT ruleset --- External/PreventWobbling/1.asm | 11 -- External/PreventWobbling/2.asm | 69 -------- .../PreventWobbling/Init Wobble Count Air.asm | 19 +++ .../Init Wobble Count Ground.asm | 19 +++ External/PreventWobbling/Wobble Check.asm | 153 ++++++++++++++++++ Output/Console/g_gameplay_both.bin | Bin 1152 -> 1400 bytes Output/Console/g_gameplay_both.txt | 79 ++++++--- Output/Console/g_gameplay_wobbling.bin | Bin 272 -> 520 bytes Output/Console/g_gameplay_wobbling.txt | 81 +++++++--- console_gameplay_wobbling.json | 2 +- 10 files changed, 303 insertions(+), 130 deletions(-) delete mode 100644 External/PreventWobbling/1.asm delete mode 100644 External/PreventWobbling/2.asm create mode 100644 External/PreventWobbling/Init Wobble Count Air.asm create mode 100644 External/PreventWobbling/Init Wobble Count Ground.asm create mode 100644 External/PreventWobbling/Wobble Check.asm diff --git a/External/PreventWobbling/1.asm b/External/PreventWobbling/1.asm deleted file mode 100644 index 670c8fb8..00000000 --- a/External/PreventWobbling/1.asm +++ /dev/null @@ -1,11 +0,0 @@ -################################################################################ -# Address: 0x800DA9DC -# Tags: [affects-gameplay] -################################################################################ - -loc_0x0: - li r3, 0x0 - stb r3, 9040(r28) - li r3, -1 - sth r3, 9042(r28) - mr r3, r26 \ No newline at end of file diff --git a/External/PreventWobbling/2.asm b/External/PreventWobbling/2.asm deleted file mode 100644 index 61792425..00000000 --- a/External/PreventWobbling/2.asm +++ /dev/null @@ -1,69 +0,0 @@ -################################################################################ -# Address: 0x8008F090 -# Tags: [affects-gameplay] -################################################################################ - -loc_0x0: - lwz r3, 16(r27) - cmpwi r3, 0xDF - blt- loc_0xDC - cmpwi r3, 0xE4 - bgt- loc_0xDC - lwz r3, 6744(r27) - cmpwi r3, 0x0 - beq- loc_0xDC - lwz r3, 44(r3) - lbz r4, 8738(r3) - rlwinm. r4, r4, 0, 29, 29 - beq- loc_0xDC - lbz r3, 12(r3) - li r4, 0x1 - lis r12, 0x8003 - ori r12, r12, 0x418C - mtctr r12 - bctrl - cmpwi r3, 0x0 - beq- loc_0xDC - lwz r4, 6248(r27) - cmpw r3, r4 - beq- loc_0x8C - lhz r5, 0(r4) - cmpwi r5, 0x6 - bne- loc_0xDC - lwz r5, 44(r4) - lwz r4, 1304(r5) - cmpw r3, r4 - bne- loc_0xDC - lhz r3, 3496(r5) - lhz r4, 9042(r27) - cmpw r3, r4 - beq- loc_0xDC - b loc_0xA0 - -loc_0x8C: - lwz r5, 44(r3) - lhz r3, 8328(r5) - lhz r4, 9042(r27) - cmpw r3, r4 - beq- loc_0xDC - -loc_0xA0: - sth r3, 9042(r27) - lbz r3, 9040(r27) - addi r3, r3, 0x1 - stb r3, 9040(r27) - cmpwi r3, 0x3 - blt- loc_0xDC - lwz r3, 6744(r27) - lis r12, 0x800D - ori r12, r12, 0xA698 - mtctr r12 - bctrl - lis r12, 0x8008 - ori r12, r12, 0xF0C8 - mtctr r12 - bctr - -loc_0xDC: - lwz r0, 16(r27) - diff --git a/External/PreventWobbling/Init Wobble Count Air.asm b/External/PreventWobbling/Init Wobble Count Air.asm new file mode 100644 index 00000000..ad32eaaa --- /dev/null +++ b/External/PreventWobbling/Init Wobble Count Air.asm @@ -0,0 +1,19 @@ +################################################################################ +# Address: 800DC034 +################################################################################ +.include "Common/Common.s" + +.set REG_DefenderData,29 + +.set OFST_WobbleCounter,0x2350 +.set OFST_LastMoveID,0x2352 + +#Init count + li r3,0 + stb r3,OFST_WobbleCounter(REG_DefenderData) +#Init last move ID + li r3,-1 + sth r3,OFST_LastMoveID(REG_DefenderData) + +#Original codeline + lwz r0, 0x005C (sp) diff --git a/External/PreventWobbling/Init Wobble Count Ground.asm b/External/PreventWobbling/Init Wobble Count Ground.asm new file mode 100644 index 00000000..c6cbb661 --- /dev/null +++ b/External/PreventWobbling/Init Wobble Count Ground.asm @@ -0,0 +1,19 @@ +################################################################################ +# Address: 800DC388 +################################################################################ +.include "Common/Common.s" + +.set REG_DefenderData,29 + +.set OFST_WobbleCounter,0x2350 +.set OFST_LastMoveID,0x2352 + +#Init count + li r3,0 + stb r3,OFST_WobbleCounter(REG_DefenderData) +#Init last move ID + li r3,-1 + sth r3,OFST_LastMoveID(REG_DefenderData) + +#Original codeline + lwz r0, 0x005C (sp) diff --git a/External/PreventWobbling/Wobble Check.asm b/External/PreventWobbling/Wobble Check.asm new file mode 100644 index 00000000..e49b73cd --- /dev/null +++ b/External/PreventWobbling/Wobble Check.asm @@ -0,0 +1,153 @@ +################################################################################ +# Address: 8008F748 +################################################################################ +.include "Common/Common.s" + +.set REG_DefenderData,27 + +.set ASID_CapturePulledHi, 0xDF +.set ASID_CaptureDamageLw, 0xE4 +.set ASID_CaptureJump, 0xE6 + + +.set OFST_IsLeader,0x2222 +.set Bitflag_IsLeader,0x4 + +.set OFST_WobbleCounter,0x2350 +.set OFST_LastMoveID,0x2352 +.set MaxWobbles,3 + +.set Match_CheckIfTeams,0x8016B168 +.set AS_218_CatchCut,0x800da698 +.set AS_CaptureJump,0x800dc070 +.set ActionStateChange,0x800693ac + +.set Wobbling_Exit,0x8008F0C8 + +# injecting upon entering capturedamage + + #Ensure im being held in a grab (not thrown) + lwz r3,0x10(REG_DefenderData) + cmpwi r3,ASID_CapturePulledHi + blt Original + cmpwi r3,ASID_CaptureDamageLw + bgt Original + #Get grabber data + lwz r3,0x1A58(REG_DefenderData) + cmpwi r3,0 + beq Original + lwz r4,0x2C(r3) + #Ensure grabber has a follower + lbz r4,OFST_IsLeader(r4) + rlwinm. r4,r4,0,Bitflag_IsLeader + beq Original +/* + lbz r3,0xC(r3) + li r4,1 + branchl r12,PlayerBlock_LoadDataOffset + cmpwi r3,0 + beq Original +*/ + #Check if the person who damaged me IS that fighter + lwz r4,0x1868(REG_DefenderData) + cmpw r3,r4 + beq IsFollower + #Check if its an item + lhz r5,0x0(r4) + cmpwi r5,6 + bne Original + IsItem: + #Check if the item belongs to the fighter + lwz r5,0x2C(r4) + lwz r4,0x518(r5) + cmpw r3,r4 + bne Original + #Check if this is the same move i was last hit with + lhz r3,0xDA8(r5) + lhz r4,OFST_LastMoveID(REG_DefenderData) + cmpw r3,r4 + beq Original + #Increment wobble count + b UpdateWobbleCount + IsFollower: + #Check if this is the same move i was last hit with + lwz r5,0x2C(r3) + lhz r3,0x2088(r5) + lhz r4,OFST_LastMoveID(REG_DefenderData) + cmpw r3,r4 + beq Original + UpdateWobbleCount: + #Update last move id + sth r3,OFST_LastMoveID(REG_DefenderData) + #Increment wobble count by 1 + lbz r3,OFST_WobbleCounter(REG_DefenderData) + addi r3,r3,1 + stb r3,OFST_WobbleCounter(REG_DefenderData) + #Only in singles + branchl r12,Match_CheckIfTeams + cmpwi r3,0 + bne Original + #Check if wobble count exceeds max + lbz r3,OFST_WobbleCounter(REG_DefenderData) + cmpwi r3,MaxWobbles + ble Original + + .set REG_GrabberGObj, 20 + .set REG_FollowerGObj, 21 + backup + #Break this grab + lwz REG_GrabberGObj,0x1A58(REG_DefenderData) + mr r3,REG_GrabberGObj + branchl r12,AS_218_CatchCut + #Enter Nana into catchcut as well + lwz r3,0x2C(REG_GrabberGObj) #Get grabber data + lbz r3,0xC(r3) + li r4,1 + branchl r12,PlayerBlock_LoadDataOffset + cmpwi r3,0 + beq SkipBreak + mr REG_FollowerGObj,r3 + lwz r4,0x2c(REG_FollowerGObj) + #Check if her AI is in follow mode + #lbz r5, 0x1a88 + 0xFA (r4) + #rlwinm. r5,r5,0,0x01 + #beq SkipBreak + lwz r5, 0xE0 (r4) + cmpwi r5,0 + bne AerialBreak + GroundBreak: + #Grounded nana enters catchcut (800da698, r4 is 0) + li r4,0 + branchl r12,AS_218_CatchCut #0x800da698 + b SkipBreak + AerialBreak: + #Aerial nana enters capturejump (800dc070) + lwz r3,0x2c(REG_FollowerGObj) + branchl r12,AS_CaptureJump #0x8007d5d4 + # give velocity + lwz r3,0x2c(REG_FollowerGObj) + lwz r5, -0x514C (r13) + lfs f0, 0x0374 (r5) + lfs f1,0x2c(r3) + fneg f1,f1 + fmuls f0,f0,f1 + stfs f0, 0x80 (r3) + lfs f0, 0x0378 (r5) + stfs f0, 0x84 (r3) + lfs f0, -0x6900 (rtoc) + stfs f0, 0x2340 (r3) + # change state + lfs f1, -0x6900 (rtoc) + lfs f2, -0x68FC (rtoc) + fmr f3, f1 + mr r3, REG_FollowerGObj + li r4, ASID_CaptureJump + li r5, 0 + li r6, 0 + branchl r12,ActionStateChange #0x800693ac + SkipBreak: + restore + branch r12,Wobbling_Exit + + Original: + lwz r0, 0x0010 (r27) diff --git a/Output/Console/g_gameplay_both.bin b/Output/Console/g_gameplay_both.bin index 473f25740ca17d05ead6860ea603f53d6a34e05f..25ca56113809e479e54cf8c3e496d319daa06612 100644 GIT binary patch delta 512 zcmaJ;JxfAi6n@@bty?5GghVx5z3YV*hdUH#G&Ds>Lqmg?3LGO0gzLxgYG7~&!9u|X zA(5aDZqU>ams%S82RTGjLt71j9W9rJ-sOBe=Q+i|KiHW3gZS@2}ombUN@)_d$-gTRVZXR#Qt1ifyr8Q+=U=Sa2;ZQL%X5 zEri@0>kCg5)~zRoV~L;uNpyTeBP z99>@Bcz&7oH0WQdvi1h-JxLJfGHlDS71Mct{KZw8MG*YH0c)I|_W%F@ delta 247 zcmeyt)xf!-h`D~{9R>ylW{U&{h8Z==0Tv1W|8J;K4yt#)TmckkIK=T`0+5nzsAdq* zVP?4R*uZcFNI!9GWH{4MEfoP|GdMOe9B4>p(CKJaQVMBduLklrbR;wISTry&+BP&W zC-yk@)OIp2^J`#HgsPv=Fk2#{hFO8ZQNM}7WWf>!1|3!gHissLiiRZ&It{I?5+F$+ zKVv~E?}`Ppm4m>Fn;0S{E3k;^F*t0fRu1Z@2D&$yfpG?q2AazZbejgqO+Y(&6ML4; QfY~`YfmMV9=sz$309>L*;{X5v diff --git a/Output/Console/g_gameplay_both.txt b/Output/Console/g_gameplay_both.txt index d470adf9..8d756ace 100644 --- a/Output/Console/g_gameplay_both.txt +++ b/Output/Console/g_gameplay_both.txt @@ -113,37 +113,68 @@ D8210080 83A10084 $Disable Wobbling [UnclePunch] *Break out of grab after three Nana hits -C20DA9DC 00000003 #External/PreventWobbling/1.asm -38600000 987C2350 -3860FFFF B07C2352 -7F43D378 00000000 -C208F090 0000001D #External/PreventWobbling/2.asm +C20DC034 00000003 #External/PreventWobbling/Init Wobble Count Air.asm +38600000 987D2350 +3860FFFF B07D2352 +8001005C 00000000 +C20DC388 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm +38600000 987D2350 +3860FFFF B07D2352 +8001005C 00000000 +C208F748 00000038 #External/PreventWobbling/Wobble Check.asm 807B0010 2C0300DF -418000D4 2C0300E4 -418100CC 807B1A58 -2C030000 418200C0 -8063002C 88832222 -5484077B 418200B0 -8863000C 38800001 -3D808003 618C418C -7D8903A6 4E800421 -2C030000 41820090 +418001B0 2C0300E4 +418101A8 807B1A58 +2C030000 4182019C +8083002C 88842222 +5484077B 4182018C 809B1868 7C032000 41820034 A0A40000 -2C050006 40820078 +2C050006 40820174 80A4002C 80850518 -7C032000 40820068 +7C032000 40820164 A0650DA8 A09B2352 -7C032000 41820058 +7C032000 41820154 48000018 80A3002C A0652088 A09B2352 -7C032000 41820040 +7C032000 4182013C B07B2352 887B2350 38630001 987B2350 -2C030003 41800028 -807B1A58 3D80800D +3D808016 618CB168 +7D8903A6 4E800421 +2C030000 40820114 +887B2350 2C030003 +40810108 7C0802A6 +90010004 9421FF20 +BE8100B0 829B1A58 +7E83A378 3D80800D 618CA698 7D8903A6 -4E800421 3D808008 -618CF0C8 7D8903A6 -4E800420 801B0010 -60000000 00000000 +4E800421 8074002C +8863000C 38800001 +3D800000 618C0000 +7D8903A6 4E800421 +2C030000 4182009C +7C751B78 8095002C +80A400E0 2C050000 +4082001C 38800000 +3D80800D 618CA698 +7D8903A6 4E800421 +48000070 8075002C +3D80800D 618CC070 +7D8903A6 4E800421 +8075002C 80ADAEB4 +C0050374 C023002C +FC200850 EC000072 +D0030080 C0050378 +D0030084 C0029700 +D0032340 C0229700 +C0429704 FC600890 +7EA3AB78 388000E6 +38A00000 38C00000 +3D808006 618C93AC +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +3D808008 618CF0C8 +7D8903A6 4E800420 +801B0010 00000000 diff --git a/Output/Console/g_gameplay_wobbling.bin b/Output/Console/g_gameplay_wobbling.bin index 36a418e9f0b467d9c3beb2d43405578bdcb84c2c..ee1c0b837df9c2a3d7d362290a593e9902278ed0 100644 GIT binary patch literal 520 zcmaJ;ze_@46g^*`+8YuYB19XWzV(d_Zz#~FrU-FxXz*b{qlAL+G_Gb~@CKnm!G;Hl z2>rmIsUaS=H2NRpAWaQzErMM$AsYIY``vTyz2{tR-|wyikVXn<6t!I=HJS8^TAT#- z7)Rg#T>Y0~&s}}oDLo_&U z60Mr{{bBJ;c6P`Up8DWc^{JU(gVxz}&noyNSE zvg|#LC4(R~2{3J7&dv72RUsG3(a5Ru0#_}91?m`^{sYTsL9qv}$GfpYB0kzkKlgm`Aqx#WBs1uAG%G2Ew6IqL`5QWt8F(xj7#M9E8kiG%9D8az znV0!BuqZ;+PiUAekx|2}0Mcu+U Date: Mon, 17 Oct 2022 18:20:11 -0400 Subject: [PATCH 158/217] tag wobbling codes with affects-gameplay --- External/PreventWobbling/Init Wobble Count Air.asm | 1 + External/PreventWobbling/Init Wobble Count Ground.asm | 1 + External/PreventWobbling/Wobble Check.asm | 1 + Output/InjectionLists/list_console_gameplay_both.json | 10 ++++++++-- .../InjectionLists/list_console_gameplay_wobbling.json | 10 ++++++++-- 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/External/PreventWobbling/Init Wobble Count Air.asm b/External/PreventWobbling/Init Wobble Count Air.asm index ad32eaaa..3ca02964 100644 --- a/External/PreventWobbling/Init Wobble Count Air.asm +++ b/External/PreventWobbling/Init Wobble Count Air.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 800DC034 +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/PreventWobbling/Init Wobble Count Ground.asm b/External/PreventWobbling/Init Wobble Count Ground.asm index c6cbb661..a25d0b24 100644 --- a/External/PreventWobbling/Init Wobble Count Ground.asm +++ b/External/PreventWobbling/Init Wobble Count Ground.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 800DC388 +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/PreventWobbling/Wobble Check.asm b/External/PreventWobbling/Wobble Check.asm index e49b73cd..ddba5ef4 100644 --- a/External/PreventWobbling/Wobble Check.asm +++ b/External/PreventWobbling/Wobble Check.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 8008F748 +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Output/InjectionLists/list_console_gameplay_both.json b/Output/InjectionLists/list_console_gameplay_both.json index bf08f91e..ff5042d0 100644 --- a/Output/InjectionLists/list_console_gameplay_both.json +++ b/Output/InjectionLists/list_console_gameplay_both.json @@ -37,13 +37,19 @@ "Tags": "" }, { - "InjectionAddress": "800DA9DC", + "InjectionAddress": "800DC034", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "8008F090", + "InjectionAddress": "800DC388", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8008F748", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" diff --git a/Output/InjectionLists/list_console_gameplay_wobbling.json b/Output/InjectionLists/list_console_gameplay_wobbling.json index 8704e53e..cd46836d 100644 --- a/Output/InjectionLists/list_console_gameplay_wobbling.json +++ b/Output/InjectionLists/list_console_gameplay_wobbling.json @@ -1,13 +1,19 @@ { "Details": [ { - "InjectionAddress": "800DA9DC", + "InjectionAddress": "800DC034", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "8008F090", + "InjectionAddress": "800DC388", + "Codetype": "Auto", + "Annotation": "", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8008F748", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" From 266cfd91b0e84481469c097f89c8d2ac29f1cce3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 17 Oct 2022 18:23:19 -0400 Subject: [PATCH 159/217] add crash output injections --- Output/InjectionLists/list_console_crash_output.json | 10 ++++++++++ list-injections.bat | 1 + 2 files changed, 11 insertions(+) create mode 100644 Output/InjectionLists/list_console_crash_output.json diff --git a/Output/InjectionLists/list_console_crash_output.json b/Output/InjectionLists/list_console_crash_output.json new file mode 100644 index 00000000..6f3aa28c --- /dev/null +++ b/Output/InjectionLists/list_console_crash_output.json @@ -0,0 +1,10 @@ +{ + "Details": [ + { + "InjectionAddress": "80394A68", + "Codetype": "Auto", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/list-injections.bat b/list-injections.bat index 05251312..4adb4822 100644 --- a/list-injections.bat +++ b/list-injections.bat @@ -18,6 +18,7 @@ set list=%list%;console_lag_pdhalfvb.json set list=%list%;console_screen_wide.json set list=%list%;console_screen_wide_shutters.json set list=%list%;console_safety.json +set list=%list%;console_crash_output.json for %%a in (%list%) do ( echo Listing %%a... From b8b9ee257cff4b8aaaea492bbf6aee1d675bfae9 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 17 Oct 2022 18:32:51 -0400 Subject: [PATCH 160/217] add crash output file to makefile --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 7b1e78bb..bbb6737b 100644 --- a/Makefile +++ b/Makefile @@ -29,11 +29,12 @@ CONSOLE_LAG_PDHALFVB := console_lag_pdhalfvb.json CONSOLE_SCREEN_WIDE := console_screen_wide.json CONSOLE_SCREEN_SHUTTERS := console_screen_wide_shutters.json CONSOLE_SAFETY := console_safety.json +CONSOLE_CRASH_OUTPUT := console_crash_output.json CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) $(CONSOLE_MODS_FRIENDLIES) \ $(CONSOLE_PAL) $(CONSOLE_FROZEN_PS) $(CONSOLE_FROZEN_ALL) $(CONSOLE_GAMEPLAY_LGL) \ $(CONSOLE_GAMEPLAY_WOBBLE) $(CONSOLE_GAMEPLAY_BOTH) $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) \ - $(CONSOLE_SCREEN_WIDE) $(CONSOLE_SCREEN_SHUTTERS) $(CONSOLE_SAFETY) + $(CONSOLE_SCREEN_WIDE) $(CONSOLE_SCREEN_SHUTTERS) $(CONSOLE_SAFETY) ${CONSOLE_CRASH_OUTPUT} GECKO_INJECTIONS := $(NETPLAY) $(CONSOLE_CORE) $(CONSOLE) INI_TARGETS := $(ONLINE_INI) $(NETPLAY_INI) $(PLAYBACK_INI) \ From 354581af4fc1f0b15b683b890d02ca7a37d1408e Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 18 Oct 2022 12:11:43 -0400 Subject: [PATCH 161/217] fix wobbling codes I based these changes on a version of the codes Cookbook sent me --- .../PreventWobbling/Init Wobble Count Air.asm | 2 +- .../Init Wobble Count Ground.asm | 2 +- External/PreventWobbling/Wobble Check.asm | 6 ++++-- Output/Console/g_gameplay_both.bin | Bin 1400 -> 1400 bytes Output/Console/g_gameplay_both.txt | 10 +++++----- Output/Console/g_gameplay_wobbling.bin | Bin 520 -> 520 bytes Output/Console/g_gameplay_wobbling.txt | 10 +++++----- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/External/PreventWobbling/Init Wobble Count Air.asm b/External/PreventWobbling/Init Wobble Count Air.asm index 3ca02964..959b01e5 100644 --- a/External/PreventWobbling/Init Wobble Count Air.asm +++ b/External/PreventWobbling/Init Wobble Count Air.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 800DC034 +# Address: 800db880 # Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/PreventWobbling/Init Wobble Count Ground.asm b/External/PreventWobbling/Init Wobble Count Ground.asm index a25d0b24..3b355744 100644 --- a/External/PreventWobbling/Init Wobble Count Ground.asm +++ b/External/PreventWobbling/Init Wobble Count Ground.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 800DC388 +# Address: 800dbbd4 # Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/External/PreventWobbling/Wobble Check.asm b/External/PreventWobbling/Wobble Check.asm index ddba5ef4..2c2139a2 100644 --- a/External/PreventWobbling/Wobble Check.asm +++ b/External/PreventWobbling/Wobble Check.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 8008F748 +# Address: 8008F090 # Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" @@ -22,6 +22,8 @@ .set AS_218_CatchCut,0x800da698 .set AS_CaptureJump,0x800dc070 .set ActionStateChange,0x800693ac +.set AirStoreBoolLoseGroundJump,0x8007d5d4 +.set PlayerBlock_LoadDataOffset,0x8003418C .set Wobbling_Exit,0x8008F0C8 @@ -124,7 +126,7 @@ AerialBreak: #Aerial nana enters capturejump (800dc070) lwz r3,0x2c(REG_FollowerGObj) - branchl r12,AS_CaptureJump #0x8007d5d4 + branchl r12,AirStoreBoolLoseGroundJump #0x8007d5d4 # give velocity lwz r3,0x2c(REG_FollowerGObj) lwz r5, -0x514C (r13) diff --git a/Output/Console/g_gameplay_both.bin b/Output/Console/g_gameplay_both.bin index 25ca56113809e479e54cf8c3e496d319daa06612..01a673bb9d818c36bf01e4903b363b271129e2df 100644 GIT binary patch delta 99 zcmeyt^@D3e5wp{d1_lNOW{U&{h8eZW0Tv1W|8J;O4r*XzhyjW-9OB)51+P5EhY6Fn cFu!AKU{36D?3uiR#hH~ovFGZQ$sbrc0AJoBY5)KL delta 99 zcmeyt^@D3e5wp_)69xtbW{U&{h8eZW0Tv1W|8J;O4r*XzhyjW-9O6CPfmfd6yT{}$ c%^V>{`2$M_02xvr-T(jq diff --git a/Output/Console/g_gameplay_both.txt b/Output/Console/g_gameplay_both.txt index 8d756ace..e80d995e 100644 --- a/Output/Console/g_gameplay_both.txt +++ b/Output/Console/g_gameplay_both.txt @@ -113,15 +113,15 @@ D8210080 83A10084 $Disable Wobbling [UnclePunch] *Break out of grab after three Nana hits -C20DC034 00000003 #External/PreventWobbling/Init Wobble Count Air.asm +C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm 38600000 987D2350 3860FFFF B07D2352 8001005C 00000000 -C20DC388 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm +C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm 38600000 987D2350 3860FFFF B07D2352 8001005C 00000000 -C208F748 00000038 #External/PreventWobbling/Wobble Check.asm +C208F090 00000038 #External/PreventWobbling/Wobble Check.asm 807B0010 2C0300DF 418001B0 2C0300E4 418101A8 807B1A58 @@ -151,7 +151,7 @@ BE8100B0 829B1A58 618CA698 7D8903A6 4E800421 8074002C 8863000C 38800001 -3D800000 618C0000 +3D808003 618C418C 7D8903A6 4E800421 2C030000 4182009C 7C751B78 8095002C @@ -160,7 +160,7 @@ BE8100B0 829B1A58 3D80800D 618CA698 7D8903A6 4E800421 48000070 8075002C -3D80800D 618CC070 +3D808007 618CD5D4 7D8903A6 4E800421 8075002C 80ADAEB4 C0050374 C023002C diff --git a/Output/Console/g_gameplay_wobbling.bin b/Output/Console/g_gameplay_wobbling.bin index ee1c0b837df9c2a3d7d362290a593e9902278ed0..8aef66d073b8c7d70e650f2e3892829c3b957aca 100644 GIT binary patch delta 97 zcmeBR>0og=#Ji(`fq{Y9B7uQnMy+yyMZ*988)}t<8W0og=#CyPmfq{Y9B7uQnMy+yyMZ*988)}t<8WXI{ Date: Tue, 18 Oct 2022 12:13:04 -0400 Subject: [PATCH 162/217] update code lists for wobbling changes --- Output/InjectionLists/list_console_gameplay_both.json | 6 +++--- Output/InjectionLists/list_console_gameplay_wobbling.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Output/InjectionLists/list_console_gameplay_both.json b/Output/InjectionLists/list_console_gameplay_both.json index ff5042d0..4a1ae627 100644 --- a/Output/InjectionLists/list_console_gameplay_both.json +++ b/Output/InjectionLists/list_console_gameplay_both.json @@ -37,19 +37,19 @@ "Tags": "" }, { - "InjectionAddress": "800DC034", + "InjectionAddress": "800DB880", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800DC388", + "InjectionAddress": "800DBBD4", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "8008F748", + "InjectionAddress": "8008F090", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" diff --git a/Output/InjectionLists/list_console_gameplay_wobbling.json b/Output/InjectionLists/list_console_gameplay_wobbling.json index cd46836d..654dd9c1 100644 --- a/Output/InjectionLists/list_console_gameplay_wobbling.json +++ b/Output/InjectionLists/list_console_gameplay_wobbling.json @@ -1,19 +1,19 @@ { "Details": [ { - "InjectionAddress": "800DC034", + "InjectionAddress": "800DB880", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800DC388", + "InjectionAddress": "800DBBD4", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "8008F748", + "InjectionAddress": "8008F090", "Codetype": "Auto", "Annotation": "", "Tags": "[affects-gameplay]" From 5d6c91e909539afe46701f80c3b2bb27859581f0 Mon Sep 17 00:00:00 2001 From: UnclePunch Date: Fri, 21 Oct 2022 01:21:14 -0400 Subject: [PATCH 163/217] update wobbling code change wobbling variable (jas encountered a crash that is possibly related to it https://cdn.discordapp.com/attachments/327589681963204608/1032856080155414578/IMG_3829.jpg) also check to see if nana is dead/frozen/being star KO'd before entering her into CatchCut --- .../PreventWobbling/Init Wobble Count Air.asm | 4 +- .../Init Wobble Count Ground.asm | 4 +- External/PreventWobbling/Wobble Check.asm | 25 ++++++++-- Output/Console/g_gameplay_both.bin | Bin 1400 -> 1440 bytes Output/Console/g_gameplay_both.txt | 47 ++++++++++-------- Output/Console/g_gameplay_wobbling.bin | Bin 520 -> 560 bytes Output/Console/g_gameplay_wobbling.txt | 47 ++++++++++-------- 7 files changed, 77 insertions(+), 50 deletions(-) diff --git a/External/PreventWobbling/Init Wobble Count Air.asm b/External/PreventWobbling/Init Wobble Count Air.asm index 959b01e5..5ac4e14e 100644 --- a/External/PreventWobbling/Init Wobble Count Air.asm +++ b/External/PreventWobbling/Init Wobble Count Air.asm @@ -6,8 +6,8 @@ .set REG_DefenderData,29 -.set OFST_WobbleCounter,0x2350 -.set OFST_LastMoveID,0x2352 +.set OFST_WobbleCounter,0x2384 +.set OFST_LastMoveID,0x2386 #Init count li r3,0 diff --git a/External/PreventWobbling/Init Wobble Count Ground.asm b/External/PreventWobbling/Init Wobble Count Ground.asm index 3b355744..9f2c4898 100644 --- a/External/PreventWobbling/Init Wobble Count Ground.asm +++ b/External/PreventWobbling/Init Wobble Count Ground.asm @@ -6,8 +6,8 @@ .set REG_DefenderData,29 -.set OFST_WobbleCounter,0x2350 -.set OFST_LastMoveID,0x2352 +.set OFST_WobbleCounter,0x2384 +.set OFST_LastMoveID,0x2386 #Init count li r3,0 diff --git a/External/PreventWobbling/Wobble Check.asm b/External/PreventWobbling/Wobble Check.asm index 2c2139a2..118b1ccf 100644 --- a/External/PreventWobbling/Wobble Check.asm +++ b/External/PreventWobbling/Wobble Check.asm @@ -10,12 +10,15 @@ .set ASID_CaptureDamageLw, 0xE4 .set ASID_CaptureJump, 0xE6 - .set OFST_IsLeader,0x2222 .set Bitflag_IsLeader,0x4 +.set OFST_IsDead,0x221f +.set Bitflag_IsDead,0x40 +.set OFST_IsFrozen,0x2219 +.set Bitflag_IsFrozen,0x04 -.set OFST_WobbleCounter,0x2350 -.set OFST_LastMoveID,0x2352 +.set OFST_WobbleCounter,0x2384 +.set OFST_LastMoveID,0x2386 .set MaxWobbles,3 .set Match_CheckIfTeams,0x8016B168 @@ -24,6 +27,7 @@ .set ActionStateChange,0x800693ac .set AirStoreBoolLoseGroundJump,0x8007d5d4 .set PlayerBlock_LoadDataOffset,0x8003418C +.set IceClimbers_CheckNanaAliveAndActionable, 0x8012300c .set Wobbling_Exit,0x8008F0C8 @@ -110,11 +114,24 @@ cmpwi r3,0 beq SkipBreak mr REG_FollowerGObj,r3 - lwz r4,0x2c(REG_FollowerGObj) #Check if her AI is in follow mode #lbz r5, 0x1a88 + 0xFA (r4) #rlwinm. r5,r5,0,0x01 #beq SkipBreak + #Ensure that she is alive and actionable + lwz r4,0x2c(REG_FollowerGObj) + lbz r0, OFST_IsDead (r4) # dead flag + rlwinm. r0, r0, 0, Bitflag_IsDead + bne SkipBreak + lbz r0, OFST_IsFrozen (r4) # frozen flag + rlwinm. r0, r0, 0, Bitflag_IsFrozen + bne SkipBreak + lbz r0, 0x2071 (r4) # state kind + rlwinm r0, r0, 28, 28, 31 + cmpwi r0, 13 # star and screen KOs + beq SkipBreak +CheckGroundState: + #Check grounded/airborne lwz r5, 0xE0 (r4) cmpwi r5,0 bne AerialBreak diff --git a/Output/Console/g_gameplay_both.bin b/Output/Console/g_gameplay_both.bin index 01a673bb9d818c36bf01e4903b363b271129e2df..ebdb73a49304ce9d9a37b61bc683ccefbb5a5869 100644 GIT binary patch delta 321 zcmeytwSap=J#&4FMZ*988)}u?8W7Nqj7STI|;4WgK_#)E-DqG2(E&Vp2h z4kYoE4b{qR9o0YwCNnV30MfP%4PuEs8#8J0V2m@QOLleUWAX_qofxQ~YUedv$ WP#D7S+)jsqffwlhDU%Pd>;M3T>|+W5 delta 281 zcmZ3${ex>mJ#&44MZ*988)}t<8W0#J^@ zWWf>!1|3!gHixEq#*&653_1<1tP&tehbG391*yC%7R*)-f+%JT@nB$(XjsgkvmjNW z14-OwL$z{HM>Wua$qbA$fV6ExgIHqE#*Erd=4E~jEQ%n90L>EtsR6Q?9U2)qYB-pd lO<-hTnWFe#VP7M|hNj82ELNOzYD%Rm8m2PnOn$+#0|5C(RS*CG diff --git a/Output/Console/g_gameplay_both.txt b/Output/Console/g_gameplay_both.txt index e80d995e..0fc24724 100644 --- a/Output/Console/g_gameplay_both.txt +++ b/Output/Console/g_gameplay_both.txt @@ -114,37 +114,37 @@ D8210080 83A10084 $Disable Wobbling [UnclePunch] *Break out of grab after three Nana hits C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm -38600000 987D2350 -3860FFFF B07D2352 +38600000 987D2384 +3860FFFF B07D2386 8001005C 00000000 C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm -38600000 987D2350 -3860FFFF B07D2352 +38600000 987D2384 +3860FFFF B07D2386 8001005C 00000000 -C208F090 00000038 #External/PreventWobbling/Wobble Check.asm +C208F090 0000003D #External/PreventWobbling/Wobble Check.asm 807B0010 2C0300DF -418001B0 2C0300E4 -418101A8 807B1A58 -2C030000 4182019C +418001D8 2C0300E4 +418101D0 807B1A58 +2C030000 418201C4 8083002C 88842222 -5484077B 4182018C +5484077B 418201B4 809B1868 7C032000 41820034 A0A40000 -2C050006 40820174 +2C050006 4082019C 80A4002C 80850518 -7C032000 40820164 -A0650DA8 A09B2352 -7C032000 41820154 +7C032000 4082018C +A0650DA8 A09B2386 +7C032000 4182017C 48000018 80A3002C -A0652088 A09B2352 -7C032000 4182013C -B07B2352 887B2350 -38630001 987B2350 +A0652088 A09B2386 +7C032000 41820164 +B07B2386 887B2384 +38630001 987B2384 3D808016 618CB168 7D8903A6 4E800421 -2C030000 40820114 -887B2350 2C030003 -40810108 7C0802A6 +2C030000 4082013C +887B2384 2C030003 +40810130 7C0802A6 90010004 9421FF20 BE8100B0 829B1A58 7E83A378 3D80800D @@ -153,8 +153,13 @@ BE8100B0 829B1A58 8863000C 38800001 3D808003 618C418C 7D8903A6 4E800421 -2C030000 4182009C +2C030000 418200C4 7C751B78 8095002C +8804221F 54000673 +408200B0 88042219 +5400077B 408200A4 +88042071 5400E73E +2C00000D 41820094 80A400E0 2C050000 4082001C 38800000 3D80800D 618CA698 diff --git a/Output/Console/g_gameplay_wobbling.bin b/Output/Console/g_gameplay_wobbling.bin index 8aef66d073b8c7d70e650f2e3892829c3b957aca..9186834bd0d095f76d85a5508803f5e2e83c903b 100644 GIT binary patch delta 317 zcmeBR*}zhNh<8T=0|NuIMFIoEj9TRui-iCGH`FS(H83*70L2*&@$SBYSDxd;1faZa zLp6hd4l~1j#|Fk5K>CSeBjbgJYN-eyo58V(@km26gHA__l2S+udo_^1rD3*2Mh&w< zJy4RtWWf>!1|3!gHist0ISoq~bQ)S&C4iC)Kz`4HRNfT}W-GUW_&|*{9t;c;4T~9c z7Njb4Ac?1Js8(+4s0Mlpm{bRH9$7ALnEU> z4adZPo`y$iN~J3rrUKo^q9h-}z*g+g#IOO#mJDHFuLiQ0bg(EChA=$0(_vuX1v+=i ICSeBjbvOYN-eyo58V(aZW=sgHA__l2S+udo_^X(=b~iqlQ_b z9w^CRvS0}VgAOYLn?n<0Ny8EborYFc37{kcke{+3m3PI0*~&p6K2T$b2Lppd!(s-V z1*r-hNa8jds+EH}s(~IzW?-BFq-`4-#1eZpX4G~vFY{|)Q3N>zXr2g24Uo<3(8$P9 Y!!hxnC+D1+Qt66@sSG-kD;ReG0AFfR-~a#s diff --git a/Output/Console/g_gameplay_wobbling.txt b/Output/Console/g_gameplay_wobbling.txt index fcf5c205..5dd0a59e 100644 --- a/Output/Console/g_gameplay_wobbling.txt +++ b/Output/Console/g_gameplay_wobbling.txt @@ -1,37 +1,37 @@ $Disable Wobbling [UnclePunch] *Breaks Popo's grab after four pummels if the victim has not left hitstun since the first pummel. C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm -38600000 987D2350 -3860FFFF B07D2352 +38600000 987D2384 +3860FFFF B07D2386 8001005C 00000000 C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm -38600000 987D2350 -3860FFFF B07D2352 +38600000 987D2384 +3860FFFF B07D2386 8001005C 00000000 -C208F090 00000038 #External/PreventWobbling/Wobble Check.asm +C208F090 0000003D #External/PreventWobbling/Wobble Check.asm 807B0010 2C0300DF -418001B0 2C0300E4 -418101A8 807B1A58 -2C030000 4182019C +418001D8 2C0300E4 +418101D0 807B1A58 +2C030000 418201C4 8083002C 88842222 -5484077B 4182018C +5484077B 418201B4 809B1868 7C032000 41820034 A0A40000 -2C050006 40820174 +2C050006 4082019C 80A4002C 80850518 -7C032000 40820164 -A0650DA8 A09B2352 -7C032000 41820154 +7C032000 4082018C +A0650DA8 A09B2386 +7C032000 4182017C 48000018 80A3002C -A0652088 A09B2352 -7C032000 4182013C -B07B2352 887B2350 -38630001 987B2350 +A0652088 A09B2386 +7C032000 41820164 +B07B2386 887B2384 +38630001 987B2384 3D808016 618CB168 7D8903A6 4E800421 -2C030000 40820114 -887B2350 2C030003 -40810108 7C0802A6 +2C030000 4082013C +887B2384 2C030003 +40810130 7C0802A6 90010004 9421FF20 BE8100B0 829B1A58 7E83A378 3D80800D @@ -40,8 +40,13 @@ BE8100B0 829B1A58 8863000C 38800001 3D808003 618C418C 7D8903A6 4E800421 -2C030000 4182009C +2C030000 418200C4 7C751B78 8095002C +8804221F 54000673 +408200B0 88042219 +5400077B 408200A4 +88042071 5400E73E +2C00000D 41820094 80A400E0 2C050000 4082001C 38800000 3D80800D 618CA698 From 2c98e8c5348bf7f54f07a131d3383321ce66f56d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 3 Nov 2022 18:35:25 -0400 Subject: [PATCH 164/217] manage game index in ASM for non-ranked --- Online/Core/InitOnlinePlay.asm | 17 +- Online/Menus/CSS/HandleInputsOnCSS.asm | 7 + .../TitleMenu/HandleOnlineLockedOptions.asm | 4 +- Online/Online.s | 6 +- Online/Slippi Online Scene/main.asm | 8 +- Output/Netplay/GALE01r2.ini | 603 +++++++++--------- Output/Netplay/GALJ01r2.ini | 603 +++++++++--------- 7 files changed, 642 insertions(+), 606 deletions(-) diff --git a/Online/Core/InitOnlinePlay.asm b/Online/Core/InitOnlinePlay.asm index 0e3e971e..7d36b9f9 100644 --- a/Online/Core/InitOnlinePlay.asm +++ b/Online/Core/InitOnlinePlay.asm @@ -35,6 +35,21 @@ branchl r12, Zero_AreaLength stw REG_ODB_ADDRESS, OFST_R13_ODB_ADDR(r13) +# We use game prep minor scene data as a convenient place to store game index such that it persists +# between games even when not in ranked +loadwz r3, 0x803dad40 # Load minor scene data array ptr +lwz r12, 0x88(r3) # Load game prep minor scene data + +# If not in ranked mode, let's increment the game index before the game start. Ranked mode manages +# this in its scene logic +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_RANKED +beq SKIP_GAME_INDEX_INCR +lhz r3, GPDO_CUR_GAME(r12) +addi r3, r3, 1 +sth r3, GPDO_CUR_GAME(r12) +SKIP_GAME_INDEX_INCR: + # Indicate that the first frame is frame 1 li r3, 1 stw r3, ODB_FRAME(REG_ODB_ADDRESS) @@ -321,7 +336,7 @@ stb r3, RGB_ONLINE_MODE(REG_RGB_ADDR) branchl r12, 0x801a4ba8 # MenuController_LoadTimer1 stw r3, RGB_FRAME_LENGTH(REG_RGB_ADDR) # Store frame length -lbz r3, GPDO_CUR_GAME(REG_GPD_ADDR) +lhz r3, GPDO_CUR_GAME(REG_GPD_ADDR) stw r3, RGB_GAME_INDEX(REG_RGB_ADDR) lbz r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD_ADDR) diff --git a/Online/Menus/CSS/HandleInputsOnCSS.asm b/Online/Menus/CSS/HandleInputsOnCSS.asm index 6ea0a83f..74688162 100644 --- a/Online/Menus/CSS/HandleInputsOnCSS.asm +++ b/Online/Menus/CSS/HandleInputsOnCSS.asm @@ -339,6 +339,13 @@ b SKIP_START_MATCH FN_TX_FIND_MATCH: backup +# When the player starts looking for a match is a good time to reset the game index +loadwz r3, 0x803dad40 # Load minor scene data array ptr +lwz r12, 0x88(r3) # Load game prep minor scene data +li r3, 0 +sth r3, GPDO_CUR_GAME(r12) +stb r3, GPDO_TIEBREAK_GAME_NUM(r12) + # Prepare buffer for EXI transfer li r3, FMTB_SIZE branchl r12, HSD_MemAlloc diff --git a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm index aa126919..ba2a244a 100644 --- a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +++ b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm @@ -48,8 +48,8 @@ beq RETURN_LOCKED b EXIT LOGGED_IN_STATE: -cmpwi r4, OPTION_RANKED_IDX -beq RETURN_LOCKED +# cmpwi r4, OPTION_RANKED_IDX +# beq RETURN_LOCKED cmpwi r4, OPTION_LOGIN_IDX beq RETURN_LOCKED cmpwi r4, OPTION_UPDATE_IDX diff --git a/Online/Online.s b/Online/Online.s index e82ef8e6..f3fad9be 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -466,8 +466,8 @@ # Define game prep data and include macro to create static data ################################################################################ .set GPDO_MAX_GAMES, 0 # u8 -.set GPDO_CUR_GAME, GPDO_MAX_GAMES + 1 # u8 -.set GPDO_SCORE_BY_PLAYER, GPDO_CUR_GAME + 1 # u8[2] +.set GPDO_CUR_GAME, GPDO_MAX_GAMES + 1 # u16 +.set GPDO_SCORE_BY_PLAYER, GPDO_CUR_GAME + 2 # u8[2] .set GPDO_PREV_WINNER, GPDO_SCORE_BY_PLAYER + 2 * 1 # u8 .set GPDO_TIEBREAK_GAME_NUM, GPDO_PREV_WINNER + 1 # u8 .set GAME_PREP_MAX_RESULT_COUNT, 9 @@ -484,7 +484,7 @@ .macro createGamePrepStaticBlock .byte 0x0 # GPDO_MAX_GAMES, max games -.byte 0x0 # GPDO_CUR_GAME, current game +.hword 0x0 # GPDO_CUR_GAME, current game .fill 2, 1, 0 # GPDO_SCORE_BY_PLAYER .byte 0x0 # GPDO_PREV_WINNER, previous winner .byte 0x0 # GPDO_TIEBREAK_GAME_NUM diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 1370b4aa..fca73868 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -433,7 +433,7 @@ stw r3, GPDO_FN_COMPUTE_RANKED_WINNER(REG_GAME_PREP_DATA) li r3, 3 stb r3, GPDO_MAX_GAMES(REG_GAME_PREP_DATA) li r3, 1 -stb r3, GPDO_CUR_GAME(REG_GAME_PREP_DATA) +sth r3, GPDO_CUR_GAME(REG_GAME_PREP_DATA) li r3, 0 stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GAME_PREP_DATA) stb r3, GPDO_COLOR_BAN_ACTIVE(REG_GAME_PREP_DATA) @@ -616,7 +616,7 @@ VSSceneDecide_SkipTieHandler: stb REG_WINNER_IDX, GPDO_PREV_WINNER(REG_GPD) # Store winner index # Set winner ID at game index -lbz r4, GPDO_CUR_GAME(REG_GPD) +lhz r4, GPDO_CUR_GAME(REG_GPD) addi r4, r4, GPDO_GAME_RESULTS - 1 # Move offset to index in array (cur_game is 1-indexed) stbx REG_WINNER_IDX, REG_GPD, r4 @@ -639,9 +639,9 @@ divwu r4, r4, r3 # Calculate number of wins needed cmpw r5, r4 bge VSSceneDecide_RankedSetOver -lbz r3, GPDO_CUR_GAME(REG_GPD) +lhz r3, GPDO_CUR_GAME(REG_GPD) addi r3, r3, 1 -stb r3, GPDO_CUR_GAME(REG_GPD) +sth r3, GPDO_CUR_GAME(REG_GPD) li r3, 0 stb r3, GPDO_TIEBREAK_GAME_NUM(REG_GPD) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 378f7945..48e10017 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1194,20 +1194,25 @@ BA8100B0 800100E4 800100E4 382100E0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000009E #Online/Core/InitOnlinePlay.asm +C216E748 000000A3 #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 -408204A8 38600B2F +408204D0 38600B2F 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 38800B2F 3D808000 618CC160 7D8903A6 4E800421 -936DB61C 38600001 +936DB61C 3C60803D +6063AD40 80630000 +81830088 886DAFA0 +2C030000 41820010 +A06C0001 38630001 +B06C0001 38600001 907B0003 4800028D 7C6802A6 907B08FB 3860001A 3D808037 @@ -1251,8 +1256,8 @@ C216E748 0000009E #Online/Core/InitOnlinePlay.asm 2C030000 40820048 3CA0803D 60A5AD40 80A50000 80A50088 -88650005 2C030000 -4182002C 88650016 +88650006 2C030000 +4182002C 88650017 2C030007 41820020 386000B4 907F0010 38600001 987F0062 @@ -1313,9 +1318,9 @@ BE8100B0 838DB61C 987E0001 3D80801A 618C4BA8 7D8903A6 4E800421 907E0002 -887B0001 907E0006 -887B0005 907E000A -807B0017 7C6903A6 +A07B0001 907E0006 +887B0006 907E000A +807B0018 7C6903A6 4E800421 987E000E 887C0011 2C030000 3880FFFD 40820018 @@ -2340,14 +2345,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 0000016C #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E -2C030008 40820AFC +2C030008 40820B18 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2370,30 +2375,30 @@ BE8100B0 3C608048 2C030003 4081008C 2C030004 41820090 2C030005 418201E8 -48000A28 88780014 -2C030000 40820A1C -576004E7 41820A14 +48000A44 88780014 +2C030000 40820A38 +576004E7 41820A30 3C608048 80639D60 -2C030000 41820A04 +2C030000 41820A20 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 2C030000 -418209E8 886DAFA0 +41820A04 886DAFA0 2C030000 41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE -48000355 480009BC -4800037D 480009B4 -576006F7 408203B9 -480009A8 3D80801A +48000371 480009D8 +48000399 480009D0 +576006F7 408203D5 +480009C4 3D80801A 618C3680 7D8903A6 4E800421 548006F7 41820024 88780013 38630001 98780013 2C030030 40810014 -9B980013 48000381 -48000970 9B980013 +9B980013 4800039D +4800098C 9B980013 887A0001 2C030000 408200EC 576004E7 4082002C 886DAFA0 @@ -2408,300 +2413,303 @@ BE8100B0 3C608048 886DAFA0 2C030001 41820010 2C030002 40800014 48000000 -3860FFFE 48000169 +3860FFFE 48000185 4800007C 886DAFC9 2C030000 4182001C 2C030001 41820008 48000000 3860FFFF -48000145 48000058 +48000161 48000058 886DAFCA 2C030000 41820018 806D8840 38630598 A063001E -48000125 48000038 +48000141 48000038 888DAFA0 2C040003 38600000 40820008 38600001 808DB610 98640018 38600001 -986DB656 480000F5 +986DB656 48000111 7C6802A6 906DAFE8 -48000878 887A0001 +48000894 887A0001 889A0002 7C632039 -41820868 BA8100B0 +41820884 BA8100B0 800100E4 382100E0 7C0803A6 3D808026 618C3264 7D8903A6 4E800420 576006F7 -4082024D 4800083C +40820269 48000858 7C0802A6 90010004 9421FF20 BE8100B0 -38600014 3D808037 -618CF1E4 7D8903A6 -4E800421 7C791B78 -386000B4 98790000 -886DAFA0 98790001 -38F90002 3CC0804A -60C60740 38800000 -38A00000 7C66222E -7C672B2E 38840003 -38A50002 2C050012 -4180FFEC 7F23CB78 -38800014 38A00001 -3D808000 618C55F0 +3C60803D 6063AD40 +80630000 81830088 +38600000 B06C0001 +986C0006 38600014 +3D808037 618CF1E4 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 +7C791B78 386000B4 +98790000 886DAFA0 +98790001 38F90002 +3CC0804A 60C60740 +38800000 38A00000 +7C66222E 7C672B2E +38840003 38A50002 +2C050012 4180FFEC +7F23CB78 38800014 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF20 BE8100B0 +7C7F1B78 38600009 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C791B78 386000B5 +98790000 808DB610 +886DAEF8 1C630024 +7C841A14 88640070 +98790002 88640073 +98790003 38600001 +98790004 886DAFA0 +2C030003 41820010 +38600000 98790001 +4800001C 3C608000 +60635614 80630000 +8863001A 3863FFFF +98790001 2C1FFFFE +41820014 2C1FFFFF +41820018 2C1F0000 +4080001C 38600000 +38800003 4800001C +38600000 38800000 +48000010 7FE3FB78 +38800001 48000004 +B0790005 98990007 +886DAFA0 98790008 +7F23CB78 38800009 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF20 BE8100B0 +8A98001A 4BFFFECD +4BFFFE01 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 7C7F1B78 -38600009 3D808037 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600001 986DAFA3 +4BFFFFB5 7C6802A6 +906DAFE8 880DB650 +980DB659 38000004 +980DB656 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600001 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -386000B5 98790000 -808DB610 886DAEF8 -1C630024 7C841A14 -88640070 98790002 -88640073 98790003 -38600001 98790004 -886DAFA0 2C030003 -41820010 38600000 -98790001 4800001C -3C608000 60635614 -80630000 8863001A -3863FFFF 98790001 -2C1FFFFE 41820014 -2C1FFFFF 41820018 -2C1F0000 4080001C -38600000 38800003 -4800001C 38600000 -38800000 48000010 -7FE3FB78 38800001 -48000004 B0790005 -98990007 886DAFA0 -98790008 7F23CB78 -38800009 38A00001 -3D808000 618C55F0 +386000BA 98790000 +7F23CB78 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 8A98001A -4BFFFECD 4BFFFE1D BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 -BE8100B0 38600001 -986DAFA3 4BFFFFB5 -7C6802A6 906DAFE8 -880DB650 980DB659 -38000004 980DB656 +BE8100B0 2C1B0200 +40820008 B3780015 +2C1B0001 4182001C +2C1B0002 41820014 +2C1B0008 4182000C +2C1B0004 4082001D +B3780015 88780014 +2C030000 4082000C +7F63DB78 480000B9 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 38600001 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000BA -98790000 7F23CB78 -38800001 38A00001 -3D808000 618C55F0 +4E800020 7C6E1B78 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600002 3D808037 +618CF1E4 7D8903A6 +4E800421 7C791B78 +386000BB 98790000 +7DC37378 98790001 +7F23CB78 38800002 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 +386000B7 3880007F +38A00040 3D808002 +618C37A8 7D8903A6 +4E800421 7F63DB78 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C6E1B78 7C0802A6 90010004 9421FF20 BE8100B0 -2C1B0200 40820008 -B3780015 2C1B0001 -4182001C 2C1B0002 -41820014 2C1B0008 -4182000C 2C1B0004 -4082001D B3780015 -88780014 2C030000 -4082000C 7F63DB78 -480000B9 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 38600002 +48000419 7DE802A6 +38600002 3D808002 +618C4030 7D8903A6 +4E800421 7DC37378 +98780014 3860000B 3D808037 618CF1E4 7D8903A6 4E800421 -7C791B78 386000BB -98790000 7DC37378 -98790001 7F23CB78 -38800002 38A00001 -3D808000 618C55F0 +7C771B78 3880000B +3D808000 618CC160 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 386000B7 -3880007F 38A00040 -3D808002 618C37A8 +7DC37378 98770000 +7F03C378 90770007 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C741B78 +80780004 80630000 +80630000 3D808037 +618C0E44 7D8903A6 +4E800421 7C751B78 +C02F0024 888DAFE0 +2C040000 41820008 +C02F0028 C04F002C +D0230038 D043003C +7E83A378 38800004 +7EA5AB78 3D808039 +618C0A70 7D8903A6 +4E800421 7E83A378 +3C808039 60841070 +38A00001 38C00080 +3D808039 618C069C 7D8903A6 4E800421 -7F63DB78 BA8100B0 +7E83A378 38800004 +3CA08037 60A5F1B0 +7EE6BB78 3D808039 +618C0B68 7D8903A6 +4E800421 7E83A378 +48000031 7C8802A6 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 48000419 -7DE802A6 38600002 -3D808002 618C4030 -7D8903A6 4E800421 -7DC37378 98780014 -3860000B 3D808037 -618CF1E4 7D8903A6 -4E800421 7C771B78 -3880000B 3D808000 -618CC160 7D8903A6 -4E800421 7DC37378 -98770000 7F03C378 -90770007 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 80780004 -80630000 80630000 -3D808037 618C0E44 +4E800021 7C6E1B78 +7C0802A6 90010004 +9421FF08 BDC100B0 +820E002C 82EE0028 +8A300000 8A500002 +82700003 82B00007 +A2D50015 83550000 +38600000 B0750015 +88700001 2C030000 +40820234 2C130000 +40820194 38600090 +7C721B78 98700002 +48000261 7DE802A6 +7E238B78 3D808000 +618C56AC 7D8903A6 +4E800421 7C741B78 +38600000 38800000 +3D80803A 618C6754 7D8903A6 4E800421 -7C751B78 C02F0024 -888DAFE0 2C040000 -41820008 C02F0028 -C04F002C D0230038 -D043003C 7E83A378 -38800004 7EA5AB78 -3D808039 618C0A70 +7C731B78 92700003 +38600001 38800000 +C02F0000 C04F0004 +98730049 9893004A +D0330008 D0530024 +D0530028 C04F0008 +886DAFE0 2C030000 +41820008 C04F000C +388F0034 887A0000 +2C030004 41820008 +388F0038 7E639B78 +38A00000 38CF0030 +38EF003C 39140004 +C02F001C C06F0018 +3D808000 618C56B4 7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00001 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -38800004 3CA08037 -60A5F1B0 7EE6BB78 -3D808039 618C0B68 +7C641B78 7C8A2378 +7C8B2378 386B0002 +C04F0020 3D808000 +618C55EC 7D8903A6 +4E800421 C06F0018 +EC63082A 2C0B0000 +4182001C 2C0B0001 +4182002C 2C0B0002 +4182001C 2C0B0003 +4182000C 38800008 +48000018 38800004 +48000010 38800002 +48000008 38800001 +7E238B78 3D808000 +618C56AC 7D8903A6 +4E800421 7C872378 +C04F0010 886DAFE0 +2C030000 41820008 +C04F0014 7E639B78 +388F0030 38A00000 +38CF0030 C02F001C +3D808000 618C56B4 7D8903A6 4E800421 -7E83A378 48000031 -7C8802A6 38A00004 -3D808038 618CFD54 +7C6B1B78 386A0004 +7C0B1800 4082FF48 +480000CC 88750018 +2C030000 41820010 +88700002 2C03008A +41810070 2C160200 +40820008 48000078 +2C160000 4182005C +88750018 2C030003 +4080003C 88750017 +2C030005 40800030 +38600000 98700002 +7E238B78 7EC4B378 +38A00004 7C632830 +7C632214 4BFFFBB1 +38600001 98700001 +4800005C 38600003 +3D808002 618C4030 7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -7C6E1B78 7C0802A6 -90010004 9421FF08 -BDC100B0 820E002C -82EE0028 8A300000 -8A500002 82700003 -82B00007 A2D50015 -83550000 38600000 -B0750015 88700001 -2C030000 40820234 -2C130000 40820194 -38600090 7C721B78 -98700002 48000261 -7DE802A6 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C741B78 38600000 -38800000 3D80803A -618C6754 7D8903A6 -4E800421 7C731B78 -92700003 38600001 -38800000 C02F0000 -C04F0004 98730049 -9893004A D0330008 -D0530024 D0530028 -C04F0008 886DAFE0 -2C030000 41820008 -C04F000C 388F0034 -887A0000 2C030004 -41820008 388F0038 -7E639B78 38A00000 -38CF0030 38EF003C -39140004 C02F001C -C06F0018 3D808000 -618C56B4 7D8903A6 -4E800421 7C641B78 -7C8A2378 7C8B2378 -386B0002 C04F0020 -3D808000 618C55EC -7D8903A6 4E800421 -C06F0018 EC63082A -2C0B0000 4182001C -2C0B0001 4182002C -2C0B0002 4182001C -2C0B0003 4182000C -38800008 48000018 -38800004 48000010 -38800002 48000008 -38800001 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C872378 C04F0010 -886DAFE0 2C030000 -41820008 C04F0014 -7E639B78 388F0030 -38A00000 38CF0030 -C02F001C 3D808000 -618C56B4 7D8903A6 -4E800421 7C6B1B78 -386A0004 7C0B1800 -4082FF48 480000CC -88750018 2C030000 -41820010 88700002 -2C03008A 41810070 -2C160200 40820008 -48000078 2C160000 -4182005C 88750018 -2C030003 4080003C -88750017 2C030005 -40800030 38600000 -98700002 7E238B78 -7EC4B378 38A00004 -7C632830 7C632214 -4BFFFBB1 38600001 -98700001 4800005C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 2C120000 -41820010 3A52FFFF -9A500002 48000034 -38600000 98750014 -7DC37378 3D808039 -618C0228 7D8903A6 -4E800421 7E639B78 -3D80803A 618C5CC4 +2C120000 41820010 +3A52FFFF 9A500002 +48000034 38600000 +98750014 7DC37378 +3D808039 618C0228 7D8903A6 4E800421 -B9C100B0 800100FC -382100F8 7C0803A6 -4E800020 4E800021 -00000000 3DCCCCCD -C3960000 C3E20000 -C38E8000 C3DA8000 -429E0000 3EE66666 -41C80000 C1A00000 -C20C0000 C1840000 -FFFFFFFF FFEA2FFF -C9C387FF 43686174 -3A202573 00000000 -BA8100B0 800100E4 -382100E0 7C0803A6 -3D808026 618C3334 -7D8903A6 4E800420 -BA8100B0 800100E4 -382100E0 7C0803A6 -60000000 00000000 +7E639B78 3D80803A +618C5CC4 7D8903A6 +4E800421 B9C100B0 +800100FC 382100F8 +7C0803A6 4E800020 +4E800021 00000000 +3DCCCCCD C3960000 +C3E20000 C38E8000 +C3DA8000 429E0000 +3EE66666 41C80000 +C1A00000 C20C0000 +C1840000 FFFFFFFF +FFEA2FFF C9C387FF +43686174 3A202573 +00000000 BA8100B0 +800100E4 382100E0 +7C0803A6 3D808026 +618C3334 7D8903A6 +4E800420 BA8100B0 +800100E4 382100E0 +7C0803A6 00000000 C21A3F9C 00000005 #Online/Menus/CSS/IncreaseTextHeap.asm 3C608048 80639D30 5463443E 2C030008 @@ -4249,19 +4257,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4945,7 +4952,7 @@ BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 7C8802A6 48000B31 -7C6802A6 90640017 +7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 7C741B78 3D808000 @@ -5019,14 +5026,14 @@ BE8100B0 7C7E1B78 2C030003 41820064 48000090 4BFFFF09 7F6802A6 7F63DB78 -3880001B 3D808000 +3880001C 3D808000 618CC160 7D8903A6 4E800421 480008C9 -7C6802A6 907B0017 +7C6802A6 907B0018 38600003 987B0000 -38600001 987B0001 -38600000 987B0005 -987B0013 3C808047 +38600001 B07B0001 +38600000 987B0006 +987B0014 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 7C630774 @@ -5084,22 +5091,22 @@ BE8100B0 3D80801B 418200FC 4BFFFD09 7F6802A6 3C808046 6084B6A0 88640008 -987B0016 480006D5 +987B0017 480006D5 7C7C1B78 2C1C0000 -40800014 887B0005 -38630001 987B0005 -48000060 9B9B0004 -889B0001 38840005 -7F9B21AE 387C0002 +40800014 887B0006 +38630001 987B0006 +48000060 9B9B0005 +A09B0001 38840006 +7F9B21AE 387C0003 7C9B18AE 38A40001 7CBB19AE 1C9C0002 -3884000F A07F026A +38840010 A07F026A 7C7B232E 889B0000 38840001 38600002 7C841B96 7C052000 -4080002C 887B0001 -38630001 987B0001 -38600000 987B0005 +4080002C A07B0001 +38630001 B07B0001 +38600000 987B0006 3C808047 60849D30 38600006 98640005 48000064 38600001 @@ -5370,7 +5377,7 @@ BA8100B0 800100E4 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 -887F0005 2C030000 +887F0006 2C030000 40820014 3D808001 618C74BC 7D8903A6 4E800421 BA8100B0 @@ -5385,7 +5392,7 @@ BE8100B0 83E30010 2C030004 41820018 3C808047 60849D30 38600001 98640005 -48000038 887F0005 +48000038 887F0006 2C030000 41820018 3C808047 60849D30 38600003 98640005 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a7d469b4..229a5ed4 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1194,20 +1194,25 @@ BA8100B0 800100E4 800100E4 382100E0 7C0803A6 7C7D1B78 60000000 00000000 -C216E748 0000009E #Online/Core/InitOnlinePlay.asm +C216E748 000000A3 #Online/Core/InitOnlinePlay.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E 2C030208 -408204A8 38600B2F +408204D0 38600B2F 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 38800B2F 3D808000 618CC160 7D8903A6 4E800421 -936DB61C 38600001 +936DB61C 3C60803D +6063AD40 80630000 +81830088 886DAFA0 +2C030000 41820010 +A06C0001 38630001 +B06C0001 38600001 907B0003 4800028D 7C6802A6 907B08FB 3860001A 3D808037 @@ -1251,8 +1256,8 @@ C216E748 0000009E #Online/Core/InitOnlinePlay.asm 2C030000 40820048 3CA0803D 60A5AD40 80A50000 80A50088 -88650005 2C030000 -4182002C 88650016 +88650006 2C030000 +4182002C 88650017 2C030007 41820020 386000B4 907F0010 38600001 987F0062 @@ -1313,9 +1318,9 @@ BE8100B0 838DB61C 987E0001 3D80801A 618C4BA8 7D8903A6 4E800421 907E0002 -887B0001 907E0006 -887B0005 907E000A -807B0017 7C6903A6 +A07B0001 907E0006 +887B0006 907E000A +807B0018 7C6903A6 4E800421 987E000E 887C0011 2C030000 3880FFFD 40820018 @@ -2340,14 +2345,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 0000016C #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E -2C030008 40820AFC +2C030008 40820B18 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2370,30 +2375,30 @@ BE8100B0 3C608048 2C030003 4081008C 2C030004 41820090 2C030005 418201E8 -48000A28 88780014 -2C030000 40820A1C -576004E7 41820A14 +48000A44 88780014 +2C030000 40820A38 +576004E7 41820A30 3C608048 80639D60 -2C030000 41820A04 +2C030000 41820A20 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 2C030000 -418209E8 886DAFA0 +41820A04 886DAFA0 2C030000 41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE -48000355 480009BC -4800037D 480009B4 -576006F7 408203B9 -480009A8 3D80801A +48000371 480009D8 +48000399 480009D0 +576006F7 408203D5 +480009C4 3D80801A 618C3680 7D8903A6 4E800421 548006F7 41820024 88780013 38630001 98780013 2C030030 40810014 -9B980013 48000381 -48000970 9B980013 +9B980013 4800039D +4800098C 9B980013 887A0001 2C030000 408200EC 576004E7 4082002C 886DAFA0 @@ -2408,300 +2413,303 @@ BE8100B0 3C608048 886DAFA0 2C030001 41820010 2C030002 40800014 48000000 -3860FFFE 48000169 +3860FFFE 48000185 4800007C 886DAFC9 2C030000 4182001C 2C030001 41820008 48000000 3860FFFF -48000145 48000058 +48000161 48000058 886DAFCA 2C030000 41820018 806D8840 38630598 A063001E -48000125 48000038 +48000141 48000038 888DAFA0 2C040003 38600000 40820008 38600001 808DB610 98640018 38600001 -986DB656 480000F5 +986DB656 48000111 7C6802A6 906DAFE8 -48000878 887A0001 +48000894 887A0001 889A0002 7C632039 -41820868 BA8100B0 +41820884 BA8100B0 800100E4 382100E0 7C0803A6 3D808026 618C3264 7D8903A6 4E800420 576006F7 -4082024D 4800083C +40820269 48000858 7C0802A6 90010004 9421FF20 BE8100B0 -38600014 3D808037 -618CF1E4 7D8903A6 -4E800421 7C791B78 -386000B4 98790000 -886DAFA0 98790001 -38F90002 3CC0804A -60C60740 38800000 -38A00000 7C66222E -7C672B2E 38840003 -38A50002 2C050012 -4180FFEC 7F23CB78 -38800014 38A00001 -3D808000 618C55F0 +3C60803D 6063AD40 +80630000 81830088 +38600000 B06C0001 +986C0006 38600014 +3D808037 618CF1E4 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 +7C791B78 386000B4 +98790000 886DAFA0 +98790001 38F90002 +3CC0804A 60C60740 +38800000 38A00000 +7C66222E 7C672B2E +38840003 38A50002 +2C050012 4180FFEC +7F23CB78 38800014 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF20 BE8100B0 +7C7F1B78 38600009 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C791B78 386000B5 +98790000 808DB610 +886DAEF8 1C630024 +7C841A14 88640070 +98790002 88640073 +98790003 38600001 +98790004 886DAFA0 +2C030003 41820010 +38600000 98790001 +4800001C 3C608000 +60635614 80630000 +8863001A 3863FFFF +98790001 2C1FFFFE +41820014 2C1FFFFF +41820018 2C1F0000 +4080001C 38600000 +38800003 4800001C +38600000 38800000 +48000010 7FE3FB78 +38800001 48000004 +B0790005 98990007 +886DAFA0 98790008 +7F23CB78 38800009 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 4E800021 +7C0802A6 90010004 +9421FF20 BE8100B0 +8A98001A 4BFFFECD +4BFFFE01 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 7C7F1B78 -38600009 3D808037 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600001 986DAFA3 +4BFFFFB5 7C6802A6 +906DAFE8 880DB650 +980DB659 38000004 +980DB656 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600001 3D808037 618CF1E4 7D8903A6 4E800421 7C791B78 -386000B5 98790000 -808DB610 886DAEF8 -1C630024 7C841A14 -88640070 98790002 -88640073 98790003 -38600001 98790004 -886DAFA0 2C030003 -41820010 38600000 -98790001 4800001C -3C608000 60635614 -80630000 8863001A -3863FFFF 98790001 -2C1FFFFE 41820014 -2C1FFFFF 41820018 -2C1F0000 4080001C -38600000 38800003 -4800001C 38600000 -38800000 48000010 -7FE3FB78 38800001 -48000004 B0790005 -98990007 886DAFA0 -98790008 7F23CB78 -38800009 38A00001 -3D808000 618C55F0 +386000BA 98790000 +7F23CB78 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 8A98001A -4BFFFECD 4BFFFE1D BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 -BE8100B0 38600001 -986DAFA3 4BFFFFB5 -7C6802A6 906DAFE8 -880DB650 980DB659 -38000004 980DB656 +BE8100B0 2C1B0200 +40820008 B3780015 +2C1B0001 4182001C +2C1B0002 41820014 +2C1B0008 4182000C +2C1B0004 4082001D +B3780015 88780014 +2C030000 4082000C +7F63DB78 480000B9 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 38600001 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000BA -98790000 7F23CB78 -38800001 38A00001 -3D808000 618C55F0 +4E800020 7C6E1B78 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600002 3D808037 +618CF1E4 7D8903A6 +4E800421 7C791B78 +386000BB 98790000 +7DC37378 98790001 +7F23CB78 38800002 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7F23CB78 +3D808037 618CF1B0 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 +386000B7 3880007F +38A00040 3D808002 +618C37A8 7D8903A6 +4E800421 7F63DB78 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C6E1B78 7C0802A6 90010004 9421FF20 BE8100B0 -2C1B0200 40820008 -B3780015 2C1B0001 -4182001C 2C1B0002 -41820014 2C1B0008 -4182000C 2C1B0004 -4082001D B3780015 -88780014 2C030000 -4082000C 7F63DB78 -480000B9 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 38600002 +48000419 7DE802A6 +38600002 3D808002 +618C4030 7D8903A6 +4E800421 7DC37378 +98780014 3860000B 3D808037 618CF1E4 7D8903A6 4E800421 -7C791B78 386000BB -98790000 7DC37378 -98790001 7F23CB78 -38800002 38A00001 -3D808000 618C55F0 +7C771B78 3880000B +3D808000 618CC160 7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 386000B7 -3880007F 38A00040 -3D808002 618C37A8 +7DC37378 98770000 +7F03C378 90770007 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C741B78 +80780004 80630000 +80630000 3D808037 +618C0E44 7D8903A6 +4E800421 7C751B78 +C02F0024 888DAFE0 +2C040000 41820008 +C02F0028 C04F002C +D0230038 D043003C +7E83A378 38800004 +7EA5AB78 3D808039 +618C0A70 7D8903A6 +4E800421 7E83A378 +3C808039 60841070 +38A00001 38C00080 +3D808039 618C069C 7D8903A6 4E800421 -7F63DB78 BA8100B0 +7E83A378 38800004 +3CA08037 60A5F1B0 +7EE6BB78 3D808039 +618C0B68 7D8903A6 +4E800421 7E83A378 +48000031 7C8802A6 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 48000419 -7DE802A6 38600002 -3D808002 618C4030 -7D8903A6 4E800421 -7DC37378 98780014 -3860000B 3D808037 -618CF1E4 7D8903A6 -4E800421 7C771B78 -3880000B 3D808000 -618CC160 7D8903A6 -4E800421 7DC37378 -98770000 7F03C378 -90770007 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 80780004 -80630000 80630000 -3D808037 618C0E44 +4E800021 7C6E1B78 +7C0802A6 90010004 +9421FF08 BDC100B0 +820E002C 82EE0028 +8A300000 8A500002 +82700003 82B00007 +A2D50015 83550000 +38600000 B0750015 +88700001 2C030000 +40820234 2C130000 +40820194 38600090 +7C721B78 98700002 +48000261 7DE802A6 +7E238B78 3D808000 +618C56AC 7D8903A6 +4E800421 7C741B78 +38600000 38800000 +3D80803A 618C6754 7D8903A6 4E800421 -7C751B78 C02F0024 -888DAFE0 2C040000 -41820008 C02F0028 -C04F002C D0230038 -D043003C 7E83A378 -38800004 7EA5AB78 -3D808039 618C0A70 +7C731B78 92700003 +38600001 38800000 +C02F0000 C04F0004 +98730049 9893004A +D0330008 D0530024 +D0530028 C04F0008 +886DAFE0 2C030000 +41820008 C04F000C +388F0034 887A0000 +2C030004 41820008 +388F0038 7E639B78 +38A00000 38CF0030 +38EF003C 39140004 +C02F001C C06F0018 +3D808000 618C56B4 7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00001 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -38800004 3CA08037 -60A5F1B0 7EE6BB78 -3D808039 618C0B68 +7C641B78 7C8A2378 +7C8B2378 386B0002 +C04F0020 3D808000 +618C55EC 7D8903A6 +4E800421 C06F0018 +EC63082A 2C0B0000 +4182001C 2C0B0001 +4182002C 2C0B0002 +4182001C 2C0B0003 +4182000C 38800008 +48000018 38800004 +48000010 38800002 +48000008 38800001 +7E238B78 3D808000 +618C56AC 7D8903A6 +4E800421 7C872378 +C04F0010 886DAFE0 +2C030000 41820008 +C04F0014 7E639B78 +388F0030 38A00000 +38CF0030 C02F001C +3D808000 618C56B4 7D8903A6 4E800421 -7E83A378 48000031 -7C8802A6 38A00004 -3D808038 618CFD54 +7C6B1B78 386A0004 +7C0B1800 4082FF48 +480000CC 88750018 +2C030000 41820010 +88700002 2C03008A +41810070 2C160200 +40820008 48000078 +2C160000 4182005C +88750018 2C030003 +4080003C 88750017 +2C030005 40800030 +38600000 98700002 +7E238B78 7EC4B378 +38A00004 7C632830 +7C632214 4BFFFBB1 +38600001 98700001 +4800005C 38600003 +3D808002 618C4030 7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -7C6E1B78 7C0802A6 -90010004 9421FF08 -BDC100B0 820E002C -82EE0028 8A300000 -8A500002 82700003 -82B00007 A2D50015 -83550000 38600000 -B0750015 88700001 -2C030000 40820234 -2C130000 40820194 -38600090 7C721B78 -98700002 48000261 -7DE802A6 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C741B78 38600000 -38800000 3D80803A -618C6754 7D8903A6 -4E800421 7C731B78 -92700003 38600001 -38800000 C02F0000 -C04F0004 98730049 -9893004A D0330008 -D0530024 D0530028 -C04F0008 886DAFE0 -2C030000 41820008 -C04F000C 388F0034 -887A0000 2C030004 -41820008 388F0038 -7E639B78 38A00000 -38CF0030 38EF003C -39140004 C02F001C -C06F0018 3D808000 -618C56B4 7D8903A6 -4E800421 7C641B78 -7C8A2378 7C8B2378 -386B0002 C04F0020 -3D808000 618C55EC -7D8903A6 4E800421 -C06F0018 EC63082A -2C0B0000 4182001C -2C0B0001 4182002C -2C0B0002 4182001C -2C0B0003 4182000C -38800008 48000018 -38800004 48000010 -38800002 48000008 -38800001 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C872378 C04F0010 -886DAFE0 2C030000 -41820008 C04F0014 -7E639B78 388F0030 -38A00000 38CF0030 -C02F001C 3D808000 -618C56B4 7D8903A6 -4E800421 7C6B1B78 -386A0004 7C0B1800 -4082FF48 480000CC -88750018 2C030000 -41820010 88700002 -2C03008A 41810070 -2C160200 40820008 -48000078 2C160000 -4182005C 88750018 -2C030003 4080003C -88750017 2C030005 -40800030 38600000 -98700002 7E238B78 -7EC4B378 38A00004 -7C632830 7C632214 -4BFFFBB1 38600001 -98700001 4800005C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 2C120000 -41820010 3A52FFFF -9A500002 48000034 -38600000 98750014 -7DC37378 3D808039 -618C0228 7D8903A6 -4E800421 7E639B78 -3D80803A 618C5CC4 +2C120000 41820010 +3A52FFFF 9A500002 +48000034 38600000 +98750014 7DC37378 +3D808039 618C0228 7D8903A6 4E800421 -B9C100B0 800100FC -382100F8 7C0803A6 -4E800020 4E800021 -00000000 3DCCCCCD -C3960000 C3E20000 -C38E8000 C3DA8000 -429E0000 3EE66666 -41C80000 C1A00000 -C20C0000 C1840000 -FFFFFFFF FFEA2FFF -C9C387FF 43686174 -3A202573 00000000 -BA8100B0 800100E4 -382100E0 7C0803A6 -3D808026 618C3334 -7D8903A6 4E800420 -BA8100B0 800100E4 -382100E0 7C0803A6 -60000000 00000000 +7E639B78 3D80803A +618C5CC4 7D8903A6 +4E800421 B9C100B0 +800100FC 382100F8 +7C0803A6 4E800020 +4E800021 00000000 +3DCCCCCD C3960000 +C3E20000 C38E8000 +C3DA8000 429E0000 +3EE66666 41C80000 +C1A00000 C20C0000 +C1840000 FFFFFFFF +FFEA2FFF C9C387FF +43686174 3A202573 +00000000 BA8100B0 +800100E4 382100E0 +7C0803A6 3D808026 +618C3334 7D8903A6 +4E800420 BA8100B0 +800100E4 382100E0 +7C0803A6 00000000 C21A3F9C 00000005 #Online/Menus/CSS/IncreaseTextHeap.asm 3C608048 80639D30 5463443E 2C030008 @@ -4249,19 +4257,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -4945,7 +4952,7 @@ BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 7C8802A6 48000B31 -7C6802A6 90640017 +7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 7C741B78 3D808000 @@ -5019,14 +5026,14 @@ BE8100B0 7C7E1B78 2C030003 41820064 48000090 4BFFFF09 7F6802A6 7F63DB78 -3880001B 3D808000 +3880001C 3D808000 618CC160 7D8903A6 4E800421 480008C9 -7C6802A6 907B0017 +7C6802A6 907B0018 38600003 987B0000 -38600001 987B0001 -38600000 987B0005 -987B0013 3C808047 +38600001 B07B0001 +38600000 987B0006 +987B0014 3C808047 60849D30 38600006 98640005 48000060 886DAFC9 7C630774 @@ -5084,22 +5091,22 @@ BE8100B0 3D80801B 418200FC 4BFFFD09 7F6802A6 3C808046 6084B6A0 88640008 -987B0016 480006D5 +987B0017 480006D5 7C7C1B78 2C1C0000 -40800014 887B0005 -38630001 987B0005 -48000060 9B9B0004 -889B0001 38840005 -7F9B21AE 387C0002 +40800014 887B0006 +38630001 987B0006 +48000060 9B9B0005 +A09B0001 38840006 +7F9B21AE 387C0003 7C9B18AE 38A40001 7CBB19AE 1C9C0002 -3884000F A07F026A +38840010 A07F026A 7C7B232E 889B0000 38840001 38600002 7C841B96 7C052000 -4080002C 887B0001 -38630001 987B0001 -38600000 987B0005 +4080002C A07B0001 +38630001 B07B0001 +38600000 987B0006 3C808047 60849D30 38600006 98640005 48000064 38600001 @@ -5370,7 +5377,7 @@ BA8100B0 800100E4 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 -887F0005 2C030000 +887F0006 2C030000 40820014 3D808001 618C74BC 7D8903A6 4E800421 BA8100B0 @@ -5385,7 +5392,7 @@ BE8100B0 83E30010 2C030004 41820018 3C808047 60849D30 38600001 98640005 -48000038 887F0005 +48000038 887F0006 2C030000 41820018 3C808047 60849D30 38600003 98640005 From 68897de7dca083bf675f92f744aae59be5bbda48 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 4 Nov 2022 15:15:17 -0400 Subject: [PATCH 165/217] fetch and write matchmaking id to replay --- Online/Online.s | 39 +++--- Output/Netplay/GALE01r2.ini | 267 +++++++++++++++++++----------------- Output/Netplay/GALJ01r2.ini | 267 +++++++++++++++++++----------------- Recording/Recording.s | 6 +- Recording/SendGameInfo.asm | 52 ++++++- 5 files changed, 352 insertions(+), 279 deletions(-) diff --git a/Online/Online.s b/Online/Online.s index f3fad9be..e0a4a52f 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -316,24 +316,25 @@ .set MSRB_CHATMSG_PLAYER_INDEX, MSRB_OPP_CHATMSG_ID + 1 # u8 .set MSRB_VS_LEFT_PLAYERS, MSRB_CHATMSG_PLAYER_INDEX + 1 # u32 player ports 0xP1P2P3PN .set MSRB_VS_RIGHT_PLAYERS, MSRB_VS_LEFT_PLAYERS + 4 # u32 player ports 0xP1P2P3PN -.set MSRB_LOCAL_NAME, MSRB_VS_RIGHT_PLAYERS + 4 # string (31) -.set MSRB_P1_NAME, MSRB_LOCAL_NAME + 31 # string (31) -.set MSRB_P2_NAME, MSRB_P1_NAME + 31 # string (31) -.set MSRB_P3_NAME, MSRB_P2_NAME + 31 # string (31) -.set MSRB_P4_NAME, MSRB_P3_NAME + 31 # string (31) -.set MSRB_OPP_NAME, MSRB_P4_NAME + 31 # string (31) -.set MSRB_P1_CONNECT_CODE, MSRB_OPP_NAME + 31 # string (10) hashtag is shift-jis -.set MSRB_P2_CONNECT_CODE, MSRB_P1_CONNECT_CODE + 10 # string (10) hashtag is shift-jis -.set MSRB_P3_CONNECT_CODE, MSRB_P2_CONNECT_CODE + 10 # string (10) hashtag is shift-jis -.set MSRB_P4_CONNECT_CODE, MSRB_P3_CONNECT_CODE + 10 # string (10) hashtag is shift-jis -.set MSRB_P1_SLIPPI_UID, MSRB_P4_CONNECT_CODE + 10 # string (29) -.set MSRB_P2_SLIPPI_UID, MSRB_P1_SLIPPI_UID + 29 # string (29) -.set MSRB_P3_SLIPPI_UID, MSRB_P2_SLIPPI_UID + 29 # string (29) -.set MSRB_P4_SLIPPI_UID, MSRB_P3_SLIPPI_UID + 29 # string (29) -.set MSRB_ERROR_MSG, MSRB_P4_SLIPPI_UID + 29 # string (241) +.set MSRB_LOCAL_NAME, MSRB_VS_RIGHT_PLAYERS + 4 # char[31] +.set MSRB_P1_NAME, MSRB_LOCAL_NAME + 31 # char[31] +.set MSRB_P2_NAME, MSRB_P1_NAME + 31 # char[31] +.set MSRB_P3_NAME, MSRB_P2_NAME + 31 # char[31] +.set MSRB_P4_NAME, MSRB_P3_NAME + 31 # char[31] +.set MSRB_OPP_NAME, MSRB_P4_NAME + 31 # char[31] +.set MSRB_P1_CONNECT_CODE, MSRB_OPP_NAME + 31 # char[10] hashtag is shift-jis +.set MSRB_P2_CONNECT_CODE, MSRB_P1_CONNECT_CODE + 10 # char[10] hashtag is shift-jis +.set MSRB_P3_CONNECT_CODE, MSRB_P2_CONNECT_CODE + 10 # char[10] hashtag is shift-jis +.set MSRB_P4_CONNECT_CODE, MSRB_P3_CONNECT_CODE + 10 # char[10] hashtag is shift-jis +.set MSRB_P1_SLIPPI_UID, MSRB_P4_CONNECT_CODE + 10 # char[29] +.set MSRB_P2_SLIPPI_UID, MSRB_P1_SLIPPI_UID + 29 # char[29] +.set MSRB_P3_SLIPPI_UID, MSRB_P2_SLIPPI_UID + 29 # char[29] +.set MSRB_P4_SLIPPI_UID, MSRB_P3_SLIPPI_UID + 29 # char[29] +.set MSRB_ERROR_MSG, MSRB_P4_SLIPPI_UID + 29 # char[241] .set ERROR_MESSAGE_LEN, 241 .set MSRB_GAME_INFO_BLOCK, MSRB_ERROR_MSG + ERROR_MESSAGE_LEN # MATCH_STRUCT_LEN -.set MSRB_SIZE, MSRB_GAME_INFO_BLOCK + MATCH_STRUCT_LEN +.set MSRB_MATCH_ID, MSRB_GAME_INFO_BLOCK + MATCH_STRUCT_LEN # char[51] +.set MSRB_SIZE, MSRB_MATCH_ID + 51 ################################################################################ # Player Selections Transfer Buffer @@ -361,7 +362,7 @@ ################################################################################ .set FMTB_CMD, 0 # u8 .set FMTB_ONLINE_MODE, FMTB_CMD + 1 # u8 -.set FMTB_OPP_CONNECT_CODE, FMTB_ONLINE_MODE + 1 # string (18) shift-jis +.set FMTB_OPP_CONNECT_CODE, FMTB_ONLINE_MODE + 1 # char[18] shift-jis .set FMTB_SIZE, FMTB_OPP_CONNECT_CODE + 18 ################################################################################ @@ -432,8 +433,8 @@ # Online status buffer offsets ################################################################################ .set OSB_APP_STATE, 0 # 0 = not logged in, 1 = logged in, 2 = update required -.set OSB_PLAYER_NAME, OSB_APP_STATE + 1 # string (31) -.set OSB_CONNECT_CODE, OSB_PLAYER_NAME + 31 # string (10) hashtag is shift-jis +.set OSB_PLAYER_NAME, OSB_APP_STATE + 1 # char[31] +.set OSB_CONNECT_CODE, OSB_PLAYER_NAME + 31 # char[10] hashtag is shift-jis .set OSB_SIZE, OSB_CONNECT_CODE + 10 ################################################################################ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 48e10017..52288204 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -634,12 +634,12 @@ C216D884 00000030 #Recording/SendGameEnd.asm BA8100B0 800100E4 382100E0 7C0803A6 819F2514 00000000 -C216E74C 000000FC #Recording/SendGameInfo.asm +C216E74C 00000109 #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418207A0 +2C030000 4182080C 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -658,7 +658,7 @@ C216E74C 000000FC #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 386002BD +987E0002 386002F8 B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -676,7 +676,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030D 60630000 +3C60030E 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -734,159 +734,172 @@ B07E0015 3860003D 8862F23C 987E01BF 3C608048 80639D30 5463443E B07E01C0 -3C608048 80639D30 -5463443E 2C030208 -40820190 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C791B78 3A800000 -3ABF0060 3AFE01C2 -3B590034 1C74001F -7F03BA14 1ED40024 -7ED6AA14 88760001 -2C030000 40820028 -1C74001F 7C83D214 -7F03C378 38A0001F -3D808000 618C31F4 -7D8903A6 4E800421 -4800001C 7F03C378 -3880001F 3D808000 -618CC160 7D8903A6 -4E800421 3A940001 -2C140004 4180FFA0 +3B200000 3C608048 +80639D30 5463443E +2C030208 4082017C +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C791B78 3A800000 3ABF0060 -3AFE023E 3B5900CF -1C74000A 7F03BA14 +3AFE01C2 3B590034 +1C74001F 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 -40820028 1C74000A +40820028 1C74001F 7C83D214 7F03C378 -38A0000A 3D808000 +38A0001F 3D808000 618C31F4 7D8903A6 4E800421 4800001C -7F03C378 3880000A +7F03C378 3880001F 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 4180FFA0 3A800000 -3ABF0060 3AFE0266 -3B5900F7 1C74001D +3ABF0060 3AFE023E +3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 40820028 -1C74001D 7C83D214 -7F03C378 38A0001D +1C74000A 7C83D214 +7F03C378 38A0000A 3D808000 618C31F4 7D8903A6 4E800421 4800001C 7F03C378 -3880001D 3D808000 +3880000A 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 4180FFA0 -7F23CB78 3D808037 -618CF1B0 7D8903A6 +3A800000 3ABF0060 +3AFE0266 3B5900F7 +1C74001D 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001D +7C83D214 7F03C378 +38A0001D 3D808000 +618C31F4 7D8903A6 4E800421 4800001C +7F03C378 3880001D +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 4800001C 387E01C2 38800118 3D808000 618CC160 7D8903A6 4E800421 3D808000 618CADF4 7D8903A6 4E800421 -987E02DA 7FC3F378 -388002DB 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -38600205 3D808037 -618CF1E4 7D8903A6 -4E800421 7C751B78 -3C608000 60635600 -80630000 3AE30008 -38600010 98750000 -3860003D 98750203 -38600200 B0750201 -38600000 98750204 -3AC00000 7C76E050 -2C030200 41810010 -B0750201 38600001 -98750204 38750001 -7EE4BB78 7C84B214 -A0B50201 3D808000 -618C31F4 7D8903A6 -4E800421 7EA3AB78 -38800205 38A00001 -3D808000 618C55F0 +987E02DA 2C190000 +41820044 387E02DB +38990394 38A00033 +3D808000 618C31F4 7D8903A6 4E800421 -3AD60200 7C16E000 -4180FFA4 7EA3AB78 +3C60803D 6063AD40 +80630000 81830088 +A06C0001 907E030E +886C0006 907E0312 +4800001C 387E02DB +3880003B 3D808000 +618CC160 7D8903A6 +4E800421 2C190000 +41820018 7F23CB78 3D808037 618CF1B0 7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +7FC3F378 38800316 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 7D8903A6 4E800421 -48000070 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 -806DB64C 83A30000 -838DB650 7FBDE214 -3860003A 987D0000 -806DB654 907D0001 -3C60804D 80635F90 -907D0005 3C608048 -80639D60 907D0009 -838DB650 3B9C000D -938DB650 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A0000F -3D808038 618CFD54 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 7D8903A6 4E800421 -48000124 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 -806DB64C 83E30000 -83CDB650 7FFFF214 -3B600000 806DC18C -83A30024 2C1D0000 -418200D8 3B7B0001 -2C1B000F 418100CC -839D002C 3860003B -987F0000 806DB654 -907F0001 807C0010 -B07F0005 807C0024 -987F0007 807C002C -907F0008 807C0040 -907F000C 807C0044 -907F0010 807C004C -907F0014 807C0050 -907F0018 807C0C9C -B07F001C 807C0D44 -907F001E 807C001C -907F0022 887C0DD7 -987F0026 887C0DDB -987F0027 887C0DEB -987F0028 887C0DEF -987F0029 807C0518 -2C030000 41820018 -8063002C 2C030000 -4182000C 8863000C -48000008 3860FFFF -987F002A 83CDB650 -3BDE002B 93CDB650 -3BFF002B 83BD0008 -2C1D0000 4082FF30 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 48000124 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200D8 +3B7B0001 2C1B000F +418100CC 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +83CDB650 3BDE002B +93CDB650 3BFF002B +83BD0008 2C1D0000 +4082FF30 BA8100B0 800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +7C0803A6 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +3C608017 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 @@ -3381,7 +3394,7 @@ BE8100B0 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600394 +93E30000 386003C7 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -5512,7 +5525,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF20 BE8100B0 2C030000 40820018 -38600394 3D808037 +386003C7 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5520,7 +5533,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800394 38A00000 +388003C7 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA8100B0 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 229a5ed4..9988c3bb 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -634,12 +634,12 @@ C216D884 00000030 #Recording/SendGameEnd.asm BA8100B0 800100E4 382100E0 7C0803A6 819F2514 00000000 -C216E74C 000000FC #Recording/SendGameInfo.asm +C216E74C 00000109 #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418207A0 +2C030000 4182080C 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -658,7 +658,7 @@ C216E74C 000000FC #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 386002BD +987E0002 386002F8 B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -676,7 +676,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030D 60630000 +3C60030E 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -734,159 +734,172 @@ B07E0015 3860003D 8862F23C 987E01BF 3C608048 80639D30 5463443E B07E01C0 -3C608048 80639D30 -5463443E 2C030208 -40820190 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C791B78 3A800000 -3ABF0060 3AFE01C2 -3B590034 1C74001F -7F03BA14 1ED40024 -7ED6AA14 88760001 -2C030000 40820028 -1C74001F 7C83D214 -7F03C378 38A0001F -3D808000 618C31F4 -7D8903A6 4E800421 -4800001C 7F03C378 -3880001F 3D808000 -618CC160 7D8903A6 -4E800421 3A940001 -2C140004 4180FFA0 +3B200000 3C608048 +80639D30 5463443E +2C030208 4082017C +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C791B78 3A800000 3ABF0060 -3AFE023E 3B5900CF -1C74000A 7F03BA14 +3AFE01C2 3B590034 +1C74001F 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 -40820028 1C74000A +40820028 1C74001F 7C83D214 7F03C378 -38A0000A 3D808000 +38A0001F 3D808000 618C31F4 7D8903A6 4E800421 4800001C -7F03C378 3880000A +7F03C378 3880001F 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 4180FFA0 3A800000 -3ABF0060 3AFE0266 -3B5900F7 1C74001D +3ABF0060 3AFE023E +3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 40820028 -1C74001D 7C83D214 -7F03C378 38A0001D +1C74000A 7C83D214 +7F03C378 38A0000A 3D808000 618C31F4 7D8903A6 4E800421 4800001C 7F03C378 -3880001D 3D808000 +3880000A 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 4180FFA0 -7F23CB78 3D808037 -618CF1B0 7D8903A6 +3A800000 3ABF0060 +3AFE0266 3B5900F7 +1C74001D 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001D +7C83D214 7F03C378 +38A0001D 3D808000 +618C31F4 7D8903A6 4E800421 4800001C +7F03C378 3880001D +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 4800001C 387E01C2 38800118 3D808000 618CC160 7D8903A6 4E800421 3D808000 618CADF4 7D8903A6 4E800421 -987E02DA 7FC3F378 -388002DB 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -38600205 3D808037 -618CF1E4 7D8903A6 -4E800421 7C751B78 -3C608000 60635600 -80630000 3AE30008 -38600010 98750000 -3860003D 98750203 -38600200 B0750201 -38600000 98750204 -3AC00000 7C76E050 -2C030200 41810010 -B0750201 38600001 -98750204 38750001 -7EE4BB78 7C84B214 -A0B50201 3D808000 -618C31F4 7D8903A6 -4E800421 7EA3AB78 -38800205 38A00001 -3D808000 618C55F0 +987E02DA 2C190000 +41820044 387E02DB +38990394 38A00033 +3D808000 618C31F4 7D8903A6 4E800421 -3AD60200 7C16E000 -4180FFA4 7EA3AB78 +3C60803D 6063AD40 +80630000 81830088 +A06C0001 907E030E +886C0006 907E0312 +4800001C 387E02DB +3880003B 3D808000 +618CC160 7D8903A6 +4E800421 2C190000 +41820018 7F23CB78 3D808037 618CF1B0 7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +7FC3F378 38800316 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 7D8903A6 4E800421 -48000070 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 -806DB64C 83A30000 -838DB650 7FBDE214 -3860003A 987D0000 -806DB654 907D0001 -3C60804D 80635F90 -907D0005 3C608048 -80639D60 907D0009 -838DB650 3B9C000D -938DB650 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A0000F -3D808038 618CFD54 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 7D8903A6 4E800421 -48000124 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 -806DB64C 83E30000 -83CDB650 7FFFF214 -3B600000 806DC18C -83A30024 2C1D0000 -418200D8 3B7B0001 -2C1B000F 418100CC -839D002C 3860003B -987F0000 806DB654 -907F0001 807C0010 -B07F0005 807C0024 -987F0007 807C002C -907F0008 807C0040 -907F000C 807C0044 -907F0010 807C004C -907F0014 807C0050 -907F0018 807C0C9C -B07F001C 807C0D44 -907F001E 807C001C -907F0022 887C0DD7 -987F0026 887C0DDB -987F0027 887C0DEB -987F0028 887C0DEF -987F0029 807C0518 -2C030000 41820018 -8063002C 2C030000 -4182000C 8863000C -48000008 3860FFFF -987F002A 83CDB650 -3BDE002B 93CDB650 -3BFF002B 83BD0008 -2C1D0000 4082FF30 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 48000124 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200D8 +3B7B0001 2C1B000F +418100CC 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +83CDB650 3BDE002B +93CDB650 3BFF002B +83BD0008 2C1D0000 +4082FF30 BA8100B0 800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +7C0803A6 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +3C608017 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 @@ -3381,7 +3394,7 @@ BE8100B0 4BFFFFB1 3D808000 618CC160 7D8903A6 4E800421 3C608000 60635614 -93E30000 38600394 +93E30000 386003C7 3D808037 618CF1E4 7D8903A6 4E800421 907F0000 886DAFA0 @@ -5512,7 +5525,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 7C0802A6 90010004 9421FF20 BE8100B0 2C030000 40820018 -38600394 3D808037 +386003C7 3D808037 618CF1E4 7D8903A6 4E800421 7C7F1B78 386000B3 987F0000 @@ -5520,7 +5533,7 @@ C2005610 00000012 #Online/Static/LoadMatchState.asm 38A00001 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 -38800394 38A00000 +388003C7 38A00000 3D808000 618C55F0 7D8903A6 4E800421 7FE3FB78 BA8100B0 diff --git a/Recording/Recording.s b/Recording/Recording.s index 7d1b3380..d3ff0dcb 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -28,7 +28,7 @@ # Payload lengths ################################################################################ .set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count -.set GAME_INFO_PAYLOAD_LENGTH, 701 # byte count +.set GAME_INFO_PAYLOAD_LENGTH, 760 # byte count .set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count .set GAME_PRE_FRAME_PAYLOAD_LENGTH, 63 # byte count .set GAME_POST_FRAME_PAYLOAD_LENGTH, 80 # byte count @@ -65,8 +65,8 @@ # build version number. Each byte is one digit # any change in command data should result in a minor version change -# current version: 3.13.0 -.set CURRENT_VERSION,0x030D0000 +# current version: 3.14.0 +.set CURRENT_VERSION,0x030E0000 ################################################################################ # Static Function Locations diff --git a/Recording/SendGameInfo.asm b/Recording/SendGameInfo.asm index 0206771c..7e645817 100644 --- a/Recording/SendGameInfo.asm +++ b/Recording/SendGameInfo.asm @@ -365,6 +365,9 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: .set REG_MSRB,25 .set REG_MSRB_DisplayNameStart,26 +# Init MSRB reg to zero so we know if we have to free it or not + li REG_MSRB, 0 + # Before trying to load match state, make sure we are in an online scene getMinorMajor r3 cmpwi r3, SCENE_ONLINE_IN_GAME @@ -526,9 +529,6 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: cmpwi REG_LoopCount,4 blt SLIPPI_UID_LOOP -# Free MSRB - mr r3,REG_MSRB - branchl r12,HSD_Free b SEND_SLIPPI_UID_END DISPLAY_CC_UID_WRITE_ZERO: @@ -546,6 +546,52 @@ SEND_GAME_INFO_NAMETAG_INC_LOOP: branchl r12, 0x8000adf4 # Language_GetLanguage stb r3, LanguageStart+0x0(REG_Buffer) + #------------- MATCH ID AND GAME INDEX ------------- +.set MatchIdStart, (LanguageStart + LanguageLength) +.set MatchIdLength, 51 +.set GameIndexStart, (MatchIdStart + MatchIdLength) +.set GameIndexLength, 4 +.set TiebreakIndexStart, (GameIndexStart + GameIndexLength) +.set TiebreakIndexLength, 4 + +# If MSRB is not 0, this is an online match + cmpwi REG_MSRB, 0 + beq ZERO_MATCH_ID_AND_GAME_INDEX + +# copy match ID + addi r3, REG_Buffer, MatchIdStart + addi r4, REG_MSRB, MSRB_MATCH_ID + li r5, MatchIdLength + branchl r12, memcpy + +# write game index and tiebreak index + loadwz r3, 0x803dad40 # Load minor scene data array ptr + lwz r12, 0x88(r3) # Load game prep minor scene data + lhz r3, GPDO_CUR_GAME(r12) + stw r3, GameIndexStart(REG_Buffer) + lbz r3, GPDO_TIEBREAK_GAME_NUM(r12) + stw r3, TiebreakIndexStart(REG_Buffer) + + b MATCH_ID_GAME_INDEX_END + +ZERO_MATCH_ID_AND_GAME_INDEX: +# TODO: It might be possible to do something else here when playing offline. Maybe we could generate +# TODO: a console or dolphin instance ID and just increment the game index every local game. +# TODO: Tiebreaks could also be used for sudden death mode? Or tiebreak can just stay 0 forever + addi r3, REG_Buffer, MatchIdStart + li r4, MatchIdLength + GameIndexLength + TiebreakIndexLength + branchl r12, Zero_AreaLength + +MATCH_ID_GAME_INDEX_END: + +#------------- Free MSRB if it was created ------------ + cmpwi REG_MSRB, 0 + beq SKIP_MSRB_FREE +# Free MSRB + mr r3,REG_MSRB + branchl r12,HSD_Free + SKIP_MSRB_FREE: + #------------- Transfer Buffer ------------ mr r3,REG_Buffer li r4,MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH+1 + GAME_INFO_PAYLOAD_LENGTH+1 From 5b73488f7c8755dd3e54629e27c2d5c56c01e8e3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 5 Nov 2022 21:15:14 -0400 Subject: [PATCH 166/217] dont show disconnected message if game ended --- Online/Core/StartEngineLoop.asm | 8 + Output/Netplay/GALE01r2.ini | 258 ++++++++++++++++---------------- Output/Netplay/GALJ01r2.ini | 258 ++++++++++++++++---------------- 3 files changed, 268 insertions(+), 256 deletions(-) diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index b6d848d5..42eaafad 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -291,6 +291,14 @@ lbz r3, ODB_IS_DISCONNECTED(REG_ODB_ADDRESS) cmpwi r3, 0 beq DISPLAY_DISCONNECT_END # If not disconnected, do nothing +# Sometimes I think it's possible to get a disconnect signal after the game has ended on both +# games. Atm I'm not sure why but it makes it possible for DISCONNECTED to show up for a frame +# or two on one client before the scene transition. So I added this to make it just not show the +# message if the game is already over +lbz r3, ODB_IS_GAME_OVER(REG_ODB_ADDRESS) +cmpwi r3, 0 +bne DISPLAY_DISCONNECT_END + # We are disconnected, display text and play sound li r3, 3 branchl r12, SFX_Menu_CommonSound diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 52288204..6abbc315 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1583,7 +1583,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000D1 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000D3 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 4800022C 4E800021 @@ -1659,140 +1659,142 @@ C05F0008 3D80803A 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E -2C030208 40820418 +2C030208 40820424 3C608047 60639D64 80630000 2C030000 -40820404 83CDB61C +40820410 83CDB61C 3FE08048 83FF9D60 839E00DB 3D808034 618C7364 7D8903A6 4E800421 7C791B78 887E0011 2C030000 -4082003C 887E0010 -2C030000 41820030 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0912 -38800000 4BFFFEA5 -38600001 987E0011 -4BFFFF31 887E08FF -2C030000 418200B0 -887E0904 2C030000 -41820094 807E0905 -7C1F1800 41820024 -41800094 807E03A0 -809E0905 80BE03A4 -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E038D 907E0003 -38600000 987E038C -987E039D 987E039E -987E039F 987E00E0 -987E0904 3D808001 -618C95FC 7D8903A6 -4E800421 807E091A -7C1F1800 4181000C -7FE3FB78 48000004 -809E0909 7C032000 -40810008 907E0909 -807E0922 38630001 -7C63F851 889E0926 -41800020 88DE0926 -38C60001 2C060015 -41800008 38C00000 -98DE0926 93FE0922 -38A00015 7C841A14 -7CC42BD6 7CC629D6 -7CC62050 7C853214 -7CC42BD6 7CC629D6 -7C862050 1C840018 -38640927 7FBE1A14 -93FD0000 4BFFFC59 -907D0004 3C608046 -6063B6C8 80630000 -907D0008 3B000000 -7F03C378 3D808003 -618C42B4 7D8903A6 -4E800421 1C980003 -3884000D 7C7D232E -7F03C378 3D808003 -618C3BD8 7D8903A6 -4E800421 1C980003 -3884000C 7C7D21AE -3B180001 2C180004 -4180FFB8 2C1F0000 -41820118 3BA00000 -887E0012 2C030000 -40820134 3B000000 -1C780008 38630002 -7EFC1A14 82D70000 -807E0909 7C161800 -418100D8 2C160054 -408100D0 3AA00000 -1C750018 38630927 -7E9E1A14 80740000 -7C161800 408200A8 -2C1D0000 41820010 -80740000 2C160003 -40800008 7E9DA378 -A0740006 A0970006 -7C630734 7C840734 -7C641850 2C03FFFF -41800010 2C030001 -41810008 48000034 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0912 -3880001D 4BFFFC35 -38600001 987E0012 -4BFFFCC1 48000080 -887E0013 2C030000 -40820028 A0740004 -A0970004 7C032000 -41820018 807E0912 -3880003D 4BFFFBFD -38600001 987E0013 -48000010 3AB50001 -2C150015 4180FF3C -3B180001 887C0001 -7C181800 4180FF04 -2C1D0000 41820028 -807D0008 907E0B1F -387E0B23 389D000C -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 887E038C -2C030000 4182002C -807E0909 7C1F1800 -40810020 807E03A0 -7FE4FB78 80BE03A4 -3D808000 618C5608 -7D8903A6 4E800421 -887E000F 2C030001 -41820058 3C608046 -6063B6A0 88630008 -2C030000 40820010 -38600000 907E000B -48000038 807E000B -2C030000 40820008 -93FE000B 807E000B -7C63F850 2C030007 -40810018 38600001 -987E000F 807E08FB -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 00000000 +40820048 887E0010 +2C030000 4182003C +887E000F 2C030000 +40820030 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0912 38800000 +4BFFFE99 38600001 +987E0011 4BFFFF25 +887E08FF 2C030000 +418200B0 887E0904 +2C030000 41820094 +807E0905 7C1F1800 +41820024 41800094 +807E03A0 809E0905 +80BE03A4 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E038D +907E0003 38600000 +987E038C 987E039D +987E039E 987E039F +987E00E0 987E0904 +3D808001 618C95FC +7D8903A6 4E800421 +807E091A 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0909 +7C032000 40810008 +907E0909 807E0922 +38630001 7C63F851 +889E0926 41800020 +88DE0926 38C60001 +2C060015 41800008 +38C00000 98DE0926 +93FE0922 38A00015 +7C841A14 7CC42BD6 +7CC629D6 7CC62050 +7C853214 7CC42BD6 +7CC629D6 7C862050 +1C840018 38640927 +7FBE1A14 93FD0000 +4BFFFC4D 907D0004 +3C608046 6063B6C8 +80630000 907D0008 +3B000000 7F03C378 +3D808003 618C42B4 +7D8903A6 4E800421 +1C980003 3884000D +7C7D232E 7F03C378 +3D808003 618C3BD8 +7D8903A6 4E800421 +1C980003 3884000C +7C7D21AE 3B180001 +2C180004 4180FFB8 +2C1F0000 41820118 +3BA00000 887E0012 +2C030000 40820134 +3B000000 1C780008 +38630002 7EFC1A14 +82D70000 807E0909 +7C161800 418100D8 +2C160054 408100D0 +3AA00000 1C750018 +38630927 7E9E1A14 +80740000 7C161800 +408200A8 2C1D0000 +41820010 80740000 +2C160003 40800008 +7E9DA378 A0740006 +A0970006 7C630734 +7C840734 7C641850 +2C03FFFF 41800010 +2C030001 41810008 +48000034 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0912 3880001D +4BFFFC29 38600001 +987E0012 4BFFFCB5 +48000080 887E0013 +2C030000 40820028 +A0740004 A0970004 +7C032000 41820018 +807E0912 3880003D +4BFFFBF1 38600001 +987E0013 48000010 +3AB50001 2C150015 +4180FF3C 3B180001 +887C0001 7C181800 +4180FF04 2C1D0000 +41820028 807D0008 +907E0B1F 387E0B23 +389D000C 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +887E038C 2C030000 +4182002C 807E0909 +7C1F1800 40810020 +807E03A0 7FE4FB78 +80BE03A4 3D808000 +618C5608 7D8903A6 +4E800421 887E000F +2C030001 41820058 +3C608046 6063B6A0 +88630008 2C030000 +40820010 38600000 +907E000B 48000038 +807E000B 2C030000 +40820008 93FE000B +807E000B 7C63F850 +2C030007 40810018 +38600001 987E000F +807E08FB 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +60000000 00000000 C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9988c3bb..5c90e85b 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1583,7 +1583,7 @@ C2376A20 0000000C #Online/Core/SkipNewInputFetchOnRollback.asm 618C6A28 7D8903A6 4E800420 3861002C 60000000 00000000 -C21A4DE4 000000D1 #Online/Core/StartEngineLoop.asm +C21A4DE4 000000D3 #Online/Core/StartEngineLoop.asm 3D808037 618CE214 7D8903A6 4E800421 4800022C 4E800021 @@ -1659,140 +1659,142 @@ C05F0008 3D80803A 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E -2C030208 40820418 +2C030208 40820424 3C608047 60639D64 80630000 2C030000 -40820404 83CDB61C +40820410 83CDB61C 3FE08048 83FF9D60 839E00DB 3D808034 618C7364 7D8903A6 4E800421 7C791B78 887E0011 2C030000 -4082003C 887E0010 -2C030000 41820030 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0912 -38800000 4BFFFEA5 -38600001 987E0011 -4BFFFF31 887E08FF -2C030000 418200B0 -887E0904 2C030000 -41820094 807E0905 -7C1F1800 41820024 -41800094 807E03A0 -809E0905 80BE03A4 -3D808000 618C560C -7D8903A6 4E800421 -3D808001 618C9894 -7D8903A6 4E800421 -3CA0804C 60A51F78 -88850002 7C832051 -4080000C 88650000 -7C841A14 98850002 -38600000 98650003 -3FE08048 83FF9D60 -807E038D 907E0003 -38600000 987E038C -987E039D 987E039E -987E039F 987E00E0 -987E0904 3D808001 -618C95FC 7D8903A6 -4E800421 807E091A -7C1F1800 4181000C -7FE3FB78 48000004 -809E0909 7C032000 -40810008 907E0909 -807E0922 38630001 -7C63F851 889E0926 -41800020 88DE0926 -38C60001 2C060015 -41800008 38C00000 -98DE0926 93FE0922 -38A00015 7C841A14 -7CC42BD6 7CC629D6 -7CC62050 7C853214 -7CC42BD6 7CC629D6 -7C862050 1C840018 -38640927 7FBE1A14 -93FD0000 4BFFFC59 -907D0004 3C608046 -6063B6C8 80630000 -907D0008 3B000000 -7F03C378 3D808003 -618C42B4 7D8903A6 -4E800421 1C980003 -3884000D 7C7D232E -7F03C378 3D808003 -618C3BD8 7D8903A6 -4E800421 1C980003 -3884000C 7C7D21AE -3B180001 2C180004 -4180FFB8 2C1F0000 -41820118 3BA00000 -887E0012 2C030000 -40820134 3B000000 -1C780008 38630002 -7EFC1A14 82D70000 -807E0909 7C161800 -418100D8 2C160054 -408100D0 3AA00000 -1C750018 38630927 -7E9E1A14 80740000 -7C161800 408200A8 -2C1D0000 41820010 -80740000 2C160003 -40800008 7E9DA378 -A0740006 A0970006 -7C630734 7C840734 -7C641850 2C03FFFF -41800010 2C030001 -41810008 48000034 -38600003 3D808002 -618C4030 7D8903A6 -4E800421 807E0912 -3880001D 4BFFFC35 -38600001 987E0012 -4BFFFCC1 48000080 -887E0013 2C030000 -40820028 A0740004 -A0970004 7C032000 -41820018 807E0912 -3880003D 4BFFFBFD -38600001 987E0013 -48000010 3AB50001 -2C150015 4180FF3C -3B180001 887C0001 -7C181800 4180FF04 -2C1D0000 41820028 -807D0008 907E0B1F -387E0B23 389D000C -38A0000C 3D808000 -618C31F4 7D8903A6 -4E800421 887E038C -2C030000 4182002C -807E0909 7C1F1800 -40810020 807E03A0 -7FE4FB78 80BE03A4 -3D808000 618C5608 -7D8903A6 4E800421 -887E000F 2C030001 -41820058 3C608046 -6063B6A0 88630008 -2C030000 40820010 -38600000 907E000B -48000038 807E000B -2C030000 40820008 -93FE000B 807E000B -7C63F850 2C030007 -40810018 38600001 -987E000F 807E08FB -7C6903A6 4E800421 -7F23CB78 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 00000000 +40820048 887E0010 +2C030000 4182003C +887E000F 2C030000 +40820030 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0912 38800000 +4BFFFE99 38600001 +987E0011 4BFFFF25 +887E08FF 2C030000 +418200B0 887E0904 +2C030000 41820094 +807E0905 7C1F1800 +41820024 41800094 +807E03A0 809E0905 +80BE03A4 3D808000 +618C560C 7D8903A6 +4E800421 3D808001 +618C9894 7D8903A6 +4E800421 3CA0804C +60A51F78 88850002 +7C832051 4080000C +88650000 7C841A14 +98850002 38600000 +98650003 3FE08048 +83FF9D60 807E038D +907E0003 38600000 +987E038C 987E039D +987E039E 987E039F +987E00E0 987E0904 +3D808001 618C95FC +7D8903A6 4E800421 +807E091A 7C1F1800 +4181000C 7FE3FB78 +48000004 809E0909 +7C032000 40810008 +907E0909 807E0922 +38630001 7C63F851 +889E0926 41800020 +88DE0926 38C60001 +2C060015 41800008 +38C00000 98DE0926 +93FE0922 38A00015 +7C841A14 7CC42BD6 +7CC629D6 7CC62050 +7C853214 7CC42BD6 +7CC629D6 7C862050 +1C840018 38640927 +7FBE1A14 93FD0000 +4BFFFC4D 907D0004 +3C608046 6063B6C8 +80630000 907D0008 +3B000000 7F03C378 +3D808003 618C42B4 +7D8903A6 4E800421 +1C980003 3884000D +7C7D232E 7F03C378 +3D808003 618C3BD8 +7D8903A6 4E800421 +1C980003 3884000C +7C7D21AE 3B180001 +2C180004 4180FFB8 +2C1F0000 41820118 +3BA00000 887E0012 +2C030000 40820134 +3B000000 1C780008 +38630002 7EFC1A14 +82D70000 807E0909 +7C161800 418100D8 +2C160054 408100D0 +3AA00000 1C750018 +38630927 7E9E1A14 +80740000 7C161800 +408200A8 2C1D0000 +41820010 80740000 +2C160003 40800008 +7E9DA378 A0740006 +A0970006 7C630734 +7C840734 7C641850 +2C03FFFF 41800010 +2C030001 41810008 +48000034 38600003 +3D808002 618C4030 +7D8903A6 4E800421 +807E0912 3880001D +4BFFFC29 38600001 +987E0012 4BFFFCB5 +48000080 887E0013 +2C030000 40820028 +A0740004 A0970004 +7C032000 41820018 +807E0912 3880003D +4BFFFBF1 38600001 +987E0013 48000010 +3AB50001 2C150015 +4180FF3C 3B180001 +887C0001 7C181800 +4180FF04 2C1D0000 +41820028 807D0008 +907E0B1F 387E0B23 +389D000C 38A0000C +3D808000 618C31F4 +7D8903A6 4E800421 +887E038C 2C030000 +4182002C 807E0909 +7C1F1800 40810020 +807E03A0 7FE4FB78 +80BE03A4 3D808000 +618C5608 7D8903A6 +4E800421 887E000F +2C030001 41820058 +3C608046 6063B6A0 +88630008 2C030000 +40820010 38600000 +907E000B 48000038 +807E000B 2C030000 +40820008 93FE000B +807E000B 7C63F850 +2C030007 40810018 +38600001 987E000F +807E08FB 7C6903A6 +4E800421 7F23CB78 +3D808034 618C738C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +60000000 00000000 C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 7C0802A6 90010004 9421FF20 BE8100B0 From abbc84cc88ee02becdd06fada6a61d2d7f1a0597 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Mon, 7 Nov 2022 22:01:56 -0800 Subject: [PATCH 167/217] include don't edit warning on dolphin codesets --- Output/Netplay/GALE01r2.ini | 1 + Output/Playback/GALE01r2.ini | 1 + netplay.json | 1 + playback.json | 1 + 4 files changed, 4 insertions(+) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 378f7945..df31c494 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1,4 +1,5 @@ # GALE01 - Super Smash Bros. Melee NTSC-U 1.02 +# DO NOT EDIT - generated by gecko [Core] CPUThread = True diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index c7cf5e00..b9e9aafd 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -1,4 +1,5 @@ # GALE01 - Super Smash Bros. Melee NTSC-U 1.02 +# DO NOT EDIT - generated by gecko [Core] CPUThread = False diff --git a/netplay.json b/netplay.json index 882ce39f..3d746114 100644 --- a/netplay.json +++ b/netplay.json @@ -4,6 +4,7 @@ "file": "Output/Netplay/GALE01r2.ini", "header": [ "# GALE01 - Super Smash Bros. Melee NTSC-U 1.02", + "# DO NOT EDIT - generated by gecko", "", "[Core]", "CPUThread = True", diff --git a/playback.json b/playback.json index 7299b69f..0adf8a71 100644 --- a/playback.json +++ b/playback.json @@ -4,6 +4,7 @@ "file": "Output/Playback/GALE01r2.ini", "header": [ "# GALE01 - Super Smash Bros. Melee NTSC-U 1.02", + "# DO NOT EDIT - generated by gecko", "", "[Core]", "CPUThread = False", From 38c3c67a02e1213fe3311af5b6c720387c70c6b1 Mon Sep 17 00:00:00 2001 From: Robert Peralta Date: Tue, 8 Nov 2022 21:09:26 -0400 Subject: [PATCH 168/217] Remove all chat code --- Online/Menus/CSS/HandleInputsOnCSS.asm | 534 ---------------- Online/Menus/CSS/LoadCSSText.asm | 437 +------------ Output/Netplay/GALE01r2.ini | 813 ++++++++----------------- Output/Netplay/GALJ01r2.ini | 813 ++++++++----------------- 4 files changed, 491 insertions(+), 2106 deletions(-) diff --git a/Online/Menus/CSS/HandleInputsOnCSS.asm b/Online/Menus/CSS/HandleInputsOnCSS.asm index 6ea0a83f..e9ff56c6 100644 --- a/Online/Menus/CSS/HandleInputsOnCSS.asm +++ b/Online/Menus/CSS/HandleInputsOnCSS.asm @@ -13,13 +13,6 @@ .set DISCONNECT_HOLD_DELAY, 0x30 # 3 seconds -# Controller immediate input values for CSS chat messages -.set PAD_LEFT, 0x01 -.set PAD_RIGHT, 0x02 -.set PAD_DOWN, 0x04 -.set PAD_UP, 0x08 -.set B_BUTTON, 0x200 - # Deal with replaced codeline beq+ START branch r12, 0x80263334 @@ -100,9 +93,6 @@ branchl r12, SFX_Menu_CommonSound SOUND_PLAY_END: -# comment to disable chat -#bl FN_CHECK_CHAT_INPUTS - ################################################################################ # Fork logic based on current connection state ################################################################################ @@ -123,9 +113,6 @@ b SKIP_START_MATCH ################################################################################ HANDLE_IDLE: -# uncomment to debug the chat window -# bl FN_CHECK_CHAT_INPUTS - # Prevent CSS Actions if chat window is opened lbz r3, CSSDT_CHAT_WINDOW_OPENED(REG_CSSDT_ADDR) cmpwi r3, 0 @@ -310,9 +297,6 @@ b SKIP_START_MATCH # Check to see if both players are ready and start match if they are CHECK_SHOULD_START_MATCH: -# Check if we should open chat window -#bl FN_CHECK_CHAT_INPUTS - lbz r3, MSRB_IS_LOCAL_PLAYER_READY(REG_MSRB_ADDR) lbz r4, MSRB_IS_REMOTE_PLAYER_READY(REG_MSRB_ADDR) and. r3, r3, r4 @@ -550,524 +534,6 @@ restore blr -################################################################################ -# Function: Check if chat input was pressed and send it to the EXI device -################################################################################ -# skip my test if pad was not pressed -FN_CHECK_CHAT_INPUTS: -backup - -# uncomment this line to disable B press on chat window -# b SKIP_CHAT_WINDOW_B_PRESS - -# if b was pressed, set that as last input -cmpwi REG_INPUTS, B_BUTTON -bne SKIP_CHAT_WINDOW_B_PRESS -sth REG_INPUTS, CSSDT_CHAT_LAST_INPUT(REG_CSSDT_ADDR) - -SKIP_CHAT_WINDOW_B_PRESS: -cmpwi REG_INPUTS, PAD_LEFT -beq HANDLE_CHAT_INPUT_PRESSED -cmpwi REG_INPUTS, PAD_RIGHT -beq HANDLE_CHAT_INPUT_PRESSED -cmpwi REG_INPUTS, PAD_UP -beq HANDLE_CHAT_INPUT_PRESSED -cmpwi REG_INPUTS, PAD_DOWN -bnel HANDLE_SKIP_CHAT_INPUT - -HANDLE_CHAT_INPUT_PRESSED: - -# Store last input in CSS data table if part of the allowed inputs -sth REG_INPUTS, CSSDT_CHAT_LAST_INPUT(REG_CSSDT_ADDR) - -# If chat window is already open, skip -lbz r3, CSSDT_CHAT_WINDOW_OPENED(REG_CSSDT_ADDR) -cmpwi r3, 0 -bne HANDLE_SKIP_CHAT_INPUT - -mr r3, REG_INPUTS -bl FN_OPEN_CHAT_WINDOW - -HANDLE_SKIP_CHAT_INPUT: -restore -blr - -################################################################################ -# Function: Send Chat Commnad -################################################################################ -FN_SEND_CHAT_COMMAND: - -mr r14, r3 # Store Controller Input argument -backup - -# Prepare buffer for EXI transfer -li r3, CMTB_SIZE # Store same bytes as Buffer Size -branchl r12, HSD_MemAlloc -mr REG_TXB_ADDR, r3 # Save the address where the memory has been allocated to - -# Write tx data -li r3, CONST_SlippiCmdSendChatMessage # set command on allocated address -stb r3, CMTB_CMD(REG_TXB_ADDR) - -mr r3, r14 # set message id from controller_input argument -stb r3, CMTB_MESSAGE(REG_TXB_ADDR) - -# transfer the bufffer -mr r3, REG_TXB_ADDR -li r4, CMTB_SIZE # length of buffer -li r5, CONST_ExiWrite -branchl r12, FN_EXITransferBuffer - -# free the allocated memory -mr r3, REG_TXB_ADDR -branchl r12, HSD_Free - -# Play a sound indicating a new message was sent -li r3, 0xb7 -li r4, 127 -li r5, 64 -branchl r12, 0x800237a8 # SFX_PlaySoundAtFullVolume - -mr r3, REG_INPUTS -restore -blr - -################################################################################ -# Function: Starts THINK Function to show the chat window -# r3 holds the input argument which decides the offset of the text messages to show -############################################################################## -FN_OPEN_CHAT_WINDOW: - -.set REG_CHAT_INPUTS, 14 -.set REG_CHAT_GOBJ, 20 -.set REG_CHAT_JOBJ, 21 -.set TEXT_GXLINK, 12 - -mr REG_CHAT_INPUTS, r3 # Store Controller Input argument -backup - - -bl TEXT_PROPERTIES -mflr REG_TEXT_PROPERTIES - -# Play common sound -li r3, 2 -branchl r12, SFX_Menu_CommonSound - -# Save in memory that we have the chat opened and store the pad input -mr r3, REG_CHAT_INPUTS # controller input -stb r3, CSSDT_CHAT_WINDOW_OPENED(REG_CSSDT_ADDR) # Load where buf is stored - -# Get Memory Buffer for Chat Window Data Table -li r3, CSSCWDT_SIZE # Buffer Size -branchl r12, HSD_MemAlloc -mr r23, r3 # save result address into r23 - -# Zero out CSS data table -li r4, CSSCWDT_SIZE -branchl r12, Zero_AreaLength - -# Set Buffer Initial Data -mr r3, REG_CHAT_INPUTS # controller input -stb r3, CSSCWDT_INPUT(r23) # 0x80195424 - -# Set CSS DataTable Address -mr r3, REG_CSSDT_ADDR # store address to CSS Data Table -stw r3, CSSCWDT_CSSDT_ADDR(r23) - -# create gobj for think function -li r3, 0x4 -li r4, 0x5 -li r5, 0x80 -branchl r12, GObj_Create -mr REG_CHAT_GOBJ, r3 # save GOBJ pointer - -# Load JOBJ -lwz r3, CSSDT_SLPCSS_ADDR(REG_CSSDT_ADDR) -lwz r3, SLPCSS_CHATSELECT (r3) # pointer to our custom bg main jobj -lwz r3, 0x0 (r3) # jobj -branchl r12,0x80370e44 #Create jobj -mr REG_CHAT_JOBJ,r3 - -# Move to the left if widescreen is enabled -lfs f1, TPO_CHAT_WINDOW_X(REG_TEXT_PROPERTIES) # X POS -lbz r4, OFST_R13_ISWIDESCREEN(r13) -cmpwi r4, 0 -beq END_SET_CHAT_WINDOW_POS_X -lfs f1, TPO_CHAT_WINDOW_X_WIDESCREEN(REG_TEXT_PROPERTIES) # X POS Widescreen - -END_SET_CHAT_WINDOW_POS_X: -lfs f2, TPO_CHAT_WINDOW_Y(REG_TEXT_PROPERTIES) # Y POS -stfs f1, 0x38(r3) # X POS -stfs f2, 0x3C(r3) # Y POS - -# Add JOBJ To GObj -mr r3,REG_CHAT_GOBJ -li r4, 4 -mr r5,REG_CHAT_JOBJ -branchl r12,0x80390a70 # void GObj_AddObject(GOBJ *gobj, u8 unk, void *object) - -# Add GX Link that draws the background -mr r3,REG_CHAT_GOBJ -load r4,0x80391070 # 80302608, 80391044, 8026407c, 80391070, 803a84bc -li r5, 1 -li r6, 128 -branchl r12,GObj_SetupGXLink # void GObj_AddGXLink(GOBJ *gobj, void *cb, int gx_link, int gx_pri) - -# Add User Data to GOBJ ( Our buffer ) -mr r3, REG_CHAT_GOBJ -li r4, 4 # user data kind -load r5, HSD_Free # destructor -mr r6, r23 # memory pointer of allocated buffer above -branchl r12, GObj_AddUserData - -# Set Think Function that runs every frame -mr r3, REG_CHAT_GOBJ # set r3 to GOBJ pointer -bl CSS_ONLINE_CHAT_WINDOW_THINK -mflr r4 # Function to Run -li r5, 4 # Priority. 4 runs after CSS_LoadButtonInputs (3) -branchl r12, GObj_AddProc - -FN_OPEN_CHAT_WINDOW_END: - - -restore -blr - -################################################################################ -# CHAT MSG THINK Function: Looping function to keep on -# updating the text until timer runs out -################################################################################ -CSS_ONLINE_CHAT_WINDOW_THINK: -blrl -.set REG_CHAT_WINDOW_GOBJ, 14 -.set REG_TEXT_PROPERTIES, 15 -.set REG_CHAT_TEXT_PROPERTIES, 20 -.set REG_CHAT_WINDOW_GOBJ_DATA_ADDR, 16 -.set REG_CHAT_WINDOW_JOBJ_ADDR, 23 -.set REG_CHAT_WINDOW_INPUT, 17 -.set REG_CHAT_WINDOW_SECOND_INPUT, 22 -.set REG_CHAT_WINDOW_TIMER, 18 -.set REG_CHAT_WINDOW_TEXT_STRUCT_ADDR, 19 -.set REG_CHAT_WINDOW_CSSDT_ADDR, 21 - -.set CHAT_JOBJ_OFFSET, 0x28 # offset from GOBJ to HSD Object (Jobj we assigned) -.set CHAT_ENTITY_DATA_OFFSET, 0x2C # offset from GOBJ to entity data -.set CHAT_WINDOW_IDLE_TIMER_TIME, 0x90 # initial idle timer before window disappears -.set CHAT_WINDOW_IDLE_TIMER_DELAY, 0x06 # initial delay before allowing to send messages -.set CHAT_WINDOW_MAX_MESSAGES, 0x03 # Max messages allowed before blocking new ones -.set CHAT_WINDOW_HEADER_MARGIN_LINES, 0x2 # lines away from which to start drawing messages away from header - -mr REG_CHAT_WINDOW_GOBJ, r3 # Store GOBJ pointer 0x801954A4 - -.set NUM_FREG, 0 -.set NUM_GPREG, 18 -backup BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG - -# get gobj and get values for each of the data buffer -lwz REG_CHAT_WINDOW_GOBJ_DATA_ADDR, CHAT_ENTITY_DATA_OFFSET(REG_CHAT_WINDOW_GOBJ) # get address of data buffer -lwz REG_CHAT_WINDOW_JOBJ_ADDR, CHAT_JOBJ_OFFSET(REG_CHAT_WINDOW_GOBJ) # get address of data buffer -lbz REG_CHAT_WINDOW_INPUT, CSSCWDT_INPUT(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -lbz REG_CHAT_WINDOW_TIMER, CSSCWDT_TIMER(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -lwz REG_CHAT_WINDOW_TEXT_STRUCT_ADDR, CSSCWDT_TEXT_STRUCT_ADDR(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -lwz REG_CHAT_WINDOW_CSSDT_ADDR, CSSCWDT_CSSDT_ADDR(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -lhz REG_CHAT_WINDOW_SECOND_INPUT, CSSDT_CHAT_LAST_INPUT(REG_CHAT_WINDOW_CSSDT_ADDR) - -lwz REG_MSRB_ADDR, CSSDT_MSRB_ADDR(REG_CHAT_WINDOW_CSSDT_ADDR) - -# clear last input -li r3, 0 -sth r3, CSSDT_CHAT_LAST_INPUT(REG_CHAT_WINDOW_CSSDT_ADDR) - -# if chat command already sent destroy proc -lbz r3, CSSCWDT_INPUT_SENT(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -cmpwi r3, 0 -bne CSS_ONLINE_CHAT_WINDOW_THINK_REMOVE_PROC - -# if text is not initialized, assume we need to initalize everything -# else skip to idle timer check -cmpwi REG_CHAT_WINDOW_TEXT_STRUCT_ADDR, 0 -bne CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_INPUT - -##### BEGIN: INITIALIZING CHAT WINDOW TIMER ########### -li r3, CHAT_WINDOW_IDLE_TIMER_TIME # idle timer -mr REG_CHAT_WINDOW_TIMER, r3 -stb r3, CSSCWDT_TIMER(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -##### END: INITIALIZING CHAT WINDOW TIMER ########### - -##### BEGIN: INITIALIZING CHAT WINDOW TEXT ########### - -# INIT PROPERTIES -bl TEXT_PROPERTIES -mflr REG_TEXT_PROPERTIES - -# INIT MSG Properties based on input button -mr r3, REG_CHAT_WINDOW_INPUT -branchl r12, FN_LoadChatMessageProperties -mr REG_CHAT_TEXT_PROPERTIES, r3 - -# Create Text Struct -li r3, 0 -li r4, 0 -branchl r12, Text_CreateStruct -# Save Text Struct Address -mr REG_CHAT_WINDOW_TEXT_STRUCT_ADDR, r3 -stw REG_CHAT_WINDOW_TEXT_STRUCT_ADDR, CSSCWDT_TEXT_STRUCT_ADDR(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) - -li r3, 0x1 # Text kerning to close -li r4, 0x0 # Align Left -lfs f1, TPO_BASE_Z(REG_TEXT_PROPERTIES) # Z offset -lfs f2, TPO_BASE_CANVAS_SCALING(REG_TEXT_PROPERTIES) # Scale -stb r3, 0x49(REG_CHAT_WINDOW_TEXT_STRUCT_ADDR) # Set text kerning -stb r4, 0x4A(REG_CHAT_WINDOW_TEXT_STRUCT_ADDR) # Set text alignment -stfs f1, 0x8(REG_CHAT_WINDOW_TEXT_STRUCT_ADDR) # set z offset -stfs f2, 0x24(REG_CHAT_WINDOW_TEXT_STRUCT_ADDR) # set scale -stfs f2, 0x28(REG_CHAT_WINDOW_TEXT_STRUCT_ADDR) # set scale - -# Create Subtext: Header -# Move to the left if widescreen is enabled -lfs f2, TPO_CHAT_HEADER_X(REG_TEXT_PROPERTIES) # X POS -lbz r3, OFST_R13_ISWIDESCREEN(r13) -cmpwi r3, 0 -beq END_SET_CHAT_HEADER_POS_X -lfs f2, TPO_CHAT_HEADER_X_WIDESCREEN(REG_TEXT_PROPERTIES) # X POS Widescreen -END_SET_CHAT_HEADER_POS_X: - -# set a different color if not connected -addi r4, REG_TEXT_PROPERTIES, TPO_COLOR_YELLOW # color when connected -lbz r3, MSRB_CONNECTION_STATE(REG_MSRB_ADDR) -cmpwi r3, MM_STATE_CONNECTION_SUCCESS -beq END_SET_CHAT_HEADER_COLOR - -addi r4, REG_TEXT_PROPERTIES, TPO_COLOR_FAINT_YELLOW # color when not connected -END_SET_CHAT_HEADER_COLOR: - -mr r3, REG_CHAT_WINDOW_TEXT_STRUCT_ADDR # Text Struct Address -# r4 is color -li r5, 0 # no outline -addi r6, REG_TEXT_PROPERTIES, TPO_COLOR_WHITE # Text Color -addi r7, REG_TEXT_PROPERTIES, TPO_STRING_CHAT_SHORTCUTS # String Format pointer -addi r8, REG_CHAT_TEXT_PROPERTIES, 0x4 # String pointer (header starts at 0x4) -lfs f1, TPO_CHAT_LABEL_SIZE(REG_TEXT_PROPERTIES) # Text Size -lfs f3, TPO_CHAT_LABEL_Y(REG_TEXT_PROPERTIES) # Y POS -branchl r12, FG_CreateSubtext -mr r4, r3 # sub text index for next function call - -# Create Subtext: Labels -mr r10, r4 # save sub text index of header # 0x80195520 -mr r11, r4 # initialize looping index -CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_START: - -# calculate Y offset by moving it down a bit -addi r3, r11, CHAT_WINDOW_HEADER_MARGIN_LINES -lfs f2, TPO_CHAT_LABEL_MARGIN(REG_TEXT_PROPERTIES) # margin between labels -branchl r12, FN_MultiplyRWithF -lfs f3, TPO_CHAT_LABEL_Y(REG_TEXT_PROPERTIES) # Y POS -fadds f3, f3, f1 -#fmr f3, f1 # 0x80195588 - -# calculate address of label -cmpwi r11, 0x0 -beq CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_UP_LABEL_ADDR -cmpwi r11, 0x1 -beq CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_LEFT_LABEL_ADDR -cmpwi r11, 0x2 -beq CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_RIGHT_LABEL_ADDR -cmpwi r11, 0x3 -beq CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_DOWN_LABEL_ADDR - -CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_UP_LABEL_ADDR: -li r4, PAD_UP -b CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_CALC_LABEL_ADDR_END -CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_DOWN_LABEL_ADDR: -li r4, PAD_DOWN -b CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_CALC_LABEL_ADDR_END -CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_RIGHT_LABEL_ADDR: -li r4, PAD_RIGHT -b CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_CALC_LABEL_ADDR_END -CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_SET_LEFT_LABEL_ADDR: -li r4, PAD_LEFT -CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_CALC_LABEL_ADDR_END: - -# calculate address of message -# INIT MSG Properties based on input button -mr r3, REG_CHAT_WINDOW_INPUT -# r4 is selected input -branchl r12, FN_LoadChatMessageProperties -mr r7, r4 # message String pointer - -# Move to the left if widescreen is enabled -lfs f2, TPO_CHAT_LABEL_X(REG_TEXT_PROPERTIES) # X POS -lbz r3, OFST_R13_ISWIDESCREEN(r13) -cmpwi r3, 0 -beq END_SET_CHAT_LABEL_POS_X -lfs f2, TPO_CHAT_LABEL_X_WIDESCREEN(REG_TEXT_PROPERTIES) # X POS Widescreen - -END_SET_CHAT_LABEL_POS_X: -mr r3, REG_CHAT_WINDOW_TEXT_STRUCT_ADDR # Text Struct Address -addi r4, REG_TEXT_PROPERTIES, TPO_COLOR_WHITE # Text Color -li r5, 0 # No outlines -addi r6, REG_TEXT_PROPERTIES, TPO_COLOR_WHITE # Text Color -# r7 message String pointer -lfs f1, TPO_CHAT_LABEL_SIZE(REG_TEXT_PROPERTIES) # Text Size - - -branchl r12, FG_CreateSubtext -mr r11, r3 # save subtext index - -# Loop back if last index has not been reached -addi r3, r10, 4 # Last index we want header + 4 labels -cmpw r11, r3 -bne CSS_ONLINE_CHAT_WINDOW_THINK_CREATE_LABELS_LOOP_START - -##### END: INITIALIZING CHAT WINDOW TEXT ########### -b CSS_ONLINE_CHAT_WINDOW_THINK_EXIT # just initialize on first loop - -CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_INPUT: # 0x8019562C - -# If theres is no chat messages skip timer check -lbz r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CHAT_WINDOW_CSSDT_ADDR) -cmpwi r3, 0 -beq SKIP_CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER - -# prevent spam: Only allow input if a few frames have passed -lbz r3, CSSCWDT_TIMER(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) -cmpwi r3, CHAT_WINDOW_IDLE_TIMER_TIME-CHAT_WINDOW_IDLE_TIMER_DELAY -bgt CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER -SKIP_CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER: - -# logf LOG_LEVEL_WARN, "msg input: %d", "mr r5, REG_CHAT_WINDOW_SECOND_INPUT" - -# if B pressed, close chat window -cmpwi REG_CHAT_WINDOW_SECOND_INPUT, B_BUTTON -bne SKIP_CSS_ONLINE_CHAT_WINDOW_THINK_CLOSE_CHAT_WINDOW - -# Play return SFX -# li r3, 0 -# branchl r12,SFX_Menu_CommonSound -b CSS_ONLINE_CHAT_WINDOW_THINK_REMOVE_PROC - -SKIP_CSS_ONLINE_CHAT_WINDOW_THINK_CLOSE_CHAT_WINDOW: - -# load last input from the CSS Data table -# if there's any input, Send Message -cmpwi REG_CHAT_WINDOW_SECOND_INPUT, 0 -beq CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER - -# if current local message count is X, do not allow to send another -lbz r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CHAT_WINDOW_CSSDT_ADDR) -cmpwi r3, CHAT_WINDOW_MAX_MESSAGES -bge CSS_ONLINE_CHAT_WINDOW_THINK_BLOCK_MESSAGE - -# if current message count is X+2, do not allow to send another -lbz r3, CSSDT_CHAT_MSG_COUNT(REG_CHAT_WINDOW_CSSDT_ADDR) -cmpwi r3, CHAT_WINDOW_MAX_MESSAGES+2 -bge CSS_ONLINE_CHAT_WINDOW_THINK_BLOCK_MESSAGE - -# Clear Timer -li r3, 0 -stb r3, CSSCWDT_TIMER(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) - -# Send Chat command # 0x80195638 -# combine so we get 0x00(first input)(second input) i.e: 0x0024 if first was 2 and second was 4 -mr r3, REG_CHAT_WINDOW_INPUT -mr r4, REG_CHAT_WINDOW_SECOND_INPUT - -li r5, 4 # shift first input 4 bytes to the left -slw r3, r3, r5 -add r3, r3, r4 # add second input to highest byte -bl FN_SEND_CHAT_COMMAND - -# flag as input already sent -li r3, 1 -stb r3, CSSCWDT_INPUT_SENT(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) - -b CSS_ONLINE_CHAT_WINDOW_THINK_EXIT - -CSS_ONLINE_CHAT_WINDOW_THINK_BLOCK_MESSAGE: -# Play SFX -li r3,3 -branchl r12,SFX_Menu_CommonSound - -CSS_ONLINE_CHAT_WINDOW_THINK_CHECK_IDLE_TIMER: -# check timer and decrease until is 0 -cmpwi REG_CHAT_WINDOW_TIMER, 0 -beq CSS_ONLINE_CHAT_WINDOW_THINK_REMOVE_PROC # if timer is 0, then exit and delete think func. - -CSS_ONLINE_CHAT_WINDOW_THINK_DECREASE_IDLE_TIMER: -subi REG_CHAT_WINDOW_TIMER, REG_CHAT_WINDOW_TIMER, 1 -stb REG_CHAT_WINDOW_TIMER, CSSCWDT_TIMER(REG_CHAT_WINDOW_GOBJ_DATA_ADDR) - -b CSS_ONLINE_CHAT_WINDOW_THINK_EXIT - -CSS_ONLINE_CHAT_WINDOW_THINK_REMOVE_PROC: - -# clear out chat window opened flag on the CSS Data Table -li r3, 0 -stb r3, CSSDT_CHAT_WINDOW_OPENED(REG_CHAT_WINDOW_CSSDT_ADDR) - -# destroy gobj -mr r3, REG_CHAT_WINDOW_GOBJ -branchl r12, GObj_Destroy - -# remove text -mr r3, REG_CHAT_WINDOW_TEXT_STRUCT_ADDR -branchl r12, Text_RemoveText - -CSS_ONLINE_CHAT_WINDOW_THINK_EXIT: -restore BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG -blr - - - -################################################################################ -# Properties -################################################################################ -TEXT_PROPERTIES: -blrl -# Base Properties -.set TPO_BASE_Z, 0 -.float 0 -.set TPO_BASE_CANVAS_SCALING, TPO_BASE_Z + 4 -.float 0.1 - -# Chat Labels Propiertes -.set TPO_CHAT_HEADER_X, TPO_BASE_CANVAS_SCALING + 4 -.float -300 -.set TPO_CHAT_HEADER_X_WIDESCREEN, TPO_CHAT_HEADER_X + 4 -.float -452 -.set TPO_CHAT_LABEL_X, TPO_CHAT_HEADER_X_WIDESCREEN + 4 -.float -285 -.set TPO_CHAT_LABEL_X_WIDESCREEN, TPO_CHAT_LABEL_X + 4 -.float -437 -.set TPO_CHAT_LABEL_Y, TPO_CHAT_LABEL_X_WIDESCREEN + 4 -.float 79 -.set TPO_CHAT_LABEL_SIZE, TPO_CHAT_LABEL_Y + 4 -.float 0.45 -.set TPO_CHAT_LABEL_MARGIN, TPO_CHAT_LABEL_SIZE + 4 -.float 25 - -# Chat Window Properties -.set TPO_CHAT_WINDOW_X, TPO_CHAT_LABEL_MARGIN + 4 -.float -20 -.set TPO_CHAT_WINDOW_X_WIDESCREEN, TPO_CHAT_WINDOW_X + 4 -.float -35 -.set TPO_CHAT_WINDOW_Y, TPO_CHAT_WINDOW_X_WIDESCREEN + 4 -.float -16.5 - -# Text colors -.set TPO_COLOR_WHITE, TPO_CHAT_WINDOW_Y + 4 -.long 0xFFFFFFFF # white -.set TPO_COLOR_YELLOW, TPO_COLOR_WHITE + 4 -.long 0xffea2fFF -.set TPO_COLOR_FAINT_YELLOW, TPO_COLOR_YELLOW + 4 -.long 0xc9c387FF - -# String Properties -.set TPO_STRING_CHAT_SHORTCUTS, TPO_COLOR_FAINT_YELLOW + 4 -.string "Chat: %s" -.align 2 - ################################################################################ # Skip starting match ################################################################################ diff --git a/Online/Menus/CSS/LoadCSSText.asm b/Online/Menus/CSS/LoadCSSText.asm index c990261e..54e90255 100644 --- a/Online/Menus/CSS/LoadCSSText.asm +++ b/Online/Menus/CSS/LoadCSSText.asm @@ -13,13 +13,6 @@ # Text Update Userdata Struct Definition .set TEXTGOBJDATA_SIZE, 0x4 -.set TEXTGOBJDATA_SLPCSS, 0x0 # pointer to slpChat symbol - -# Chat constants -.set MAX_CHAT_MESSAGES, (3*4)+1 # Max messages being displayed at the same time (max messages being set by all team members) -.set MAX_CHAT_MESSAGE_LINES, 9 -.set CHAT_MESSAGE_DISPLAY_TIMER, 0xAA -.set JOBJ_CHILD_OFFSET, 0x38 # Pointer to store Child JOBJ on the SP # Ensure that this is an online CSS getMinorMajor r3 @@ -38,39 +31,8 @@ blrl .set TPO_BASE_CANVAS_SCALING, TPO_BASE_Z + 4 .float 0.1 -# Chat Message Propiertes -.set TPO_CHAT_MSG_MARGIN, TPO_BASE_CANVAS_SCALING + 4 -.float 3.20 - -# Label properties -.set TPO_CHAT_BG_SCALE_X, TPO_CHAT_MSG_MARGIN+4 -.float 11.8 -.set TPO_CHAT_BG_SCALE_Y, TPO_CHAT_BG_SCALE_X+4 -.float 0.8 -.set TPO_CHAT_BG_X_POS_WIDESCREEN, TPO_CHAT_BG_SCALE_Y+4 -.float -14 -.set TPO_CHAT_BG_Y_POS, TPO_CHAT_BG_X_POS_WIDESCREEN+4 -.float 24 -.set TPO_CHAT_BG_FRAME_START, TPO_CHAT_BG_Y_POS+4 -.float 0 -.set TPO_CHAT_BG_FRAME_END, TPO_CHAT_BG_FRAME_START+4 -.float 30 -.set TPO_CHAT_BG_FRAME_REWIND, TPO_CHAT_BG_FRAME_END+4 -.float 50 - -.set TPO_CHATMSG_X_POS_WIDESCREEN, TPO_CHAT_BG_FRAME_REWIND+4 -.float -44.5 -.set TPO_CHATMSG_X_POS, TPO_CHATMSG_X_POS_WIDESCREEN+4 -.float -29.5 -.set TPO_CHATMSG_Y_POS, TPO_CHATMSG_X_POS+4 -.float -23.25 -.set TPO_CHATMSG_Z_POS, TPO_CHATMSG_Y_POS+4 -.float 5 -.set TPO_CHATMSG_CANVAS_SCALE, TPO_CHATMSG_Z_POS+4 -.float 0.04 - # Header properties -.set TPO_HEADER_X, TPO_CHATMSG_CANVAS_SCALE + 4 +.set TPO_HEADER_X, TPO_BASE_CANVAS_SCALING + 4 .float 70 .set TPO_HEADER_Y, TPO_HEADER_X + 4 .float 23 @@ -588,154 +550,6 @@ addi r5, REG_TEXT_PROPERTIES, TPO_STRING_ERROR UPDATE_HEADER: bl FN_UPDATE_TEXT -################################################################################ -# Manage Chat Messages: If there's a new message, then initialize a -# disappearing text -################################################################################ -b SKIP_CHAT_MESSAGES -.set REG_MSG_ID, REG_VARIOUS_1 # REG_MSG_ID will store chat message id -.set REG_USER_STRING, REG_VARIOUS_2 # REG_USER_STRING will store the user name string memory address - -lbz r3, MSRB_USER_CHATMSG_ID(REG_MSRB_ADDR) -cmpwi r3, 0 -beq CHECK_OPP_CHAT_MESSAGE -addi REG_USER_STRING, REG_MSRB_ADDR, MSRB_LOCAL_NAME # store player name -mr REG_MSG_ID, r3 # store chat message id - -# Store Increased local Message Count -lbz r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CSSDT_ADDR) -addi r3, r3, 1 -stb r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CSSDT_ADDR) - -b UPDATE_CHAT_MESSAGES - -CHECK_OPP_CHAT_MESSAGE: -lbz r3, MSRB_OPP_CHATMSG_ID(REG_MSRB_ADDR) -cmpwi r3, 0 -beq SKIP_CHAT_MESSAGES -mr REG_MSG_ID, r3 # store chat message id - -UPDATE_CHAT_MESSAGES: -# Start at the top after x messages -lbz r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) -cmpwi r3, MAX_CHAT_MESSAGE_LINES -ble CREATE_CHAT_MESSAGE -# if we reached the limit, reset the last message index to 0 -li r3, 0 -stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index -beq SKIP_CHAT_MESSAGES - -CREATE_CHAT_MESSAGE: -.set REG_BUFFER, REG_VARIOUS_3 - -# Play a sound indicating a new message -li r3, 0xb7 -li r4, 127 -li r5, 64 -branchl r12, 0x800237a8 # SFX_PlaySoundAtFullVolume - -# Store Increased Message Count -lbz r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) -addi r3, r3, 1 -stb r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) - -# Get Memory Buffer for Chat Message Data Table -li r3, CSSCMDT_SIZE -branchl r12, HSD_MemAlloc -mr REG_BUFFER, r3 # save result address into REG_BUFFER - -# Zero out CSS data table -li r4, CSSDT_SIZE -branchl r12, Zero_AreaLength - -# initialize timers -li r3, 20 -li r4, 0 # default status is startup -stb r3, CSSCMDT_TIMER(REG_BUFFER) -stb r4, CSSCMDT_TIMER_STATUS(REG_BUFFER) - -# initialize message id -mr r3, REG_MSG_ID -stb r3, CSSCMDT_MSG_ID(REG_BUFFER) - -# Set Message index + increase by 1 -lbz r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) -stb r3, CSSCMDT_MSG_INDEX(REG_BUFFER) # set index in the new buffer -addi r3, r3, 1 # increase message index -stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index - -# Set player index -lbz r3, MSRB_CHATMSG_PLAYER_INDEX(REG_MSRB_ADDR) -stb r3, CSSCMDT_PLAYER_INDEX(REG_BUFFER) - -# Set CSS DataTable Address -mr r3, REG_CSSDT_ADDR # store address to CSSDT_DT -stw r3, CSSCMDT_CSSDT_ADDR(REG_BUFFER) - -.set REG_GOBJ, REG_VARIOUS_4 -# Create GObj (input values stolen from CSS_BigFunc... GObj) -li r3, 4 -li r4, 5 -li r5, 0x80 -branchl r12, GObj_Create -mr REG_GOBJ, r3 - -# Load JOBJ -lwz r3, CSSDT_SLPCSS_ADDR(REG_CSSDT_ADDR) -lwz r3, SLPCSS_CHATMSG (r3) # pointer to our custom bg main jobj -lwz r3, 0x0 (r3) # jobj -branchl r12,JObj_LoadJoint #Create jobj - -# Add JOBJ -mr r5,r3 -mr r3, REG_GOBJ -lbz r4, -0x3E57 (r13) -branchl r12,0x80390a70 - -# Add GX Link -mr r3, REG_GOBJ -load r4,0x80391070 -li r5, 3 -li r6, 128 -branchl r12,GObj_SetupGXLink - -# Add anim -lwz r3,0x28(REG_GOBJ) -lwz r4, CSSDT_SLPCSS_ADDR(REG_CSSDT_ADDR) -lwz r4, SLPCSS_CHATMSG (r4) -li r5, 0 -branchl r12,0x8016895c - -# Req anim -lwz r3,0x28(REG_GOBJ) -lfs f1, -0x51D8 (rtoc) -branchl r12, JObj_ReqAnimAll - -# Move to the left if widescreen is enabled -lbz r3, OFST_R13_ISWIDESCREEN(r13) -cmpwi r3, 0 -beq SKIP_SET_CHAT_BG_POS_X -# Adjust X Translation -lfs f1, TPO_CHAT_BG_X_POS_WIDESCREEN(REG_TEXT_PROPERTIES) -lwz r3,0x28(REG_GOBJ) -stfs f1, 0x38(r3) -SKIP_SET_CHAT_BG_POS_X: - - -# Add userdata -mr r3, REG_GOBJ -li r4, 4 # user data kind 0x80195b7c -load r5, HSD_Free # destructor -mr r6, REG_BUFFER # memory pointer of allocated buffer above -branchl r12, GObj_AddUserData - -mr r3, REG_GOBJ # set pointer back to GOBJ -bl CSS_ONLINE_CHAT_THINK -mflr r4 # Function to Run -li r5, 4 # Priority. 4 runs after CSS_LoadButtonInputs (3) -branchl r12, GObj_AddProc - -SKIP_CHAT_MESSAGES: ################################################################################ # Manage playing label @@ -1142,255 +956,6 @@ sth r3, CSSDT_FRAME_COUNTER(REG_CSSDT_ADDR) restore blr -################################################################################ -# CHAT MSG THINK Function: Looping function to keep on -# updating the text until timer runs out -################################################################################ - -# Registers -.set CHAT_ENTITY_DATA_OFFSET, 0x2C # offset from GOBJ to entity data -.set REG_CHATMSG_GOBJ, 14 -.set REG_CHATMSG_JOBJ, REG_CHATMSG_GOBJ+1 -.set REG_CHATMSG_GOBJ_DATA_ADDR, REG_CHATMSG_JOBJ+1 -.set REG_CHATMSG_TIMER, REG_CHATMSG_GOBJ_DATA_ADDR+1 -.set REG_CHATMSG_TIMER_STATUS, REG_CHATMSG_TIMER+1 -.set REG_CHATMSG_MSG_ID, REG_CHATMSG_TIMER_STATUS+1 -.set REG_CHATMSG_MSG_INDEX, REG_CHATMSG_MSG_ID+1 -.set REG_CHATMSG_MSG_TEXT_STRUCT_ADDR, REG_CHATMSG_MSG_INDEX+1 -.set REG_CHATMSG_MSG_STRING_ADDR, REG_CHATMSG_MSG_TEXT_STRUCT_ADDR+1 -.set REG_CHATMSG_PLAYER_INDEX, REG_CHATMSG_MSG_STRING_ADDR+1 -# float registers -.set REG_CHATMSG_TEXT_X_POS, 31 -.set REG_CHATMSG_TEXT_Y_POS, REG_CHATMSG_TEXT_X_POS-1 - -# offsets -.set JOBJ_OFFSET, 0x28 # offset from GOBJ to HSD Object (Jobj we assigned) - -CSS_ONLINE_CHAT_THINK: -blrl -.set NUM_FREG, 2 -.set NUM_GPREG, 18 -backup BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG -mr REG_CHATMSG_GOBJ, r3 # Store GOBJ pointer - -# INIT PROPERTIES -bl TEXT_PROPERTIES -mflr REG_TEXT_PROPERTIES - -# get gobj and get values for each of the data buffer -lwz REG_CHATMSG_GOBJ_DATA_ADDR, CHAT_ENTITY_DATA_OFFSET(REG_CHATMSG_GOBJ) # get address of data buffer -lbz REG_CHATMSG_TIMER, CSSCMDT_TIMER(REG_CHATMSG_GOBJ_DATA_ADDR) -lbz REG_CHATMSG_TIMER_STATUS, CSSCMDT_TIMER_STATUS(REG_CHATMSG_GOBJ_DATA_ADDR) -lbz REG_CHATMSG_MSG_ID, CSSCMDT_MSG_ID(REG_CHATMSG_GOBJ_DATA_ADDR) -lbz REG_CHATMSG_MSG_INDEX, CSSCMDT_MSG_INDEX(REG_CHATMSG_GOBJ_DATA_ADDR) -lwz REG_CHATMSG_MSG_TEXT_STRUCT_ADDR, CSSCMDT_MSG_TEXT_STRUCT_ADDR(REG_CHATMSG_GOBJ_DATA_ADDR) -lbz REG_CHATMSG_PLAYER_INDEX, CSSCMDT_PLAYER_INDEX(REG_CHATMSG_GOBJ_DATA_ADDR) -lwz REG_CSSDT_ADDR, CSSCMDT_CSSDT_ADDR(REG_CHATMSG_GOBJ_DATA_ADDR) - -lwz REG_CHATMSG_JOBJ, JOBJ_OFFSET(REG_CHATMSG_GOBJ) # get address of jobj -lwz REG_CHATMSG_JOBJ, 0x10(REG_CHATMSG_JOBJ) # get address of child jobj (bg) - -# Always Animate the bg -mr r3, REG_CHATMSG_JOBJ -branchl r12, JObj_AnimAll - -# if text is not initialized, do it and move to next frame -cmpwi REG_CHATMSG_MSG_TEXT_STRUCT_ADDR, 0x00000000 -bne CSS_ONLINE_CHAT_CHECK_MAX_MESSAGES # already has values means that is set so skip to timer check - -# calculate float locations for message -mr r3,REG_CHATMSG_MSG_INDEX # convert message index to float -branchl r12, FN_IntToFloat # returns f1 (message index) - -# Move Chat Message Background -lfs f2, TPO_CHAT_BG_Y_POS(REG_TEXT_PROPERTIES) -lfs f3, TPO_CHAT_MSG_MARGIN(REG_TEXT_PROPERTIES) # distance between message -fmuls f3, f1, f3 # multiply index by margin -fsubs f2, f2, f3 # add the offset -stfs f2, 0x38+4(REG_CHATMSG_JOBJ) - -cmpwi REG_CHATMSG_TIMER_STATUS, 0 # if on startup move on to timer logic -beq CSS_ONLINE_CHAT_CHECK_MAX_MESSAGES - -CSS_ONLINE_CHAT_INIT_TEXT: -##### BEGIN: INITIALIZING CHAT MSG TEXT ########### - -# if we got here we are initializing text so set timer again -li REG_CHATMSG_TIMER, CHAT_MESSAGE_DISPLAY_TIMER # reset timer -stb REG_CHATMSG_TIMER, CSSCMDT_TIMER(REG_CHATMSG_GOBJ_DATA_ADDR) - -# if we got here we are initializing text so set timer again -li REG_CHATMSG_TIMER_STATUS, 1 # reset timer -stb REG_CHATMSG_TIMER_STATUS, CSSCMDT_TIMER_STATUS(REG_CHATMSG_GOBJ_DATA_ADDR) - -SET_CHATMSG_TEXT_HEADER: -mr REG_CHATMSG_MSG_STRING_ADDR, r4 # store current string pointer - -# calculate float locations for message -mr r3,REG_CHATMSG_MSG_INDEX # convert message index to float -branchl r12, FN_IntToFloat # returns f1 (message index) -# load Y Starting position of text -lfs f2, TPO_CHATMSG_Y_POS(REG_TEXT_PROPERTIES) -lfs f3, TPO_CHAT_MSG_MARGIN(REG_TEXT_PROPERTIES) # distance between message -fmuls f3, f1, f3 # multiply index by margin -fadds f2, f2, f3 # add the offset -fmr REG_CHATMSG_TEXT_Y_POS, f2 # store current position to reuse them - -# Change Text Struct Descriptor to use a higher GX -lwz r3, textStructDescriptorBuffer(r13) # Text Struct Descriptor -li r4, 3 # gx_link we want -stb r4, 0xE(r3) - -lfs f1, TPO_CHATMSG_X_POS(REG_TEXT_PROPERTIES) - -# Move to the left if widescreen is enabled -lbz r3, OFST_R13_ISWIDESCREEN(r13) -cmpwi r3, 0 -beq SKIP_SET_CHAT_MSG_POS_X - -lfs f1, TPO_CHATMSG_X_POS_WIDESCREEN(REG_TEXT_PROPERTIES) -SKIP_SET_CHAT_MSG_POS_X: - - -# Create Text Object -addi r3, REG_CHATMSG_PLAYER_INDEX, 1 -mr r4, REG_CHATMSG_MSG_ID -li r5, 2 # use premade text fn -li r6, 0 # gx_link/pri? - -# f1 = X POS is set up above -# f2 = Y POS is set up above -lfs f3, TPO_CHATMSG_Z_POS(REG_TEXT_PROPERTIES) -lfs f4, TPO_CHATMSG_CANVAS_SCALE(REG_TEXT_PROPERTIES) -branchl r12, FG_CreateSubtext - -# Save Text Struct Address -stw r3, CSSCMDT_MSG_TEXT_STRUCT_ADDR(REG_CHATMSG_GOBJ_DATA_ADDR) - -# restore text struct descriptor -lwz r3, textStructDescriptorBuffer(r13) # Text Struct Descriptor -li r4, 1 # gx_link to restore -stb r4, 0xE(r3) - -b CSS_ONLINE_CHAT_CHECK_MAX_MESSAGES - -##### END: INITIALIZING CHAT MSG TEXT ########### - -CSS_ONLINE_CHAT_CHECK_MAX_MESSAGES: -lbz r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) # 4 -cmpwi r3, MAX_CHAT_MESSAGES -blt CSS_ONLINE_CHAT_CHECK_TIMER - -# if last chat message index is 0 and my index is max - 1 (if messages are rotating on the top again) -lbz r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # chat message index -cmpw r3, REG_CHATMSG_MSG_INDEX -bge CSS_ONLINE_CHAT_CHECK_MAX_MESSAGES_SKIP_TOP_ROTATION - -cmpwi REG_CHATMSG_MSG_INDEX, MAX_CHAT_MESSAGE_LINES -ble CSS_ONLINE_CHAT_REMOVE_PROC - -CSS_ONLINE_CHAT_CHECK_MAX_MESSAGES_SKIP_TOP_ROTATION: -lbz r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # chat message index -sub r3, r3, REG_CHATMSG_MSG_INDEX -cmpwi r3, MAX_CHAT_MESSAGES -bgt CSS_ONLINE_CHAT_REMOVE_PROC - -CSS_ONLINE_CHAT_CHECK_TIMER: - -# check timer and decrease until is 0 -cmpwi REG_CHATMSG_TIMER, 0 -bne CSS_ONLINE_CHAT_DECREASE_TIMER - -# if timer is 0, do next func based on timer status -cmpwi REG_CHATMSG_TIMER_STATUS, 0 -beq CSS_ONLINE_CHAT_INIT_TEXT -cmpwi REG_CHATMSG_TIMER_STATUS, 1 -beq CSS_ONLINE_CHAT_INIT_CLEANUP -cmpwi REG_CHATMSG_TIMER_STATUS, 2 -beq CSS_ONLINE_CHAT_REMOVE_PROC - - -CSS_ONLINE_CHAT_DECREASE_TIMER: -subi REG_CHATMSG_TIMER, REG_CHATMSG_TIMER, 1 -stb REG_CHATMSG_TIMER, CSSCMDT_TIMER(REG_CHATMSG_GOBJ_DATA_ADDR) - -b CSS_ONLINE_CHAT_CHECK_EXIT - -CSS_ONLINE_CHAT_INIT_CLEANUP: - -li REG_CHATMSG_TIMER_STATUS, 2 # set timer status to cleanup -stb REG_CHATMSG_TIMER_STATUS, CSSCMDT_TIMER_STATUS(REG_CHATMSG_GOBJ_DATA_ADDR) - -li REG_CHATMSG_TIMER, 20 # reset timer -stb REG_CHATMSG_TIMER, CSSCMDT_TIMER(REG_CHATMSG_GOBJ_DATA_ADDR) - -# add end animation -lwz r3, 0x28 (REG_CHATMSG_GOBJ) -lwz r4, CSSDT_SLPCSS_ADDR(REG_CSSDT_ADDR) -lwz r4, SLPCSS_CHATMSG (r4) -li r5, 1 -branchl r12,0x8016895c - -# Req anim -lwz r3, 0x28 (REG_CHATMSG_GOBJ) -lfs f1, -0x51D8 (rtoc) -branchl r12, JObj_ReqAnimAll - -# free up custom slippi text id data -lwz r3, 0x5C(REG_CHATMSG_MSG_TEXT_STRUCT_ADDR) -branchl r12, HSD_Free - -# remove text -mr r3, REG_CHATMSG_MSG_TEXT_STRUCT_ADDR -branchl r12, Text_RemoveText - -b CSS_ONLINE_CHAT_CHECK_EXIT - -CSS_ONLINE_CHAT_REMOVE_PROC: - -# destroy gobj -mr r3, REG_CHATMSG_GOBJ -branchl r12, GObj_Destroy - -# decrease local message count if this message is local -lwz r4, CSSDT_MSRB_ADDR(REG_CSSDT_ADDR) -lbz r4, MSRB_LOCAL_PLAYER_INDEX(r4) - -#logf LOG_LEVEL_INFO, "MSG LOCAL INDEX %d MSG INDEX %d", "mr r5, 4", "mr r6, 23" - -cmpw REG_CHATMSG_PLAYER_INDEX,r4 -bne SKIP_DECREASE_LOCAL_CHAT_MSG_COUNT -# Decrease local chat message count by 1 -lbz r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CSSDT_ADDR) # chat message index -subi r3, r3, 1 -stb r3, CSSDT_CHAT_LOCAL_MSG_COUNT(REG_CSSDT_ADDR) # store the new message count -#logf LOG_LEVEL_WARN, "local msg count: %d", "mr r5, r3" -SKIP_DECREASE_LOCAL_CHAT_MSG_COUNT: - -# Decrease chat message count by 1 -lbz r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) # chat message index -subi r3, r3, 1 -stb r3, CSSDT_CHAT_MSG_COUNT(REG_CSSDT_ADDR) # store the new message count -#logf LOG_LEVEL_WARN, "msg count: %d", "mr r5, r3" - -# If This is the last message being removed, reset the Last MSG Index to 0 -lbz r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # chat message index -mr r4, REG_CHATMSG_MSG_INDEX -addi r4, r4, 1 # compare with last index + 1 -cmpw r3, r4 -beq CSS_ONLINE_CHAT_RESET_MSG_INDEX -b CSS_ONLINE_CHAT_CHECK_EXIT - -CSS_ONLINE_CHAT_RESET_MSG_INDEX: -li r3, 0 -stb r3, CSSDT_LAST_CHAT_MSG_INDEX(REG_CSSDT_ADDR) # store the new message index - -CSS_ONLINE_CHAT_CHECK_EXIT: - - -restore BKP_DEFAULT_FREE_SPACE_SIZE, NUM_FREG, NUM_GPREG -blr - ################################################################################ # Update subtext function for use only by think function diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 378f7945..1f5c968f 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2340,14 +2340,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 000000B9 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E -2C030008 40820AFC +2C030008 4082057C 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2370,30 +2370,30 @@ BE8100B0 3C608048 2C030003 4081008C 2C030004 41820090 2C030005 418201E8 -48000A28 88780014 -2C030000 40820A1C -576004E7 41820A14 +480004A8 88780014 +2C030000 4082049C +576004E7 41820494 3C608048 80639D60 -2C030000 41820A04 +2C030000 41820484 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 2C030000 -418209E8 886DAFA0 +41820468 886DAFA0 2C030000 41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE -48000355 480009BC -4800037D 480009B4 +48000355 4800043C +4800037D 48000434 576006F7 408203B9 -480009A8 3D80801A +48000428 3D80801A 618C3680 7D8903A6 4E800421 548006F7 41820024 88780013 38630001 98780013 2C030030 40810014 9B980013 48000381 -48000970 9B980013 +480003F0 9B980013 887A0001 2C030000 408200EC 576004E7 4082002C 886DAFA0 @@ -2424,14 +2424,14 @@ BE8100B0 3C608048 98640018 38600001 986DB656 480000F5 7C6802A6 906DAFE8 -48000878 887A0001 +480002F8 887A0001 889A0002 7C632039 -41820868 BA8100B0 +418202E8 BA8100B0 800100E4 382100E0 7C0803A6 3D808026 618C3264 7D8903A6 4E800420 576006F7 -4082024D 4800083C +4082024D 480002BC 7C0802A6 90010004 9421FF20 BE8100B0 38600014 3D808037 @@ -2519,182 +2519,6 @@ BE8100B0 38600001 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -2C1B0200 40820008 -B3780015 2C1B0001 -4182001C 2C1B0002 -41820014 2C1B0008 -4182000C 2C1B0004 -4082001D B3780015 -88780014 2C030000 -4082000C 7F63DB78 -480000B9 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 38600002 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000BB -98790000 7DC37378 -98790001 7F23CB78 -38800002 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 386000B7 -3880007F 38A00040 -3D808002 618C37A8 -7D8903A6 4E800421 -7F63DB78 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 48000419 -7DE802A6 38600002 -3D808002 618C4030 -7D8903A6 4E800421 -7DC37378 98780014 -3860000B 3D808037 -618CF1E4 7D8903A6 -4E800421 7C771B78 -3880000B 3D808000 -618CC160 7D8903A6 -4E800421 7DC37378 -98770000 7F03C378 -90770007 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 80780004 -80630000 80630000 -3D808037 618C0E44 -7D8903A6 4E800421 -7C751B78 C02F0024 -888DAFE0 2C040000 -41820008 C02F0028 -C04F002C D0230038 -D043003C 7E83A378 -38800004 7EA5AB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00001 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -38800004 3CA08037 -60A5F1B0 7EE6BB78 -3D808039 618C0B68 -7D8903A6 4E800421 -7E83A378 48000031 -7C8802A6 38A00004 -3D808038 618CFD54 -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -7C6E1B78 7C0802A6 -90010004 9421FF08 -BDC100B0 820E002C -82EE0028 8A300000 -8A500002 82700003 -82B00007 A2D50015 -83550000 38600000 -B0750015 88700001 -2C030000 40820234 -2C130000 40820194 -38600090 7C721B78 -98700002 48000261 -7DE802A6 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C741B78 38600000 -38800000 3D80803A -618C6754 7D8903A6 -4E800421 7C731B78 -92700003 38600001 -38800000 C02F0000 -C04F0004 98730049 -9893004A D0330008 -D0530024 D0530028 -C04F0008 886DAFE0 -2C030000 41820008 -C04F000C 388F0034 -887A0000 2C030004 -41820008 388F0038 -7E639B78 38A00000 -38CF0030 38EF003C -39140004 C02F001C -C06F0018 3D808000 -618C56B4 7D8903A6 -4E800421 7C641B78 -7C8A2378 7C8B2378 -386B0002 C04F0020 -3D808000 618C55EC -7D8903A6 4E800421 -C06F0018 EC63082A -2C0B0000 4182001C -2C0B0001 4182002C -2C0B0002 4182001C -2C0B0003 4182000C -38800008 48000018 -38800004 48000010 -38800002 48000008 -38800001 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C872378 C04F0010 -886DAFE0 2C030000 -41820008 C04F0014 -7E639B78 388F0030 -38A00000 38CF0030 -C02F001C 3D808000 -618C56B4 7D8903A6 -4E800421 7C6B1B78 -386A0004 7C0B1800 -4082FF48 480000CC -88750018 2C030000 -41820010 88700002 -2C03008A 41810070 -2C160200 40820008 -48000078 2C160000 -4182005C 88750018 -2C030003 4080003C -88750017 2C030005 -40800030 38600000 -98700002 7E238B78 -7EC4B378 38A00004 -7C632830 7C632214 -4BFFFBB1 38600001 -98700001 4800005C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 2C120000 -41820010 3A52FFFF -9A500002 48000034 -38600000 98750014 -7DC37378 3D808039 -618C0228 7D8903A6 -4E800421 7E639B78 -3D80803A 618C5CC4 -7D8903A6 4E800421 -B9C100B0 800100FC -382100F8 7C0803A6 -4E800020 4E800021 -00000000 3DCCCCCD -C3960000 C3E20000 -C38E8000 C3DA8000 -429E0000 3EE66666 -41C80000 C1A00000 -C20C0000 C1840000 -FFFFFFFF FFEA2FFF -C9C387FF 43686174 -3A202573 00000000 BA8100B0 800100E4 382100E0 7C0803A6 3D808026 618C3334 @@ -2833,307 +2657,239 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001E0 #Online/Menus/CSS/LoadCSSText.asm +C2264534 0000014D #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820EE8 480001F8 +40820A4C 480001C4 4E800021 00000000 -3DCCCCCD 404CCCCD -413CCCCD 3F4CCCCD -C1600000 41C00000 -00000000 41F00000 -42480000 C2320000 -C1EC0000 C1BA0000 -40A00000 3D23D70A -428C0000 41B80000 -3F000000 42B40000 -42500000 42960000 -42C40000 42500000 -428C0000 42B00000 -42D40000 3ECCCCCD -43048000 43188000 -C3760000 C3020000 -C2480000 3EE66666 -33FF2FFF 3CBCFFFF -8E9196FF FFFFFFFF -FF0000FF 00556E72 -616E6B65 64004469 -72656374 0052616E -6B656400 5465616D -73002573 204D6F64 -65005365 6C656374 -20796F75 72206368 -61726163 74657200 -43686172 61637465 -72207365 6C656374 -65640050 72657373 -20535441 52542074 -6F202573 006C6F63 -6B20696E 00656E74 -65722063 6F646500 -73656172 63680073 -656C6563 74207374 -61676500 4C6F636B -65642069 6E005365 -61726368 696E6720 -666F7220 25730043 -6F6E6E65 6374696E -6720746F 20257300 -57616974 696E6720 -6F6E2025 73006F70 -706F6E65 6E74002D +3DCCCCCD 428C0000 +41B80000 3F000000 +42B40000 42500000 +42960000 42C40000 +42500000 428C0000 +42B00000 42D40000 +3ECCCCCD 43048000 +43188000 C3760000 +C3020000 C2480000 +3EE66666 33FF2FFF +3CBCFFFF 8E9196FF +FFFFFFFF FF0000FF +00556E72 616E6B65 +64004469 72656374 +0052616E 6B656400 +5465616D 73002573 +204D6F64 65005365 +6C656374 20796F75 +72206368 61726163 +74657200 43686172 +61637465 72207365 +6C656374 65640050 +72657373 20535441 +52542074 6F202573 +006C6F63 6B20696E +00656E74 65722063 +6F646500 73656172 +63680073 656C6563 +74207374 61676500 +4C6F636B 65642069 +6E005365 61726368 +696E6720 666F7220 +25730043 6F6E6E65 +6374696E 6720746F +20257300 57616974 +696E6720 6F6E2025 +73006F70 706F6E65 +6E74002D 2D2F2F2D 2D2F2F2D 2D2F2F2D -2D2F2F2D 2D2F2F30 -30004572 726F7200 -506C6179 696E673A -00557365 20442D50 -61642074 6F204368 -61740050 72657373 -205A2074 6F202573 -00486F6C 64205A20 -746F2025 73006469 -73636F6E 6E656374 -0063616E 63656C00 -636C6561 72206572 -726F7200 817B0081 -7E00817C 00000000 -4E800021 C2E00000 -41A00000 00000000 -3DCCCCCD 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFDFD -7FA802A6 3C60804D -606350D8 3C800200 -60840801 90830000 -888DAFA0 2C040002 -38800001 41800008 -38800002 4BFFFFAD -7C6802A6 3D808000 -618C5618 7D8903A6 -4E800421 38A00000 -4E800021 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C791B78 38600004 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C781B78 38790000 -38800004 3CA08037 -60A5F1B0 38D80000 -3D808039 618C0B68 +2D2F2F30 30004572 +726F7200 506C6179 +696E673A 00557365 +20442D50 61642074 +6F204368 61740050 +72657373 205A2074 +6F202573 00486F6C +64205A20 746F2025 +73006469 73636F6E +6E656374 0063616E +63656C00 636C6561 +72206572 726F7200 +817B0081 7E00817C +00000000 4E800021 +C2E00000 41A00000 +00000000 3DCCCCCD +7C0802A6 90010004 +9421FF20 BE8100B0 +4BFFFE31 7FA802A6 +3C60804D 606350D8 +3C800200 60840801 +90830000 888DAFA0 +2C040002 38800001 +41800008 38800002 +4BFFFFAD 7C6802A6 +3D808000 618C5618 7D8903A6 4E800421 -38790000 48000261 -7C8802A6 38A00004 -3D808038 618CFD54 +38A00000 4E800021 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C791B78 +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C781B78 +38790000 38800004 +3CA08037 60A5F1B0 +38D80000 3D808039 +618C0B68 7D8903A6 +4E800421 38790000 +48000261 7C8802A6 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 3FE08000 +63FF5614 83FF0000 +38600000 38800000 +3D80803A 618C6754 7D8903A6 4E800421 -3FE08000 63FF5614 -83FF0000 38600000 -38800000 3D80803A -618C6754 7D8903A6 -4E800421 7C7C1B78 -939F0008 38800001 -989C0049 38800000 -989C004A C03D0000 -D03C0008 C03D0004 -D03C0024 D03C0028 -7F83E378 389D0090 -38A00000 C03D0044 -C05D003C C07D0040 -38FD0098 3D808000 -618C56B4 7D8903A6 -4E800421 C07D004C -480000F9 C07D0050 -480000F1 C07D0054 -480000E9 7F83E378 -389D008C 38A00000 -C03D0068 C05D003C -C07D006C 38FD0098 +7C7C1B78 939F0008 +38800001 989C0049 +38800000 989C004A +C03D0000 D03C0008 +C03D0004 D03C0024 +D03C0028 7F83E378 +389D005C 38A00000 +C03D0010 C05D0008 +C07D000C 38FD0064 3D808000 618C56B4 7D8903A6 4E800421 -7F83E378 389D008C -38A00000 C03D0068 -C05D003C C07D0070 -38FD0098 3D808000 +C07D0018 480000F9 +C07D001C 480000F1 +C07D0020 480000E9 +7F83E378 389D0058 +38A00000 C03D0034 +C05D0008 C07D0038 +38FD0064 3D808000 618C56B4 7D8903A6 4E800421 7F83E378 -389D008C 38A00000 -C03D0044 C05D0078 -C07D0074 38FD0098 +389D0058 38A00000 +C03D0034 C05D0008 +C07D003C 38FD0064 3D808000 618C56B4 7D8903A6 4E800421 -7F83E378 389D0090 -38A00000 C03D0044 -C05D007C C07D0074 -38FD0098 3D808000 -618C56B4 7D8903A6 -4E800421 C07D0058 -480000AD C07D005C -480000A5 C07D0060 -4800009D C07D0064 -48000095 BA8100B0 -800100E4 382100E0 -7C0803A6 48000A9C -7C0802A6 90010004 -9421FF20 BE8100B0 -D0610008 7F83E378 -389D0090 38A00000 -C03D0068 C05D0048 -38FD0098 3D808000 +7F83E378 389D0058 +38A00000 C03D0010 +C05D0044 C07D0040 +38FD0064 3D808000 618C56B4 7D8903A6 4E800421 7F83E378 -389D0090 38A00000 -C03D0080 C05D003C -C0610008 38FD0098 +389D005C 38A00000 +C03D0010 C05D0048 +C07D0040 38FD0064 3D808000 618C56B4 7D8903A6 4E800421 +C07D0024 480000AD +C07D0028 480000A5 +C07D002C 4800009D +C07D0030 48000095 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 7C0802A6 +48000634 7C0802A6 90010004 9421FF20 -BE8100B0 7F83E378 -389D0094 38A00000 -C03D0068 C05D003C -38FD0098 3D808000 +BE8100B0 D0610008 +7F83E378 389D005C +38A00000 C03D0034 +C05D0014 38FD0064 +3D808000 618C56B4 +7D8903A6 4E800421 +7F83E378 389D005C +38A00000 C03D004C +C05D0008 C0610008 +38FD0064 3D808000 618C56B4 7D8903A6 -4E800421 7C7B1B78 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -8363002C 4BFFFAD5 -7FA802A6 3F808000 -639C5614 839C0000 -83DC0000 835C0008 -38FD0163 3CC0804A -60C60740 38800000 -38A00000 7C66222E -7C672B2E 38840003 -38A50002 2C050012 -4180FFEC 806DB620 -38810080 38A00024 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -3D808036 618CF644 +7F83E378 389D0060 +38A00000 C03D0034 +C05D0008 38FD0064 +3D808000 618C56B4 +7D8903A6 4E800421 +7C7B1B78 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 8363002C +4BFFFB09 7FA802A6 +3F808000 639C5614 +839C0000 83DC0000 +835C0008 38FD012F +3CC0804A 60C60740 +38800000 38A00000 +7C66222E 7C672B2E +38840003 38A50002 +2C050012 4180FFEC +806DB620 38810080 +38A00024 38C0FFFF +3D808001 618C1E24 7D8903A6 4E800421 -80610080 38800000 -80BC0004 80A50008 -38C00000 3D808036 -618CFA10 7D8903A6 -4E800421 C022AEC4 -886DAFA0 2C030003 -40820008 C022AEC8 80610080 3D808036 -618CF934 7D8903A6 +618CF644 7D8903A6 4E800421 80610080 -3D808037 618C0780 -7D8903A6 4E800421 -38800000 38BD00B6 -887E0000 2C030004 -4181004C 886DAFA0 -2C030001 41820020 -2C030002 41820020 -2C030000 41820020 -2C030003 41820020 -48000024 38DD0099 -48000020 38DD00A2 -48000018 38DD00A9 -48000010 38DD00B0 -48000008 38BD0176 -48000841 480001EC -887E000A 2C030000 -4182001C 3B1E0015 -7C791B78 887C0018 -38630001 987C0018 -48000014 887E000B -2C030000 418201BC -7C791B78 887C0019 -2C030009 40810010 -38600000 987C0019 -418201A0 386000B7 -3880007F 38A00040 -3D808002 618C37A8 -7D8903A6 4E800421 -887C0017 38630001 -987C0017 3860000D -3D808037 618CF1E4 -7D8903A6 4E800421 -7C771B78 3880001C -3D808000 618CC160 -7D8903A6 4E800421 -38600014 38800000 -98770000 98970001 -7F23CB78 98770002 -887C0019 98770003 -38630001 987C0019 -887E000C 98770008 -7F83E378 90770009 -38600004 38800005 -38A00080 3D808039 -618C01F0 7D8903A6 -4E800421 7C761B78 -807C0004 80630004 -80630000 3D808037 -618C0E44 7D8903A6 -4E800421 7C651B78 -7EC3B378 888DC1A9 -3D808039 618C0A70 -7D8903A6 4E800421 -7EC3B378 3C808039 -60841070 38A00003 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 80760028 -809C0004 80840004 -38A00000 3D808016 -618C895C 7D8903A6 -4E800421 80760028 -C022AE28 3D808036 -618CF8BC 7D8903A6 -4E800421 886DAFE0 -2C030000 41820010 -C03D0014 80760028 -D0230038 7EC3B378 -38800004 3CA08037 -60A5F1B0 7EE6BB78 -3D808039 618C0B68 -7D8903A6 4E800421 -7EC3B378 480003F1 -7C8802A6 38A00004 -3D808038 618CFD54 -7D8903A6 4E800421 +38800000 80BC0004 +80A50008 38C00000 +3D808036 618CFA10 +7D8903A6 4E800421 +C022AEC4 886DAFA0 +2C030003 40820008 +C022AEC8 80610080 +3D808036 618CF934 +7D8903A6 4E800421 +80610080 3D808037 +618C0780 7D8903A6 +4E800421 38800000 +38BD0082 887E0000 +2C030004 4181004C +886DAFA0 2C030001 +41820020 2C030002 +41820020 2C030000 +41820020 2C030003 +41820020 48000024 +38DD0065 48000020 +38DD006E 48000018 +38DD0075 48000010 +38DD007C 48000008 +38BD0142 480003D9 887E0000 2C030004 -4182000C 38BD0098 -48000008 38BD017C -38800009 48000635 +4182000C 38BD0064 +48000008 38BD0148 +38800009 480003B9 887E0000 2C030004 -4182000C 38BD0098 +4182000C 38BD0064 48000008 38BE00B0 -3880000A 48000615 +3880000A 48000399 887E0000 2C030004 -4182000C 38BD0098 -48000008 38BD0185 -38800008 480005F5 +4182000C 38BD0064 +48000008 38BD0151 +38800008 48000379 887E0000 2C030004 41820034 2C030005 41820020 2C030000 -4181000C 38BD0098 -48000024 38BD0197 -38DD01BD 48000018 -38BD0197 38DD01C4 -4800000C 38BD01A5 -38DD01B2 38800007 -480005A9 3B600001 -7F64DB78 38BD0098 -48000599 3B7B0002 +4181000C 38BD0064 +48000024 38BD0163 +38DD0189 48000018 +38BD0163 38DD0190 +4800000C 38BD0171 +38DD017E 38800007 +4800032D 3B600001 +7F64DB78 38BD0064 +4800031D 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 -38BD0098 48000565 +38BD0064 480002E9 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 @@ -3149,7 +2905,7 @@ D0230038 7EC3B378 2C18001E 41810008 4800002C 38800000 7C96B9AE 7F64DB78 -7EC5B378 480004E5 +7EC5B378 48000269 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 @@ -3160,10 +2916,10 @@ D0230038 7EC3B378 4800015C 3B600001 886DB657 7F64DB78 2C030000 40820018 -38BD00BE 4800048D +38BD008A 48000211 38600001 987C000C -48000134 38BD00D4 -48000479 3B7B0002 +48000134 38BD00A0 +480001FD 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 40820080 @@ -3173,52 +2929,52 @@ D0230038 7EC3B378 886DAFC9 2C030000 4082001C 886DAFCA 2C030000 40820010 -38BD00E7 38DD0113 -48000034 38BD00E7 -38DD00F9 887E0000 +38BD00B3 38DD00DF +48000034 38BD00B3 +38DD00C5 887E0000 2C030004 41820020 -38BD00E7 38DD010C +38BD00B3 38DD00D8 886DAFA0 2C030002 -4180000C 38BD00E7 -38DD0101 480003ED +4180000C 38BD00B3 +38DD00CD 48000171 38600001 987C000D -48000094 38BD0120 -480003D9 3B7B0002 +48000094 38BD00EC +4800015D 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 4182005C 2C030003 4182002C -38BD012A 38DD015A +38BD00F6 38DD0126 896DAFA0 2C0B0001 41820048 2C0B0000 -41820040 38BD012A -38DD0163 48000034 -38BD013B 38DD015A +41820040 38BD00F6 +38DD012F 48000034 +38BD0107 38DD0126 896DAFA0 2C0B0001 41820020 2C0B0000 -41820018 38BD013B -38DD0163 4800000C -38BD014C 38DD015A -48000359 38600001 +41820018 38BD0107 +38DD012F 4800000C +38BD0118 38DD0126 +480000DD 38600001 987C000E 3B20000C 3B600002 7C7CC8AE 2C030001 40820044 A07C000F 3880000F 7C632396 1C630003 -386301D0 7CBD1A14 -7F64DB78 4800031D +3863019C 7CBD1A14 +7F64DB78 480000A1 7F43D378 7F64DB78 -38BD0088 3D80803A +38BD0054 3D80803A 618C74F0 7D8903A6 4E800421 48000044 2C030002 40820030 -7F64DB78 38BD01D6 -480002E9 7F43D378 -7F64DB78 38BD0084 +7F64DB78 38BD01A2 +4800006D 7F43D378 +7F64DB78 38BD0050 3D80803A 618C74F0 7D8903A6 4E800421 48000010 7F64DB78 -38BD0098 480002BD +38BD0064 48000041 3B7B0002 3B390001 2C19000E 4081FF68 A07C000F 38630001 @@ -3226,94 +2982,15 @@ A07C000F 38630001 38600000 B07C000F BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FEF8 BDC100B0 -DBE100F8 DBC10100 -7C6E1B78 4BFFF3B5 -7FA802A6 820E002C -8A300000 8A500001 -8A700002 8A900003 -82B00004 8AF00008 -83900009 81EE0028 -81EF0010 7DE37B78 -3D808037 618C0928 -7D8903A6 4E800421 -2C150000 408200CC -7E83A378 3D808000 -618C55F4 7D8903A6 -4E800421 C05D0018 -C07D0008 EC6100F2 -EC421828 D04F003C -2C120000 4182009C -3A2000AA 9A300000 -3A400001 9A500001 -7C962378 7E83A378 -3D808000 618C55F4 -7D8903A6 4E800421 -C05D0030 C07D0008 -EC6100F2 EC42182A -FFC01090 806DC2DC -38800003 9883000E -C03D002C 886DAFE0 -2C030000 41820008 -C03D0028 38770001 -7E649B78 38A00002 -38C00000 C07D0034 -C09D0038 3D808000 -618C56B4 7D8903A6 -4E800421 90700004 -806DC2DC 38800001 -9883000E 48000004 -887C0017 2C03000D -41800028 887C0019 -7C03A000 4080000C -2C140009 408100B4 -887C0019 7C741850 -2C03000D 418100A4 -2C110000 4082001C -2C120000 4182FF2C -2C120001 41820018 -2C120002 41820084 -3A31FFFF 9A300000 -480000D4 3A400002 -9A500001 3A200014 -9A300000 806E0028 -809C0004 80840004 -38A00001 3D808016 -618C895C 7D8903A6 -4E800421 806E0028 -C022AE28 3D808036 -618CF8BC 7D8903A6 -4E800421 8075005C -3D808037 618CF1B0 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 7F43D378 +3D80803A 618C70A0 7D8903A6 4E800421 -7EA3AB78 3D80803A -618C5CC4 7D8903A6 -4E800421 48000060 -7DC37378 3D808039 -618C0228 7D8903A6 -4E800421 809C0000 -88840003 7C172000 -40820010 887C0018 -3863FFFF 987C0018 -887C0017 3863FFFF -987C0017 887C0019 -7E84A378 38840001 -7C032000 41820008 -4800000C 38600000 -987C0019 B9C100B0 -CBE100F8 CBC10100 -8001010C 38210108 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -7F43D378 3D80803A -618C70A0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -80CDB638 00000000 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 80CDB638 +60000000 00000000 C2262004 0000000B #Online/Menus/CSS/PreventAPressCharUnselect.asm 3C608048 80639D30 5463443E 2C030008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a7d469b4..89321102 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2340,14 +2340,14 @@ C2260310 00000008 #Online/Menus/CSS/FetchMatchInfo.asm 618C5610 7D8903A6 4E800421 38000000 60000000 00000000 -C2263258 00000169 #Online/Menus/CSS/HandleInputsOnCSS.asm +C2263258 000000B9 #Online/Menus/CSS/HandleInputsOnCSS.asm 41A20014 3D808026 618C3334 7D8903A6 4E800420 7C0802A6 90010004 9421FF20 BE8100B0 3C608048 80639D30 5463443E -2C030008 40820AFC +2C030008 4082057C 7CFB3B78 3F008000 63185614 83180000 83580000 3B800000 @@ -2370,30 +2370,30 @@ BE8100B0 3C608048 2C030003 4081008C 2C030004 41820090 2C030005 418201E8 -48000A28 88780014 -2C030000 40820A1C -576004E7 41820A14 +480004A8 88780014 +2C030000 4082049C +576004E7 41820494 3C608048 80639D60 -2C030000 41820A04 +2C030000 41820484 3860FFFF 986DAFC9 38600000 986DAFCA 886DB657 2C030000 -418209E8 886DAFA0 +41820468 886DAFA0 2C030000 41820018 2C030001 41820010 2C030002 40800014 48000000 3860FFFE -48000355 480009BC -4800037D 480009B4 +48000355 4800043C +4800037D 48000434 576006F7 408203B9 -480009A8 3D80801A +48000428 3D80801A 618C3680 7D8903A6 4E800421 548006F7 41820024 88780013 38630001 98780013 2C030030 40810014 9B980013 48000381 -48000970 9B980013 +480003F0 9B980013 887A0001 2C030000 408200EC 576004E7 4082002C 886DAFA0 @@ -2424,14 +2424,14 @@ BE8100B0 3C608048 98640018 38600001 986DB656 480000F5 7C6802A6 906DAFE8 -48000878 887A0001 +480002F8 887A0001 889A0002 7C632039 -41820868 BA8100B0 +418202E8 BA8100B0 800100E4 382100E0 7C0803A6 3D808026 618C3264 7D8903A6 4E800420 576006F7 -4082024D 4800083C +4082024D 480002BC 7C0802A6 90010004 9421FF20 BE8100B0 38600014 3D808037 @@ -2519,182 +2519,6 @@ BE8100B0 38600001 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -2C1B0200 40820008 -B3780015 2C1B0001 -4182001C 2C1B0002 -41820014 2C1B0008 -4182000C 2C1B0004 -4082001D B3780015 -88780014 2C030000 -4082000C 7F63DB78 -480000B9 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 38600002 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C791B78 386000BB -98790000 7DC37378 -98790001 7F23CB78 -38800002 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -7F23CB78 3D808037 -618CF1B0 7D8903A6 -4E800421 386000B7 -3880007F 38A00040 -3D808002 618C37A8 -7D8903A6 4E800421 -7F63DB78 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C6E1B78 7C0802A6 -90010004 9421FF20 -BE8100B0 48000419 -7DE802A6 38600002 -3D808002 618C4030 -7D8903A6 4E800421 -7DC37378 98780014 -3860000B 3D808037 -618CF1E4 7D8903A6 -4E800421 7C771B78 -3880000B 3D808000 -618CC160 7D8903A6 -4E800421 7DC37378 -98770000 7F03C378 -90770007 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C741B78 80780004 -80630000 80630000 -3D808037 618C0E44 -7D8903A6 4E800421 -7C751B78 C02F0024 -888DAFE0 2C040000 -41820008 C02F0028 -C04F002C D0230038 -D043003C 7E83A378 -38800004 7EA5AB78 -3D808039 618C0A70 -7D8903A6 4E800421 -7E83A378 3C808039 -60841070 38A00001 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 7E83A378 -38800004 3CA08037 -60A5F1B0 7EE6BB78 -3D808039 618C0B68 -7D8903A6 4E800421 -7E83A378 48000031 -7C8802A6 38A00004 -3D808038 618CFD54 -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -7C6E1B78 7C0802A6 -90010004 9421FF08 -BDC100B0 820E002C -82EE0028 8A300000 -8A500002 82700003 -82B00007 A2D50015 -83550000 38600000 -B0750015 88700001 -2C030000 40820234 -2C130000 40820194 -38600090 7C721B78 -98700002 48000261 -7DE802A6 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C741B78 38600000 -38800000 3D80803A -618C6754 7D8903A6 -4E800421 7C731B78 -92700003 38600001 -38800000 C02F0000 -C04F0004 98730049 -9893004A D0330008 -D0530024 D0530028 -C04F0008 886DAFE0 -2C030000 41820008 -C04F000C 388F0034 -887A0000 2C030004 -41820008 388F0038 -7E639B78 38A00000 -38CF0030 38EF003C -39140004 C02F001C -C06F0018 3D808000 -618C56B4 7D8903A6 -4E800421 7C641B78 -7C8A2378 7C8B2378 -386B0002 C04F0020 -3D808000 618C55EC -7D8903A6 4E800421 -C06F0018 EC63082A -2C0B0000 4182001C -2C0B0001 4182002C -2C0B0002 4182001C -2C0B0003 4182000C -38800008 48000018 -38800004 48000010 -38800002 48000008 -38800001 7E238B78 -3D808000 618C56AC -7D8903A6 4E800421 -7C872378 C04F0010 -886DAFE0 2C030000 -41820008 C04F0014 -7E639B78 388F0030 -38A00000 38CF0030 -C02F001C 3D808000 -618C56B4 7D8903A6 -4E800421 7C6B1B78 -386A0004 7C0B1800 -4082FF48 480000CC -88750018 2C030000 -41820010 88700002 -2C03008A 41810070 -2C160200 40820008 -48000078 2C160000 -4182005C 88750018 -2C030003 4080003C -88750017 2C030005 -40800030 38600000 -98700002 7E238B78 -7EC4B378 38A00004 -7C632830 7C632214 -4BFFFBB1 38600001 -98700001 4800005C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 2C120000 -41820010 3A52FFFF -9A500002 48000034 -38600000 98750014 -7DC37378 3D808039 -618C0228 7D8903A6 -4E800421 7E639B78 -3D80803A 618C5CC4 -7D8903A6 4E800421 -B9C100B0 800100FC -382100F8 7C0803A6 -4E800020 4E800021 -00000000 3DCCCCCD -C3960000 C3E20000 -C38E8000 C3DA8000 -429E0000 3EE66666 -41C80000 C1A00000 -C20C0000 C1840000 -FFFFFFFF FFEA2FFF -C9C387FF 43686174 -3A202573 00000000 BA8100B0 800100E4 382100E0 7C0803A6 3D808026 618C3334 @@ -2833,307 +2657,239 @@ C05F0040 FC011040 7C0803A6 4E800020 38600000 38980000 60000000 00000000 -C2264534 000001E0 #Online/Menus/CSS/LoadCSSText.asm +C2264534 0000014D #Online/Menus/CSS/LoadCSSText.asm 3C608048 80639D30 5463443E 2C030008 -40820EE8 480001F8 +40820A4C 480001C4 4E800021 00000000 -3DCCCCCD 404CCCCD -413CCCCD 3F4CCCCD -C1600000 41C00000 -00000000 41F00000 -42480000 C2320000 -C1EC0000 C1BA0000 -40A00000 3D23D70A -428C0000 41B80000 -3F000000 42B40000 -42500000 42960000 -42C40000 42500000 -428C0000 42B00000 -42D40000 3ECCCCCD -43048000 43188000 -C3760000 C3020000 -C2480000 3EE66666 -33FF2FFF 3CBCFFFF -8E9196FF FFFFFFFF -FF0000FF 00556E72 -616E6B65 64004469 -72656374 0052616E -6B656400 5465616D -73002573 204D6F64 -65005365 6C656374 -20796F75 72206368 -61726163 74657200 -43686172 61637465 -72207365 6C656374 -65640050 72657373 -20535441 52542074 -6F202573 006C6F63 -6B20696E 00656E74 -65722063 6F646500 -73656172 63680073 -656C6563 74207374 -61676500 4C6F636B -65642069 6E005365 -61726368 696E6720 -666F7220 25730043 -6F6E6E65 6374696E -6720746F 20257300 -57616974 696E6720 -6F6E2025 73006F70 -706F6E65 6E74002D +3DCCCCCD 428C0000 +41B80000 3F000000 +42B40000 42500000 +42960000 42C40000 +42500000 428C0000 +42B00000 42D40000 +3ECCCCCD 43048000 +43188000 C3760000 +C3020000 C2480000 +3EE66666 33FF2FFF +3CBCFFFF 8E9196FF +FFFFFFFF FF0000FF +00556E72 616E6B65 +64004469 72656374 +0052616E 6B656400 +5465616D 73002573 +204D6F64 65005365 +6C656374 20796F75 +72206368 61726163 +74657200 43686172 +61637465 72207365 +6C656374 65640050 +72657373 20535441 +52542074 6F202573 +006C6F63 6B20696E +00656E74 65722063 +6F646500 73656172 +63680073 656C6563 +74207374 61676500 +4C6F636B 65642069 +6E005365 61726368 +696E6720 666F7220 +25730043 6F6E6E65 +6374696E 6720746F +20257300 57616974 +696E6720 6F6E2025 +73006F70 706F6E65 +6E74002D 2D2F2F2D 2D2F2F2D 2D2F2F2D -2D2F2F2D 2D2F2F30 -30004572 726F7200 -506C6179 696E673A -00557365 20442D50 -61642074 6F204368 -61740050 72657373 -205A2074 6F202573 -00486F6C 64205A20 -746F2025 73006469 -73636F6E 6E656374 -0063616E 63656C00 -636C6561 72206572 -726F7200 817B0081 -7E00817C 00000000 -4E800021 C2E00000 -41A00000 00000000 -3DCCCCCD 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFDFD -7FA802A6 3C60804D -606350D8 3C800200 -60840801 90830000 -888DAFA0 2C040002 -38800001 41800008 -38800002 4BFFFFAD -7C6802A6 3D808000 -618C5618 7D8903A6 -4E800421 38A00000 -4E800021 38600004 -38800005 38A00080 -3D808039 618C01F0 -7D8903A6 4E800421 -7C791B78 38600004 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C781B78 38790000 -38800004 3CA08037 -60A5F1B0 38D80000 -3D808039 618C0B68 +2D2F2F30 30004572 +726F7200 506C6179 +696E673A 00557365 +20442D50 61642074 +6F204368 61740050 +72657373 205A2074 +6F202573 00486F6C +64205A20 746F2025 +73006469 73636F6E +6E656374 0063616E +63656C00 636C6561 +72206572 726F7200 +817B0081 7E00817C +00000000 4E800021 +C2E00000 41A00000 +00000000 3DCCCCCD +7C0802A6 90010004 +9421FF20 BE8100B0 +4BFFFE31 7FA802A6 +3C60804D 606350D8 +3C800200 60840801 +90830000 888DAFA0 +2C040002 38800001 +41800008 38800002 +4BFFFFAD 7C6802A6 +3D808000 618C5618 7D8903A6 4E800421 -38790000 48000261 -7C8802A6 38A00004 -3D808038 618CFD54 +38A00000 4E800021 +38600004 38800005 +38A00080 3D808039 +618C01F0 7D8903A6 +4E800421 7C791B78 +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C781B78 +38790000 38800004 +3CA08037 60A5F1B0 +38D80000 3D808039 +618C0B68 7D8903A6 +4E800421 38790000 +48000261 7C8802A6 +38A00004 3D808038 +618CFD54 7D8903A6 +4E800421 3FE08000 +63FF5614 83FF0000 +38600000 38800000 +3D80803A 618C6754 7D8903A6 4E800421 -3FE08000 63FF5614 -83FF0000 38600000 -38800000 3D80803A -618C6754 7D8903A6 -4E800421 7C7C1B78 -939F0008 38800001 -989C0049 38800000 -989C004A C03D0000 -D03C0008 C03D0004 -D03C0024 D03C0028 -7F83E378 389D0090 -38A00000 C03D0044 -C05D003C C07D0040 -38FD0098 3D808000 -618C56B4 7D8903A6 -4E800421 C07D004C -480000F9 C07D0050 -480000F1 C07D0054 -480000E9 7F83E378 -389D008C 38A00000 -C03D0068 C05D003C -C07D006C 38FD0098 +7C7C1B78 939F0008 +38800001 989C0049 +38800000 989C004A +C03D0000 D03C0008 +C03D0004 D03C0024 +D03C0028 7F83E378 +389D005C 38A00000 +C03D0010 C05D0008 +C07D000C 38FD0064 3D808000 618C56B4 7D8903A6 4E800421 -7F83E378 389D008C -38A00000 C03D0068 -C05D003C C07D0070 -38FD0098 3D808000 +C07D0018 480000F9 +C07D001C 480000F1 +C07D0020 480000E9 +7F83E378 389D0058 +38A00000 C03D0034 +C05D0008 C07D0038 +38FD0064 3D808000 618C56B4 7D8903A6 4E800421 7F83E378 -389D008C 38A00000 -C03D0044 C05D0078 -C07D0074 38FD0098 +389D0058 38A00000 +C03D0034 C05D0008 +C07D003C 38FD0064 3D808000 618C56B4 7D8903A6 4E800421 -7F83E378 389D0090 -38A00000 C03D0044 -C05D007C C07D0074 -38FD0098 3D808000 -618C56B4 7D8903A6 -4E800421 C07D0058 -480000AD C07D005C -480000A5 C07D0060 -4800009D C07D0064 -48000095 BA8100B0 -800100E4 382100E0 -7C0803A6 48000A9C -7C0802A6 90010004 -9421FF20 BE8100B0 -D0610008 7F83E378 -389D0090 38A00000 -C03D0068 C05D0048 -38FD0098 3D808000 +7F83E378 389D0058 +38A00000 C03D0010 +C05D0044 C07D0040 +38FD0064 3D808000 618C56B4 7D8903A6 4E800421 7F83E378 -389D0090 38A00000 -C03D0080 C05D003C -C0610008 38FD0098 +389D005C 38A00000 +C03D0010 C05D0048 +C07D0040 38FD0064 3D808000 618C56B4 7D8903A6 4E800421 +C07D0024 480000AD +C07D0028 480000A5 +C07D002C 4800009D +C07D0030 48000095 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 7C0802A6 +48000634 7C0802A6 90010004 9421FF20 -BE8100B0 7F83E378 -389D0094 38A00000 -C03D0068 C05D003C -38FD0098 3D808000 +BE8100B0 D0610008 +7F83E378 389D005C +38A00000 C03D0034 +C05D0014 38FD0064 +3D808000 618C56B4 +7D8903A6 4E800421 +7F83E378 389D005C +38A00000 C03D004C +C05D0008 C0610008 +38FD0064 3D808000 618C56B4 7D8903A6 -4E800421 7C7B1B78 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -8363002C 4BFFFAD5 -7FA802A6 3F808000 -639C5614 839C0000 -83DC0000 835C0008 -38FD0163 3CC0804A -60C60740 38800000 -38A00000 7C66222E -7C672B2E 38840003 -38A50002 2C050012 -4180FFEC 806DB620 -38810080 38A00024 -38C0FFFF 3D808001 -618C1E24 7D8903A6 -4E800421 80610080 -3D808036 618CF644 +7F83E378 389D0060 +38A00000 C03D0034 +C05D0008 38FD0064 +3D808000 618C56B4 +7D8903A6 4E800421 +7C7B1B78 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 8363002C +4BFFFB09 7FA802A6 +3F808000 639C5614 +839C0000 83DC0000 +835C0008 38FD012F +3CC0804A 60C60740 +38800000 38A00000 +7C66222E 7C672B2E +38840003 38A50002 +2C050012 4180FFEC +806DB620 38810080 +38A00024 38C0FFFF +3D808001 618C1E24 7D8903A6 4E800421 -80610080 38800000 -80BC0004 80A50008 -38C00000 3D808036 -618CFA10 7D8903A6 -4E800421 C022AEC4 -886DAFA0 2C030003 -40820008 C022AEC8 80610080 3D808036 -618CF934 7D8903A6 +618CF644 7D8903A6 4E800421 80610080 -3D808037 618C0780 -7D8903A6 4E800421 -38800000 38BD00B6 -887E0000 2C030004 -4181004C 886DAFA0 -2C030001 41820020 -2C030002 41820020 -2C030000 41820020 -2C030003 41820020 -48000024 38DD0099 -48000020 38DD00A2 -48000018 38DD00A9 -48000010 38DD00B0 -48000008 38BD0176 -48000841 480001EC -887E000A 2C030000 -4182001C 3B1E0015 -7C791B78 887C0018 -38630001 987C0018 -48000014 887E000B -2C030000 418201BC -7C791B78 887C0019 -2C030009 40810010 -38600000 987C0019 -418201A0 386000B7 -3880007F 38A00040 -3D808002 618C37A8 -7D8903A6 4E800421 -887C0017 38630001 -987C0017 3860000D -3D808037 618CF1E4 -7D8903A6 4E800421 -7C771B78 3880001C -3D808000 618CC160 -7D8903A6 4E800421 -38600014 38800000 -98770000 98970001 -7F23CB78 98770002 -887C0019 98770003 -38630001 987C0019 -887E000C 98770008 -7F83E378 90770009 -38600004 38800005 -38A00080 3D808039 -618C01F0 7D8903A6 -4E800421 7C761B78 -807C0004 80630004 -80630000 3D808037 -618C0E44 7D8903A6 -4E800421 7C651B78 -7EC3B378 888DC1A9 -3D808039 618C0A70 -7D8903A6 4E800421 -7EC3B378 3C808039 -60841070 38A00003 -38C00080 3D808039 -618C069C 7D8903A6 -4E800421 80760028 -809C0004 80840004 -38A00000 3D808016 -618C895C 7D8903A6 -4E800421 80760028 -C022AE28 3D808036 -618CF8BC 7D8903A6 -4E800421 886DAFE0 -2C030000 41820010 -C03D0014 80760028 -D0230038 7EC3B378 -38800004 3CA08037 -60A5F1B0 7EE6BB78 -3D808039 618C0B68 -7D8903A6 4E800421 -7EC3B378 480003F1 -7C8802A6 38A00004 -3D808038 618CFD54 -7D8903A6 4E800421 +38800000 80BC0004 +80A50008 38C00000 +3D808036 618CFA10 +7D8903A6 4E800421 +C022AEC4 886DAFA0 +2C030003 40820008 +C022AEC8 80610080 +3D808036 618CF934 +7D8903A6 4E800421 +80610080 3D808037 +618C0780 7D8903A6 +4E800421 38800000 +38BD0082 887E0000 +2C030004 4181004C +886DAFA0 2C030001 +41820020 2C030002 +41820020 2C030000 +41820020 2C030003 +41820020 48000024 +38DD0065 48000020 +38DD006E 48000018 +38DD0075 48000010 +38DD007C 48000008 +38BD0142 480003D9 887E0000 2C030004 -4182000C 38BD0098 -48000008 38BD017C -38800009 48000635 +4182000C 38BD0064 +48000008 38BD0148 +38800009 480003B9 887E0000 2C030004 -4182000C 38BD0098 +4182000C 38BD0064 48000008 38BE00B0 -3880000A 48000615 +3880000A 48000399 887E0000 2C030004 -4182000C 38BD0098 -48000008 38BD0185 -38800008 480005F5 +4182000C 38BD0064 +48000008 38BD0151 +38800008 48000379 887E0000 2C030004 41820034 2C030005 41820020 2C030000 -4181000C 38BD0098 -48000024 38BD0197 -38DD01BD 48000018 -38BD0197 38DD01C4 -4800000C 38BD01A5 -38DD01B2 38800007 -480005A9 3B600001 -7F64DB78 38BD0098 -48000599 3B7B0002 +4181000C 38BD0064 +48000024 38BD0163 +38DD0189 48000018 +38BD0163 38DD0190 +4800000C 38BD0171 +38DD017E 38800007 +4800032D 3B600001 +7F64DB78 38BD0064 +4800031D 3B7B0002 2C1B0005 4081FFEC 3880000C 38600000 7C7C21AE 38840001 2C04000E 4081FFF4 3B60000B 7F64DB78 -38BD0098 48000565 +38BD0064 480002E9 3B7B0001 2C1B000E 4081FFEC 887E0000 2C030005 408200A8 @@ -3149,7 +2905,7 @@ D0230038 7EC3B378 2C18001E 41810008 4800002C 38800000 7C96B9AE 7F64DB78 -7EC5B378 480004E5 +7EC5B378 48000269 3B7B0001 7ED6BA14 3AD60001 3B200000 3B000000 2C150000 @@ -3160,10 +2916,10 @@ D0230038 7EC3B378 4800015C 3B600001 886DB657 7F64DB78 2C030000 40820018 -38BD00BE 4800048D +38BD008A 48000211 38600001 987C000C -48000134 38BD00D4 -48000479 3B7B0002 +48000134 38BD00A0 +480001FD 3B7B0002 38600002 987C000C 887E0001 7F64DB78 2C030000 40820080 @@ -3173,52 +2929,52 @@ D0230038 7EC3B378 886DAFC9 2C030000 4082001C 886DAFCA 2C030000 40820010 -38BD00E7 38DD0113 -48000034 38BD00E7 -38DD00F9 887E0000 +38BD00B3 38DD00DF +48000034 38BD00B3 +38DD00C5 887E0000 2C030004 41820020 -38BD00E7 38DD010C +38BD00B3 38DD00D8 886DAFA0 2C030002 -4180000C 38BD00E7 -38DD0101 480003ED +4180000C 38BD00B3 +38DD00CD 48000171 38600001 987C000D -48000094 38BD0120 -480003D9 3B7B0002 +48000094 38BD00EC +4800015D 3B7B0002 38600002 987C000D 887E0000 7F64DB78 2C030004 4182005C 2C030003 4182002C -38BD012A 38DD015A +38BD00F6 38DD0126 896DAFA0 2C0B0001 41820048 2C0B0000 -41820040 38BD012A -38DD0163 48000034 -38BD013B 38DD015A +41820040 38BD00F6 +38DD012F 48000034 +38BD0107 38DD0126 896DAFA0 2C0B0001 41820020 2C0B0000 -41820018 38BD013B -38DD0163 4800000C -38BD014C 38DD015A -48000359 38600001 +41820018 38BD0107 +38DD012F 4800000C +38BD0118 38DD0126 +480000DD 38600001 987C000E 3B20000C 3B600002 7C7CC8AE 2C030001 40820044 A07C000F 3880000F 7C632396 1C630003 -386301D0 7CBD1A14 -7F64DB78 4800031D +3863019C 7CBD1A14 +7F64DB78 480000A1 7F43D378 7F64DB78 -38BD0088 3D80803A +38BD0054 3D80803A 618C74F0 7D8903A6 4E800421 48000044 2C030002 40820030 -7F64DB78 38BD01D6 -480002E9 7F43D378 -7F64DB78 38BD0084 +7F64DB78 38BD01A2 +4800006D 7F43D378 +7F64DB78 38BD0050 3D80803A 618C74F0 7D8903A6 4E800421 48000010 7F64DB78 -38BD0098 480002BD +38BD0064 48000041 3B7B0002 3B390001 2C19000E 4081FF68 A07C000F 38630001 @@ -3226,94 +2982,15 @@ A07C000F 38630001 38600000 B07C000F BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FEF8 BDC100B0 -DBE100F8 DBC10100 -7C6E1B78 4BFFF3B5 -7FA802A6 820E002C -8A300000 8A500001 -8A700002 8A900003 -82B00004 8AF00008 -83900009 81EE0028 -81EF0010 7DE37B78 -3D808037 618C0928 -7D8903A6 4E800421 -2C150000 408200CC -7E83A378 3D808000 -618C55F4 7D8903A6 -4E800421 C05D0018 -C07D0008 EC6100F2 -EC421828 D04F003C -2C120000 4182009C -3A2000AA 9A300000 -3A400001 9A500001 -7C962378 7E83A378 -3D808000 618C55F4 -7D8903A6 4E800421 -C05D0030 C07D0008 -EC6100F2 EC42182A -FFC01090 806DC2DC -38800003 9883000E -C03D002C 886DAFE0 -2C030000 41820008 -C03D0028 38770001 -7E649B78 38A00002 -38C00000 C07D0034 -C09D0038 3D808000 -618C56B4 7D8903A6 -4E800421 90700004 -806DC2DC 38800001 -9883000E 48000004 -887C0017 2C03000D -41800028 887C0019 -7C03A000 4080000C -2C140009 408100B4 -887C0019 7C741850 -2C03000D 418100A4 -2C110000 4082001C -2C120000 4182FF2C -2C120001 41820018 -2C120002 41820084 -3A31FFFF 9A300000 -480000D4 3A400002 -9A500001 3A200014 -9A300000 806E0028 -809C0004 80840004 -38A00001 3D808016 -618C895C 7D8903A6 -4E800421 806E0028 -C022AE28 3D808036 -618CF8BC 7D8903A6 -4E800421 8075005C -3D808037 618CF1B0 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 7F43D378 +3D80803A 618C70A0 7D8903A6 4E800421 -7EA3AB78 3D80803A -618C5CC4 7D8903A6 -4E800421 48000060 -7DC37378 3D808039 -618C0228 7D8903A6 -4E800421 809C0000 -88840003 7C172000 -40820010 887C0018 -3863FFFF 987C0018 -887C0017 3863FFFF -987C0017 887C0019 -7E84A378 38840001 -7C032000 41820008 -4800000C 38600000 -987C0019 B9C100B0 -CBE100F8 CBC10100 -8001010C 38210108 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -7F43D378 3D80803A -618C70A0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -80CDB638 00000000 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 80CDB638 +60000000 00000000 C2262004 0000000B #Online/Menus/CSS/PreventAPressCharUnselect.asm 3C608048 80639D30 5463443E 2C030008 From 79cf06355e483673b5fcbe41e2895ce32de28eff Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 18 Nov 2022 17:12:58 -0500 Subject: [PATCH 169/217] add two port priority codes --- .../PortPriority/FighterGrab/FighterGrab.s | 295 ++++++++++++++++ .../PortPriority/LedgeGrab/CheckLastGObj.asm | 329 ++++++++++++++++++ External/PortPriority/LedgeGrab/LedgeGrab.s | 11 + .../PortPriority/LedgeGrab/SkipAction.asm | 64 ++++ .../ThrowHitstun/FixThrowHitstun.asm | 25 ++ .../ThrowHitstun/SetPtrBowser1.asm | 6 + .../ThrowHitstun/SetPtrBowser2.asm | 6 + .../ThrowHitstun/SetPtrBowser3.asm | 6 + .../ThrowHitstun/SetPtrFalconGanon.asm | 6 + Output/Console/GALE01r2.ini | 261 +++++++------- Output/Console/g_core.bin | Bin 5344 -> 5448 bytes Output/Console/g_core_porta.bin | Bin 5344 -> 5448 bytes Output/Netplay/GALE01r2.ini | 98 ++++++ Output/Netplay/GALJ01r2.ini | 98 ++++++ netplay.json | 18 + 15 files changed, 1099 insertions(+), 124 deletions(-) create mode 100644 External/PortPriority/FighterGrab/FighterGrab.s create mode 100644 External/PortPriority/LedgeGrab/CheckLastGObj.asm create mode 100644 External/PortPriority/LedgeGrab/LedgeGrab.s create mode 100644 External/PortPriority/LedgeGrab/SkipAction.asm create mode 100644 External/PortPriority/ThrowHitstun/FixThrowHitstun.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser1.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser2.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser3.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/External/PortPriority/FighterGrab/FighterGrab.s b/External/PortPriority/FighterGrab/FighterGrab.s new file mode 100644 index 00000000..b8aeb5f5 --- /dev/null +++ b/External/PortPriority/FighterGrab/FighterGrab.s @@ -0,0 +1,295 @@ +blrl +# User options: +.set enabled, 1 +# Tech only occurs if code is enabled (can be toggled during game) + +.set enforceFacing, 1 +# Tech only occurs if players are facing towards eachother + +.set enforceHitbox, 0 +# Tech only occurs if both grab hitboxes are out (VERY tight windows) + +.set grapple, 0 +# Tech occurs after grapple action is completed (see Link/Samus) + +_0x00: +.float 1.6 +# animation speed of CatchCut and CaptureCut + +_0x04: +.byte (enabled<<0)+(enforceFacing<<1)+(enforceHitbox<<2)+(grapple<<3) +.align 2 + +_0x08: +.long 0 +# 32-bit array of bools, +# used to keep track of up to 32 player GObjs requiring post-action effects + +_0x0C: +_custom_player_aura: +# frame 0: +.long 0x58000000, 0x00000052, 0x00004040 # SFX1 +.long 0x58000000, 0x000000F3, 0x00005040 # SFX2 +.long 0x54000000, 0x03F90000, 0x00000000, 0x00000000, 0x00000000 # GFX1 +.long 0x36000050, 0xFF8000FF # set additive light +.long 0x3C000012, 0xFF800020 # blend light +.long 0x48000000, 0xFFFFFF00 # set overlay +.long 0x4C000012, 0xFFFFFF90 # blend overlay +.long 0x2C000012 # wait out blends +# frame 18: +.long 0x44000000 # kill light +.long 0x4C000018, 0xFFFFFF00 # fade overlay +.long 0x2C000018 # wait for fade +# frame 50: +.long 0x30000000 # kill overlay/lights +.long 0x28000000 # terminate aura + + + + +1.02 ------ 800da9d8 --- 4bfa31f5 -> Branch +# bl ->0x8007DBCC +# just as breakout timer is being assigned as argument for call + +# r3 = breakout assignee's player data +# r4 = unk int argument (0 immediate) +# f1 = breakout timer to assign +# r31 is safe to use + +# offsets +.set xOptions, 0x4 +.set xFXflags, 0x8 +.set xFacing, 0x2C +.set xFacingPrev, 0x30 +.set xGrabber, 0x1A58 +.set xAnimIntr, 0x21A0 + +# registers +.set rParams, 8 +.set rNext, 6 +.set rCount, 7 +.set rFlags, 5 +.set rPData, 3 +.set rPlayer, 26 +.set rGrabber, 31 + +# bools +.set bEnabled, 31 +.set bCheckFacing, 30 +.set bCheckHitbox, 29 +.set bGrapple, 28 + +# other +.set Catch, 0xD4 # ASIDs +.set CatchDash, 0xD6 +.set breakoutAnimInterrupt, 0x800dbd10 + +lwz r0, 0x10(rPData) +cmpwi r0, Catch +cmpwi cr1, r0, CatchDash +cror eq, eq, eq+4 +stw r0, 0x1C(sp) +bne+ _return +# check for action state +# this will be the most likely to be false, so it's checked first + +bl +mflr rParams +lbz r0, xOptions(rParams) +mtcrf 0b000001, r0 +lwz rGrabber, xGrabber(rPData) +lwz r5, 0x2C(rGrabber) +# rParams and rGrabber have been loaded +# cr7 contains option bools +# r5 holds rGrabber player data +# r3 holds rPlayer player data + +_check_enabled: +bf- bEnabled, _return +# /if disabled, then don't do anything + +_check_facing: +bf- bCheckFacing, _check_hitbox + lwz r6, xFacingPrev(rPData) + lwz r5, xFacing(r5) + cmpw r6, r5 + beq- _return + # /if checking facing, return when players are facing the same direction + +_check_hitbox: +bf+ bCheckHitbox, _check_grapple + lbz r0, 0x2219(rPData) + andi. r5, r0, 0x10 + beq+ _return + # /if checking for hitbox, only tech if both player's hitboxes are out + + +_check_grapple: +bt+ bGrapple, _setup_loop + lis r31, breakoutAnimInterrupt@h + ori r31, r31, breakoutAnimInterrupt@l + stw r31, 0x1C(sp) + # player will not wait for catch to pull player towards grabber + +_setup_loop: +lwz r7, -0x3e74(r13) +lwz rNext, 0x20(r7) +li rCount, 32 +lwz rFlags, xFXflags(rParams) +li r0, 0 +mtcrf 0b00000001, r0 +# registers are ready for loop +# cr7 is cleared + +_for_each_player_GObj: + subic. rCount, rCount, 1 + cmpwi cr1, rNext, 0 + cror eq, eq, eq+4 + beq- _exit_loop + # termination conditions + + cmpw rPlayer, rNext + lwz rNext, 0x8(rNext) + bne+ _for_each_player_GObj + # iterate loop if player doesn't match rNext + + lis r9, 0x8000 + srw r0, r9, rCount + or rFlags, rFlags, r0 + # player has been flagged true for FX memory + +_exit_loop: +stw rFlags, xFXflags(rParams) +# update FX memory + +lfs f1, -0x7FBC(rtoc) +# set f1 argument to 0 to immediately induce catch cut before the next frame + +_return: +bl 0x8007DBCC +# original instruction +.long 0 + + + + +1.02 ------ 800daa28 --- bb410030 -> Branch +# after action state change, from above function context +# r28 = player being grabbed + +.set xAnimIntr, 0x21A0 + +lwz r31, 0x1C(sp) +cmpwi r31, 0 +bge+ _return +# r31 has last been used to load in 0x43300000 for casting purposes +# /if the grapple check was enabled, then it is now set to an address +# MEM1 addresses use the sign bit, so a comparison to 0 is all we need + + _apply_anti_grapple: + stw r31, xAnimIntr(r28) + # this sets the animation interrupt to that of a "caught" player + # for long-distance grabs, like those from link or samus; + # this will cause the grab to break before grapple pulls the other player + +_return: +lmw r26, 0x0030 (sp) +.long 0 + + + +1.02 ------ 800db980 --- 881f234c -> Branch +# lbz r0, 0x234C (r31) +# just after CatchCut call + +# r31 = player data of person who was grabbed +# r30 = player GObj of person who was grabbed + +# offsets +.set xAnimSpeed, 0x0 +.set xOptions, 0x4 +.set xFXflags, 0x8 +.set xAura, 0xC +.set xColorReg, 0x408 +.set xGrabber, 0x1A58 +.set rParams, 3 # registers +.set rGrabber, 4 +.set rFlags, 5 +.set rNext, 6 +.set rCount, 7 +.set rPData, 31 +.set rPlayer, 30 + +bl +mflr rParams +lwz rFlags, xFXflags(rParams) +li r0, 0 +cmpwi rFlags, 0 +beq+ _return +# do nothing if flags word is empty +# else, set up loop + +mtcrf 0b00000001, r0 +lwz rNext, -0x3e74(r13) +stw r0, xFXflags(rParams) +lwz rGrabber, xGrabber(rPData) +lwz rNext, 0x20(rNext) +li rCount, 32 +# FX have been cleared +# cr7 has been cleared +# rFlags = old flags +# ready for loop + +_for_each_player_GObj: + subic. rCount, rCount, 1 + cmpwi cr1, rNext, 0 + cror eq, eq, eq+4 + beq- _no_FX + # termination conditions + + cmpw rPlayer, rNext + lwz rNext, 0x8(rNext) + bne+ _for_each_player_GObj + # iterate loop if player doesn't match rNext + # else, exit loop + +_exit_loop: +lis r9, 0x8000 +srw r0, r9, rCount +and. r9, rFlags, r0 +beq+ _no_FX +# /if GObj is found, check for its flag in rFlags +# /if it's TRUE, then apply effects according to user params + + _FX: + + _apply_custom_aura: + lwz r11, 0x2C(rGrabber) + li r10, 1 + addi r12, rParams, xAura + li r0, 0 + stw r10, xColorReg+0x28(rPData) + stw r0, xColorReg+0x0(r11) + stw r12, xColorReg+0x8(rPData) + stw r10, xColorReg+0x28(r11) + stw r0, xColorReg+0x0(rPData) + stw r12, xColorReg+0x8(r11) + # custom color auras have been applied to each player + + _apply_custom_animSpeed: + lfs f1, xAnimSpeed(rParams) + lfs f2, -0x65e0(rtoc) + fmuls f1, f1, f2 + lwz r3, xGrabber(rPData) + bl 0x8006f190 + bl + mflr rParams + lfs f1, xAnimSpeed(rParams) + mr r3, rPlayer + bl 0x8006f190 + +_no_FX: + +_return: +lbz r0, 0x234C (r31) +.long 0 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/CheckLastGObj.asm b/External/PortPriority/LedgeGrab/CheckLastGObj.asm new file mode 100644 index 00000000..4909e05b --- /dev/null +++ b/External/PortPriority/LedgeGrab/CheckLastGObj.asm @@ -0,0 +1,329 @@ +################################################################################ +# Address: INJ_CheckLastGObj +# Tags: [affects-gameplay] +################################################################################ +.include "Common/Common.s" +.include "./LedgeGrab.s" + +b CODE_START + +_static_vars: +blrl +.long 0, 0, 0, 1 +# allocations for variables +# last word is a flag that enables/disables the code. set to 0 to disable + +b _get_player_GObj_ID # xGetPlayerGObjID + +_get_player_GObj_ID: +# r3 = player GObj +# returns: +# r3 = unchanged +# r4 = first player GObj +# r5 = ID + +mr r4, r3 +li r5, -1 +# r3 = this GObj +# r4 = counted GObj +# r5 = counter + +_while_first_GObj_not_counted: + lwz r0, 0xC(r4) + addi r5, r5, 1 + cmpwi r0, 0 + bge- _return_0 + mr r4, r0 + b _while_first_GObj_not_counted + # once first GObj is reached, this GObj ID will be finalized + +_return_0: +blr + +_recursive_cliffcatch_by_distance: +# r3 = bools (before cleared) +# r4 = first player GObj +# registers: +.set rBools, 3 +.set rThis, 4 +.set rRecords, 5 +.set rAddr, 7 +.set rQuery, 8 + +# loop registers, for epilog: +.set rL, 9 # Left - order of: ledge vertex ID, ECB side +.set rR, 10 # Right - order of: ledge Link ID +.set rI, 11 # Index - uses rL or rR to create index +.set rT, 3 # This - represents value from rThis index +.set rQ, 12 # Query - represents value from rQuery index + +# rB clobbers rR in late part of epilog loop: +.set rB, 10 # Base + +# float registers used to calculate distance for fQuery and comparing to fThis +.set fThis, 1 +.set fQuery, 2 +.set fVert, 3 +.set fECB, 4 +.set fSquare, 3 +.set fSum, 0 +.set fInvRoot, 4 + +# GObj offsets: +.set xNext, 0x8 + +# Player GObjData offsets: +.set xFacing, 0x2C # float, sign = TRUE if facing left; else facing right +.set xTopN, 0xB0 # XY float pair +.set xECB, 0x784 # XY float pairs left and right, 0x8-aligned +.set xLedgeLink, 0x730 # IDs left and right, 0x4-aligned +.set xECBFlags, 0x824 + +# stack offsets: +.set xGObjData, 0xC +.set xStackSize, 0x10 + +# r13 offsets: +.set xColLinks, -0x51E4 # array of 8-byte indexed structures +.set xColVerts, -0x51E8 # array of 0x18-byte indexed structures + +# loop bools: +.set bInitThis, 31 + +_pre_recursion: +li r0, 32 +mtctr r0 +li rRecords, 0 +# rRecords = incrementing counter tracks number of frames to compare at end +# ctr holds number of GObjs to parse for +# -- ctr loop runs simultaneously with recursion loop to check bools +# -- recursion creates a stack frame for every true bit found in bools field + +_recursion: +mflr r0 +stw r0, 0x4(sp) +stwu sp, -xStackSize(sp) + +cmpwi rThis, 0 +bge- _epilog_operation +# if given GObj exists, then continue CTR loop + +_ctr_loop: + andi. r0, rBools, 1 + srwi rBools, rBools, 1 + bne- _iter_recursion + # /if a bool is found, it triggers an iteration in recursion + # /else, we just check for the next bool in iter_ctr + + _iter_ctr: + lwz rThis, xNext(rThis) + cmpwi rThis, 0 + bdnzt+ lt, _ctr_loop + b _epilog_operation + # /if bool was false + # - then load next GObj, and decrement CTR + # /if (new CTR = 0) OR (next GObj is >= 0) + # - then break from CTR loop and begin return operation + # - else, continue CTR loop + + _iter_recursion: + lwz r0, 0x2C(rThis) + addi rRecords, rRecords, 1 + stw r0, xGObjData(sp) + lwz rThis, xNext(rThis) + bl _recursion + # /if bool was true + # then load next GObj and create a new stack frame + +_epilog_operation: +mtctr rRecords +subic. rRecords, rRecords, 1 +blt _return_1 +# /if rRecords-1 is negative, then skip epilog operation. + +# else, CTR = rRecords before decrement +# so it is at least 1; meaning we can use it for a bdnz loop + + _setup_epilog_loop: + crclr bInitThis + addi rAddr, sp, xGObjData + + _epilog_loop: + lwzu rQuery, xStackSize(rAddr) + bt+ bInitThis, _this_initialized + mr. rThis, rQuery + bge- _return_1 + # /if not initialized, rThis = rQuery + # /if rThis is null, then we skip this frame entirely + + _this_initialized: + cmpwi rQuery, 0 + bge- _epilog_iter + # /if rQuery is null (and rThis is not) then we just skip this query + + _compare_ledge_side: + lbz rQ, xECBFlags(rQuery) + lbz rT, xECBFlags(rThis) + rlwinm rQ, rQ, 0, 0x3 + rlwinm rT, rQ, 0, 0x3 + cmpw rQ, rT + bne _epilog_iter + # /if players aren't competing for the same ledge side, + # then skip this query + + _LR_index: + rlwinm rL, rQ, 31, 1 + rlwinm rR, rQ, 0, 1 + # Left Right + # rL = 1 0 -- for order L, R + # rR = 0 1 -- for order R, L + # (boolean index avoids need for conditional branches) + + slwi rI, rR, 2 + addi rI, rI, xLedgeLink + # rI = (rR<<2) + xLedgeLink + # this creates a word-alignment in rI (index) for order R, L + # -- offset xLedgeLink uses the order R, L for memorizing ledge link IDs + + lwzx rT, rThis, rI # load values according to facing index modifier + lwzx rQ, rQuery, rI + cmpw rT, rQ # rThis ledge ID == rQuery Ledge ID? + bne+ _epilog_iter + # skip if players do not share the same ledge + # /else; rQuery and rThis compete for shortest ECB distance + + _calculate_distance: + # calculate distance between rQuery's ECB and the ledge vertex in question, using paired singles + lwz rB, xColLinks(r13) + slwi rI, rT, 3 # index of collision link + lwzx rB, rB, rI + # rB = address of collision link data + + slwi r0, rL, 1 + lhzx rI, rB, r0 + # rI = vertex index + + lwz rB, xColVerts(r13) + mulli rI, rI, 0x18 + addi rI, rI, 8 + psq_lx fVert, rB, rI,0,0 + # fVert = X, Y of stage vertex to measure distance from + + psq_l fECB, xECB(rQuery),0,0 + psq_l f0, xTopN(rQuery),0,0 + ps_add fECB, fECB, f0 + ps_sub f0, fECB, fVert + # f0 = delta between fECB and fVert + + ps_mul fSquare, f0, f0 # square delta pair + ps_sum0 fSum, fSquare, fSquare, fSquare # add pair values together + frsqrte fInvRoot, fSum + fmuls fQuery, fInvRoot, fSum # pythag + # fQuery = square root of (A*A) + (B*B) + + fcmpo cr0, fThis, fQuery + crand lt, lt, bInitThis + blt- _disqualify + fmr fThis, fQuery + mr rThis, rQuery + # /if this is the first player to be measured, + # or if fThis > fQuery (technically >=, but it's a float) + # then fThis = fQuery; continue + + crnot bInitThis, lt + b _epilog_iter + # by using !lt, we're always setting bInitThis to TRUE rather than toggling it + # this is because lt is definitively FALSE for this conditional branch + + _disqualify: + li r0, 0 + stw r0, 0(rAddr) + # /if we've disqualified a GObj, nullify it and continue epilog loop + + _epilog_iter: + bdnz+ _epilog_loop + + + + _break_from_epilog_loop: + # /if remaining number of frames is 0, then run action change for rThis + lwz r3, 0x0(rThis) + stw rRecords, 0x8(sp) + branchl r12, 0x80081370 + lwz rRecords, 0x8(sp) + # call CliffCatch action for winning player + +_return_1: +addi sp, sp, xStackSize +lwz r0, 0x4(sp) +mtlr r0 +blr + + +CODE_START: +# after collision callback event has returned +# -- if this is the final GObj being checked, then +# we select which GObjs actually get to execute cliffcatch action change + +# Gate states: +.set open, 0 # when open, calling cliffcatch action change will behave normally +.set close, 1 # when closed, attempting cliffcatch will log player in xBools field +# -- closed gate will not affect player GObjs with IDs larger than bool field (32) + +# r29 = this player GObj +# r30 = this player data + +lwz r0, 0x8(r29) +cmpwi r0, 0 +bne+ _return +# return immediately if this is not the last player GObj + + _if_last_player: + mr r3, r29 + bl _get_player_GObj_ID + # r4 = first player GObj ID + + _update_GObj_max: + bl _static_vars + mflr r30 + # r30 must now be recovered before returning + # we can use 0x2C(r29) to restore it before returning + + lhz r6, xThisCount(r30) + lwz r3, xBools(r30) + cmpw cr0, r5, r6 + # the new value for xThisCount is in r5 + # /if it's != r6, then a player GObj has been added/destroyed in the chain + + cmpwi cr1, r3, 0 + crorc eq, eq+4, eq + # cr0 eq = cr1 eq | cr0 !eq + + sth r5, xThisCount(r30) + li r0, open + sth r6, xPrevCount(r30) + stw r0, xGate(r30) + # open == 0; so it's also used to nullify bools + + stw r0, xBools(r30) + # updated ID count in variables + # cleared bools + + # r3 = bools (before cleared) + # r4 still = first player GObj + + beq- _end_of_cliffcatch_update + # unlikely case where GObj chain count does not match the previous frame + # -- indicates bool index may be misaligned, so logic is delayed until they can be rechecked + + bl _recursive_cliffcatch_by_distance + # fancy parse function deals with all the dirty details + + _end_of_cliffcatch_update: + li r0, close + stw r0, xGate(r30) + lwz r30, 0x2C(r29) + # close cliffcatch action gate, so that bools can reaccumilate for next check + +_return: +mr r3, r29 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/LedgeGrab.s b/External/PortPriority/LedgeGrab/LedgeGrab.s new file mode 100644 index 00000000..ac3ef550 --- /dev/null +++ b/External/PortPriority/LedgeGrab/LedgeGrab.s @@ -0,0 +1,11 @@ +# Source: https://smashboards.com/threads/ledge-grab-port-priority-fix.463581/ +# Code converted to work in Slippi + +.set INJ_CheckLastGObj, 0x8006c3a8 + +.set xThisCount, 0x0 +.set xPrevCount, 0x2 +.set xBools, 0x4 +.set xGate, 0x8 # opens/closes access to cliffcatch action changes when called +.set xEnabled, 0xC +.set xGetPlayerGObjID, 0x10 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/SkipAction.asm b/External/PortPriority/LedgeGrab/SkipAction.asm new file mode 100644 index 00000000..4b678c14 --- /dev/null +++ b/External/PortPriority/LedgeGrab/SkipAction.asm @@ -0,0 +1,64 @@ +################################################################################ +# Address: 0x80081388 +# Tags: [affects-gameplay] +################################################################################ +.include "Common/Common.s" +.include "./LedgeGrab.s" + +# whenever cliffcatch action is called +# we record it in a 32-bit flag field, indexed by player GObj +# and skip the action for now, so that it can be called later on. +# -- if a GObj is 32nd or higher in the chain, it is not delayed or recorded. +.set open, 0 + +# r30 == r3 +# r3 must be maintained if returning to function + +computeBranchTargetAddress r6, INJ_CheckLastGObj +addi r6, r6, 0x8 +mr r3, r30 +# r3 = unchanged +# r6 = variables base address + +lwz r0, xGate(r6) +lwz r7, xEnabled(r6) +cmpwi cr0, r0, open +cmpwi cr1, r7, 0 +cror eq, eq, eq+4 +beq- _default +# if gate is open, allow call to go through +# otherwise, prevent the call and save it for later as an indexed bool + +# We also treat the code being disabled like having the gate always open. +# this will cause the bools to be blank at te end of collision measurements, +# so it will prevent the code from having any effect. + +addi r7, r6, xGetPlayerGObjID +mtctr r7 +bctrl +# r3 = unchanged +# r5 = player ID +# r6 = unchanged + +cmpwi r5, 32 +bge- _default +# also, don't bother with GObjs that we can't keep track of (32-bit field) +# if for some reason there are that many players, then they won't be affected by the gate logic + + # r5 = player ID + # r6 = variables base address + + li r4, 1 + slw r5, r4, r5 + lwz r0, 0x4(r6) + or r5, r5, r0 + stw r5, 0x4(r6) + # update flagfield to include this ID + + _skip: + branch r12, 0x800814ec + # /if skipping function, return to its epilog + # /else, default returns execution to prolog + +_default: +lwz r3, 0x002C (r3) \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm b/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm new file mode 100644 index 00000000..ef46213b --- /dev/null +++ b/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm @@ -0,0 +1,25 @@ +################################################################################ +# Address: 0x8008E25C +# Tags: [affects-gameplay] +################################################################################ + +lwz r4,0x1198(r29) #Get thrower GObj pointer +cmplwi r4,0 +beq- lbl_FrameAdvance #Run original code if NULL +lwz r4,0x2C(r4) +lbz r4,0xC(r4) #Get port ID of thrower +lbz r0,0xC(r29) #Get port ID of victim +cmpw r0,r4 +bgt- lbl_Skip #If victim is lower priority, skip frame advance +lbl_FrameAdvance: +lis r12, 0x8007 +subi r12, r12, 0x145C +mtlr r12 +blrl +b lbl_END #Exit +lbl_Skip: +lfs f1,0x2340(r29) #Load victim's hitstun frames +lfs f0,-0x7508(rtoc) #Load 1.0F +fadds f0,f1,f0 #hitstun += 1.0F; +stfs f0,0x2340(r29) #Store fixed hitstun +lbl_END: \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm new file mode 100644 index 00000000..5642c931 --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x80132ECC +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm new file mode 100644 index 00000000..960fb2f7 --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x80133A48 +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm new file mode 100644 index 00000000..2b028c3b --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x80133B68 +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm b/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm new file mode 100644 index 00000000..d43ea5f0 --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x800E52E8 +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 6b0c7a4d..37f04ec2 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -132,12 +132,12 @@ C216D884 00000030 #Recording/SendGameEnd.asm BA8100B0 800100E4 382100E0 7C0803A6 819F2514 00000000 -C216E74C 000000FC #Recording/SendGameInfo.asm +C216E74C 00000109 #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 418207A0 +2C030000 4182080C 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 @@ -156,7 +156,7 @@ C216E74C 000000FC #Recording/SendGameInfo.asm 7C7C1B78 38600035 987E0000 3860001C 987E0001 38600036 -987E0002 386002BD +987E0002 386002F8 B07E0003 38600037 987E0005 3860003F B07E0006 38600038 @@ -174,7 +174,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030D 60630000 +3C60030E 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -232,159 +232,172 @@ B07E0015 3860003D 8862F23C 987E01BF 3C608048 80639D30 5463443E B07E01C0 -3C608048 80639D30 -5463443E 2C030208 -40820190 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C791B78 3A800000 -3ABF0060 3AFE01C2 -3B590034 1C74001F -7F03BA14 1ED40024 -7ED6AA14 88760001 -2C030000 40820028 -1C74001F 7C83D214 -7F03C378 38A0001F -3D808000 618C31F4 -7D8903A6 4E800421 -4800001C 7F03C378 -3880001F 3D808000 -618CC160 7D8903A6 -4E800421 3A940001 -2C140004 4180FFA0 +3B200000 3C608048 +80639D30 5463443E +2C030208 4082017C +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C791B78 3A800000 3ABF0060 -3AFE023E 3B5900CF -1C74000A 7F03BA14 +3AFE01C2 3B590034 +1C74001F 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 -40820028 1C74000A +40820028 1C74001F 7C83D214 7F03C378 -38A0000A 3D808000 +38A0001F 3D808000 618C31F4 7D8903A6 4E800421 4800001C -7F03C378 3880000A +7F03C378 3880001F 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 4180FFA0 3A800000 -3ABF0060 3AFE0266 -3B5900F7 1C74001D +3ABF0060 3AFE023E +3B5900CF 1C74000A 7F03BA14 1ED40024 7ED6AA14 88760001 2C030000 40820028 -1C74001D 7C83D214 -7F03C378 38A0001D +1C74000A 7C83D214 +7F03C378 38A0000A 3D808000 618C31F4 7D8903A6 4E800421 4800001C 7F03C378 -3880001D 3D808000 +3880000A 3D808000 618CC160 7D8903A6 4E800421 3A940001 2C140004 4180FFA0 -7F23CB78 3D808037 -618CF1B0 7D8903A6 +3A800000 3ABF0060 +3AFE0266 3B5900F7 +1C74001D 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001D +7C83D214 7F03C378 +38A0001D 3D808000 +618C31F4 7D8903A6 4E800421 4800001C +7F03C378 3880001D +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 4800001C 387E01C2 38800118 3D808000 618CC160 7D8903A6 4E800421 3D808000 618CADF4 7D8903A6 4E800421 -987E02DA 7FC3F378 -388002DB 38A00001 -3D808000 618C55F0 -7D8903A6 4E800421 -38600205 3D808037 -618CF1E4 7D8903A6 -4E800421 7C751B78 -3C608000 60635600 -80630000 3AE30008 -38600010 98750000 -3860003D 98750203 -38600200 B0750201 -38600000 98750204 -3AC00000 7C76E050 -2C030200 41810010 -B0750201 38600001 -98750204 38750001 -7EE4BB78 7C84B214 -A0B50201 3D808000 -618C31F4 7D8903A6 -4E800421 7EA3AB78 -38800205 38A00001 -3D808000 618C55F0 +987E02DA 2C190000 +41820044 387E02DB +38990394 38A00033 +3D808000 618C31F4 7D8903A6 4E800421 -3AD60200 7C16E000 -4180FFA4 7EA3AB78 +3C60803D 6063AD40 +80630000 81830088 +A06C0001 907E030E +886C0006 907E0312 +4800001C 387E02DB +3880003B 3D808000 +618CC160 7D8903A6 +4E800421 2C190000 +41820018 7F23CB78 3D808037 618CF1B0 7D8903A6 4E800421 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A00000 -3D808038 618CFD54 +7FC3F378 38800316 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 7D8903A6 4E800421 -48000070 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 -806DB64C 83A30000 -838DB650 7FBDE214 -3860003A 987D0000 -806DB654 907D0001 -3C60804D 80635F90 -907D0005 3C608048 -80639D60 907D0009 -838DB650 3B9C000D -938DB650 BA8100B0 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 +7D8903A6 4E800421 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 48000124 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200D8 +3B7B0001 2C1B000F +418100CC 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +83CDB650 3BDE002B +93CDB650 3BFF002B +83BD0008 2C1D0000 +4082FF30 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -38600004 38800007 -38A00000 3D808039 -618C01F0 7D8903A6 -4E800421 48000021 -7C8802A6 38A0000F -3D808038 618CFD54 -7D8903A6 4E800421 -48000124 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 -806DB64C 83E30000 -83CDB650 7FFFF214 -3B600000 806DC18C -83A30024 2C1D0000 -418200D8 3B7B0001 -2C1B000F 418100CC -839D002C 3860003B -987F0000 806DB654 -907F0001 807C0010 -B07F0005 807C0024 -987F0007 807C002C -907F0008 807C0040 -907F000C 807C0044 -907F0010 807C004C -907F0014 807C0050 -907F0018 807C0C9C -B07F001C 807C0D44 -907F001E 807C001C -907F0022 887C0DD7 -987F0026 887C0DDB -987F0027 887C0DEB -987F0028 887C0DEF -987F0029 807C0518 -2C030000 41820018 -8063002C 2C030000 -4182000C 8863000C -48000008 3860FFFF -987F002A 83CDB650 -3BDE002B 93CDB650 -3BFF002B 83BD0008 -2C1D0000 4082FF30 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +3C608017 00000000 C206DA34 00000036 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 3fa45e22c6b8bd2ffdd8f0aa7f5019e264fc85da..891c5733fb61516220eda00c1a7ffa4adadada85 100644 GIT binary patch delta 196 zcmaE$c|vQ$I%XzD&dD2?)tESVCf{J5&iG?;0ZTU{-{wCoXBZ`{6&M(75*j=jlII$P zB)iz@Ff(yDG%?m}zQb0+I5~yGAVWuzfx)qf!NsDE>9)m8<|!5n7>sQj8W<9L48PQN zGB5LMU{M5`V4IM<)}bMpfuXUPp<_V~1LK4`X1WbU=7iGFaf3) fYQDte01gq3`oo_qEE<@_HqYUB!?d}FJA@MeueCi- delta 109 zcmV-z0FwX6D&Q%wt^)!9{FAT)CISbblh^~70lkxO1d9O;v-||i0Teu7fJlI2oiJ2m zL_RD70ti5Y0g$uc26O=we P>;eQ}00029^b1r8vv4PQ diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index 7598705279732aa5496e25ba836b11db19350992..49cafc62eeea54a510a764a58cf8a1ce14c1d038 100644 GIT binary patch delta 196 zcmaE$c|vQ$I%XzD&dD2?)tESVCf{J5&iG?;0ZTU{-{wCoXBZ`{6&M(75*j=jlII$P zB)iz@Ff(yDG%?m}zQb0+I5~yGAVWuzfx)qf!NsDE>9)m8<|!5n7>sQj8W<9L48PQN zGB5LMU{M5`V4IM<)}bMpfuXUPp<_V~1LK4`X1WbU=7iGFaf3) fYQDte01gq3`oo_qEE<@_HqYUB!?d}FJA@MeueCi- delta 109 zcmV-z0FwX6D&Q%wt^)!9{FAT)CISbblh^~70lkxO1d9O;v-||i0Teu7fJlI2oiJ2m zL_RD70ti5Y0g$uc26O=we P>;eQ}00029^b1r8vv4PQ diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 6abbc315..7c8fe538 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -7173,3 +7173,101 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 + +$Optional: Port Priority Fixes [Punkline, Achilles, PKFreeZZy] +*Removes the most flagrant instances of port priority in the game +C206C3A8 0000003E #External/PortPriority/LedgeGrab/CheckLastGObj.asm +4800018C 4E800021 +00000000 00000000 +00000000 00000001 +48000004 7C641B78 +38A0FFFF 8004000C +38A50001 2C000000 +4080000C 7C040378 +4BFFFFEC 4E800020 +38000020 7C0903A6 +38A00000 7C0802A6 +90010004 9421FFF0 +2C040000 40800034 +70600001 5463F87E +40820014 80840008 +2C040000 4100FFEC +48000018 8004002C +38A50001 9001000C +80840008 4BFFFFC1 +7CA903A6 34A5FFFF +418000E4 4FFFF982 +38E1000C 85070010 +41BF000C 7D044379 +408000CC 2C080000 +408000A4 89880824 +88640824 558C07BE +558307BE 7C0C1800 +4082008C 5589FFFE +558A07FE 554B103A +396B0730 7C64582E +7D88582E 7C036000 +40A2006C 814DAE1C +546B1838 7D4A582E +5520083C 7D6A022E +814DAE18 1D6B0018 +396B0008 106A580C +E0880784 E00800B0 +1084002A 10041828 +10600032 100318D4 +FC800034 EC440032 +FC011040 4C00FA02 +41800014 FC201090 +7D044378 4FE00042 +4800000C 38000000 +90070000 4200FF48 +80640000 90A10008 +3D808008 618C1370 +7D8903A6 4E800421 +80A10008 38210010 +80010004 7C0803A6 +4E800020 801D0008 +2C000000 40A20050 +7FA3EB78 4BFFFE81 +4BFFFE65 7FC802A6 +A0DE0000 807E0004 +7C053000 2C830000 +4C461342 B0BE0000 +38000000 B0DE0002 +901E0008 901E0004 +41820008 4BFFFE6D +38000001 901E0008 +83DD002C 7FA3EB78 +60000000 00000000 +C2081388 00000011 #External/PortPriority/LedgeGrab/SkipAction.asm +3C608006 6063C3A8 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7CC32214 38C60008 +7FC3F378 80060008 +80E6000C 2C000000 +2C870000 4C423382 +4182003C 38E60010 +7CE903A6 4E800421 +2C050020 40800028 +38800001 7C852830 +80060004 7CA50378 +90A60004 3D808008 +618C14EC 7D8903A6 +4E800420 8063002C +60000000 00000000 +C208E25C 00000009 #External/PortPriority/ThrowHitstun/FixThrowHitstun.asm +809D1198 28040000 +41820018 8084002C +8884000C 881D000C +7C002000 41810018 +3D808007 398CEBA4 +7D8803A6 4E800021 +48000014 C03D2340 +C0028AF8 EC01002A +D01D2340 00000000 +04132ECC 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser1.asm +04133A48 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser2.asm +04133B68 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser3.asm +040E52E8 389D0000 #External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 5c90e85b..235e0058 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -7173,3 +7173,101 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 + +$Optional: Port Priority Fixes [Punkline, Achilles, PKFreeZZy] +*Removes the most flagrant instances of port priority in the game +C206C3A8 0000003E #External/PortPriority/LedgeGrab/CheckLastGObj.asm +4800018C 4E800021 +00000000 00000000 +00000000 00000001 +48000004 7C641B78 +38A0FFFF 8004000C +38A50001 2C000000 +4080000C 7C040378 +4BFFFFEC 4E800020 +38000020 7C0903A6 +38A00000 7C0802A6 +90010004 9421FFF0 +2C040000 40800034 +70600001 5463F87E +40820014 80840008 +2C040000 4100FFEC +48000018 8004002C +38A50001 9001000C +80840008 4BFFFFC1 +7CA903A6 34A5FFFF +418000E4 4FFFF982 +38E1000C 85070010 +41BF000C 7D044379 +408000CC 2C080000 +408000A4 89880824 +88640824 558C07BE +558307BE 7C0C1800 +4082008C 5589FFFE +558A07FE 554B103A +396B0730 7C64582E +7D88582E 7C036000 +40A2006C 814DAE1C +546B1838 7D4A582E +5520083C 7D6A022E +814DAE18 1D6B0018 +396B0008 106A580C +E0880784 E00800B0 +1084002A 10041828 +10600032 100318D4 +FC800034 EC440032 +FC011040 4C00FA02 +41800014 FC201090 +7D044378 4FE00042 +4800000C 38000000 +90070000 4200FF48 +80640000 90A10008 +3D808008 618C1370 +7D8903A6 4E800421 +80A10008 38210010 +80010004 7C0803A6 +4E800020 801D0008 +2C000000 40A20050 +7FA3EB78 4BFFFE81 +4BFFFE65 7FC802A6 +A0DE0000 807E0004 +7C053000 2C830000 +4C461342 B0BE0000 +38000000 B0DE0002 +901E0008 901E0004 +41820008 4BFFFE6D +38000001 901E0008 +83DD002C 7FA3EB78 +60000000 00000000 +C2081388 00000011 #External/PortPriority/LedgeGrab/SkipAction.asm +3C608006 6063C3A8 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7CC32214 38C60008 +7FC3F378 80060008 +80E6000C 2C000000 +2C870000 4C423382 +4182003C 38E60010 +7CE903A6 4E800421 +2C050020 40800028 +38800001 7C852830 +80060004 7CA50378 +90A60004 3D808008 +618C14EC 7D8903A6 +4E800420 8063002C +60000000 00000000 +C208E25C 00000009 #External/PortPriority/ThrowHitstun/FixThrowHitstun.asm +809D1198 28040000 +41820018 8084002C +8884000C 881D000C +7C002000 41810018 +3D808007 398CEBA4 +7D8803A6 4E800021 +48000014 C03D2340 +C0028AF8 EC01002A +D01D2340 00000000 +04132ECC 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser1.asm +04133A48 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser2.asm +04133B68 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser3.asm +040E52E8 389D0000 #External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/netplay.json b/netplay.json index 882ce39f..3ae71cf9 100644 --- a/netplay.json +++ b/netplay.json @@ -514,6 +514,24 @@ "isRecursive": true } ] + }, + { + "name": "Optional: Port Priority Fixes", + "authors": [ + "Punkline", + "Achilles", + "PKFreeZZy" + ], + "description": [ + "Removes the most flagrant instances of port priority in the game" + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "External/PortPriority", + "isRecursive": true + } + ] } ] } \ No newline at end of file From fd4a4d68895aac9f3847ec587d7282d303c098d1 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 20 Nov 2022 22:50:31 -0500 Subject: [PATCH 170/217] update headers for use with latest gecko tool --- Common/Common.s | 5 +++++ Common/UseInGameDelay/InGameDelay.s | 13 +++++++++---- Common/UseInGameDelay/InitializeInGameDelay.asm | 8 ++++---- .../AdditionalCrashInfo/AdditionalCrashInfoStatic.s | 7 ++++++- External/UCF 0.8/Indicator/UCF Text.asm | 4 +++- Online/Online.s | 5 +++++ Online/Slippi Online Scene/Header.s | 5 +++++ 7 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 9f2ce8c7..654b254e 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -1,3 +1,5 @@ +.ifndef HEADER_COMMON + ################################################################################ # Macros ################################################################################ @@ -612,3 +614,6 @@ add \reg, r3, r4 .set LOG_LEVEL_WARN, 3 .set LOG_LEVEL_ERROR, 2 .set LOG_LEVEL_NOTICE, 1 + +.endif +.set HEADER_COMMON, 1 \ No newline at end of file diff --git a/Common/UseInGameDelay/InGameDelay.s b/Common/UseInGameDelay/InGameDelay.s index 5d65b576..312aafde 100644 --- a/Common/UseInGameDelay/InGameDelay.s +++ b/Common/UseInGameDelay/InGameDelay.s @@ -1,3 +1,5 @@ +.ifndef HEADER_IN_GAME_DELAY + ################################################################################ # Injection locations ################################################################################ @@ -7,13 +9,16 @@ # Constants ################################################################################ .set PADS_REPORT_SIZE, 0xC * 4 # 4 controller inputs to backup -.set MIN_DELAY_FRAMES, 0 -.set MAX_DELAY_FRAMES, 15 +.set OFFLINE_MIN_DELAY_FRAMES, 0 +.set OFFLINE_MAX_DELAY_FRAMES, 15 ################################################################################ # In Game Delay Buffer ################################################################################ .set IGDB_DELAY_FRAMES, 0 # u8 .set IGDB_PAD_BUFFER_INDEX, IGDB_DELAY_FRAMES + 1 # u8 -.set IGDB_PAD_BUFFER, IGDB_PAD_BUFFER_INDEX + 1 # PADS_REPORT_SIZE * MAX_DELAY_FRAMES -.set IGDB_SIZE, IGDB_PAD_BUFFER + PADS_REPORT_SIZE * MAX_DELAY_FRAMES \ No newline at end of file +.set IGDB_PAD_BUFFER, IGDB_PAD_BUFFER_INDEX + 1 # PADS_REPORT_SIZE * OFFLINE_MAX_DELAY_FRAMES +.set IGDB_SIZE, IGDB_PAD_BUFFER + PADS_REPORT_SIZE * OFFLINE_MAX_DELAY_FRAMES + +.endif +.set HEADER_IN_GAME_DELAY, 1 \ No newline at end of file diff --git a/Common/UseInGameDelay/InitializeInGameDelay.asm b/Common/UseInGameDelay/InitializeInGameDelay.asm index 0c3fd98d..d629a7ce 100644 --- a/Common/UseInGameDelay/InitializeInGameDelay.asm +++ b/Common/UseInGameDelay/InitializeInGameDelay.asm @@ -129,16 +129,16 @@ li r4, IGDB_SIZE branchl r12, Zero_AreaLength # Handle delay limits -cmpwi REG_DELAY_RESULT, MIN_DELAY_FRAMES +cmpwi REG_DELAY_RESULT, OFFLINE_MIN_DELAY_FRAMES blt DELAY_FRAMES_MIN_LIMIT -cmpwi REG_DELAY_RESULT, MAX_DELAY_FRAMES +cmpwi REG_DELAY_RESULT, OFFLINE_MAX_DELAY_FRAMES bgt DELAY_FRAMES_MAX_LIMIT b SET_DELAY_FRAMES DELAY_FRAMES_MIN_LIMIT: -li REG_DELAY_RESULT, MIN_DELAY_FRAMES +li REG_DELAY_RESULT, OFFLINE_MIN_DELAY_FRAMES b SET_DELAY_FRAMES DELAY_FRAMES_MAX_LIMIT: -li REG_DELAY_RESULT, MAX_DELAY_FRAMES +li REG_DELAY_RESULT, OFFLINE_MAX_DELAY_FRAMES # Write delay result to IGDB SET_DELAY_FRAMES: diff --git a/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s b/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s index 3ba49697..4d53df59 100644 --- a/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s +++ b/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s @@ -1,3 +1,5 @@ +.ifndef HEADER_ADDITIONAL_CRASH_INFO_STATIC + # Define additional crash info static mem offsets, these must be synced with the static mem # defined below .set ACISMO_VERSION_STR, 0 # char[64] @@ -14,4 +16,7 @@ .string "\n" .align 2 -.endm \ No newline at end of file +.endm + +.endif +.set HEADER_ADDITIONAL_CRASH_INFO_STATIC, 1 \ No newline at end of file diff --git a/External/UCF 0.8/Indicator/UCF Text.asm b/External/UCF 0.8/Indicator/UCF Text.asm index 662ecd76..95250199 100644 --- a/External/UCF 0.8/Indicator/UCF Text.asm +++ b/External/UCF 0.8/Indicator/UCF Text.asm @@ -1,4 +1,6 @@ -#To be inserted @ 802662D0 +################################################################################ +# Address: 0x802662D0 +################################################################################ .include "Common/Common.s" .set REG_TextGObj,31 diff --git a/Online/Online.s b/Online/Online.s index e0a4a52f..fc7795eb 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -1,3 +1,5 @@ +.ifndef HEADER_ONLINE + ################################################################################ # TODO List ################################################################################ @@ -514,3 +516,6 @@ .set RESP_SKIP, 2 .set RESP_DISCONNECTED, 3 .set RESP_ADVANCE, 4 + +.endif +.set HEADER_ONLINE, 1 \ No newline at end of file diff --git a/Online/Slippi Online Scene/Header.s b/Online/Slippi Online Scene/Header.s index 0a6a5d11..70620820 100644 --- a/Online/Slippi Online Scene/Header.s +++ b/Online/Slippi Online Scene/Header.s @@ -1,2 +1,7 @@ +.ifndef HEADER_ONLINE_SCENE + .set SlippiMajorID,8 .set InitialSelection,0 + +.endif +.set HEADER_ONLINE_SCENE, 1 \ No newline at end of file From 4eda098fe3c3730f18e8a96bb796ec1a093914a0 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 21 Nov 2022 13:46:51 -0500 Subject: [PATCH 171/217] add batched build flags --- build-console-all.bat | 4 ++-- build-netplay.bat | 2 +- build-playback.bat | 2 +- build.bat | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build-console-all.bat b/build-console-all.bat index a55a058b..5eb0053a 100644 --- a/build-console-all.bat +++ b/build-console-all.bat @@ -1,10 +1,10 @@ @echo off echo Building console_core.json for Port A... -gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" +gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" -batched echo. echo Building console_core.json... -gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" +gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -batched echo. set list=console_UCF.json diff --git a/build-netplay.bat b/build-netplay.bat index 7cbc9afe..ee69b2af 100644 --- a/build-netplay.bat +++ b/build-netplay.bat @@ -1,6 +1,6 @@ @echo off echo Building netplay.json... -gecko build -c netplay.json -defsym "STG_EXIIndex=1" +gecko build -c netplay.json -defsym "STG_EXIIndex=1" -batched echo. pause \ No newline at end of file diff --git a/build-playback.bat b/build-playback.bat index 8c2a89a4..2d9ac1e3 100644 --- a/build-playback.bat +++ b/build-playback.bat @@ -1,6 +1,6 @@ @echo off echo Building playback.json... -gecko build -c playback.json -defsym "STG_EXIIndex=1" +gecko build -c playback.json -defsym "STG_EXIIndex=1" -batched echo. pause diff --git a/build.bat b/build.bat index b785903e..417dd727 100644 --- a/build.bat +++ b/build.bat @@ -1,18 +1,18 @@ @echo off echo Building netplay.json... -gecko build -c netplay.json -defsym "STG_EXIIndex=1" +gecko build -c netplay.json -defsym "STG_EXIIndex=1" -batched echo. echo Building playback.json... -gecko build -c playback.json -defsym "STG_EXIIndex=1" +gecko build -c playback.json -defsym "STG_EXIIndex=1" -batched echo. echo Building console_core.json for Port A... -gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" +gecko build -c console_core.json -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" -batched echo. echo Building console_core.json... -gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" +gecko build -c console_core.json -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -batched echo. set list=console_UCF.json From 7b7bf595ccc7e4c3c36af668073ff1e026861607 Mon Sep 17 00:00:00 2001 From: jlaferri Date: Mon, 21 Nov 2022 14:39:34 -0500 Subject: [PATCH 172/217] add pkfreezzy fighter grab code --- .../PortPriority/FighterGrab/FighterGrab.asm | 205 ++++++++++++ .../PortPriority/FighterGrab/FighterGrab.s | 295 ------------------ 2 files changed, 205 insertions(+), 295 deletions(-) create mode 100644 External/PortPriority/FighterGrab/FighterGrab.asm delete mode 100644 External/PortPriority/FighterGrab/FighterGrab.s diff --git a/External/PortPriority/FighterGrab/FighterGrab.asm b/External/PortPriority/FighterGrab/FighterGrab.asm new file mode 100644 index 00000000..9bdad4af --- /dev/null +++ b/External/PortPriority/FighterGrab/FighterGrab.asm @@ -0,0 +1,205 @@ +################################################################################ +# Address: 0x80078C04 +# Tags: [affects-gameplay] +################################################################################ +.set HSD_Randi, 0x80380580 +.set CheckPrevHitPlayers, 0x8000ACFC +.set CompareScaleZ, 0x8007F804 +.set GrabCheckOverlap, 0x80007ECC +.set LineCheckObstruct, 0x80084CE4 +.set CheckNextGObj, 0x80078C4C + +stfs f1,0x20(sp) #Backup this fighter's unk grab position var in stack + +addi r3,r29,0 #Current victim's GObj +addi r4,r25,0 #This GObj +bl lbl_GrabCheckVictim + +cmpwi r3,0 #Check if victim is also grabbing this fighter +beq- lbl_Win #If victim is not feeling touchy, this fighter wins the interaction + +lfs f1,0x1830(r30) #This fighter's damage +lfs f0,0x1830(r28) #Victim's damage + +fcmpo cr0,f1,f0 #Compare this fighter's % to victim's +cror 2,0,2 #OR cr0_lt with cr0_eq and put result in cr_eq to dodge NaN edge cases +bne- lbl_Lose #If this fighter has a higher % than the victim, lose the interaction + +fcmpu cr0,f1,f0 #Check if both %s are equal +bne- lbl_Win #If this fighter REALLY has less damage than the victim, win the grab + +li r3,2 #Load 2 into randomizer to get a 50/50 chance to beat victim if %s are equal +branchl r12,HSD_Randi #HSD integer randomizer + +cmpwi r3,0 +beq- lbl_Lose #If result is 0, lose the interaction + +lbl_Win: +lwz r0,0(r28) #Get victim's GObj pointer +b lbl_EXIT #Go to injection exit + +lbl_Lose: + +#Documentation on 0x1A58 and 0x1A5C is conflicting, not entirely sure what their +#true purpose is, but they are both related to attacker/victim logic +#li r0,0 #Set r0 to NULL +#stw r0,0x1A5C(r30) #Store NULL pointer to this fighter's hitlag partner pointer? +#stw r0,0x1A58(r30) #Store NULL pointer to this fighter's victim pointer? +#lbz r3,0x221B(r30) #Load flags at 0x221B +#rlwimi r3,r0,2,29,29 #Move r0 over bit 29 of r3 +#stb r3,0x221B(r30) #Grab bool is now false +#lfs f1,0x20(sp) #Load grab position thingy + +branch r12,CheckNextGObj #Go to line of code that stores grab position thingy + +lbl_EXIT: +lfs f1,0x20(sp) #Load grab position thingy +b lbl_Return + +.set rHitLoop, 31 +.set rThisFP, 30 +.set rVicFP, 29 +.set rLoopHitbox, 28 +.set rHit, 27 +.set rThisObj, 26 +.set rVicHurtbox, 25 +.set rLoopHurtbox, 24 +.set rReturn, 23 + +lbl_GrabCheckVictim: + +mflr r0 #Get return pointer from link register +stw r0,0x4(sp) #Store link register at top of current stack position +stwu sp,-0x40(sp) #Make space for 0x40 bytes in the stack +stfd f31,0x38(sp) #Backup f31 so we can store 0.0F to it +stmw r23,0x14(sp) #Backup all registers from r23 until r31 + +addi rThisObj,r3,0 #Store this GObj +lwz rThisFP,0x2C(rThisObj) #Get this GObjs user_data +lwz rVicFP,0x2C(r4) #Get victim's user_data + +li rLoopHitbox,0 #Init loop counter + +lfs f0,-0x76D0(rtoc) +stfs f0,0x216C(rThisFP) #Get and store maximum single-precision float limit + +addi rHitLoop,rThisFP,0 #Move this fighter's data to temporary hitbox loop register + +li rReturn,0 #Init return value, this stays at "false" unless all checks are passed + +lfs f31,-0x7700(rtoc) #Load 0.0F + +lbl_LoopHitboxStart: +addi r3,rHitLoop,0x914 #Get address of the start of this fighter's hitbox array +lwz r0,0x914(rThisFP) #Load hitbox state +addi rHit,r3,0 #Move hitbox struct address to reserved hitbox register +cmpwi r0,0 #Check if hitbox state is "disabled" +beq- lbl_LoopIncHitbox #If hitbox is disabled, check for the next one + +lwz r0,0x30(r3) #Get hitbox element +cmplwi r0,8 #Check if hitbox's element is "grab" +bne- lbl_LoopIncHitbox #If we're not dealing with a grabbox, check next hitbox + +lbz r0,0x40(r3) #Get hitbox flags +rlwinm. r0,r0,27,31,31 #Check to ignore airborne fighters +beq- lbl_CheckFlagNext +lwz r0,0xE0(rVicFP) #Get ground_or_air +cmpwi r0,1 #Check if fighter is airborne +beq- lbl_SkipToCheckPrevHit +lbl_CheckFlagNext: +lbz r0,0x40(r3) #Get hitbox flags +rlwinm. r0,r0,28,31,31 #Check if fighter is grounded +beq- lbl_LoopIncHitbox +lwz r0,0xE0(rVicFP) #Get grorund_or_air +cmpwi r0,0 #Check if fighter is grounded +bne- lbl_LoopIncHitbox #Check next hitbox if airborne + +lbl_SkipToCheckPrevHit: +addi r3,rVicFP,0 +addi r4,rHit,0 +branchl r12,CheckPrevHitPlayers #Check previously hit players + +cmpwi r3,0 +bne- lbl_LoopIncHitbox #Check next hitbox if victim has already been hit by this one + +addi rVicHurtbox,rVicFP,0 #Move victim's user_data to temporary hurtbox register +li rLoopHurtbox,0 #Init hurtbox loop +b lbl_LoopHurtboxCheck #Go to hurtbox loop count + +lbl_LoopHurtboxStart: +lwz r0,0x11E8(rVicHurtbox) #Get hurtbox's grab enable bool? +cmpwi r0,0 +beq- lbl_LoopIncHitboxHurtbox #If hurtbox cannot be grabbed, check the next one + +mr r3,rVicFP +branchl r12,CompreScaleZ #Compare victim's Z-scale to 0.0F + +lfs f1,0x38(rThisFP) #Get this fighter's Y-scale +mr r5,r3 #Move float* address of Z-scale? +lfs f2,0x38(rVicFP) #Get victim's Y-scale +mr r3,rHit +lfs f3,0xB8(rVicFP) #Get victim's current Z-position +addi r4,rVicHurtbox,4512 #Address of current hurtbox's data +branchl r12,GrabCheckOverlap #Check for grab overlap + +cmpwi r3,0 +beq- lbl_LoopIncHitboxHurtbox #If there is no overlap, check the next hurtbox + +addi r3,rThisFP,0 +addi r4,rVicFP,0 +branchl r12,LineCheckObstruct #Check for obstructions between the two fighters + +cmpwi r3,0 +bne- lbl_END #If there are obstructions, exit the function with FALSE in r23 + +#Series of initializations from original grab logic, to flag the victim as if we've attacked them +#We don't want that in this case, so this block is commented out +#addi r3,rThisFP,0 +#addi r4,rHit,0 +#addi r6,rVicFP,0 +#li r5,0 +#li r7,0 +#bl 0x80076808 + +lfs f1,0xB0(rVicFP) #Get victim's X-position +lfs f0,0xB0(rThisFP) #Get this fighter's X-position + +fsubs f1,f1,f0 #Subtract this fighter's X-pos from victim's X-pos +fcmpo cr0,f1,f31 #Compare to 0.0F +bge- lbl_SkipNeg #If positive, value is already absolute + +fneg f1,f1 #Otherwise, flip the sign bit of the negative result (fabs) + +lbl_SkipNeg: +lfs f0,0x216C(rThisFP) #Get this fighter's grab distance threshold +fcmpo cr0,f1,f0 #Compare position to 0x216C +bge- lbl_END #Return with FALSE in r23 + +li rReturn,1 #Now, all checks have been passed; both players' grabs overlap +b lbl_END #Return with TRUE in r23 + +lbl_LoopIncHitboxHurtbox: +addi rVicHurtbox, rVicHurtbox, 76 #Get address of next hurtbox struct +addi rLoopHurtbox, rLoopHurtbox, 1 #Incremennt hurtbox loop counter + +lbl_LoopHurtboxCheck: +lbz r0,0x119E(rVicFP) #Get victim's hurtbox count +cmplw rLoopHurtbox,r0 #Check if hurtbox loop count has exceeded victim's number of hurtboxes +blt+ lbl_LoopHurtboxStart + +lbl_LoopIncHitbox: +addi rLoopHitbox,rLoopHitbox,1 #Increment hitbox loop count +cmplwi rLoopHitbox,4 #Check if all four hitboxes have been compared +addi rHitLoop, rHitLoop, 0x138 #Add size of hurtbox struct to temporary hitbox register +blt+ lbl_LoopHitboxStart + +lbl_END: +mr r3,rReturn #Return isOverlap bool +lmw r23,0x14(sp) #Restore all non-volatile registers and return +lwz r0,0x44(sp) #Load return pointer into r0 +lfd f31,0x38(sp) #Restore f31 +addi sp,sp,0x40 #Restore stack position +mtlr r0 #Move return pointer from r0 into link register +blr #Return from subroutine + +lbl_Return: \ No newline at end of file diff --git a/External/PortPriority/FighterGrab/FighterGrab.s b/External/PortPriority/FighterGrab/FighterGrab.s deleted file mode 100644 index b8aeb5f5..00000000 --- a/External/PortPriority/FighterGrab/FighterGrab.s +++ /dev/null @@ -1,295 +0,0 @@ -blrl -# User options: -.set enabled, 1 -# Tech only occurs if code is enabled (can be toggled during game) - -.set enforceFacing, 1 -# Tech only occurs if players are facing towards eachother - -.set enforceHitbox, 0 -# Tech only occurs if both grab hitboxes are out (VERY tight windows) - -.set grapple, 0 -# Tech occurs after grapple action is completed (see Link/Samus) - -_0x00: -.float 1.6 -# animation speed of CatchCut and CaptureCut - -_0x04: -.byte (enabled<<0)+(enforceFacing<<1)+(enforceHitbox<<2)+(grapple<<3) -.align 2 - -_0x08: -.long 0 -# 32-bit array of bools, -# used to keep track of up to 32 player GObjs requiring post-action effects - -_0x0C: -_custom_player_aura: -# frame 0: -.long 0x58000000, 0x00000052, 0x00004040 # SFX1 -.long 0x58000000, 0x000000F3, 0x00005040 # SFX2 -.long 0x54000000, 0x03F90000, 0x00000000, 0x00000000, 0x00000000 # GFX1 -.long 0x36000050, 0xFF8000FF # set additive light -.long 0x3C000012, 0xFF800020 # blend light -.long 0x48000000, 0xFFFFFF00 # set overlay -.long 0x4C000012, 0xFFFFFF90 # blend overlay -.long 0x2C000012 # wait out blends -# frame 18: -.long 0x44000000 # kill light -.long 0x4C000018, 0xFFFFFF00 # fade overlay -.long 0x2C000018 # wait for fade -# frame 50: -.long 0x30000000 # kill overlay/lights -.long 0x28000000 # terminate aura - - - - -1.02 ------ 800da9d8 --- 4bfa31f5 -> Branch -# bl ->0x8007DBCC -# just as breakout timer is being assigned as argument for call - -# r3 = breakout assignee's player data -# r4 = unk int argument (0 immediate) -# f1 = breakout timer to assign -# r31 is safe to use - -# offsets -.set xOptions, 0x4 -.set xFXflags, 0x8 -.set xFacing, 0x2C -.set xFacingPrev, 0x30 -.set xGrabber, 0x1A58 -.set xAnimIntr, 0x21A0 - -# registers -.set rParams, 8 -.set rNext, 6 -.set rCount, 7 -.set rFlags, 5 -.set rPData, 3 -.set rPlayer, 26 -.set rGrabber, 31 - -# bools -.set bEnabled, 31 -.set bCheckFacing, 30 -.set bCheckHitbox, 29 -.set bGrapple, 28 - -# other -.set Catch, 0xD4 # ASIDs -.set CatchDash, 0xD6 -.set breakoutAnimInterrupt, 0x800dbd10 - -lwz r0, 0x10(rPData) -cmpwi r0, Catch -cmpwi cr1, r0, CatchDash -cror eq, eq, eq+4 -stw r0, 0x1C(sp) -bne+ _return -# check for action state -# this will be the most likely to be false, so it's checked first - -bl -mflr rParams -lbz r0, xOptions(rParams) -mtcrf 0b000001, r0 -lwz rGrabber, xGrabber(rPData) -lwz r5, 0x2C(rGrabber) -# rParams and rGrabber have been loaded -# cr7 contains option bools -# r5 holds rGrabber player data -# r3 holds rPlayer player data - -_check_enabled: -bf- bEnabled, _return -# /if disabled, then don't do anything - -_check_facing: -bf- bCheckFacing, _check_hitbox - lwz r6, xFacingPrev(rPData) - lwz r5, xFacing(r5) - cmpw r6, r5 - beq- _return - # /if checking facing, return when players are facing the same direction - -_check_hitbox: -bf+ bCheckHitbox, _check_grapple - lbz r0, 0x2219(rPData) - andi. r5, r0, 0x10 - beq+ _return - # /if checking for hitbox, only tech if both player's hitboxes are out - - -_check_grapple: -bt+ bGrapple, _setup_loop - lis r31, breakoutAnimInterrupt@h - ori r31, r31, breakoutAnimInterrupt@l - stw r31, 0x1C(sp) - # player will not wait for catch to pull player towards grabber - -_setup_loop: -lwz r7, -0x3e74(r13) -lwz rNext, 0x20(r7) -li rCount, 32 -lwz rFlags, xFXflags(rParams) -li r0, 0 -mtcrf 0b00000001, r0 -# registers are ready for loop -# cr7 is cleared - -_for_each_player_GObj: - subic. rCount, rCount, 1 - cmpwi cr1, rNext, 0 - cror eq, eq, eq+4 - beq- _exit_loop - # termination conditions - - cmpw rPlayer, rNext - lwz rNext, 0x8(rNext) - bne+ _for_each_player_GObj - # iterate loop if player doesn't match rNext - - lis r9, 0x8000 - srw r0, r9, rCount - or rFlags, rFlags, r0 - # player has been flagged true for FX memory - -_exit_loop: -stw rFlags, xFXflags(rParams) -# update FX memory - -lfs f1, -0x7FBC(rtoc) -# set f1 argument to 0 to immediately induce catch cut before the next frame - -_return: -bl 0x8007DBCC -# original instruction -.long 0 - - - - -1.02 ------ 800daa28 --- bb410030 -> Branch -# after action state change, from above function context -# r28 = player being grabbed - -.set xAnimIntr, 0x21A0 - -lwz r31, 0x1C(sp) -cmpwi r31, 0 -bge+ _return -# r31 has last been used to load in 0x43300000 for casting purposes -# /if the grapple check was enabled, then it is now set to an address -# MEM1 addresses use the sign bit, so a comparison to 0 is all we need - - _apply_anti_grapple: - stw r31, xAnimIntr(r28) - # this sets the animation interrupt to that of a "caught" player - # for long-distance grabs, like those from link or samus; - # this will cause the grab to break before grapple pulls the other player - -_return: -lmw r26, 0x0030 (sp) -.long 0 - - - -1.02 ------ 800db980 --- 881f234c -> Branch -# lbz r0, 0x234C (r31) -# just after CatchCut call - -# r31 = player data of person who was grabbed -# r30 = player GObj of person who was grabbed - -# offsets -.set xAnimSpeed, 0x0 -.set xOptions, 0x4 -.set xFXflags, 0x8 -.set xAura, 0xC -.set xColorReg, 0x408 -.set xGrabber, 0x1A58 -.set rParams, 3 # registers -.set rGrabber, 4 -.set rFlags, 5 -.set rNext, 6 -.set rCount, 7 -.set rPData, 31 -.set rPlayer, 30 - -bl -mflr rParams -lwz rFlags, xFXflags(rParams) -li r0, 0 -cmpwi rFlags, 0 -beq+ _return -# do nothing if flags word is empty -# else, set up loop - -mtcrf 0b00000001, r0 -lwz rNext, -0x3e74(r13) -stw r0, xFXflags(rParams) -lwz rGrabber, xGrabber(rPData) -lwz rNext, 0x20(rNext) -li rCount, 32 -# FX have been cleared -# cr7 has been cleared -# rFlags = old flags -# ready for loop - -_for_each_player_GObj: - subic. rCount, rCount, 1 - cmpwi cr1, rNext, 0 - cror eq, eq, eq+4 - beq- _no_FX - # termination conditions - - cmpw rPlayer, rNext - lwz rNext, 0x8(rNext) - bne+ _for_each_player_GObj - # iterate loop if player doesn't match rNext - # else, exit loop - -_exit_loop: -lis r9, 0x8000 -srw r0, r9, rCount -and. r9, rFlags, r0 -beq+ _no_FX -# /if GObj is found, check for its flag in rFlags -# /if it's TRUE, then apply effects according to user params - - _FX: - - _apply_custom_aura: - lwz r11, 0x2C(rGrabber) - li r10, 1 - addi r12, rParams, xAura - li r0, 0 - stw r10, xColorReg+0x28(rPData) - stw r0, xColorReg+0x0(r11) - stw r12, xColorReg+0x8(rPData) - stw r10, xColorReg+0x28(r11) - stw r0, xColorReg+0x0(rPData) - stw r12, xColorReg+0x8(r11) - # custom color auras have been applied to each player - - _apply_custom_animSpeed: - lfs f1, xAnimSpeed(rParams) - lfs f2, -0x65e0(rtoc) - fmuls f1, f1, f2 - lwz r3, xGrabber(rPData) - bl 0x8006f190 - bl - mflr rParams - lfs f1, xAnimSpeed(rParams) - mr r3, rPlayer - bl 0x8006f190 - -_no_FX: - -_return: -lbz r0, 0x234C (r31) -.long 0 \ No newline at end of file From 61bb86522f8ff9cc9976d390a516d2594fe41320 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 21 Nov 2022 14:41:50 -0500 Subject: [PATCH 173/217] remove port priority from existing codesets --- Output/Netplay/GALE01r2.ini | 98 ------------------------------------- Output/Netplay/GALJ01r2.ini | 98 ------------------------------------- netplay.json | 18 ------- 3 files changed, 214 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 7c8fe538..6abbc315 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -7173,101 +7173,3 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 - -$Optional: Port Priority Fixes [Punkline, Achilles, PKFreeZZy] -*Removes the most flagrant instances of port priority in the game -C206C3A8 0000003E #External/PortPriority/LedgeGrab/CheckLastGObj.asm -4800018C 4E800021 -00000000 00000000 -00000000 00000001 -48000004 7C641B78 -38A0FFFF 8004000C -38A50001 2C000000 -4080000C 7C040378 -4BFFFFEC 4E800020 -38000020 7C0903A6 -38A00000 7C0802A6 -90010004 9421FFF0 -2C040000 40800034 -70600001 5463F87E -40820014 80840008 -2C040000 4100FFEC -48000018 8004002C -38A50001 9001000C -80840008 4BFFFFC1 -7CA903A6 34A5FFFF -418000E4 4FFFF982 -38E1000C 85070010 -41BF000C 7D044379 -408000CC 2C080000 -408000A4 89880824 -88640824 558C07BE -558307BE 7C0C1800 -4082008C 5589FFFE -558A07FE 554B103A -396B0730 7C64582E -7D88582E 7C036000 -40A2006C 814DAE1C -546B1838 7D4A582E -5520083C 7D6A022E -814DAE18 1D6B0018 -396B0008 106A580C -E0880784 E00800B0 -1084002A 10041828 -10600032 100318D4 -FC800034 EC440032 -FC011040 4C00FA02 -41800014 FC201090 -7D044378 4FE00042 -4800000C 38000000 -90070000 4200FF48 -80640000 90A10008 -3D808008 618C1370 -7D8903A6 4E800421 -80A10008 38210010 -80010004 7C0803A6 -4E800020 801D0008 -2C000000 40A20050 -7FA3EB78 4BFFFE81 -4BFFFE65 7FC802A6 -A0DE0000 807E0004 -7C053000 2C830000 -4C461342 B0BE0000 -38000000 B0DE0002 -901E0008 901E0004 -41820008 4BFFFE6D -38000001 901E0008 -83DD002C 7FA3EB78 -60000000 00000000 -C2081388 00000011 #External/PortPriority/LedgeGrab/SkipAction.asm -3C608006 6063C3A8 -80830000 5485863E -7CA50774 54A5801E -5484043A 7C842B78 -7CC32214 38C60008 -7FC3F378 80060008 -80E6000C 2C000000 -2C870000 4C423382 -4182003C 38E60010 -7CE903A6 4E800421 -2C050020 40800028 -38800001 7C852830 -80060004 7CA50378 -90A60004 3D808008 -618C14EC 7D8903A6 -4E800420 8063002C -60000000 00000000 -C208E25C 00000009 #External/PortPriority/ThrowHitstun/FixThrowHitstun.asm -809D1198 28040000 -41820018 8084002C -8884000C 881D000C -7C002000 41810018 -3D808007 398CEBA4 -7D8803A6 4E800021 -48000014 C03D2340 -C0028AF8 EC01002A -D01D2340 00000000 -04132ECC 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser1.asm -04133A48 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser2.asm -04133B68 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser3.asm -040E52E8 389D0000 #External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 235e0058..5c90e85b 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -7173,101 +7173,3 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 - -$Optional: Port Priority Fixes [Punkline, Achilles, PKFreeZZy] -*Removes the most flagrant instances of port priority in the game -C206C3A8 0000003E #External/PortPriority/LedgeGrab/CheckLastGObj.asm -4800018C 4E800021 -00000000 00000000 -00000000 00000001 -48000004 7C641B78 -38A0FFFF 8004000C -38A50001 2C000000 -4080000C 7C040378 -4BFFFFEC 4E800020 -38000020 7C0903A6 -38A00000 7C0802A6 -90010004 9421FFF0 -2C040000 40800034 -70600001 5463F87E -40820014 80840008 -2C040000 4100FFEC -48000018 8004002C -38A50001 9001000C -80840008 4BFFFFC1 -7CA903A6 34A5FFFF -418000E4 4FFFF982 -38E1000C 85070010 -41BF000C 7D044379 -408000CC 2C080000 -408000A4 89880824 -88640824 558C07BE -558307BE 7C0C1800 -4082008C 5589FFFE -558A07FE 554B103A -396B0730 7C64582E -7D88582E 7C036000 -40A2006C 814DAE1C -546B1838 7D4A582E -5520083C 7D6A022E -814DAE18 1D6B0018 -396B0008 106A580C -E0880784 E00800B0 -1084002A 10041828 -10600032 100318D4 -FC800034 EC440032 -FC011040 4C00FA02 -41800014 FC201090 -7D044378 4FE00042 -4800000C 38000000 -90070000 4200FF48 -80640000 90A10008 -3D808008 618C1370 -7D8903A6 4E800421 -80A10008 38210010 -80010004 7C0803A6 -4E800020 801D0008 -2C000000 40A20050 -7FA3EB78 4BFFFE81 -4BFFFE65 7FC802A6 -A0DE0000 807E0004 -7C053000 2C830000 -4C461342 B0BE0000 -38000000 B0DE0002 -901E0008 901E0004 -41820008 4BFFFE6D -38000001 901E0008 -83DD002C 7FA3EB78 -60000000 00000000 -C2081388 00000011 #External/PortPriority/LedgeGrab/SkipAction.asm -3C608006 6063C3A8 -80830000 5485863E -7CA50774 54A5801E -5484043A 7C842B78 -7CC32214 38C60008 -7FC3F378 80060008 -80E6000C 2C000000 -2C870000 4C423382 -4182003C 38E60010 -7CE903A6 4E800421 -2C050020 40800028 -38800001 7C852830 -80060004 7CA50378 -90A60004 3D808008 -618C14EC 7D8903A6 -4E800420 8063002C -60000000 00000000 -C208E25C 00000009 #External/PortPriority/ThrowHitstun/FixThrowHitstun.asm -809D1198 28040000 -41820018 8084002C -8884000C 881D000C -7C002000 41810018 -3D808007 398CEBA4 -7D8803A6 4E800021 -48000014 C03D2340 -C0028AF8 EC01002A -D01D2340 00000000 -04132ECC 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser1.asm -04133A48 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser2.asm -04133B68 389D0000 #External/PortPriority/ThrowHitstun/SetPtrBowser3.asm -040E52E8 389D0000 #External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/netplay.json b/netplay.json index 3ae71cf9..882ce39f 100644 --- a/netplay.json +++ b/netplay.json @@ -514,24 +514,6 @@ "isRecursive": true } ] - }, - { - "name": "Optional: Port Priority Fixes", - "authors": [ - "Punkline", - "Achilles", - "PKFreeZZy" - ], - "description": [ - "Removes the most flagrant instances of port priority in the game" - ], - "build": [ - { - "type": "injectFolder", - "sourceFolder": "External/PortPriority", - "isRecursive": true - } - ] } ] } \ No newline at end of file From 58124419468bfe7dcd31c1d0b6f746ec2250ad6b Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 21 Nov 2022 14:44:14 -0500 Subject: [PATCH 174/217] remove port priority codes --- .../PortPriority/FighterGrab/FighterGrab.asm | 205 ----------- .../PortPriority/LedgeGrab/CheckLastGObj.asm | 329 ------------------ External/PortPriority/LedgeGrab/LedgeGrab.s | 11 - .../PortPriority/LedgeGrab/SkipAction.asm | 64 ---- .../ThrowHitstun/FixThrowHitstun.asm | 25 -- .../ThrowHitstun/SetPtrBowser1.asm | 6 - .../ThrowHitstun/SetPtrBowser2.asm | 6 - .../ThrowHitstun/SetPtrBowser3.asm | 6 - .../ThrowHitstun/SetPtrFalconGanon.asm | 6 - 9 files changed, 658 deletions(-) delete mode 100644 External/PortPriority/FighterGrab/FighterGrab.asm delete mode 100644 External/PortPriority/LedgeGrab/CheckLastGObj.asm delete mode 100644 External/PortPriority/LedgeGrab/LedgeGrab.s delete mode 100644 External/PortPriority/LedgeGrab/SkipAction.asm delete mode 100644 External/PortPriority/ThrowHitstun/FixThrowHitstun.asm delete mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser1.asm delete mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser2.asm delete mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser3.asm delete mode 100644 External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/External/PortPriority/FighterGrab/FighterGrab.asm b/External/PortPriority/FighterGrab/FighterGrab.asm deleted file mode 100644 index 9bdad4af..00000000 --- a/External/PortPriority/FighterGrab/FighterGrab.asm +++ /dev/null @@ -1,205 +0,0 @@ -################################################################################ -# Address: 0x80078C04 -# Tags: [affects-gameplay] -################################################################################ -.set HSD_Randi, 0x80380580 -.set CheckPrevHitPlayers, 0x8000ACFC -.set CompareScaleZ, 0x8007F804 -.set GrabCheckOverlap, 0x80007ECC -.set LineCheckObstruct, 0x80084CE4 -.set CheckNextGObj, 0x80078C4C - -stfs f1,0x20(sp) #Backup this fighter's unk grab position var in stack - -addi r3,r29,0 #Current victim's GObj -addi r4,r25,0 #This GObj -bl lbl_GrabCheckVictim - -cmpwi r3,0 #Check if victim is also grabbing this fighter -beq- lbl_Win #If victim is not feeling touchy, this fighter wins the interaction - -lfs f1,0x1830(r30) #This fighter's damage -lfs f0,0x1830(r28) #Victim's damage - -fcmpo cr0,f1,f0 #Compare this fighter's % to victim's -cror 2,0,2 #OR cr0_lt with cr0_eq and put result in cr_eq to dodge NaN edge cases -bne- lbl_Lose #If this fighter has a higher % than the victim, lose the interaction - -fcmpu cr0,f1,f0 #Check if both %s are equal -bne- lbl_Win #If this fighter REALLY has less damage than the victim, win the grab - -li r3,2 #Load 2 into randomizer to get a 50/50 chance to beat victim if %s are equal -branchl r12,HSD_Randi #HSD integer randomizer - -cmpwi r3,0 -beq- lbl_Lose #If result is 0, lose the interaction - -lbl_Win: -lwz r0,0(r28) #Get victim's GObj pointer -b lbl_EXIT #Go to injection exit - -lbl_Lose: - -#Documentation on 0x1A58 and 0x1A5C is conflicting, not entirely sure what their -#true purpose is, but they are both related to attacker/victim logic -#li r0,0 #Set r0 to NULL -#stw r0,0x1A5C(r30) #Store NULL pointer to this fighter's hitlag partner pointer? -#stw r0,0x1A58(r30) #Store NULL pointer to this fighter's victim pointer? -#lbz r3,0x221B(r30) #Load flags at 0x221B -#rlwimi r3,r0,2,29,29 #Move r0 over bit 29 of r3 -#stb r3,0x221B(r30) #Grab bool is now false -#lfs f1,0x20(sp) #Load grab position thingy - -branch r12,CheckNextGObj #Go to line of code that stores grab position thingy - -lbl_EXIT: -lfs f1,0x20(sp) #Load grab position thingy -b lbl_Return - -.set rHitLoop, 31 -.set rThisFP, 30 -.set rVicFP, 29 -.set rLoopHitbox, 28 -.set rHit, 27 -.set rThisObj, 26 -.set rVicHurtbox, 25 -.set rLoopHurtbox, 24 -.set rReturn, 23 - -lbl_GrabCheckVictim: - -mflr r0 #Get return pointer from link register -stw r0,0x4(sp) #Store link register at top of current stack position -stwu sp,-0x40(sp) #Make space for 0x40 bytes in the stack -stfd f31,0x38(sp) #Backup f31 so we can store 0.0F to it -stmw r23,0x14(sp) #Backup all registers from r23 until r31 - -addi rThisObj,r3,0 #Store this GObj -lwz rThisFP,0x2C(rThisObj) #Get this GObjs user_data -lwz rVicFP,0x2C(r4) #Get victim's user_data - -li rLoopHitbox,0 #Init loop counter - -lfs f0,-0x76D0(rtoc) -stfs f0,0x216C(rThisFP) #Get and store maximum single-precision float limit - -addi rHitLoop,rThisFP,0 #Move this fighter's data to temporary hitbox loop register - -li rReturn,0 #Init return value, this stays at "false" unless all checks are passed - -lfs f31,-0x7700(rtoc) #Load 0.0F - -lbl_LoopHitboxStart: -addi r3,rHitLoop,0x914 #Get address of the start of this fighter's hitbox array -lwz r0,0x914(rThisFP) #Load hitbox state -addi rHit,r3,0 #Move hitbox struct address to reserved hitbox register -cmpwi r0,0 #Check if hitbox state is "disabled" -beq- lbl_LoopIncHitbox #If hitbox is disabled, check for the next one - -lwz r0,0x30(r3) #Get hitbox element -cmplwi r0,8 #Check if hitbox's element is "grab" -bne- lbl_LoopIncHitbox #If we're not dealing with a grabbox, check next hitbox - -lbz r0,0x40(r3) #Get hitbox flags -rlwinm. r0,r0,27,31,31 #Check to ignore airborne fighters -beq- lbl_CheckFlagNext -lwz r0,0xE0(rVicFP) #Get ground_or_air -cmpwi r0,1 #Check if fighter is airborne -beq- lbl_SkipToCheckPrevHit -lbl_CheckFlagNext: -lbz r0,0x40(r3) #Get hitbox flags -rlwinm. r0,r0,28,31,31 #Check if fighter is grounded -beq- lbl_LoopIncHitbox -lwz r0,0xE0(rVicFP) #Get grorund_or_air -cmpwi r0,0 #Check if fighter is grounded -bne- lbl_LoopIncHitbox #Check next hitbox if airborne - -lbl_SkipToCheckPrevHit: -addi r3,rVicFP,0 -addi r4,rHit,0 -branchl r12,CheckPrevHitPlayers #Check previously hit players - -cmpwi r3,0 -bne- lbl_LoopIncHitbox #Check next hitbox if victim has already been hit by this one - -addi rVicHurtbox,rVicFP,0 #Move victim's user_data to temporary hurtbox register -li rLoopHurtbox,0 #Init hurtbox loop -b lbl_LoopHurtboxCheck #Go to hurtbox loop count - -lbl_LoopHurtboxStart: -lwz r0,0x11E8(rVicHurtbox) #Get hurtbox's grab enable bool? -cmpwi r0,0 -beq- lbl_LoopIncHitboxHurtbox #If hurtbox cannot be grabbed, check the next one - -mr r3,rVicFP -branchl r12,CompreScaleZ #Compare victim's Z-scale to 0.0F - -lfs f1,0x38(rThisFP) #Get this fighter's Y-scale -mr r5,r3 #Move float* address of Z-scale? -lfs f2,0x38(rVicFP) #Get victim's Y-scale -mr r3,rHit -lfs f3,0xB8(rVicFP) #Get victim's current Z-position -addi r4,rVicHurtbox,4512 #Address of current hurtbox's data -branchl r12,GrabCheckOverlap #Check for grab overlap - -cmpwi r3,0 -beq- lbl_LoopIncHitboxHurtbox #If there is no overlap, check the next hurtbox - -addi r3,rThisFP,0 -addi r4,rVicFP,0 -branchl r12,LineCheckObstruct #Check for obstructions between the two fighters - -cmpwi r3,0 -bne- lbl_END #If there are obstructions, exit the function with FALSE in r23 - -#Series of initializations from original grab logic, to flag the victim as if we've attacked them -#We don't want that in this case, so this block is commented out -#addi r3,rThisFP,0 -#addi r4,rHit,0 -#addi r6,rVicFP,0 -#li r5,0 -#li r7,0 -#bl 0x80076808 - -lfs f1,0xB0(rVicFP) #Get victim's X-position -lfs f0,0xB0(rThisFP) #Get this fighter's X-position - -fsubs f1,f1,f0 #Subtract this fighter's X-pos from victim's X-pos -fcmpo cr0,f1,f31 #Compare to 0.0F -bge- lbl_SkipNeg #If positive, value is already absolute - -fneg f1,f1 #Otherwise, flip the sign bit of the negative result (fabs) - -lbl_SkipNeg: -lfs f0,0x216C(rThisFP) #Get this fighter's grab distance threshold -fcmpo cr0,f1,f0 #Compare position to 0x216C -bge- lbl_END #Return with FALSE in r23 - -li rReturn,1 #Now, all checks have been passed; both players' grabs overlap -b lbl_END #Return with TRUE in r23 - -lbl_LoopIncHitboxHurtbox: -addi rVicHurtbox, rVicHurtbox, 76 #Get address of next hurtbox struct -addi rLoopHurtbox, rLoopHurtbox, 1 #Incremennt hurtbox loop counter - -lbl_LoopHurtboxCheck: -lbz r0,0x119E(rVicFP) #Get victim's hurtbox count -cmplw rLoopHurtbox,r0 #Check if hurtbox loop count has exceeded victim's number of hurtboxes -blt+ lbl_LoopHurtboxStart - -lbl_LoopIncHitbox: -addi rLoopHitbox,rLoopHitbox,1 #Increment hitbox loop count -cmplwi rLoopHitbox,4 #Check if all four hitboxes have been compared -addi rHitLoop, rHitLoop, 0x138 #Add size of hurtbox struct to temporary hitbox register -blt+ lbl_LoopHitboxStart - -lbl_END: -mr r3,rReturn #Return isOverlap bool -lmw r23,0x14(sp) #Restore all non-volatile registers and return -lwz r0,0x44(sp) #Load return pointer into r0 -lfd f31,0x38(sp) #Restore f31 -addi sp,sp,0x40 #Restore stack position -mtlr r0 #Move return pointer from r0 into link register -blr #Return from subroutine - -lbl_Return: \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/CheckLastGObj.asm b/External/PortPriority/LedgeGrab/CheckLastGObj.asm deleted file mode 100644 index 4909e05b..00000000 --- a/External/PortPriority/LedgeGrab/CheckLastGObj.asm +++ /dev/null @@ -1,329 +0,0 @@ -################################################################################ -# Address: INJ_CheckLastGObj -# Tags: [affects-gameplay] -################################################################################ -.include "Common/Common.s" -.include "./LedgeGrab.s" - -b CODE_START - -_static_vars: -blrl -.long 0, 0, 0, 1 -# allocations for variables -# last word is a flag that enables/disables the code. set to 0 to disable - -b _get_player_GObj_ID # xGetPlayerGObjID - -_get_player_GObj_ID: -# r3 = player GObj -# returns: -# r3 = unchanged -# r4 = first player GObj -# r5 = ID - -mr r4, r3 -li r5, -1 -# r3 = this GObj -# r4 = counted GObj -# r5 = counter - -_while_first_GObj_not_counted: - lwz r0, 0xC(r4) - addi r5, r5, 1 - cmpwi r0, 0 - bge- _return_0 - mr r4, r0 - b _while_first_GObj_not_counted - # once first GObj is reached, this GObj ID will be finalized - -_return_0: -blr - -_recursive_cliffcatch_by_distance: -# r3 = bools (before cleared) -# r4 = first player GObj -# registers: -.set rBools, 3 -.set rThis, 4 -.set rRecords, 5 -.set rAddr, 7 -.set rQuery, 8 - -# loop registers, for epilog: -.set rL, 9 # Left - order of: ledge vertex ID, ECB side -.set rR, 10 # Right - order of: ledge Link ID -.set rI, 11 # Index - uses rL or rR to create index -.set rT, 3 # This - represents value from rThis index -.set rQ, 12 # Query - represents value from rQuery index - -# rB clobbers rR in late part of epilog loop: -.set rB, 10 # Base - -# float registers used to calculate distance for fQuery and comparing to fThis -.set fThis, 1 -.set fQuery, 2 -.set fVert, 3 -.set fECB, 4 -.set fSquare, 3 -.set fSum, 0 -.set fInvRoot, 4 - -# GObj offsets: -.set xNext, 0x8 - -# Player GObjData offsets: -.set xFacing, 0x2C # float, sign = TRUE if facing left; else facing right -.set xTopN, 0xB0 # XY float pair -.set xECB, 0x784 # XY float pairs left and right, 0x8-aligned -.set xLedgeLink, 0x730 # IDs left and right, 0x4-aligned -.set xECBFlags, 0x824 - -# stack offsets: -.set xGObjData, 0xC -.set xStackSize, 0x10 - -# r13 offsets: -.set xColLinks, -0x51E4 # array of 8-byte indexed structures -.set xColVerts, -0x51E8 # array of 0x18-byte indexed structures - -# loop bools: -.set bInitThis, 31 - -_pre_recursion: -li r0, 32 -mtctr r0 -li rRecords, 0 -# rRecords = incrementing counter tracks number of frames to compare at end -# ctr holds number of GObjs to parse for -# -- ctr loop runs simultaneously with recursion loop to check bools -# -- recursion creates a stack frame for every true bit found in bools field - -_recursion: -mflr r0 -stw r0, 0x4(sp) -stwu sp, -xStackSize(sp) - -cmpwi rThis, 0 -bge- _epilog_operation -# if given GObj exists, then continue CTR loop - -_ctr_loop: - andi. r0, rBools, 1 - srwi rBools, rBools, 1 - bne- _iter_recursion - # /if a bool is found, it triggers an iteration in recursion - # /else, we just check for the next bool in iter_ctr - - _iter_ctr: - lwz rThis, xNext(rThis) - cmpwi rThis, 0 - bdnzt+ lt, _ctr_loop - b _epilog_operation - # /if bool was false - # - then load next GObj, and decrement CTR - # /if (new CTR = 0) OR (next GObj is >= 0) - # - then break from CTR loop and begin return operation - # - else, continue CTR loop - - _iter_recursion: - lwz r0, 0x2C(rThis) - addi rRecords, rRecords, 1 - stw r0, xGObjData(sp) - lwz rThis, xNext(rThis) - bl _recursion - # /if bool was true - # then load next GObj and create a new stack frame - -_epilog_operation: -mtctr rRecords -subic. rRecords, rRecords, 1 -blt _return_1 -# /if rRecords-1 is negative, then skip epilog operation. - -# else, CTR = rRecords before decrement -# so it is at least 1; meaning we can use it for a bdnz loop - - _setup_epilog_loop: - crclr bInitThis - addi rAddr, sp, xGObjData - - _epilog_loop: - lwzu rQuery, xStackSize(rAddr) - bt+ bInitThis, _this_initialized - mr. rThis, rQuery - bge- _return_1 - # /if not initialized, rThis = rQuery - # /if rThis is null, then we skip this frame entirely - - _this_initialized: - cmpwi rQuery, 0 - bge- _epilog_iter - # /if rQuery is null (and rThis is not) then we just skip this query - - _compare_ledge_side: - lbz rQ, xECBFlags(rQuery) - lbz rT, xECBFlags(rThis) - rlwinm rQ, rQ, 0, 0x3 - rlwinm rT, rQ, 0, 0x3 - cmpw rQ, rT - bne _epilog_iter - # /if players aren't competing for the same ledge side, - # then skip this query - - _LR_index: - rlwinm rL, rQ, 31, 1 - rlwinm rR, rQ, 0, 1 - # Left Right - # rL = 1 0 -- for order L, R - # rR = 0 1 -- for order R, L - # (boolean index avoids need for conditional branches) - - slwi rI, rR, 2 - addi rI, rI, xLedgeLink - # rI = (rR<<2) + xLedgeLink - # this creates a word-alignment in rI (index) for order R, L - # -- offset xLedgeLink uses the order R, L for memorizing ledge link IDs - - lwzx rT, rThis, rI # load values according to facing index modifier - lwzx rQ, rQuery, rI - cmpw rT, rQ # rThis ledge ID == rQuery Ledge ID? - bne+ _epilog_iter - # skip if players do not share the same ledge - # /else; rQuery and rThis compete for shortest ECB distance - - _calculate_distance: - # calculate distance between rQuery's ECB and the ledge vertex in question, using paired singles - lwz rB, xColLinks(r13) - slwi rI, rT, 3 # index of collision link - lwzx rB, rB, rI - # rB = address of collision link data - - slwi r0, rL, 1 - lhzx rI, rB, r0 - # rI = vertex index - - lwz rB, xColVerts(r13) - mulli rI, rI, 0x18 - addi rI, rI, 8 - psq_lx fVert, rB, rI,0,0 - # fVert = X, Y of stage vertex to measure distance from - - psq_l fECB, xECB(rQuery),0,0 - psq_l f0, xTopN(rQuery),0,0 - ps_add fECB, fECB, f0 - ps_sub f0, fECB, fVert - # f0 = delta between fECB and fVert - - ps_mul fSquare, f0, f0 # square delta pair - ps_sum0 fSum, fSquare, fSquare, fSquare # add pair values together - frsqrte fInvRoot, fSum - fmuls fQuery, fInvRoot, fSum # pythag - # fQuery = square root of (A*A) + (B*B) - - fcmpo cr0, fThis, fQuery - crand lt, lt, bInitThis - blt- _disqualify - fmr fThis, fQuery - mr rThis, rQuery - # /if this is the first player to be measured, - # or if fThis > fQuery (technically >=, but it's a float) - # then fThis = fQuery; continue - - crnot bInitThis, lt - b _epilog_iter - # by using !lt, we're always setting bInitThis to TRUE rather than toggling it - # this is because lt is definitively FALSE for this conditional branch - - _disqualify: - li r0, 0 - stw r0, 0(rAddr) - # /if we've disqualified a GObj, nullify it and continue epilog loop - - _epilog_iter: - bdnz+ _epilog_loop - - - - _break_from_epilog_loop: - # /if remaining number of frames is 0, then run action change for rThis - lwz r3, 0x0(rThis) - stw rRecords, 0x8(sp) - branchl r12, 0x80081370 - lwz rRecords, 0x8(sp) - # call CliffCatch action for winning player - -_return_1: -addi sp, sp, xStackSize -lwz r0, 0x4(sp) -mtlr r0 -blr - - -CODE_START: -# after collision callback event has returned -# -- if this is the final GObj being checked, then -# we select which GObjs actually get to execute cliffcatch action change - -# Gate states: -.set open, 0 # when open, calling cliffcatch action change will behave normally -.set close, 1 # when closed, attempting cliffcatch will log player in xBools field -# -- closed gate will not affect player GObjs with IDs larger than bool field (32) - -# r29 = this player GObj -# r30 = this player data - -lwz r0, 0x8(r29) -cmpwi r0, 0 -bne+ _return -# return immediately if this is not the last player GObj - - _if_last_player: - mr r3, r29 - bl _get_player_GObj_ID - # r4 = first player GObj ID - - _update_GObj_max: - bl _static_vars - mflr r30 - # r30 must now be recovered before returning - # we can use 0x2C(r29) to restore it before returning - - lhz r6, xThisCount(r30) - lwz r3, xBools(r30) - cmpw cr0, r5, r6 - # the new value for xThisCount is in r5 - # /if it's != r6, then a player GObj has been added/destroyed in the chain - - cmpwi cr1, r3, 0 - crorc eq, eq+4, eq - # cr0 eq = cr1 eq | cr0 !eq - - sth r5, xThisCount(r30) - li r0, open - sth r6, xPrevCount(r30) - stw r0, xGate(r30) - # open == 0; so it's also used to nullify bools - - stw r0, xBools(r30) - # updated ID count in variables - # cleared bools - - # r3 = bools (before cleared) - # r4 still = first player GObj - - beq- _end_of_cliffcatch_update - # unlikely case where GObj chain count does not match the previous frame - # -- indicates bool index may be misaligned, so logic is delayed until they can be rechecked - - bl _recursive_cliffcatch_by_distance - # fancy parse function deals with all the dirty details - - _end_of_cliffcatch_update: - li r0, close - stw r0, xGate(r30) - lwz r30, 0x2C(r29) - # close cliffcatch action gate, so that bools can reaccumilate for next check - -_return: -mr r3, r29 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/LedgeGrab.s b/External/PortPriority/LedgeGrab/LedgeGrab.s deleted file mode 100644 index ac3ef550..00000000 --- a/External/PortPriority/LedgeGrab/LedgeGrab.s +++ /dev/null @@ -1,11 +0,0 @@ -# Source: https://smashboards.com/threads/ledge-grab-port-priority-fix.463581/ -# Code converted to work in Slippi - -.set INJ_CheckLastGObj, 0x8006c3a8 - -.set xThisCount, 0x0 -.set xPrevCount, 0x2 -.set xBools, 0x4 -.set xGate, 0x8 # opens/closes access to cliffcatch action changes when called -.set xEnabled, 0xC -.set xGetPlayerGObjID, 0x10 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/SkipAction.asm b/External/PortPriority/LedgeGrab/SkipAction.asm deleted file mode 100644 index 4b678c14..00000000 --- a/External/PortPriority/LedgeGrab/SkipAction.asm +++ /dev/null @@ -1,64 +0,0 @@ -################################################################################ -# Address: 0x80081388 -# Tags: [affects-gameplay] -################################################################################ -.include "Common/Common.s" -.include "./LedgeGrab.s" - -# whenever cliffcatch action is called -# we record it in a 32-bit flag field, indexed by player GObj -# and skip the action for now, so that it can be called later on. -# -- if a GObj is 32nd or higher in the chain, it is not delayed or recorded. -.set open, 0 - -# r30 == r3 -# r3 must be maintained if returning to function - -computeBranchTargetAddress r6, INJ_CheckLastGObj -addi r6, r6, 0x8 -mr r3, r30 -# r3 = unchanged -# r6 = variables base address - -lwz r0, xGate(r6) -lwz r7, xEnabled(r6) -cmpwi cr0, r0, open -cmpwi cr1, r7, 0 -cror eq, eq, eq+4 -beq- _default -# if gate is open, allow call to go through -# otherwise, prevent the call and save it for later as an indexed bool - -# We also treat the code being disabled like having the gate always open. -# this will cause the bools to be blank at te end of collision measurements, -# so it will prevent the code from having any effect. - -addi r7, r6, xGetPlayerGObjID -mtctr r7 -bctrl -# r3 = unchanged -# r5 = player ID -# r6 = unchanged - -cmpwi r5, 32 -bge- _default -# also, don't bother with GObjs that we can't keep track of (32-bit field) -# if for some reason there are that many players, then they won't be affected by the gate logic - - # r5 = player ID - # r6 = variables base address - - li r4, 1 - slw r5, r4, r5 - lwz r0, 0x4(r6) - or r5, r5, r0 - stw r5, 0x4(r6) - # update flagfield to include this ID - - _skip: - branch r12, 0x800814ec - # /if skipping function, return to its epilog - # /else, default returns execution to prolog - -_default: -lwz r3, 0x002C (r3) \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm b/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm deleted file mode 100644 index ef46213b..00000000 --- a/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -# Address: 0x8008E25C -# Tags: [affects-gameplay] -################################################################################ - -lwz r4,0x1198(r29) #Get thrower GObj pointer -cmplwi r4,0 -beq- lbl_FrameAdvance #Run original code if NULL -lwz r4,0x2C(r4) -lbz r4,0xC(r4) #Get port ID of thrower -lbz r0,0xC(r29) #Get port ID of victim -cmpw r0,r4 -bgt- lbl_Skip #If victim is lower priority, skip frame advance -lbl_FrameAdvance: -lis r12, 0x8007 -subi r12, r12, 0x145C -mtlr r12 -blrl -b lbl_END #Exit -lbl_Skip: -lfs f1,0x2340(r29) #Load victim's hitstun frames -lfs f0,-0x7508(rtoc) #Load 1.0F -fadds f0,f1,f0 #hitstun += 1.0F; -stfs f0,0x2340(r29) #Store fixed hitstun -lbl_END: \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm deleted file mode 100644 index 5642c931..00000000 --- a/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm +++ /dev/null @@ -1,6 +0,0 @@ -################################################################################ -# Address: 0x80132ECC -# Tags: [affects-gameplay] -################################################################################ - -addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm deleted file mode 100644 index 960fb2f7..00000000 --- a/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm +++ /dev/null @@ -1,6 +0,0 @@ -################################################################################ -# Address: 0x80133A48 -# Tags: [affects-gameplay] -################################################################################ - -addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm deleted file mode 100644 index 2b028c3b..00000000 --- a/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm +++ /dev/null @@ -1,6 +0,0 @@ -################################################################################ -# Address: 0x80133B68 -# Tags: [affects-gameplay] -################################################################################ - -addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm b/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm deleted file mode 100644 index d43ea5f0..00000000 --- a/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm +++ /dev/null @@ -1,6 +0,0 @@ -################################################################################ -# Address: 0x800E52E8 -# Tags: [affects-gameplay] -################################################################################ - -addi r4, r29, 0x0 \ No newline at end of file From 0213301e5cc29a09d0f9d83663275cacf62db20f Mon Sep 17 00:00:00 2001 From: jlaferri Date: Mon, 21 Nov 2022 14:52:59 -0500 Subject: [PATCH 175/217] hide ranked option --- Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm index ba2a244a..aa126919 100644 --- a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +++ b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm @@ -48,8 +48,8 @@ beq RETURN_LOCKED b EXIT LOGGED_IN_STATE: -# cmpwi r4, OPTION_RANKED_IDX -# beq RETURN_LOCKED +cmpwi r4, OPTION_RANKED_IDX +beq RETURN_LOCKED cmpwi r4, OPTION_LOGIN_IDX beq RETURN_LOCKED cmpwi r4, OPTION_UPDATE_IDX From 027a422e106db0002f80d02ffb1079a1b312a779 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 21 Nov 2022 14:54:35 -0500 Subject: [PATCH 176/217] update codeset --- Output/Netplay/GALE01r2.ini | 19 ++++++++++--------- Output/Netplay/GALJ01r2.ini | 19 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 6abbc315..2d736cd3 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4272,18 +4272,19 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B0 +C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B8 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -4182004C 2C040000 -41820078 2C040001 -41820070 2C040002 -41820068 2C040003 -41820060 2C040005 -41820058 2C040006 -41820050 48000060 +41820054 2C040000 +41820080 2C040001 +41820078 2C040002 +41820070 2C040003 +41820068 2C040005 +41820060 2C040006 +41820058 48000068 +2C040000 4182004C 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 5c90e85b..70bac26b 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4272,18 +4272,19 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B0 +C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B8 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -4182004C 2C040000 -41820078 2C040001 -41820070 2C040002 -41820068 2C040003 -41820060 2C040005 -41820058 2C040006 -41820050 48000060 +41820054 2C040000 +41820080 2C040001 +41820078 2C040002 +41820070 2C040003 +41820068 2C040005 +41820060 2C040006 +41820058 48000068 +2C040000 4182004C 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 From a6785d630b28352df15616c06b81d7d46998cf4d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 21 Nov 2022 15:06:57 -0500 Subject: [PATCH 177/217] add unused port priority fix codes to external --- .../PortPriority/FighterGrab/FighterGrab.asm | 205 +++++++++++ .../PortPriority/LedgeGrab/CheckLastGObj.asm | 329 ++++++++++++++++++ External/PortPriority/LedgeGrab/LedgeGrab.s | 16 + .../PortPriority/LedgeGrab/SkipAction.asm | 64 ++++ .../ThrowHitstun/FixThrowHitstun.asm | 25 ++ .../ThrowHitstun/SetPtrBowser1.asm | 6 + .../ThrowHitstun/SetPtrBowser2.asm | 6 + .../ThrowHitstun/SetPtrBowser3.asm | 6 + .../ThrowHitstun/SetPtrFalconGanon.asm | 6 + 9 files changed, 663 insertions(+) create mode 100644 External/PortPriority/FighterGrab/FighterGrab.asm create mode 100644 External/PortPriority/LedgeGrab/CheckLastGObj.asm create mode 100644 External/PortPriority/LedgeGrab/LedgeGrab.s create mode 100644 External/PortPriority/LedgeGrab/SkipAction.asm create mode 100644 External/PortPriority/ThrowHitstun/FixThrowHitstun.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser1.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser2.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrBowser3.asm create mode 100644 External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm diff --git a/External/PortPriority/FighterGrab/FighterGrab.asm b/External/PortPriority/FighterGrab/FighterGrab.asm new file mode 100644 index 00000000..9bdad4af --- /dev/null +++ b/External/PortPriority/FighterGrab/FighterGrab.asm @@ -0,0 +1,205 @@ +################################################################################ +# Address: 0x80078C04 +# Tags: [affects-gameplay] +################################################################################ +.set HSD_Randi, 0x80380580 +.set CheckPrevHitPlayers, 0x8000ACFC +.set CompareScaleZ, 0x8007F804 +.set GrabCheckOverlap, 0x80007ECC +.set LineCheckObstruct, 0x80084CE4 +.set CheckNextGObj, 0x80078C4C + +stfs f1,0x20(sp) #Backup this fighter's unk grab position var in stack + +addi r3,r29,0 #Current victim's GObj +addi r4,r25,0 #This GObj +bl lbl_GrabCheckVictim + +cmpwi r3,0 #Check if victim is also grabbing this fighter +beq- lbl_Win #If victim is not feeling touchy, this fighter wins the interaction + +lfs f1,0x1830(r30) #This fighter's damage +lfs f0,0x1830(r28) #Victim's damage + +fcmpo cr0,f1,f0 #Compare this fighter's % to victim's +cror 2,0,2 #OR cr0_lt with cr0_eq and put result in cr_eq to dodge NaN edge cases +bne- lbl_Lose #If this fighter has a higher % than the victim, lose the interaction + +fcmpu cr0,f1,f0 #Check if both %s are equal +bne- lbl_Win #If this fighter REALLY has less damage than the victim, win the grab + +li r3,2 #Load 2 into randomizer to get a 50/50 chance to beat victim if %s are equal +branchl r12,HSD_Randi #HSD integer randomizer + +cmpwi r3,0 +beq- lbl_Lose #If result is 0, lose the interaction + +lbl_Win: +lwz r0,0(r28) #Get victim's GObj pointer +b lbl_EXIT #Go to injection exit + +lbl_Lose: + +#Documentation on 0x1A58 and 0x1A5C is conflicting, not entirely sure what their +#true purpose is, but they are both related to attacker/victim logic +#li r0,0 #Set r0 to NULL +#stw r0,0x1A5C(r30) #Store NULL pointer to this fighter's hitlag partner pointer? +#stw r0,0x1A58(r30) #Store NULL pointer to this fighter's victim pointer? +#lbz r3,0x221B(r30) #Load flags at 0x221B +#rlwimi r3,r0,2,29,29 #Move r0 over bit 29 of r3 +#stb r3,0x221B(r30) #Grab bool is now false +#lfs f1,0x20(sp) #Load grab position thingy + +branch r12,CheckNextGObj #Go to line of code that stores grab position thingy + +lbl_EXIT: +lfs f1,0x20(sp) #Load grab position thingy +b lbl_Return + +.set rHitLoop, 31 +.set rThisFP, 30 +.set rVicFP, 29 +.set rLoopHitbox, 28 +.set rHit, 27 +.set rThisObj, 26 +.set rVicHurtbox, 25 +.set rLoopHurtbox, 24 +.set rReturn, 23 + +lbl_GrabCheckVictim: + +mflr r0 #Get return pointer from link register +stw r0,0x4(sp) #Store link register at top of current stack position +stwu sp,-0x40(sp) #Make space for 0x40 bytes in the stack +stfd f31,0x38(sp) #Backup f31 so we can store 0.0F to it +stmw r23,0x14(sp) #Backup all registers from r23 until r31 + +addi rThisObj,r3,0 #Store this GObj +lwz rThisFP,0x2C(rThisObj) #Get this GObjs user_data +lwz rVicFP,0x2C(r4) #Get victim's user_data + +li rLoopHitbox,0 #Init loop counter + +lfs f0,-0x76D0(rtoc) +stfs f0,0x216C(rThisFP) #Get and store maximum single-precision float limit + +addi rHitLoop,rThisFP,0 #Move this fighter's data to temporary hitbox loop register + +li rReturn,0 #Init return value, this stays at "false" unless all checks are passed + +lfs f31,-0x7700(rtoc) #Load 0.0F + +lbl_LoopHitboxStart: +addi r3,rHitLoop,0x914 #Get address of the start of this fighter's hitbox array +lwz r0,0x914(rThisFP) #Load hitbox state +addi rHit,r3,0 #Move hitbox struct address to reserved hitbox register +cmpwi r0,0 #Check if hitbox state is "disabled" +beq- lbl_LoopIncHitbox #If hitbox is disabled, check for the next one + +lwz r0,0x30(r3) #Get hitbox element +cmplwi r0,8 #Check if hitbox's element is "grab" +bne- lbl_LoopIncHitbox #If we're not dealing with a grabbox, check next hitbox + +lbz r0,0x40(r3) #Get hitbox flags +rlwinm. r0,r0,27,31,31 #Check to ignore airborne fighters +beq- lbl_CheckFlagNext +lwz r0,0xE0(rVicFP) #Get ground_or_air +cmpwi r0,1 #Check if fighter is airborne +beq- lbl_SkipToCheckPrevHit +lbl_CheckFlagNext: +lbz r0,0x40(r3) #Get hitbox flags +rlwinm. r0,r0,28,31,31 #Check if fighter is grounded +beq- lbl_LoopIncHitbox +lwz r0,0xE0(rVicFP) #Get grorund_or_air +cmpwi r0,0 #Check if fighter is grounded +bne- lbl_LoopIncHitbox #Check next hitbox if airborne + +lbl_SkipToCheckPrevHit: +addi r3,rVicFP,0 +addi r4,rHit,0 +branchl r12,CheckPrevHitPlayers #Check previously hit players + +cmpwi r3,0 +bne- lbl_LoopIncHitbox #Check next hitbox if victim has already been hit by this one + +addi rVicHurtbox,rVicFP,0 #Move victim's user_data to temporary hurtbox register +li rLoopHurtbox,0 #Init hurtbox loop +b lbl_LoopHurtboxCheck #Go to hurtbox loop count + +lbl_LoopHurtboxStart: +lwz r0,0x11E8(rVicHurtbox) #Get hurtbox's grab enable bool? +cmpwi r0,0 +beq- lbl_LoopIncHitboxHurtbox #If hurtbox cannot be grabbed, check the next one + +mr r3,rVicFP +branchl r12,CompreScaleZ #Compare victim's Z-scale to 0.0F + +lfs f1,0x38(rThisFP) #Get this fighter's Y-scale +mr r5,r3 #Move float* address of Z-scale? +lfs f2,0x38(rVicFP) #Get victim's Y-scale +mr r3,rHit +lfs f3,0xB8(rVicFP) #Get victim's current Z-position +addi r4,rVicHurtbox,4512 #Address of current hurtbox's data +branchl r12,GrabCheckOverlap #Check for grab overlap + +cmpwi r3,0 +beq- lbl_LoopIncHitboxHurtbox #If there is no overlap, check the next hurtbox + +addi r3,rThisFP,0 +addi r4,rVicFP,0 +branchl r12,LineCheckObstruct #Check for obstructions between the two fighters + +cmpwi r3,0 +bne- lbl_END #If there are obstructions, exit the function with FALSE in r23 + +#Series of initializations from original grab logic, to flag the victim as if we've attacked them +#We don't want that in this case, so this block is commented out +#addi r3,rThisFP,0 +#addi r4,rHit,0 +#addi r6,rVicFP,0 +#li r5,0 +#li r7,0 +#bl 0x80076808 + +lfs f1,0xB0(rVicFP) #Get victim's X-position +lfs f0,0xB0(rThisFP) #Get this fighter's X-position + +fsubs f1,f1,f0 #Subtract this fighter's X-pos from victim's X-pos +fcmpo cr0,f1,f31 #Compare to 0.0F +bge- lbl_SkipNeg #If positive, value is already absolute + +fneg f1,f1 #Otherwise, flip the sign bit of the negative result (fabs) + +lbl_SkipNeg: +lfs f0,0x216C(rThisFP) #Get this fighter's grab distance threshold +fcmpo cr0,f1,f0 #Compare position to 0x216C +bge- lbl_END #Return with FALSE in r23 + +li rReturn,1 #Now, all checks have been passed; both players' grabs overlap +b lbl_END #Return with TRUE in r23 + +lbl_LoopIncHitboxHurtbox: +addi rVicHurtbox, rVicHurtbox, 76 #Get address of next hurtbox struct +addi rLoopHurtbox, rLoopHurtbox, 1 #Incremennt hurtbox loop counter + +lbl_LoopHurtboxCheck: +lbz r0,0x119E(rVicFP) #Get victim's hurtbox count +cmplw rLoopHurtbox,r0 #Check if hurtbox loop count has exceeded victim's number of hurtboxes +blt+ lbl_LoopHurtboxStart + +lbl_LoopIncHitbox: +addi rLoopHitbox,rLoopHitbox,1 #Increment hitbox loop count +cmplwi rLoopHitbox,4 #Check if all four hitboxes have been compared +addi rHitLoop, rHitLoop, 0x138 #Add size of hurtbox struct to temporary hitbox register +blt+ lbl_LoopHitboxStart + +lbl_END: +mr r3,rReturn #Return isOverlap bool +lmw r23,0x14(sp) #Restore all non-volatile registers and return +lwz r0,0x44(sp) #Load return pointer into r0 +lfd f31,0x38(sp) #Restore f31 +addi sp,sp,0x40 #Restore stack position +mtlr r0 #Move return pointer from r0 into link register +blr #Return from subroutine + +lbl_Return: \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/CheckLastGObj.asm b/External/PortPriority/LedgeGrab/CheckLastGObj.asm new file mode 100644 index 00000000..4909e05b --- /dev/null +++ b/External/PortPriority/LedgeGrab/CheckLastGObj.asm @@ -0,0 +1,329 @@ +################################################################################ +# Address: INJ_CheckLastGObj +# Tags: [affects-gameplay] +################################################################################ +.include "Common/Common.s" +.include "./LedgeGrab.s" + +b CODE_START + +_static_vars: +blrl +.long 0, 0, 0, 1 +# allocations for variables +# last word is a flag that enables/disables the code. set to 0 to disable + +b _get_player_GObj_ID # xGetPlayerGObjID + +_get_player_GObj_ID: +# r3 = player GObj +# returns: +# r3 = unchanged +# r4 = first player GObj +# r5 = ID + +mr r4, r3 +li r5, -1 +# r3 = this GObj +# r4 = counted GObj +# r5 = counter + +_while_first_GObj_not_counted: + lwz r0, 0xC(r4) + addi r5, r5, 1 + cmpwi r0, 0 + bge- _return_0 + mr r4, r0 + b _while_first_GObj_not_counted + # once first GObj is reached, this GObj ID will be finalized + +_return_0: +blr + +_recursive_cliffcatch_by_distance: +# r3 = bools (before cleared) +# r4 = first player GObj +# registers: +.set rBools, 3 +.set rThis, 4 +.set rRecords, 5 +.set rAddr, 7 +.set rQuery, 8 + +# loop registers, for epilog: +.set rL, 9 # Left - order of: ledge vertex ID, ECB side +.set rR, 10 # Right - order of: ledge Link ID +.set rI, 11 # Index - uses rL or rR to create index +.set rT, 3 # This - represents value from rThis index +.set rQ, 12 # Query - represents value from rQuery index + +# rB clobbers rR in late part of epilog loop: +.set rB, 10 # Base + +# float registers used to calculate distance for fQuery and comparing to fThis +.set fThis, 1 +.set fQuery, 2 +.set fVert, 3 +.set fECB, 4 +.set fSquare, 3 +.set fSum, 0 +.set fInvRoot, 4 + +# GObj offsets: +.set xNext, 0x8 + +# Player GObjData offsets: +.set xFacing, 0x2C # float, sign = TRUE if facing left; else facing right +.set xTopN, 0xB0 # XY float pair +.set xECB, 0x784 # XY float pairs left and right, 0x8-aligned +.set xLedgeLink, 0x730 # IDs left and right, 0x4-aligned +.set xECBFlags, 0x824 + +# stack offsets: +.set xGObjData, 0xC +.set xStackSize, 0x10 + +# r13 offsets: +.set xColLinks, -0x51E4 # array of 8-byte indexed structures +.set xColVerts, -0x51E8 # array of 0x18-byte indexed structures + +# loop bools: +.set bInitThis, 31 + +_pre_recursion: +li r0, 32 +mtctr r0 +li rRecords, 0 +# rRecords = incrementing counter tracks number of frames to compare at end +# ctr holds number of GObjs to parse for +# -- ctr loop runs simultaneously with recursion loop to check bools +# -- recursion creates a stack frame for every true bit found in bools field + +_recursion: +mflr r0 +stw r0, 0x4(sp) +stwu sp, -xStackSize(sp) + +cmpwi rThis, 0 +bge- _epilog_operation +# if given GObj exists, then continue CTR loop + +_ctr_loop: + andi. r0, rBools, 1 + srwi rBools, rBools, 1 + bne- _iter_recursion + # /if a bool is found, it triggers an iteration in recursion + # /else, we just check for the next bool in iter_ctr + + _iter_ctr: + lwz rThis, xNext(rThis) + cmpwi rThis, 0 + bdnzt+ lt, _ctr_loop + b _epilog_operation + # /if bool was false + # - then load next GObj, and decrement CTR + # /if (new CTR = 0) OR (next GObj is >= 0) + # - then break from CTR loop and begin return operation + # - else, continue CTR loop + + _iter_recursion: + lwz r0, 0x2C(rThis) + addi rRecords, rRecords, 1 + stw r0, xGObjData(sp) + lwz rThis, xNext(rThis) + bl _recursion + # /if bool was true + # then load next GObj and create a new stack frame + +_epilog_operation: +mtctr rRecords +subic. rRecords, rRecords, 1 +blt _return_1 +# /if rRecords-1 is negative, then skip epilog operation. + +# else, CTR = rRecords before decrement +# so it is at least 1; meaning we can use it for a bdnz loop + + _setup_epilog_loop: + crclr bInitThis + addi rAddr, sp, xGObjData + + _epilog_loop: + lwzu rQuery, xStackSize(rAddr) + bt+ bInitThis, _this_initialized + mr. rThis, rQuery + bge- _return_1 + # /if not initialized, rThis = rQuery + # /if rThis is null, then we skip this frame entirely + + _this_initialized: + cmpwi rQuery, 0 + bge- _epilog_iter + # /if rQuery is null (and rThis is not) then we just skip this query + + _compare_ledge_side: + lbz rQ, xECBFlags(rQuery) + lbz rT, xECBFlags(rThis) + rlwinm rQ, rQ, 0, 0x3 + rlwinm rT, rQ, 0, 0x3 + cmpw rQ, rT + bne _epilog_iter + # /if players aren't competing for the same ledge side, + # then skip this query + + _LR_index: + rlwinm rL, rQ, 31, 1 + rlwinm rR, rQ, 0, 1 + # Left Right + # rL = 1 0 -- for order L, R + # rR = 0 1 -- for order R, L + # (boolean index avoids need for conditional branches) + + slwi rI, rR, 2 + addi rI, rI, xLedgeLink + # rI = (rR<<2) + xLedgeLink + # this creates a word-alignment in rI (index) for order R, L + # -- offset xLedgeLink uses the order R, L for memorizing ledge link IDs + + lwzx rT, rThis, rI # load values according to facing index modifier + lwzx rQ, rQuery, rI + cmpw rT, rQ # rThis ledge ID == rQuery Ledge ID? + bne+ _epilog_iter + # skip if players do not share the same ledge + # /else; rQuery and rThis compete for shortest ECB distance + + _calculate_distance: + # calculate distance between rQuery's ECB and the ledge vertex in question, using paired singles + lwz rB, xColLinks(r13) + slwi rI, rT, 3 # index of collision link + lwzx rB, rB, rI + # rB = address of collision link data + + slwi r0, rL, 1 + lhzx rI, rB, r0 + # rI = vertex index + + lwz rB, xColVerts(r13) + mulli rI, rI, 0x18 + addi rI, rI, 8 + psq_lx fVert, rB, rI,0,0 + # fVert = X, Y of stage vertex to measure distance from + + psq_l fECB, xECB(rQuery),0,0 + psq_l f0, xTopN(rQuery),0,0 + ps_add fECB, fECB, f0 + ps_sub f0, fECB, fVert + # f0 = delta between fECB and fVert + + ps_mul fSquare, f0, f0 # square delta pair + ps_sum0 fSum, fSquare, fSquare, fSquare # add pair values together + frsqrte fInvRoot, fSum + fmuls fQuery, fInvRoot, fSum # pythag + # fQuery = square root of (A*A) + (B*B) + + fcmpo cr0, fThis, fQuery + crand lt, lt, bInitThis + blt- _disqualify + fmr fThis, fQuery + mr rThis, rQuery + # /if this is the first player to be measured, + # or if fThis > fQuery (technically >=, but it's a float) + # then fThis = fQuery; continue + + crnot bInitThis, lt + b _epilog_iter + # by using !lt, we're always setting bInitThis to TRUE rather than toggling it + # this is because lt is definitively FALSE for this conditional branch + + _disqualify: + li r0, 0 + stw r0, 0(rAddr) + # /if we've disqualified a GObj, nullify it and continue epilog loop + + _epilog_iter: + bdnz+ _epilog_loop + + + + _break_from_epilog_loop: + # /if remaining number of frames is 0, then run action change for rThis + lwz r3, 0x0(rThis) + stw rRecords, 0x8(sp) + branchl r12, 0x80081370 + lwz rRecords, 0x8(sp) + # call CliffCatch action for winning player + +_return_1: +addi sp, sp, xStackSize +lwz r0, 0x4(sp) +mtlr r0 +blr + + +CODE_START: +# after collision callback event has returned +# -- if this is the final GObj being checked, then +# we select which GObjs actually get to execute cliffcatch action change + +# Gate states: +.set open, 0 # when open, calling cliffcatch action change will behave normally +.set close, 1 # when closed, attempting cliffcatch will log player in xBools field +# -- closed gate will not affect player GObjs with IDs larger than bool field (32) + +# r29 = this player GObj +# r30 = this player data + +lwz r0, 0x8(r29) +cmpwi r0, 0 +bne+ _return +# return immediately if this is not the last player GObj + + _if_last_player: + mr r3, r29 + bl _get_player_GObj_ID + # r4 = first player GObj ID + + _update_GObj_max: + bl _static_vars + mflr r30 + # r30 must now be recovered before returning + # we can use 0x2C(r29) to restore it before returning + + lhz r6, xThisCount(r30) + lwz r3, xBools(r30) + cmpw cr0, r5, r6 + # the new value for xThisCount is in r5 + # /if it's != r6, then a player GObj has been added/destroyed in the chain + + cmpwi cr1, r3, 0 + crorc eq, eq+4, eq + # cr0 eq = cr1 eq | cr0 !eq + + sth r5, xThisCount(r30) + li r0, open + sth r6, xPrevCount(r30) + stw r0, xGate(r30) + # open == 0; so it's also used to nullify bools + + stw r0, xBools(r30) + # updated ID count in variables + # cleared bools + + # r3 = bools (before cleared) + # r4 still = first player GObj + + beq- _end_of_cliffcatch_update + # unlikely case where GObj chain count does not match the previous frame + # -- indicates bool index may be misaligned, so logic is delayed until they can be rechecked + + bl _recursive_cliffcatch_by_distance + # fancy parse function deals with all the dirty details + + _end_of_cliffcatch_update: + li r0, close + stw r0, xGate(r30) + lwz r30, 0x2C(r29) + # close cliffcatch action gate, so that bools can reaccumilate for next check + +_return: +mr r3, r29 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/LedgeGrab.s b/External/PortPriority/LedgeGrab/LedgeGrab.s new file mode 100644 index 00000000..a49fe5c9 --- /dev/null +++ b/External/PortPriority/LedgeGrab/LedgeGrab.s @@ -0,0 +1,16 @@ +.ifndef HEADER_LEDGE_GRAB + +# Source: https://smashboards.com/threads/ledge-grab-port-priority-fix.463581/ +# Code converted to work in Slippi by Fizzi + +.set INJ_CheckLastGObj, 0x8006c3a8 + +.set xThisCount, 0x0 +.set xPrevCount, 0x2 +.set xBools, 0x4 +.set xGate, 0x8 # opens/closes access to cliffcatch action changes when called +.set xEnabled, 0xC +.set xGetPlayerGObjID, 0x10 + +.endif +.set HEADER_LEDGE_GRAB, 1 \ No newline at end of file diff --git a/External/PortPriority/LedgeGrab/SkipAction.asm b/External/PortPriority/LedgeGrab/SkipAction.asm new file mode 100644 index 00000000..4b678c14 --- /dev/null +++ b/External/PortPriority/LedgeGrab/SkipAction.asm @@ -0,0 +1,64 @@ +################################################################################ +# Address: 0x80081388 +# Tags: [affects-gameplay] +################################################################################ +.include "Common/Common.s" +.include "./LedgeGrab.s" + +# whenever cliffcatch action is called +# we record it in a 32-bit flag field, indexed by player GObj +# and skip the action for now, so that it can be called later on. +# -- if a GObj is 32nd or higher in the chain, it is not delayed or recorded. +.set open, 0 + +# r30 == r3 +# r3 must be maintained if returning to function + +computeBranchTargetAddress r6, INJ_CheckLastGObj +addi r6, r6, 0x8 +mr r3, r30 +# r3 = unchanged +# r6 = variables base address + +lwz r0, xGate(r6) +lwz r7, xEnabled(r6) +cmpwi cr0, r0, open +cmpwi cr1, r7, 0 +cror eq, eq, eq+4 +beq- _default +# if gate is open, allow call to go through +# otherwise, prevent the call and save it for later as an indexed bool + +# We also treat the code being disabled like having the gate always open. +# this will cause the bools to be blank at te end of collision measurements, +# so it will prevent the code from having any effect. + +addi r7, r6, xGetPlayerGObjID +mtctr r7 +bctrl +# r3 = unchanged +# r5 = player ID +# r6 = unchanged + +cmpwi r5, 32 +bge- _default +# also, don't bother with GObjs that we can't keep track of (32-bit field) +# if for some reason there are that many players, then they won't be affected by the gate logic + + # r5 = player ID + # r6 = variables base address + + li r4, 1 + slw r5, r4, r5 + lwz r0, 0x4(r6) + or r5, r5, r0 + stw r5, 0x4(r6) + # update flagfield to include this ID + + _skip: + branch r12, 0x800814ec + # /if skipping function, return to its epilog + # /else, default returns execution to prolog + +_default: +lwz r3, 0x002C (r3) \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm b/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm new file mode 100644 index 00000000..ef46213b --- /dev/null +++ b/External/PortPriority/ThrowHitstun/FixThrowHitstun.asm @@ -0,0 +1,25 @@ +################################################################################ +# Address: 0x8008E25C +# Tags: [affects-gameplay] +################################################################################ + +lwz r4,0x1198(r29) #Get thrower GObj pointer +cmplwi r4,0 +beq- lbl_FrameAdvance #Run original code if NULL +lwz r4,0x2C(r4) +lbz r4,0xC(r4) #Get port ID of thrower +lbz r0,0xC(r29) #Get port ID of victim +cmpw r0,r4 +bgt- lbl_Skip #If victim is lower priority, skip frame advance +lbl_FrameAdvance: +lis r12, 0x8007 +subi r12, r12, 0x145C +mtlr r12 +blrl +b lbl_END #Exit +lbl_Skip: +lfs f1,0x2340(r29) #Load victim's hitstun frames +lfs f0,-0x7508(rtoc) #Load 1.0F +fadds f0,f1,f0 #hitstun += 1.0F; +stfs f0,0x2340(r29) #Store fixed hitstun +lbl_END: \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm new file mode 100644 index 00000000..5642c931 --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrBowser1.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x80132ECC +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm new file mode 100644 index 00000000..960fb2f7 --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrBowser2.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x80133A48 +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm b/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm new file mode 100644 index 00000000..2b028c3b --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrBowser3.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x80133B68 +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file diff --git a/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm b/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm new file mode 100644 index 00000000..d43ea5f0 --- /dev/null +++ b/External/PortPriority/ThrowHitstun/SetPtrFalconGanon.asm @@ -0,0 +1,6 @@ +################################################################################ +# Address: 0x800E52E8 +# Tags: [affects-gameplay] +################################################################################ + +addi r4, r29, 0x0 \ No newline at end of file From 348ead6bbb6ad4f0f3b37375b696a058d05b5dfd Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Mon, 21 Nov 2022 12:34:38 -0800 Subject: [PATCH 178/217] use batched in make --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index bbb6737b..5c967a9e 100644 --- a/Makefile +++ b/Makefile @@ -48,25 +48,25 @@ ini: $(INI_TARGETS) # PORT B is the general use case, PORT A is for debugging $(CONSOLE_CORE_PORTB): console_core.json - gecko build -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -c $< + gecko build -batched -defsym "STG_EXIIndex=1" -o "Output/Console/g_core.bin" -c $< @echo "" $(CONSOLE_CORE_PORTA): console_core.json - gecko build -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" -c $< + gecko build -batched -defsym "STG_EXIIndex=0" -o "Output/Console/g_core_porta.bin" -c $< @echo "" $(CONSOLE): - gecko build -c $@ + gecko build -batched -c $@ @echo "" # ----------------------------------------------------------------------------- # Targets for Dolphin's {netplay,playback} .ini configuration files $(NETPLAY_INI): $(NETPLAY) - @gecko build -defsym "STG_EXIIndex=1" -c $< + @gecko build -batched -defsym "STG_EXIIndex=1" -c $< @echo "" $(PLAYBACK_INI): $(PLAYBACK) - @gecko build -defsym "STG_EXIIndex=1" -c $< + @gecko build -batched -defsym "STG_EXIIndex=1" -c $< @echo "" # ----------------------------------------------------------------------------- From 89128bc42c2c00f384f640fd7e3935de3bba472a Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Mon, 21 Nov 2022 12:46:11 -0800 Subject: [PATCH 179/217] update lists --- Output/InjectionLists/list_console_PAL.json | 33 +- Output/InjectionLists/list_console_UCF.json | 12 +- .../list_console_UCF_stealth.json | 9 +- Output/InjectionLists/list_console_core.json | 112 ++- .../list_console_crash_output.json | 3 +- .../list_console_gameplay_both.json | 15 +- .../list_console_gameplay_lgl.json | 6 + .../list_console_gameplay_wobbling.json | 9 +- .../InjectionLists/list_console_lag_pd.json | 3 + .../list_console_lag_pdhalfvb.json | 9 +- .../list_console_mods_friendlies.json | 45 +- .../list_console_mods_stealth.json | 15 +- .../list_console_mods_tournament.json | 33 +- .../InjectionLists/list_console_safety.json | 6 +- .../list_console_screen_wide.json | 39 +- .../list_console_screen_wide_shutters.json | 42 +- .../list_console_stages_all.json | 18 +- .../list_console_stages_stadium.json | 12 +- Output/InjectionLists/list_netplay.json | 647 +++++++++++++----- 19 files changed, 763 insertions(+), 305 deletions(-) diff --git a/Output/InjectionLists/list_console_PAL.json b/Output/InjectionLists/list_console_PAL.json index a334580a..7afcdd25 100644 --- a/Output/InjectionLists/list_console_PAL.json +++ b/Output/InjectionLists/list_console_PAL.json @@ -2,68 +2,79 @@ "Details": [ { "InjectionAddress": "80068F30", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Character DAT Patcher.asm", "Tags": "" }, { "InjectionAddress": "802F9A3C", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/PAL Stock Icons.asm", "Tags": "" }, { "InjectionAddress": "8010FC44", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/DK_AerialUpB.asm", "Tags": "" }, { "InjectionAddress": "8010FB64", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/DK_GroundedUpB.asm", "Tags": "" }, { "InjectionAddress": "800796E0", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/DetectionHitboxes.asm", "Tags": "" }, { "InjectionAddress": "801239A8", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/ICs_FreezeGlitch.asm", "Tags": "" }, { "InjectionAddress": "803CE4D4", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/Samus_BombJump.asm", "Tags": "" }, { "InjectionAddress": "802B7E54", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/Samus_Extender1.asm", "Tags": "" }, { "InjectionAddress": "802B808C", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Core/Additional/Samus_Extender2.asm", "Tags": "" }, { "InjectionAddress": "80266978", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Indicators/PAL CSS Indicator.asm", "Tags": "" }, { "InjectionAddress": "804DEC14", + "Name": "PAL Toggle", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PAL/Toggle/PALToggleEnable.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_UCF.json b/Output/InjectionLists/list_console_UCF.json index 5b676153..8177a93d 100644 --- a/Output/InjectionLists/list_console_UCF.json +++ b/Output/InjectionLists/list_console_UCF.json @@ -2,26 +2,30 @@ "Details": [ { "InjectionAddress": "800C9A44", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF DB.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800998A4", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF SD.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800908F4", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF Tumble.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802662D0", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Indicator/UCF Text.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_UCF_stealth.json b/Output/InjectionLists/list_console_UCF_stealth.json index 8ac153ad..55a560ce 100644 --- a/Output/InjectionLists/list_console_UCF_stealth.json +++ b/Output/InjectionLists/list_console_UCF_stealth.json @@ -2,20 +2,23 @@ "Details": [ { "InjectionAddress": "800C9A44", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF DB.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800998A4", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF SD.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800908F4", + "Name": "UCF Slippi", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF Tumble.asm", "Tags": "[affects-gameplay]" } ] diff --git a/Output/InjectionLists/list_console_core.json b/Output/InjectionLists/list_console_core.json index 21868a20..ba1abf03 100644 --- a/Output/InjectionLists/list_console_core.json +++ b/Output/InjectionLists/list_console_core.json @@ -2,326 +2,380 @@ "Details": [ { "InjectionAddress": "801BFA20", + "Name": "General", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Boot to CSS/Boot To CSS.asm", "Tags": "" }, { "InjectionAddress": "8015EE98", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015EDDC", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80164B14", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801648F4", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015EE4C", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015EE14", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D968", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D9D8", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8017229C", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801737B0", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80164658", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801644E8", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8030490C", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803044F0", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A48", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A4C", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A50", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A60", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A78", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D94C", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D984", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8016B480", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B0A14", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "802641B0", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80397878", + "Name": "General", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801AF6F4", + "Name": "General", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Skip Memcard Prompt/Skip Memcard Prompt.asm", "Tags": "" }, { "InjectionAddress": "8025B8BC", + "Name": "General", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/LRAStart From SSS Goes to CSS/LRAStart From SSS Goes to CSS.asm", "Tags": "" }, { "InjectionAddress": "803D4A70", + "Name": "General", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Rumble Off/Rumble Off.asm", "Tags": "" }, { "InjectionAddress": "800679BC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/ExtendPlayerBlock.asm", "Tags": "" }, { "InjectionAddress": "803219EC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/FlushFrameBuffer.asm", "Tags": "" }, { "InjectionAddress": "8016D884", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGameEnd.asm", "Tags": "" }, { "InjectionAddress": "8016E74C", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGameInfo.asm", "Tags": "" }, { "InjectionAddress": "8006DA34", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGamePostFrame.asm", "Tags": "" }, { "InjectionAddress": "8006B0DC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGamePreFrame.asm", "Tags": "" }, { "InjectionAddress": "80005604", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/ShouldRecord.asm", "Tags": "" }, { "InjectionAddress": "8008D698", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/GetLCancelStatus/GetLCancelStatus.asm", "Tags": "" }, { "InjectionAddress": "8006C324", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/GetLCancelStatus/ResetLCancelStatus.asm", "Tags": "" }, { "InjectionAddress": "800055F8", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/GetIsFollower.asm", "Tags": "" }, { "InjectionAddress": "8016D294", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/IncrementFrameIndex.asm", "Tags": "" }, { "InjectionAddress": "801D460C", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D14C8", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D45EC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/Load Transformation.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D4F14", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/Reset isLoaded.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D4610", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D4724", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "804DEC18", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Toggle/PsPreloadToggleEnable.asm", "Tags": "" }, { "InjectionAddress": "801C154C", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Initialize Stage Data/Init Stage Data.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "80068EEC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Initialize Player Data/Init Player Data.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800055F0", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/EXITransferBuffer/EXITransferBuffer.asm", "Tags": "" }, { "InjectionAddress": "800055FC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Gecko/ProcessCodeList.asm", "Tags": "" }, { "InjectionAddress": "80005600", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/ConsoleOverrides/SetGeckoStart.asm", "Tags": "" }, { "InjectionAddress": "800AC5B8", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/NanaDeterminism/NanaDeterminism.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D24FC", + "Name": "Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm", "Tags": "[affects-gameplay]" } ] diff --git a/Output/InjectionLists/list_console_crash_output.json b/Output/InjectionLists/list_console_crash_output.json index 6f3aa28c..3b38f24f 100644 --- a/Output/InjectionLists/list_console_crash_output.json +++ b/Output/InjectionLists/list_console_crash_output.json @@ -2,8 +2,9 @@ "Details": [ { "InjectionAddress": "80394A68", + "Name": "Crash Output", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Debugging/AdditionalCrashInfo/AdditionalCrashInfo.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_gameplay_both.json b/Output/InjectionLists/list_console_gameplay_both.json index 4a1ae627..630b353a 100644 --- a/Output/InjectionLists/list_console_gameplay_both.json +++ b/Output/InjectionLists/list_console_gameplay_both.json @@ -2,56 +2,65 @@ "Details": [ { "InjectionAddress": "801A5E90", + "Name": "Ledge Grab Limit", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8016EBD8", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B0498", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B05CC", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B05C8", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80165C48", + "Name": "Ledge Grab Limit", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800DB880", + "Name": "Disable Wobbling", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventWobbling/Init Wobble Count Air.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800DBBD4", + "Name": "Disable Wobbling", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventWobbling/Init Wobble Count Ground.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8008F090", + "Name": "Disable Wobbling", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventWobbling/Wobble Check.asm", "Tags": "[affects-gameplay]" } ] diff --git a/Output/InjectionLists/list_console_gameplay_lgl.json b/Output/InjectionLists/list_console_gameplay_lgl.json index ed4e054a..b8205180 100644 --- a/Output/InjectionLists/list_console_gameplay_lgl.json +++ b/Output/InjectionLists/list_console_gameplay_lgl.json @@ -2,36 +2,42 @@ "Details": [ { "InjectionAddress": "801A5E90", + "Name": "Ledge Grab Limit", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8016EBD8", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B0498", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B05CC", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B05C8", + "Name": "Ledge Grab Limit", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80165C48", + "Name": "Ledge Grab Limit", "Codetype": "C2", "Annotation": "", "Tags": "" diff --git a/Output/InjectionLists/list_console_gameplay_wobbling.json b/Output/InjectionLists/list_console_gameplay_wobbling.json index 654dd9c1..5c2ba246 100644 --- a/Output/InjectionLists/list_console_gameplay_wobbling.json +++ b/Output/InjectionLists/list_console_gameplay_wobbling.json @@ -2,20 +2,23 @@ "Details": [ { "InjectionAddress": "800DB880", + "Name": "Disable Wobbling", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventWobbling/Init Wobble Count Air.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800DBBD4", + "Name": "Disable Wobbling", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventWobbling/Init Wobble Count Ground.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8008F090", + "Name": "Disable Wobbling", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventWobbling/Wobble Check.asm", "Tags": "[affects-gameplay]" } ] diff --git a/Output/InjectionLists/list_console_lag_pd.json b/Output/InjectionLists/list_console_lag_pd.json index a3d10628..da380af3 100644 --- a/Output/InjectionLists/list_console_lag_pd.json +++ b/Output/InjectionLists/list_console_lag_pd.json @@ -2,18 +2,21 @@ "Details": [ { "InjectionAddress": "801A4DA0", + "Name": "Polling Drift Fix", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4DB4", + "Name": "Polling Drift Fix", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80019860", + "Name": "Polling Drift Fix", "Codetype": "04", "Annotation": "", "Tags": "" diff --git a/Output/InjectionLists/list_console_lag_pdhalfvb.json b/Output/InjectionLists/list_console_lag_pdhalfvb.json index 30602f13..3a882bd7 100644 --- a/Output/InjectionLists/list_console_lag_pdhalfvb.json +++ b/Output/InjectionLists/list_console_lag_pdhalfvb.json @@ -2,44 +2,51 @@ "Details": [ { "InjectionAddress": "801A4D98", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A5050", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4BEC", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80158268", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8034EB60", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80397878", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4570", + "Name": "Polling Drift + Half Visual Buffer Fixes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Lag Reduction/Force HD/480pDeflickerOff.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_mods_friendlies.json b/Output/InjectionLists/list_console_mods_friendlies.json index 978a211d..ec94ca9c 100644 --- a/Output/InjectionLists/list_console_mods_friendlies.json +++ b/Output/InjectionLists/list_console_mods_friendlies.json @@ -2,92 +2,107 @@ "Details": [ { "InjectionAddress": "8016E510", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/NeutralSpawn/NeutralSpawn.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802FCCD8", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm", "Tags": "" }, { "InjectionAddress": "80261B1C", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm", "Tags": "" }, { "InjectionAddress": "80261B30", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm", "Tags": "" }, { "InjectionAddress": "802605FC", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm", "Tags": "" }, { "InjectionAddress": "804DC47C", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/CSS Player Hands Default to HMN Button/Change Default Hand Position.asm", "Tags": "" }, { "InjectionAddress": "80261A6C", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/CSS Player Hands Default to HMN Button/Fix A Button Buffer When Exiting Name Entry.asm", "Tags": "" }, { "InjectionAddress": "80266CE0", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Disable FoD During Doubles/Disable FoD During Doubles.asm", "Tags": "" }, { "InjectionAddress": "802608D8", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Toggle Rumble From CSS/Toggle Rumble From CSS.asm", "Tags": "" }, { "InjectionAddress": "80259B84", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Stage Striking/Random_Stage_Fix.asm", "Tags": "" }, { "InjectionAddress": "80259C40", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Stage Striking/Stage_Striking.asm", "Tags": "" }, { "InjectionAddress": "801A5B14", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Salty Runback/Salty Runback.asm", "Tags": "" }, { "InjectionAddress": "80265220", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Winners Names are Gold on CSS/Change Name Color.asm", "Tags": "" }, { "InjectionAddress": "8016EA30", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Winners Names are Gold on CSS/Remember Who LRA Started.asm", "Tags": "" }, { "InjectionAddress": "8016EBAC", + "Name": "Full friendlies codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_mods_stealth.json b/Output/InjectionLists/list_console_mods_stealth.json index bc7e6975..e66fa495 100644 --- a/Output/InjectionLists/list_console_mods_stealth.json +++ b/Output/InjectionLists/list_console_mods_stealth.json @@ -2,32 +2,37 @@ "Details": [ { "InjectionAddress": "8016E510", + "Name": "Stealth tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/NeutralSpawn/NeutralSpawn.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802FCCD8", + "Name": "Stealth tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm", "Tags": "" }, { "InjectionAddress": "80261B1C", + "Name": "Stealth tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm", "Tags": "" }, { "InjectionAddress": "80261B30", + "Name": "Stealth tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm", "Tags": "" }, { "InjectionAddress": "802605FC", + "Name": "Stealth tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_mods_tournament.json b/Output/InjectionLists/list_console_mods_tournament.json index a40a82b7..68b0ce74 100644 --- a/Output/InjectionLists/list_console_mods_tournament.json +++ b/Output/InjectionLists/list_console_mods_tournament.json @@ -2,68 +2,79 @@ "Details": [ { "InjectionAddress": "8016E510", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/NeutralSpawn/NeutralSpawn.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802FCCD8", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm", "Tags": "" }, { "InjectionAddress": "80261B1C", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm", "Tags": "" }, { "InjectionAddress": "80261B30", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm", "Tags": "" }, { "InjectionAddress": "802605FC", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm", "Tags": "" }, { "InjectionAddress": "804DC47C", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/CSS Player Hands Default to HMN Button/Change Default Hand Position.asm", "Tags": "" }, { "InjectionAddress": "80261A6C", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/CSS Player Hands Default to HMN Button/Fix A Button Buffer When Exiting Name Entry.asm", "Tags": "" }, { "InjectionAddress": "80266CE0", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Disable FoD During Doubles/Disable FoD During Doubles.asm", "Tags": "" }, { "InjectionAddress": "802608D8", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Toggle Rumble From CSS/Toggle Rumble From CSS.asm", "Tags": "" }, { "InjectionAddress": "80259B84", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Stage Striking/Random_Stage_Fix.asm", "Tags": "" }, { "InjectionAddress": "80259C40", + "Name": "Full tournament codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Stage Striking/Stage_Striking.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_safety.json b/Output/InjectionLists/list_console_safety.json index 160b2454..07ac560f 100644 --- a/Output/InjectionLists/list_console_safety.json +++ b/Output/InjectionLists/list_console_safety.json @@ -2,14 +2,16 @@ "Details": [ { "InjectionAddress": "8022F958", + "Name": "Tournament safety codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/FixedDamageRatio/SkipInputHandling.asm", "Tags": "" }, { "InjectionAddress": "80167F40", + "Name": "Tournament safety codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/PreventPauseSoftLocks/ForcePauseOn.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_screen_wide.json b/Output/InjectionLists/list_console_screen_wide.json index 764a589b..358a92d3 100644 --- a/Output/InjectionLists/list_console_screen_wide.json +++ b/Output/InjectionLists/list_console_screen_wide.json @@ -2,80 +2,93 @@ "Details": [ { "InjectionAddress": "803BB05C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Fix Screen Flash.asm", "Tags": "" }, { "InjectionAddress": "8036A4A8", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Overwrite CObj Values.asm", "Tags": "" }, { "InjectionAddress": "804DDB58", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Adjust Bubble Zoom.asm", "Tags": "" }, { "InjectionAddress": "80086B24", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Draw High Poly Models.asm", "Tags": "" }, { "InjectionAddress": "80030C7C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Left Camera Bound.asm", "Tags": "" }, { "InjectionAddress": "80030C88", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Right Camera Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB30", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 1.asm", "Tags": "" }, { "InjectionAddress": "804DDB34", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 2.asm", "Tags": "" }, { "InjectionAddress": "804DDB2C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Negative Vertical Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB28", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Positive Vertical Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB4C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Widen Bubble Region.asm", "Tags": "" }, { "InjectionAddress": "802FCFC4", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Nametag Fixes/Adjust Nametag Background X Scale.asm", "Tags": "" }, { "InjectionAddress": "804DDB84", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_screen_wide_shutters.json b/Output/InjectionLists/list_console_screen_wide_shutters.json index c919d946..27df8f8f 100644 --- a/Output/InjectionLists/list_console_screen_wide_shutters.json +++ b/Output/InjectionLists/list_console_screen_wide_shutters.json @@ -2,86 +2,100 @@ "Details": [ { "InjectionAddress": "803BB05C", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Fix Screen Flash.asm", "Tags": "" }, { "InjectionAddress": "8036A4A8", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Overwrite CObj Values.asm", "Tags": "" }, { "InjectionAddress": "804DDB58", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Adjust Bubble Zoom.asm", "Tags": "" }, { "InjectionAddress": "80086B24", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Draw High Poly Models.asm", "Tags": "" }, { "InjectionAddress": "80030C7C", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Left Camera Bound.asm", "Tags": "" }, { "InjectionAddress": "80030C88", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Right Camera Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB30", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 1.asm", "Tags": "" }, { "InjectionAddress": "804DDB34", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 2.asm", "Tags": "" }, { "InjectionAddress": "804DDB2C", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Negative Vertical Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB28", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Positive Vertical Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB4C", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Widen Bubble Region.asm", "Tags": "" }, { "InjectionAddress": "802FCFC4", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Nametag Fixes/Adjust Nametag Background X Scale.asm", "Tags": "" }, { "InjectionAddress": "804DDB84", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm", "Tags": "" }, { "InjectionAddress": "80302784", + "Name": "Optional: 16:9 -\u003e 73:60", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/WidescreenShutters/Add Shutters.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_console_stages_all.json b/Output/InjectionLists/list_console_stages_all.json index 53632f53..44a7a4e3 100644 --- a/Output/InjectionLists/list_console_stages_all.json +++ b/Output/InjectionLists/list_console_stages_all.json @@ -2,38 +2,44 @@ "Details": [ { "InjectionAddress": "8025A530", + "Name": "Frozen Stages", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen All/Blink SSS/EditColor.asm", "Tags": "" }, { "InjectionAddress": "8025B718", + "Name": "Frozen Stages", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen All/Blink SSS/SavePointer.asm", "Tags": "" }, { "InjectionAddress": "803E67E0", + "Name": "Frozen Stages", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen All/Core/1.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8021AAE4", + "Name": "Frozen Stages", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen All/Core/2.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D1548", + "Name": "Frozen Stages", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen All/Core/3.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801E3348", + "Name": "Frozen Stages", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen All/Core/4.asm", "Tags": "[affects-gameplay]" } ] diff --git a/Output/InjectionLists/list_console_stages_stadium.json b/Output/InjectionLists/list_console_stages_stadium.json index 3f7d372c..49d61778 100644 --- a/Output/InjectionLists/list_console_stages_stadium.json +++ b/Output/InjectionLists/list_console_stages_stadium.json @@ -2,26 +2,30 @@ "Details": [ { "InjectionAddress": "801D45FC", + "Name": "Frozen Stadium", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen PS/Core/FreezePokemon.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8025A530", + "Name": "Frozen Stadium", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen PS/PSBlinkBlue/PSEditColor.asm", "Tags": "" }, { "InjectionAddress": "8025B718", + "Name": "Frozen Stadium", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen PS/PSBlinkBlue/SavePointer.asm", "Tags": "" }, { "InjectionAddress": "804DEC1C", + "Name": "Frozen Stadium", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Frozen PS/Toggle/FrzPkmToggleEnable.asm", "Tags": "" } ] diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 13bdfb75..e37f273f 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -2,1724 +2,2011 @@ "Details": [ { "InjectionAddress": "8015EE98", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015EDDC", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80164B14", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801648F4", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015EE4C", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015EE14", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D968", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D9D8", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8017229C", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801737B0", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80164658", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801644E8", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8030490C", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803044F0", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A48", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A4C", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A50", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A60", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D4A78", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801AF6F4", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Skip Memcard Prompt/Skip Memcard Prompt.asm", "Tags": "" }, { "InjectionAddress": "8015D94C", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015D984", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A5B14", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Salty Runback/Salty Runback.asm", "Tags": "" }, { "InjectionAddress": "8016B480", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8022D638", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801B0A14", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8016E510", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/NeutralSpawn/NeutralSpawn.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802641B0", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8021AAE4", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8025B8BC", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80452F54", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80452F58", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80452F5C", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80452F60", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80452F64", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8002CB34", + "Name": "Required: General Codes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800C9A44", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF DB.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800998A4", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF SD.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800908F4", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Logic/UCF Tumble.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802662D0", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/UCF 0.8/Indicator/UCF Text.asm", "Tags": "" }, { "InjectionAddress": "8026325C", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/DPad Down at CSS for Random Stage/DPad Down at CSS for Random Stage.asm", "Tags": "" }, { "InjectionAddress": "801C26B0", + "Name": "Required: General Codes", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8015ECEC", + "Name": "Required: General Codes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8016EBA8", + "Name": "Required: General Codes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A45A8", + "Name": "Required: General Codes", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "804DC47C", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/CSS Player Hands Default to HMN Button/Change Default Hand Position.asm", "Tags": "" }, { "InjectionAddress": "80261A6C", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/CSS Player Hands Default to HMN Button/Fix A Button Buffer When Exiting Name Entry.asm", "Tags": "" }, { "InjectionAddress": "802FCCD8", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Hide Nametag When Invisible/Hide Nametag When Invisible.asm", "Tags": "" }, { "InjectionAddress": "80266CE0", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Disable FoD During Doubles/Disable FoD During Doubles.asm", "Tags": "" }, { "InjectionAddress": "80265220", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Winners Names are Gold on CSS/Change Name Color.asm", "Tags": "" }, { "InjectionAddress": "8016EA30", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Winners Names are Gold on CSS/Remember Who LRA Started.asm", "Tags": "" }, { "InjectionAddress": "80261B1C", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip Nametag ID Reset.asm", "Tags": "" }, { "InjectionAddress": "80261B30", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Closing CSS Door Preserves Nametag/On Window Close/Skip isUsingNametag Bool Reset.asm", "Tags": "" }, { "InjectionAddress": "802605FC", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Unplugging Closes CSS Door/Unplugging Closes CSS Door.asm", "Tags": "" }, { "InjectionAddress": "801239A8", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/FreezeGlitchFix/FreezeGlitchFix.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8013C388", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CostumeBoundCheck/PuffCostume.asm", "Tags": "" }, { "InjectionAddress": "8016DED4", + "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CostumeBoundCheck/main.asm", "Tags": "" }, { "InjectionAddress": "800679BC", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/ExtendPlayerBlock.asm", "Tags": "" }, { "InjectionAddress": "803219EC", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/FlushFrameBuffer.asm", "Tags": "" }, { "InjectionAddress": "8016D884", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGameEnd.asm", "Tags": "" }, { "InjectionAddress": "8016E74C", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGameInfo.asm", "Tags": "" }, { "InjectionAddress": "8006DA34", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGamePostFrame.asm", "Tags": "" }, { "InjectionAddress": "8006B0DC", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/SendGamePreFrame.asm", "Tags": "" }, { "InjectionAddress": "80005604", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/ShouldRecord.asm", "Tags": "" }, { "InjectionAddress": "8008D698", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/GetLCancelStatus/GetLCancelStatus.asm", "Tags": "" }, { "InjectionAddress": "8006C324", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Recording/GetLCancelStatus/ResetLCancelStatus.asm", "Tags": "" }, { "InjectionAddress": "800055F8", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/GetIsFollower.asm", "Tags": "" }, { "InjectionAddress": "8016D294", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/IncrementFrameIndex.asm", "Tags": "" }, { "InjectionAddress": "801D460C", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/GetPreloadedTransition.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D14C8", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/Init isLoaded Bool.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D45EC", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/Load Transformation.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D4F14", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/Reset isLoaded.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D4610", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/SkipNormalDecision1.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D4724", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Core/SkipNormalDecision2.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "804DEC18", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Preload Stadium Transformations/Toggle/PsPreloadToggleEnable.asm", "Tags": "" }, { "InjectionAddress": "801C154C", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Initialize Stage Data/Init Stage Data.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "80068EEC", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/Initialize Player Data/Init Player Data.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8016EBAC", + "Name": "Required: Slippi Recording", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CSS KO Stars/Asign KO Stars Upon Exiting Dairantou.asm", "Tags": "" }, { "InjectionAddress": "8006A880", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/BrawlOffscreenDamage.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802F7094", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/CustomizeMessageLRAS.asm", "Tags": "" }, { "InjectionAddress": "801A4DB4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/ForceEngineOnRollback.asm", "Tags": "" }, { "InjectionAddress": "80019614", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/ForceInputRefetchOnAdvance.asm", "Tags": "" }, { "InjectionAddress": "8034DED8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/HandleRumble.asm", "Tags": "" }, { "InjectionAddress": "8016E748", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/InitOnlinePlay.asm", "Tags": "" }, { "InjectionAddress": "8016E904", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/InitPause.asm", "Tags": "" }, { "InjectionAddress": "801A5014", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/LoopEngineForRollback.asm", "Tags": "" }, { "InjectionAddress": "8016D26C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/PauseCounter.asm", "Tags": "" }, { "InjectionAddress": "8016CD08", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/PreventPauseStranding.asm", "Tags": "" }, { "InjectionAddress": "8016EA30", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Remember Who LRA Started.asm", "Tags": "" }, { "InjectionAddress": "8016E9E8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/ReportNoContestLRAS.asm", "Tags": "" }, { "InjectionAddress": "80376A20", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/SkipNewInputFetchOnRollback.asm", "Tags": "" }, { "InjectionAddress": "801A4DE4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/StartEngineLoop.asm", "Tags": "" }, { "InjectionAddress": "80376A28", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/TriggerSendInput.asm", "Tags": "" }, { "InjectionAddress": "801A4CB4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/EXIFileLoad/AllocBuffer.asm", "Tags": "" }, { "InjectionAddress": "800163FC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/EXIFileLoad/GetFileSize.asm", "Tags": "" }, { "InjectionAddress": "800166B8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/EXIFileLoad/TransferFile.asm", "Tags": "" }, { "InjectionAddress": "800D4C1C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/FreezeDeadUpFallPhysics/InitHitVelocity.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800D4D68", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/FreezeDeadUpFallPhysics/UpdateFallVelocity.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "80080E80", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/FreezeDeadUpFallPhysics/UpdateModelPos.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "80019260", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Hacks/ForceNoDiskCrash.asm", "Tags": "" }, { "InjectionAddress": "80376304", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Hacks/ForceNoVideoAssert.asm", "Tags": "" }, { "InjectionAddress": "803A63A8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Hacks/LoadPremadeTextDataFromDolphin.asm", "Tags": "" }, { "InjectionAddress": "80321D70", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Hacks/PreventCharacterCrowdChants.asm", "Tags": "" }, { "InjectionAddress": "80019608", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Hacks/PreventPadAlarmDuringRollback.asm", "Tags": "" }, { "InjectionAddress": "801D4578", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/PreventFileAlarms/FreezeStadium.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "80023FFC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/PreventFileAlarms/MuteMusic.asm", "Tags": "" }, { "InjectionAddress": "8038ADD0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/PreventFileAlarms/PreventMusicAlarm.asm", "Tags": "" }, { "InjectionAddress": "8038D224", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Sound/AssignSoundInstanceId.asm", "Tags": "" }, { "InjectionAddress": "80088224", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Sound/NoDestroyVoice.asm", "Tags": "" }, { "InjectionAddress": "800882B0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Sound/NoDestroyVoice2.asm", "Tags": "" }, { "InjectionAddress": "8038D0B0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Sound/PreventDuplicateSounds.asm", "Tags": "" }, { "InjectionAddress": "8016BE28", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Core/Teams/PreventDeadStranding.asm", "Tags": "" }, { "InjectionAddress": "80266BC4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/DisableLRSTART.asm", "Tags": "" }, { "InjectionAddress": "80261E5C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/DisableNametagBox.asm", "Tags": "" }, { "InjectionAddress": "80260310", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/FetchMatchInfo.asm", "Tags": "" }, { "InjectionAddress": "80263258", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/HandleInputsOnCSS.asm", "Tags": "" }, { "InjectionAddress": "801A3F9C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/IncreaseTextHeap.asm", "Tags": "" }, { "InjectionAddress": "802652F0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/InitSheikSelector.asm", "Tags": "" }, { "InjectionAddress": "80264534", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/LoadCSSText.asm", "Tags": "" }, { "InjectionAddress": "80262004", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/PreventAPressCharUnselect.asm", "Tags": "" }, { "InjectionAddress": "802620AC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/PreventBPressCharUnselect.asm", "Tags": "" }, { "InjectionAddress": "802600A8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/PreventColorChange.asm", "Tags": "" }, { "InjectionAddress": "8026699C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/SceneLoadCSS.asm", "Tags": "" }, { "InjectionAddress": "80264118", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/SkipReturnToCssSound.asm", "Tags": "" }, { "InjectionAddress": "80262478", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/AnimateCursorPort.asm", "Tags": "" }, { "InjectionAddress": "80262768", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/AnimateToken.asm", "Tags": "" }, { "InjectionAddress": "802652F4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/InitTeamToggleButton.asm", "Tags": "" }, { "InjectionAddress": "80260C28", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/PreventColorResetCharHover.asm", "Tags": "" }, { "InjectionAddress": "80260E14", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/PreventColorResetLastChar.asm", "Tags": "" }, { "InjectionAddress": "80260B90", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/PreventColorResetRandomChar.asm", "Tags": "" }, { "InjectionAddress": "80260C88", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/Teams/PreventWrongCSPOnCharSelect.asm", "Tags": "" }, { "InjectionAddress": "8023C710", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/Allow8Characters.asm", "Tags": "" }, { "InjectionAddress": "8023C320", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/Allow8CharactersJapanese.asm", "Tags": "" }, { "InjectionAddress": "8023E730", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/AlwaysUseEnglishWhenDirect.asm", "Tags": "" }, { "InjectionAddress": "8023E924", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/AlwaysUseEnglishWhenDirect2.asm", "Tags": "" }, { "InjectionAddress": "8023E290", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/AlwaysUseEnglishWhenDirect3.asm", "Tags": "" }, { "InjectionAddress": "8023CCA4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm", "Tags": "" }, { "InjectionAddress": "8023CF9C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/Display8Characters.asm", "Tags": "" }, { "InjectionAddress": "8023CF80", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/HandleAutocompleteText.asm", "Tags": "" }, { "InjectionAddress": "8023B3D0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/HandleDescriptionText.asm", "Tags": "" }, { "InjectionAddress": "8023C6C0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/HandleJpSpace.asm", "Tags": "" }, { "InjectionAddress": "8023E994", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/InitNameEntry.asm", "Tags": "" }, { "InjectionAddress": "8023C588", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/NameEntryThinkOneShot.asm", "Tags": "" }, { "InjectionAddress": "8023CD74", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnBPressAutoComplete.asm", "Tags": "" }, { "InjectionAddress": "8023CA50", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnConfirmButtonAPress.asm", "Tags": "" }, { "InjectionAddress": "8023CC14", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnConfirmButtonHandler.asm", "Tags": "" }, { "InjectionAddress": "8023C33C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnEnterJpText.asm", "Tags": "" }, { "InjectionAddress": "8023C72C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnEnterText.asm", "Tags": "" }, { "InjectionAddress": "8023C81C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnErasePress.asm", "Tags": "" }, { "InjectionAddress": "8023CCBC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnLPress.asm", "Tags": "" }, { "InjectionAddress": "8023CCE0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnRPress.asm", "Tags": "" }, { "InjectionAddress": "8023C928", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/CSS/TextEntryScreen/OnRandomPress.asm", "Tags": "" }, { "InjectionAddress": "803786A4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/Hacks/VsSplashRumbleHack.asm", "Tags": "" }, { "InjectionAddress": "802F6694", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/InGame/InitInGame.asm", "Tags": "" }, { "InjectionAddress": "803A69C0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/InGame/ParseNumbersBetter.asm", "Tags": "" }, { "InjectionAddress": "8025B8A4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/SSS/DisableLRSTART.asm", "Tags": "" }, { "InjectionAddress": "80259CC8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/SSS/ExitSSSUponStageSelect.asm", "Tags": "" }, { "InjectionAddress": "8022B044", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm", "Tags": "" }, { "InjectionAddress": "802299F0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm", "Tags": "" }, { "InjectionAddress": "8022E93C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/TitleMenu/OnMenuLoad.asm", "Tags": "" }, { "InjectionAddress": "801B1040", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/TitleMenu/OnMenuPrep.asm", "Tags": "" }, { "InjectionAddress": "8022D88C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/TitleMenu/OnlineModeOptionSelected.asm", "Tags": "" }, { "InjectionAddress": "802299C4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/TitleMenu/ShowHidden1pOption.asm", "Tags": "" }, { "InjectionAddress": "801B3668", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/AllowP2ColorDuplicate.asm", "Tags": "" }, { "InjectionAddress": "80186EC4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/InitVsSplash.asm", "Tags": "" }, { "InjectionAddress": "80184DE4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/PlayOpponentCharAnnouncer.asm", "Tags": "" }, { "InjectionAddress": "801B3650", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/PreventP2Color.asm", "Tags": "" }, { "InjectionAddress": "80185060", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/HideStageDisplay/HideAllJObjs.asm", "Tags": "" }, { "InjectionAddress": "80185050", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/HideStageDisplay/PreventEarlyR3Overwrite.asm", "Tags": "" }, { "InjectionAddress": "80184ADC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/HideStageText/HideLetterJObjs.asm", "Tags": "" }, { "InjectionAddress": "80184B1C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Menus/VSScreen/HideStageText/SkipStageNumberShow.asm", "Tags": "" }, { "InjectionAddress": "801BFA20", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Slippi Online Scene/boot.asm", "Tags": "" }, { "InjectionAddress": "801A45B8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Slippi Online Scene/main.asm", "Tags": "" }, { "InjectionAddress": "80005694", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/AdjustNullCharID.asm", "Tags": "" }, { "InjectionAddress": "800056BC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/CSSUpdateCSP.asm", "Tags": "" }, { "InjectionAddress": "800056AC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/ChatMessages.asm", "Tags": "" }, { "InjectionAddress": "80005690", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/CheckAltStageName.asm", "Tags": "" }, { "InjectionAddress": "800056B8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/GetCSSIconData.asm", "Tags": "" }, { "InjectionAddress": "80005698", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/GetCSSIconNum.asm", "Tags": "" }, { "InjectionAddress": "800056B0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/GetTeamCostumeIndex.asm", "Tags": "" }, { "InjectionAddress": "800055F4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/IntToFloat.asm", "Tags": "" }, { "InjectionAddress": "80005610", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/LoadMatchState.asm", "Tags": "" }, { "InjectionAddress": "800056A4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/LoadPremadeText.asm", "Tags": "" }, { "InjectionAddress": "8000560C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/LoadState.asm", "Tags": "" }, { "InjectionAddress": "800055EC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/MultiplyRWithF.asm", "Tags": "" }, { "InjectionAddress": "80005608", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/SaveState.asm", "Tags": "" }, { "InjectionAddress": "800056B4", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/SubtextFunctions.asm", "Tags": "" }, { "InjectionAddress": "80005618", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Static/UserDisplayFunctions.asm", "Tags": "" }, { "InjectionAddress": "803775B0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Debugging/LogInputOnCopy.asm", "Tags": "" }, { "InjectionAddress": "801A4C24", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8001985C", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80019860", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80376200", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A5018", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80218D68", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8009E090", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/FastForward/DynamicsFix.asm", "Tags": "" }, { "InjectionAddress": "8000569C", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CompatibilityHooks/GetFighterNum.asm", "Tags": "" }, { "InjectionAddress": "800056A0", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CompatibilityHooks/GetSSMIndex.asm", "Tags": "" }, { "InjectionAddress": "800056A8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/CompatibilityHooks/RequestSSMLoad.asm", "Tags": "" }, { "InjectionAddress": "803753B4", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800186A8", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015D9C", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015C00", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015BC0", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80018D80", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800158F0", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80016138", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015F50", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015F88", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800158D8", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015E18", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015CD4", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800159B4", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015984", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015B94", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80015914", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A50AC", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A45BC", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4444", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8001CEAC", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4568", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A43E0", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A448C", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A3F2C", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4560", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A43D8", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4484", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A3F24", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4D14", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A50A0", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4D0C", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A43EC", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A40C8", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D709C", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D7090", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D7074", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D7060", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803D706C", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8035E6E4", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8035E6E0", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8035ECFC", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8035ECE0", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80360A38", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80360A3C", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8035E918", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801A4C98", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80228C10", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80228BFC", + "Name": "Required: Slippi Online", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80228AF8", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80394BD4", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80397838", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80394A74", + "Name": "Required: Slippi Online", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "800AC5B8", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/NanaDeterminism/NanaDeterminism.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "801D24FC", + "Name": "Required: Slippi Online", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "803761EC", + "Name": "Recommended: Normal Lag Reduction", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80376238", + "Name": "Recommended: Normal Lag Reduction", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80376A24", + "Name": "Recommended: Apply Delay to all In-Game Scenes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/UseInGameDelay/ApplyInGameDelay.asm", "Tags": "" }, { "InjectionAddress": "802F666C", + "Name": "Recommended: Apply Delay to all In-Game Scenes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/UseInGameDelay/InitializeInGameDelay.asm", "Tags": "" }, { "InjectionAddress": "8000561C", + "Name": "Recommended: Apply Delay to all In-Game Scenes", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Common/GetCommonMinorID/GetCommonMinorID.asm", "Tags": "" }, { "InjectionAddress": "801CBB90", + "Name": "Recommended: Lagless FoD", "Codetype": "C2", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801CC8AC", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801CBE9C", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801CBEF0", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801CBF54", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "80390838", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801CD250", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "801CCDCC", + "Name": "Recommended: Lagless FoD", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "803BB05C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Fix Screen Flash.asm", "Tags": "" }, { "InjectionAddress": "8036A4A8", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Overwrite CObj Values.asm", "Tags": "" }, { "InjectionAddress": "804DDB58", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Adjust Bubble Zoom.asm", "Tags": "" }, { "InjectionAddress": "80086B24", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Draw High Poly Models.asm", "Tags": "" }, { "InjectionAddress": "80030C7C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Left Camera Bound.asm", "Tags": "" }, { "InjectionAddress": "80030C88", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Right Camera Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB30", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 1.asm", "Tags": "" }, { "InjectionAddress": "804DDB34", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Adjust Corner Value 2.asm", "Tags": "" }, { "InjectionAddress": "804DDB2C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Negative Vertical Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB28", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Extend Positive Vertical Bound.asm", "Tags": "" }, { "InjectionAddress": "804DDB4C", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Adjust Offscreen Scissor/Fix Bubble Positions/Widen Bubble Region.asm", "Tags": "" }, { "InjectionAddress": "802FCFC4", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Nametag Fixes/Adjust Nametag Background X Scale.asm", "Tags": "" }, { "InjectionAddress": "804DDB84", + "Name": "Optional: Widescreen 16:9", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Widescreen/Nametag Fixes/Adjust Nametag Text X Scale.asm", "Tags": "" }, { "InjectionAddress": "80030E44", + "Name": "Optional: Disable Screen Shake", "Codetype": "04", "Annotation": "", "Tags": "" }, { "InjectionAddress": "8016E9AC", + "Name": "Optional: Center Align 2P HUD", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/Force2PCenterHud/Force2PCenterHud.asm", "Tags": "" }, { "InjectionAddress": "800C0148", + "Name": "Optional: Flash Red on Failed L-Cancel", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/FlashRedFailedLCancel/ChangeColor.asm", "Tags": "" }, { "InjectionAddress": "8008D690", + "Name": "Optional: Flash Red on Failed L-Cancel", "Codetype": "Auto", - "Annotation": "", + "Annotation": "External/FlashRedFailedLCancel/TriggerColor.asm", "Tags": "" }, { "InjectionAddress": "800355B4", + "Name": "Optional: Show Friendly Player Indicators", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Optional/IndicateLocalPlayer/ForceLocalPlayerTag.asm", "Tags": "" }, { "InjectionAddress": "802FD1EC", + "Name": "Optional: Show Friendly Player Indicators", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Optional/IndicateLocalPlayer/SetLocalPlayerTag.asm", "Tags": "" }, { "InjectionAddress": "802FC9E4", + "Name": "Optional: Show Friendly Player Indicators", "Codetype": "Auto", - "Annotation": "", + "Annotation": "Online/Optional/ShowAllyIndicator/ShowAllyIndicator.asm", "Tags": "" } ] From e12c276fef62855766cc8362a627a496de1cccc3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 21 Nov 2022 15:59:25 -0500 Subject: [PATCH 180/217] fixes assembler warnings new batched mode allowed me to see them --- Common/Common.s | 2 +- Common/UseInGameDelay/InGameDelay.s | 2 +- .../AdditionalCrashInfoStatic.s | 2 +- External/PortPriority/LedgeGrab/LedgeGrab.s | 2 +- .../Hacks/PreventPadAlarmDuringRollback.asm | 2 +- Online/Core/LoopEngineForRollback.asm | 2 +- Online/Core/StartEngineLoop.asm | 2 +- Online/Core/TriggerSendInput.asm | 2 +- Online/Menus/CSS/Teams/Teams.s | 7 +- .../CSS/TextEntryScreen/CheckTriggersAndZ.asm | 2 +- Online/Online.s | 2 +- Online/Slippi Online Scene/Header.s | 2 +- Output/Netplay/GALE01r2.ini | 130 +++++++++--------- Output/Netplay/GALJ01r2.ini | 130 +++++++++--------- Output/Playback/GALE01r2.ini | 2 +- Output/Playback/GALJ01r2.ini | 2 +- Playback/Core/RestoreGameFrame.asm | 24 ++-- Playback/Core/Sounds/HandleFrameSoundLog.asm | 2 +- 18 files changed, 158 insertions(+), 161 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 654b254e..7764a7ff 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -616,4 +616,4 @@ add \reg, r3, r4 .set LOG_LEVEL_NOTICE, 1 .endif -.set HEADER_COMMON, 1 \ No newline at end of file +.set HEADER_COMMON, 1 diff --git a/Common/UseInGameDelay/InGameDelay.s b/Common/UseInGameDelay/InGameDelay.s index 312aafde..cd6aef38 100644 --- a/Common/UseInGameDelay/InGameDelay.s +++ b/Common/UseInGameDelay/InGameDelay.s @@ -21,4 +21,4 @@ .set IGDB_SIZE, IGDB_PAD_BUFFER + PADS_REPORT_SIZE * OFFLINE_MAX_DELAY_FRAMES .endif -.set HEADER_IN_GAME_DELAY, 1 \ No newline at end of file +.set HEADER_IN_GAME_DELAY, 1 diff --git a/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s b/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s index 4d53df59..758c74e2 100644 --- a/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s +++ b/Debugging/AdditionalCrashInfo/AdditionalCrashInfoStatic.s @@ -19,4 +19,4 @@ .endm .endif -.set HEADER_ADDITIONAL_CRASH_INFO_STATIC, 1 \ No newline at end of file +.set HEADER_ADDITIONAL_CRASH_INFO_STATIC, 1 diff --git a/External/PortPriority/LedgeGrab/LedgeGrab.s b/External/PortPriority/LedgeGrab/LedgeGrab.s index a49fe5c9..0862be74 100644 --- a/External/PortPriority/LedgeGrab/LedgeGrab.s +++ b/External/PortPriority/LedgeGrab/LedgeGrab.s @@ -13,4 +13,4 @@ .set xGetPlayerGObjID, 0x10 .endif -.set HEADER_LEDGE_GRAB, 1 \ No newline at end of file +.set HEADER_LEDGE_GRAB, 1 diff --git a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm index 04c0f7f1..dab02aff 100644 --- a/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm +++ b/Online/Core/Hacks/PreventPadAlarmDuringRollback.asm @@ -30,7 +30,7 @@ stb r3, ODB_IS_FRAME_ADVANCE(r5) # function for the RenewInputs_Prefunction call and setting that as the # VI callback, but then I'd need to use non-standard lag reduction code load r3, 0x80375e00 -cmpwi r0, r3 +cmpw r0, r3 bne EXIT # Check if a rollback is active, if a rollback is active, do not renew inputs diff --git a/Online/Core/LoopEngineForRollback.asm b/Online/Core/LoopEngineForRollback.asm index fa383f4d..d52a5910 100644 --- a/Online/Core/LoopEngineForRollback.asm +++ b/Online/Core/LoopEngineForRollback.asm @@ -106,7 +106,7 @@ PENDING_LOOP_CONTINUE: addi r7, r7, 1 PENDING_LOOP_CONDITION: lbz r3, SFXS_LOG_INDEX(r6) -cmpwi r7, r3 +cmpw r7, r3 blt PENDING_LOOP_START # If we exit loop normally, let's stop sound diff --git a/Online/Core/StartEngineLoop.asm b/Online/Core/StartEngineLoop.asm index 42eaafad..31eb2a01 100644 --- a/Online/Core/StartEngineLoop.asm +++ b/Online/Core/StartEngineLoop.asm @@ -537,7 +537,7 @@ bne FIND_CHECKSUM_LOOP_CONTINUE cmpwi REG_DESYNC_ENTRY_ADDRESS, 0 beq CONFIRMED_SYNC_SET lwz r3, DDLE_FRAME(REG_LOCAL_DESYNC_ENTRY) -cmpwi REG_DESYNC_ENTRY_FRAME, r3 # If the current frame is later than the stored one, don't switch +cmpw REG_DESYNC_ENTRY_FRAME, r3 # If the current frame is later than the stored one, don't switch bge SKIP_CONFIRMED_SYNC_SET CONFIRMED_SYNC_SET: mr REG_DESYNC_ENTRY_ADDRESS, REG_LOCAL_DESYNC_ENTRY diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index d1f416ef..29af048f 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -85,7 +85,7 @@ PROCESS_NOT_ROLLBACK: lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) li r4, UNFREEZE_INPUTS_FRAME sub r3, r4, r3 -cmpwi REG_FRAME_INDEX, r3 # Frame 84 +/- 1 (not sure) is first unfrozen frame +cmpw REG_FRAME_INDEX, r3 # Frame 84 +/- 1 (not sure) is first unfrozen frame bge SKIP_FROZEN_INPUT_CLEAR addi r3, REG_PARENT_STACK_FRAME, P1_PAD_OFFSET diff --git a/Online/Menus/CSS/Teams/Teams.s b/Online/Menus/CSS/Teams/Teams.s index 38b61d4d..edd4edb2 100644 --- a/Online/Menus/CSS/Teams/Teams.s +++ b/Online/Menus/CSS/Teams/Teams.s @@ -1,5 +1,10 @@ +.ifndef HEADER_TEAMS + # The CheckAutoFill injection contains static data related to auto-fill .set INJ_InitTeamToggleButton, 0x802652f4 # Injection Data Offsets -.set IDO_TEAM_IDX, 0x8 # u8 \ No newline at end of file +.set IDO_TEAM_IDX, 0x8 # u8 + +.endif +.set HEADER_TEAMS, 1 diff --git a/Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm b/Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm index ef71d778..420a84cd 100644 --- a/Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm +++ b/Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm @@ -13,7 +13,7 @@ b CODE_START STATIC_MEMORY_TABLE_BLRL: blrl b FN_FetchSuggestion # IDO_FN_FetchSuggestion -.long 0x0, # IDO_ACB_ADDR, address to buffer +.long 0x0 # IDO_ACB_ADDR, address to buffer CODE_START: # Original line - checks for an L or R press. diff --git a/Online/Online.s b/Online/Online.s index fc7795eb..571492fa 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -518,4 +518,4 @@ .set RESP_ADVANCE, 4 .endif -.set HEADER_ONLINE, 1 \ No newline at end of file +.set HEADER_ONLINE, 1 diff --git a/Online/Slippi Online Scene/Header.s b/Online/Slippi Online Scene/Header.s index 70620820..62f6c7c2 100644 --- a/Online/Slippi Online Scene/Header.s +++ b/Online/Slippi Online Scene/Header.s @@ -4,4 +4,4 @@ .set InitialSelection,0 .endif -.set HEADER_ONLINE_SCENE, 1 \ No newline at end of file +.set HEADER_ONLINE_SCENE, 1 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 01357b1c..ed68d8aa 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1478,7 +1478,7 @@ BE8100B0 3D808034 1C870006 7C862214 A0840001 7C032000 41820030 38E70001 -88660000 2C070003 +88660000 7C071800 4180FFD4 1C790006 7C651A14 80630003 3D808002 618C36B8 @@ -1744,7 +1744,7 @@ BE8100B0 3C608048 80740000 7C161800 408200A8 2C1D0000 41820010 80740000 -2C160003 40800008 +7C161800 40800008 7E9DA378 A0740006 A0970006 7C630734 7C840734 7C641850 @@ -1813,7 +1813,7 @@ C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 41820010 887B00E0 2C030000 4182067C 887B0021 38800054 -7C632050 2C1A0003 +7C632050 7C1A1800 4080001C 387E002C 38800030 3D808000 618CC160 7D8903A6 @@ -2186,7 +2186,7 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 40820044 80ADB61C 38600000 98650014 3C608037 60635E00 -2C000003 40820028 +7C001800 40820028 886500DF 2C030000 4182001C 38600001 9865090D 3D808001 @@ -3774,75 +3774,75 @@ C223E290 00000006 #Online/Menus/CSS/TextEntryScreen/AlwaysUseEnglishWhenDirect3. 618CAE90 7D8903A6 4E800421 00000000 C223CCA4 00000045 #Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm -48000014 4E800021 -48000100 00000000 -00000000 57400633 -41820014 3D808023 -618CCCAC 7D8903A6 -4E800420 7C0802A6 -90010004 9421FF20 -BE8100B0 7C9A2378 -4BFFFFC5 7C6802A6 -83E30004 83DF0006 -886DB56C 5463063E -3D80801A 618C36A0 -7D8903A6 4E800421 -548006F7 41820194 -7F44D378 889C0058 -1C840003 7C64F22E -2C030000 4082001C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000048 -38600001 3D808002 -618C4030 7D8903A6 -4E800421 887E0019 -987F0004 2C030007 -40810008 38600007 -987C0058 38600039 -B07A0002 3D808023 -618CCE4C 7D8903A6 -4E800421 7F44D378 -BA8100B0 800100E4 -382100E0 7C0803A6 -3D808023 618CCCFC +48000010 4E800021 +480000FC 00000000 +57400633 41820014 +3D808023 618CCCAC 7D8903A6 4E800420 7C0802A6 90010004 9421FF20 BE8100B0 -7C7D1B78 886DAFA3 -2C030000 418200C8 -4BFFFEDD 7C6802A6 -83E30004 83DF0006 -386000BE 987E0000 -387E0001 3C80804A -60840740 38A00018 -3D808000 618C31F4 +7C9A2378 4BFFFFC9 +7C6802A6 83E30004 +83DF0006 886DB56C +5463063E 3D80801A +618C36A0 7D8903A6 +4E800421 548006F7 +41820194 7F44D378 +889C0058 1C840003 +7C64F22E 2C030000 +4082001C 38600003 +3D808002 618C4030 7D8903A6 4E800421 -887F0004 987E0019 -807F0000 907E001A -9BBE001E 886DAFA0 -987E001F 7FC3F378 -38800020 38A00001 -3D808000 618C55F0 +48000048 38600001 +3D808002 618C4030 +7D8903A6 4E800421 +887E0019 987F0004 +2C030007 40810008 +38600007 987C0058 +38600039 B07A0002 +3D808023 618CCE4C 7D8903A6 4E800421 -7FC3F378 3880001E -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C60804A -60630740 389E0001 -38A00018 3D808000 -618C31F4 7D8903A6 -4E800421 807E001A -907F0000 3D808023 -618CCE4C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 7F44D378 BA8100B0 800100E4 382100E0 7C0803A6 3D808023 -618CCD34 7D8903A6 -4E800420 00000000 +618CCCFC 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF20 +BE8100B0 7C7D1B78 +886DAFA3 2C030000 +418200C8 4BFFFEE1 +7C6802A6 83E30004 +83DF0006 386000BE +987E0000 387E0001 +3C80804A 60840740 +38A00018 3D808000 +618C31F4 7D8903A6 +4E800421 887F0004 +987E0019 807F0000 +907E001A 9BBE001E +886DAFA0 987E001F +7FC3F378 38800020 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3880001E 38A00000 +3D808000 618C55F0 +7D8903A6 4E800421 +3C60804A 60630740 +389E0001 38A00018 +3D808000 618C31F4 +7D8903A6 4E800421 +807E001A 907F0000 +3D808023 618CCE4C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7F44D378 +BA8100B0 800100E4 +382100E0 7C0803A6 +3D808023 618CCD34 +7D8903A6 4E800420 +60000000 00000000 0423CF9C 2C1B0008 #Online/Menus/CSS/TextEntryScreen/Display8Characters.asm C223CF80 0000000E #Online/Menus/CSS/TextEntryScreen/HandleAutocompleteText.asm 48000010 4E800021 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 70bac26b..0704aa77 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1477,7 +1477,7 @@ BE8100B0 3D808034 1C870006 7C862214 A0840001 7C032000 41820030 38E70001 -88660000 2C070003 +88660000 7C071800 4180FFD4 1C790006 7C651A14 80630003 3D808002 618C36B8 @@ -1743,7 +1743,7 @@ BE8100B0 3C608048 80740000 7C161800 408200A8 2C1D0000 41820010 80740000 -2C160003 40800008 +7C161800 40800008 7E9DA378 A0740006 A0970006 7C630734 7C840734 7C641850 @@ -1812,7 +1812,7 @@ C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 41820010 887B00E0 2C030000 4182067C 887B0021 38800054 -7C632050 2C1A0003 +7C632050 7C1A1800 4080001C 387E002C 38800030 3D808000 618CC160 7D8903A6 @@ -2185,7 +2185,7 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 40820044 80ADB61C 38600000 98650014 3C608037 60635E00 -2C000003 40820028 +7C001800 40820028 886500DF 2C030000 4182001C 38600001 9865090D 3D808001 @@ -3773,75 +3773,75 @@ C223E290 00000006 #Online/Menus/CSS/TextEntryScreen/AlwaysUseEnglishWhenDirect3. 618CAE90 7D8903A6 4E800421 00000000 C223CCA4 00000045 #Online/Menus/CSS/TextEntryScreen/CheckTriggersAndZ.asm -48000014 4E800021 -48000100 00000000 -00000000 57400633 -41820014 3D808023 -618CCCAC 7D8903A6 -4E800420 7C0802A6 -90010004 9421FF20 -BE8100B0 7C9A2378 -4BFFFFC5 7C6802A6 -83E30004 83DF0006 -886DB56C 5463063E -3D80801A 618C36A0 -7D8903A6 4E800421 -548006F7 41820194 -7F44D378 889C0058 -1C840003 7C64F22E -2C030000 4082001C -38600003 3D808002 -618C4030 7D8903A6 -4E800421 48000048 -38600001 3D808002 -618C4030 7D8903A6 -4E800421 887E0019 -987F0004 2C030007 -40810008 38600007 -987C0058 38600039 -B07A0002 3D808023 -618CCE4C 7D8903A6 -4E800421 7F44D378 -BA8100B0 800100E4 -382100E0 7C0803A6 -3D808023 618CCCFC +48000010 4E800021 +480000FC 00000000 +57400633 41820014 +3D808023 618CCCAC 7D8903A6 4E800420 7C0802A6 90010004 9421FF20 BE8100B0 -7C7D1B78 886DAFA3 -2C030000 418200C8 -4BFFFEDD 7C6802A6 -83E30004 83DF0006 -386000BE 987E0000 -387E0001 3C80804A -60840740 38A00018 -3D808000 618C31F4 +7C9A2378 4BFFFFC9 +7C6802A6 83E30004 +83DF0006 886DB56C +5463063E 3D80801A +618C36A0 7D8903A6 +4E800421 548006F7 +41820194 7F44D378 +889C0058 1C840003 +7C64F22E 2C030000 +4082001C 38600003 +3D808002 618C4030 7D8903A6 4E800421 -887F0004 987E0019 -807F0000 907E001A -9BBE001E 886DAFA0 -987E001F 7FC3F378 -38800020 38A00001 -3D808000 618C55F0 +48000048 38600001 +3D808002 618C4030 +7D8903A6 4E800421 +887E0019 987F0004 +2C030007 40810008 +38600007 987C0058 +38600039 B07A0002 +3D808023 618CCE4C 7D8903A6 4E800421 -7FC3F378 3880001E -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C60804A -60630740 389E0001 -38A00018 3D808000 -618C31F4 7D8903A6 -4E800421 807E001A -907F0000 3D808023 -618CCE4C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 7F44D378 BA8100B0 800100E4 382100E0 7C0803A6 3D808023 -618CCD34 7D8903A6 -4E800420 00000000 +618CCCFC 7D8903A6 +4E800420 7C0802A6 +90010004 9421FF20 +BE8100B0 7C7D1B78 +886DAFA3 2C030000 +418200C8 4BFFFEE1 +7C6802A6 83E30004 +83DF0006 386000BE +987E0000 387E0001 +3C80804A 60840740 +38A00018 3D808000 +618C31F4 7D8903A6 +4E800421 887F0004 +987E0019 807F0000 +907E001A 9BBE001E +886DAFA0 987E001F +7FC3F378 38800020 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3880001E 38A00000 +3D808000 618C55F0 +7D8903A6 4E800421 +3C60804A 60630740 +389E0001 38A00018 +3D808000 618C31F4 +7D8903A6 4E800421 +807E001A 907F0000 +3D808023 618CCE4C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7F44D378 +BA8100B0 800100E4 +382100E0 7C0803A6 +3D808023 618CCD34 +7D8903A6 4E800420 +60000000 00000000 0423CF9C 2C1B0008 #Online/Menus/CSS/TextEntryScreen/Display8Characters.asm C223CF80 0000000E #Online/Menus/CSS/TextEntryScreen/HandleAutocompleteText.asm 48000010 4E800021 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index b9e9aafd..4989a922 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -715,7 +715,7 @@ A0630001 1C870006 7C862214 A0840001 7C032000 41820030 38E70001 88660000 -2C070003 4180FFD4 +7C071800 4180FFD4 1C790006 7C651A14 80630003 3D808002 618C36B8 7D8903A6 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 7412a71d..f074a13b 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -714,7 +714,7 @@ A0630001 1C870006 7C862214 A0840001 7C032000 41820030 38E70001 88660000 -2C070003 4180FFD4 +7C071800 4180FFD4 1C790006 7C651A14 80630003 3D808002 618C36B8 7D8903A6 diff --git a/Playback/Core/RestoreGameFrame.asm b/Playback/Core/RestoreGameFrame.asm index 60248abd..b27b9e3a 100644 --- a/Playback/Core/RestoreGameFrame.asm +++ b/Playback/Core/RestoreGameFrame.asm @@ -379,50 +379,42 @@ blrl FrameText: blrl - .string "P%d Frame: %d // Original // Restored -" + .string "P%d Frame: %d // Original // Restored\n" .align 2 RNGText: blrl - .string "RNG Seed: 0x%X // 0x%X -" + .string "RNG Seed: 0x%X // 0x%X\n" .align 2 XPosText: blrl - .string "X Position: %f // %f -" + .string "X Position: %f // %f\n" .align 2 YPosText: blrl - .string "Y Position: %f // %f -" + .string "Y Position: %f // %f\n" .align 2 FacingText: blrl - .string "Facing Direction: %1.0f // %1.0f -" + .string "Facing Direction: %1.0f // %1.0f\n" .align 2 ASText: blrl - .string "Action State: 0x%X %s // 0x%X %s -" + .string "Action State: 0x%X %s // 0x%X %s\n" .align 2 PercentText: blrl - .string "Percent: %1.2f // %1.2f -" + .string "Percent: %1.2f // %1.2f\n" .align 2 DividerText: blrl - .string "------Desync Detected-------- -" + .string "------Desync Detected--------\n" .align 2 .endif diff --git a/Playback/Core/Sounds/HandleFrameSoundLog.asm b/Playback/Core/Sounds/HandleFrameSoundLog.asm index 3ce2e2c4..1e918d26 100644 --- a/Playback/Core/Sounds/HandleFrameSoundLog.asm +++ b/Playback/Core/Sounds/HandleFrameSoundLog.asm @@ -92,7 +92,7 @@ PENDING_LOOP_CONTINUE: addi r7, r7, 1 PENDING_LOOP_CONDITION: lbz r3, SFXS_LOG_INDEX(r6) -cmpwi r7, r3 +cmpw r7, r3 blt PENDING_LOOP_START # If we exit loop normally, let's stop sound From 1c93be8e0ba7e4306d4010a39d4d58b084ceb333 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 11 Dec 2022 16:02:44 -0500 Subject: [PATCH 181/217] enforce no wobbling via code this is currently applied across the board. will try to address this in the future to only enable it in ranked perhaps --- .../PreventWobbling/Init Wobble Count Air.asm | 16 +- .../Init Wobble Count Ground.asm | 16 +- External/PreventWobbling/PreventWobbling.s | 191 ++++++++++++++++++ .../Ranked/Init Wobble Count Air.asm | 27 +++ .../Ranked/Init Wobble Count Ground.asm | 27 +++ .../PreventWobbling/Ranked/Wobble Check.asm | 27 +++ External/PreventWobbling/Wobble Check.asm | 171 +--------------- .../TitleMenu/HandleOnlineLockedOptions.asm | 4 +- Output/InjectionLists/list_netplay.json | 21 ++ Output/Netplay/GALE01r2.ini | 89 +++++++- Output/Netplay/GALJ01r2.ini | 89 +++++++- console_gameplay_both.json | 2 +- console_gameplay_wobbling.json | 2 +- netplay.json | 6 + 14 files changed, 471 insertions(+), 217 deletions(-) create mode 100644 External/PreventWobbling/PreventWobbling.s create mode 100644 External/PreventWobbling/Ranked/Init Wobble Count Air.asm create mode 100644 External/PreventWobbling/Ranked/Init Wobble Count Ground.asm create mode 100644 External/PreventWobbling/Ranked/Wobble Check.asm diff --git a/External/PreventWobbling/Init Wobble Count Air.asm b/External/PreventWobbling/Init Wobble Count Air.asm index 5ac4e14e..93c59006 100644 --- a/External/PreventWobbling/Init Wobble Count Air.asm +++ b/External/PreventWobbling/Init Wobble Count Air.asm @@ -2,19 +2,9 @@ # Address: 800db880 # Tags: [affects-gameplay] ################################################################################ -.include "Common/Common.s" +.include "External/PreventWobbling/PreventWobbling.s" -.set REG_DefenderData,29 - -.set OFST_WobbleCounter,0x2384 -.set OFST_LastMoveID,0x2386 - -#Init count - li r3,0 - stb r3,OFST_WobbleCounter(REG_DefenderData) -#Init last move ID - li r3,-1 - sth r3,OFST_LastMoveID(REG_DefenderData) +Wobbling_InitWobbleCount #Original codeline - lwz r0, 0x005C (sp) +lwz r0, 0x005C (sp) diff --git a/External/PreventWobbling/Init Wobble Count Ground.asm b/External/PreventWobbling/Init Wobble Count Ground.asm index 9f2c4898..1bfd4e32 100644 --- a/External/PreventWobbling/Init Wobble Count Ground.asm +++ b/External/PreventWobbling/Init Wobble Count Ground.asm @@ -2,19 +2,9 @@ # Address: 800dbbd4 # Tags: [affects-gameplay] ################################################################################ -.include "Common/Common.s" +.include "External/PreventWobbling/PreventWobbling.s" -.set REG_DefenderData,29 +Wobbling_InitWobbleCount -.set OFST_WobbleCounter,0x2384 -.set OFST_LastMoveID,0x2386 - -#Init count - li r3,0 - stb r3,OFST_WobbleCounter(REG_DefenderData) -#Init last move ID - li r3,-1 - sth r3,OFST_LastMoveID(REG_DefenderData) - #Original codeline - lwz r0, 0x005C (sp) +lwz r0, 0x005C (sp) diff --git a/External/PreventWobbling/PreventWobbling.s b/External/PreventWobbling/PreventWobbling.s new file mode 100644 index 00000000..750e0fdb --- /dev/null +++ b/External/PreventWobbling/PreventWobbling.s @@ -0,0 +1,191 @@ +.ifndef HEADER_PREVENT_WOBBLING + +.macro Wobbling_InitWobbleCount +.include "Common/Common.s" + +.set REG_DefenderData,29 + +.set OFST_WobbleCounter,0x2384 +.set OFST_LastMoveID,0x2386 + +#Init count + li r3,0 + stb r3,OFST_WobbleCounter(REG_DefenderData) +#Init last move ID + li r3,-1 + sth r3,OFST_LastMoveID(REG_DefenderData) +.endm + +.macro Wobbling_Check +.include "Common/Common.s" + +.set REG_DefenderData,27 + +.set ASID_CapturePulledHi, 0xDF +.set ASID_CaptureDamageLw, 0xE4 +.set ASID_CaptureJump, 0xE6 + +.set OFST_IsLeader,0x2222 +.set Bitflag_IsLeader,0x4 +.set OFST_IsDead,0x221f +.set Bitflag_IsDead,0x40 +.set OFST_IsFrozen,0x2219 +.set Bitflag_IsFrozen,0x04 + +.set OFST_WobbleCounter,0x2384 +.set OFST_LastMoveID,0x2386 +.set MaxWobbles,3 + +.set Match_CheckIfTeams,0x8016B168 +.set AS_218_CatchCut,0x800da698 +.set AS_CaptureJump,0x800dc070 +.set ActionStateChange,0x800693ac +.set AirStoreBoolLoseGroundJump,0x8007d5d4 +.set PlayerBlock_LoadDataOffset,0x8003418C +.set IceClimbers_CheckNanaAliveAndActionable, 0x8012300c + +.set Wobbling_Exit,0x8008F0C8 + +# injecting upon entering capturedamage + + #Ensure im being held in a grab (not thrown) + lwz r3,0x10(REG_DefenderData) + cmpwi r3,ASID_CapturePulledHi + blt Original + cmpwi r3,ASID_CaptureDamageLw + bgt Original + #Get grabber data + lwz r3,0x1A58(REG_DefenderData) + cmpwi r3,0 + beq Original + lwz r4,0x2C(r3) + #Ensure grabber has a follower + lbz r4,OFST_IsLeader(r4) + rlwinm. r4,r4,0,Bitflag_IsLeader + beq Original +/* + lbz r3,0xC(r3) + li r4,1 + branchl r12,PlayerBlock_LoadDataOffset + cmpwi r3,0 + beq Original +*/ + #Check if the person who damaged me IS that fighter + lwz r4,0x1868(REG_DefenderData) + cmpw r3,r4 + beq IsFollower + #Check if its an item + lhz r5,0x0(r4) + cmpwi r5,6 + bne Original + IsItem: + #Check if the item belongs to the fighter + lwz r5,0x2C(r4) + lwz r4,0x518(r5) + cmpw r3,r4 + bne Original + #Check if this is the same move i was last hit with + lhz r3,0xDA8(r5) + lhz r4,OFST_LastMoveID(REG_DefenderData) + cmpw r3,r4 + beq Original + #Increment wobble count + b UpdateWobbleCount + IsFollower: + #Check if this is the same move i was last hit with + lwz r5,0x2C(r3) + lhz r3,0x2088(r5) + lhz r4,OFST_LastMoveID(REG_DefenderData) + cmpw r3,r4 + beq Original + UpdateWobbleCount: + #Update last move id + sth r3,OFST_LastMoveID(REG_DefenderData) + #Increment wobble count by 1 + lbz r3,OFST_WobbleCounter(REG_DefenderData) + addi r3,r3,1 + stb r3,OFST_WobbleCounter(REG_DefenderData) + #Only in singles + branchl r12,Match_CheckIfTeams + cmpwi r3,0 + bne Original + #Check if wobble count exceeds max + lbz r3,OFST_WobbleCounter(REG_DefenderData) + cmpwi r3,MaxWobbles + ble Original + + .set REG_GrabberGObj, 20 + .set REG_FollowerGObj, 21 + backup + #Break this grab + lwz REG_GrabberGObj,0x1A58(REG_DefenderData) + mr r3,REG_GrabberGObj + branchl r12,AS_218_CatchCut + #Enter Nana into catchcut as well + lwz r3,0x2C(REG_GrabberGObj) #Get grabber data + lbz r3,0xC(r3) + li r4,1 + branchl r12,PlayerBlock_LoadDataOffset + cmpwi r3,0 + beq SkipBreak + mr REG_FollowerGObj,r3 + #Check if her AI is in follow mode + #lbz r5, 0x1a88 + 0xFA (r4) + #rlwinm. r5,r5,0,0x01 + #beq SkipBreak + #Ensure that she is alive and actionable + lwz r4,0x2c(REG_FollowerGObj) + lbz r0, OFST_IsDead (r4) # dead flag + rlwinm. r0, r0, 0, Bitflag_IsDead + bne SkipBreak + lbz r0, OFST_IsFrozen (r4) # frozen flag + rlwinm. r0, r0, 0, Bitflag_IsFrozen + bne SkipBreak + lbz r0, 0x2071 (r4) # state kind + rlwinm r0, r0, 28, 28, 31 + cmpwi r0, 13 # star and screen KOs + beq SkipBreak +CheckGroundState: + #Check grounded/airborne + lwz r5, 0xE0 (r4) + cmpwi r5,0 + bne AerialBreak + GroundBreak: + #Grounded nana enters catchcut (800da698, r4 is 0) + li r4,0 + branchl r12,AS_218_CatchCut #0x800da698 + b SkipBreak + AerialBreak: + #Aerial nana enters capturejump (800dc070) + lwz r3,0x2c(REG_FollowerGObj) + branchl r12,AirStoreBoolLoseGroundJump #0x8007d5d4 + # give velocity + lwz r3,0x2c(REG_FollowerGObj) + lwz r5, -0x514C (r13) + lfs f0, 0x0374 (r5) + lfs f1,0x2c(r3) + fneg f1,f1 + fmuls f0,f0,f1 + stfs f0, 0x80 (r3) + lfs f0, 0x0378 (r5) + stfs f0, 0x84 (r3) + lfs f0, -0x6900 (rtoc) + stfs f0, 0x2340 (r3) + # change state + lfs f1, -0x6900 (rtoc) + lfs f2, -0x68FC (rtoc) + fmr f3, f1 + mr r3, REG_FollowerGObj + li r4, ASID_CaptureJump + li r5, 0 + li r6, 0 + branchl r12,ActionStateChange #0x800693ac + SkipBreak: + restore + branch r12,Wobbling_Exit + + Original: +.endm + +.endif +.set HEADER_PREVENT_WOBBLING, 1 diff --git a/External/PreventWobbling/Ranked/Init Wobble Count Air.asm b/External/PreventWobbling/Ranked/Init Wobble Count Air.asm new file mode 100644 index 00000000..356174d4 --- /dev/null +++ b/External/PreventWobbling/Ranked/Init Wobble Count Air.asm @@ -0,0 +1,27 @@ +################################################################################ +# Address: 800db880 +# Tags: [affects-gameplay] +################################################################################ +.include "External/PreventWobbling/PreventWobbling.s" +.include "Online/Online.s" +.include "Common/Common.s" + +# TODO: This doesn't actually work. It would be enabled for all online games when playing but +# TODO: if you went to VS mode to play a local game, it wouldn't be enabled when playing but would +# TODO: be enabled when that replay was played. We will have to pass the scene and mode the game +# TODO: was played to the playback engine to properly decide when to enable this code in a replay + +# Only run this code in ranked and playback +getMinorMajor r3 +cmpwi r3, SCENE_ONLINE_IN_GAME +beq EXEC_CODE +cmpwi r3, SCENE_PLAYBACK_IN_GAME +beq EXEC_CODE +b WRAPPER_EXIT + +EXEC_CODE: +Wobbling_InitWobbleCount + +WRAPPER_EXIT: +#Original codeline +lwz r0, 0x005C (sp) \ No newline at end of file diff --git a/External/PreventWobbling/Ranked/Init Wobble Count Ground.asm b/External/PreventWobbling/Ranked/Init Wobble Count Ground.asm new file mode 100644 index 00000000..dd5dd16b --- /dev/null +++ b/External/PreventWobbling/Ranked/Init Wobble Count Ground.asm @@ -0,0 +1,27 @@ +################################################################################ +# Address: 800dbbd4 +# Tags: [affects-gameplay] +################################################################################ +.include "External/PreventWobbling/PreventWobbling.s" +.include "Online/Online.s" +.include "Common/Common.s" + +# TODO: This doesn't actually work. It would be enabled for all online games when playing but +# TODO: if you went to VS mode to play a local game, it wouldn't be enabled when playing but would +# TODO: be enabled when that replay was played. We will have to pass the scene and mode the game +# TODO: was played to the playback engine to properly decide when to enable this code in a replay + +# Only run this code in ranked and playback +getMinorMajor r3 +cmpwi r3, SCENE_ONLINE_IN_GAME +beq EXEC_CODE +cmpwi r3, SCENE_PLAYBACK_IN_GAME +beq EXEC_CODE +b WRAPPER_EXIT + +EXEC_CODE: +Wobbling_InitWobbleCount + +WRAPPER_EXIT: +#Original codeline +lwz r0, 0x005C (sp) \ No newline at end of file diff --git a/External/PreventWobbling/Ranked/Wobble Check.asm b/External/PreventWobbling/Ranked/Wobble Check.asm new file mode 100644 index 00000000..c75911d9 --- /dev/null +++ b/External/PreventWobbling/Ranked/Wobble Check.asm @@ -0,0 +1,27 @@ +################################################################################ +# Address: 8008F090 +# Tags: [affects-gameplay] +################################################################################ +.include "External/PreventWobbling/PreventWobbling.s" +.include "Online/Online.s" +.include "Common/Common.s" + +# TODO: This doesn't actually work. It would be enabled for all online games when playing but +# TODO: if you went to VS mode to play a local game, it wouldn't be enabled when playing but would +# TODO: be enabled when that replay was played. We will have to pass the scene and mode the game +# TODO: was played to the playback engine to properly decide when to enable this code in a replay + +# Only run this code in ranked and playback +getMinorMajor r3 +cmpwi r3, SCENE_ONLINE_IN_GAME +beq EXEC_CODE +cmpwi r3, SCENE_PLAYBACK_IN_GAME +beq EXEC_CODE +b WRAPPER_EXIT + +EXEC_CODE: +Wobbling_Check + +WRAPPER_EXIT: +#Original codeline +lwz r0, 0x0010 (r27) \ No newline at end of file diff --git a/External/PreventWobbling/Wobble Check.asm b/External/PreventWobbling/Wobble Check.asm index 118b1ccf..6b7ebbdb 100644 --- a/External/PreventWobbling/Wobble Check.asm +++ b/External/PreventWobbling/Wobble Check.asm @@ -2,172 +2,9 @@ # Address: 8008F090 # Tags: [affects-gameplay] ################################################################################ -.include "Common/Common.s" +.include "External/PreventWobbling/PreventWobbling.s" -.set REG_DefenderData,27 +Wobbling_Check -.set ASID_CapturePulledHi, 0xDF -.set ASID_CaptureDamageLw, 0xE4 -.set ASID_CaptureJump, 0xE6 - -.set OFST_IsLeader,0x2222 -.set Bitflag_IsLeader,0x4 -.set OFST_IsDead,0x221f -.set Bitflag_IsDead,0x40 -.set OFST_IsFrozen,0x2219 -.set Bitflag_IsFrozen,0x04 - -.set OFST_WobbleCounter,0x2384 -.set OFST_LastMoveID,0x2386 -.set MaxWobbles,3 - -.set Match_CheckIfTeams,0x8016B168 -.set AS_218_CatchCut,0x800da698 -.set AS_CaptureJump,0x800dc070 -.set ActionStateChange,0x800693ac -.set AirStoreBoolLoseGroundJump,0x8007d5d4 -.set PlayerBlock_LoadDataOffset,0x8003418C -.set IceClimbers_CheckNanaAliveAndActionable, 0x8012300c - -.set Wobbling_Exit,0x8008F0C8 - -# injecting upon entering capturedamage - - #Ensure im being held in a grab (not thrown) - lwz r3,0x10(REG_DefenderData) - cmpwi r3,ASID_CapturePulledHi - blt Original - cmpwi r3,ASID_CaptureDamageLw - bgt Original - #Get grabber data - lwz r3,0x1A58(REG_DefenderData) - cmpwi r3,0 - beq Original - lwz r4,0x2C(r3) - #Ensure grabber has a follower - lbz r4,OFST_IsLeader(r4) - rlwinm. r4,r4,0,Bitflag_IsLeader - beq Original -/* - lbz r3,0xC(r3) - li r4,1 - branchl r12,PlayerBlock_LoadDataOffset - cmpwi r3,0 - beq Original -*/ - #Check if the person who damaged me IS that fighter - lwz r4,0x1868(REG_DefenderData) - cmpw r3,r4 - beq IsFollower - #Check if its an item - lhz r5,0x0(r4) - cmpwi r5,6 - bne Original - IsItem: - #Check if the item belongs to the fighter - lwz r5,0x2C(r4) - lwz r4,0x518(r5) - cmpw r3,r4 - bne Original - #Check if this is the same move i was last hit with - lhz r3,0xDA8(r5) - lhz r4,OFST_LastMoveID(REG_DefenderData) - cmpw r3,r4 - beq Original - #Increment wobble count - b UpdateWobbleCount - IsFollower: - #Check if this is the same move i was last hit with - lwz r5,0x2C(r3) - lhz r3,0x2088(r5) - lhz r4,OFST_LastMoveID(REG_DefenderData) - cmpw r3,r4 - beq Original - UpdateWobbleCount: - #Update last move id - sth r3,OFST_LastMoveID(REG_DefenderData) - #Increment wobble count by 1 - lbz r3,OFST_WobbleCounter(REG_DefenderData) - addi r3,r3,1 - stb r3,OFST_WobbleCounter(REG_DefenderData) - #Only in singles - branchl r12,Match_CheckIfTeams - cmpwi r3,0 - bne Original - #Check if wobble count exceeds max - lbz r3,OFST_WobbleCounter(REG_DefenderData) - cmpwi r3,MaxWobbles - ble Original - - .set REG_GrabberGObj, 20 - .set REG_FollowerGObj, 21 - backup - #Break this grab - lwz REG_GrabberGObj,0x1A58(REG_DefenderData) - mr r3,REG_GrabberGObj - branchl r12,AS_218_CatchCut - #Enter Nana into catchcut as well - lwz r3,0x2C(REG_GrabberGObj) #Get grabber data - lbz r3,0xC(r3) - li r4,1 - branchl r12,PlayerBlock_LoadDataOffset - cmpwi r3,0 - beq SkipBreak - mr REG_FollowerGObj,r3 - #Check if her AI is in follow mode - #lbz r5, 0x1a88 + 0xFA (r4) - #rlwinm. r5,r5,0,0x01 - #beq SkipBreak - #Ensure that she is alive and actionable - lwz r4,0x2c(REG_FollowerGObj) - lbz r0, OFST_IsDead (r4) # dead flag - rlwinm. r0, r0, 0, Bitflag_IsDead - bne SkipBreak - lbz r0, OFST_IsFrozen (r4) # frozen flag - rlwinm. r0, r0, 0, Bitflag_IsFrozen - bne SkipBreak - lbz r0, 0x2071 (r4) # state kind - rlwinm r0, r0, 28, 28, 31 - cmpwi r0, 13 # star and screen KOs - beq SkipBreak -CheckGroundState: - #Check grounded/airborne - lwz r5, 0xE0 (r4) - cmpwi r5,0 - bne AerialBreak - GroundBreak: - #Grounded nana enters catchcut (800da698, r4 is 0) - li r4,0 - branchl r12,AS_218_CatchCut #0x800da698 - b SkipBreak - AerialBreak: - #Aerial nana enters capturejump (800dc070) - lwz r3,0x2c(REG_FollowerGObj) - branchl r12,AirStoreBoolLoseGroundJump #0x8007d5d4 - # give velocity - lwz r3,0x2c(REG_FollowerGObj) - lwz r5, -0x514C (r13) - lfs f0, 0x0374 (r5) - lfs f1,0x2c(r3) - fneg f1,f1 - fmuls f0,f0,f1 - stfs f0, 0x80 (r3) - lfs f0, 0x0378 (r5) - stfs f0, 0x84 (r3) - lfs f0, -0x6900 (rtoc) - stfs f0, 0x2340 (r3) - # change state - lfs f1, -0x6900 (rtoc) - lfs f2, -0x68FC (rtoc) - fmr f3, f1 - mr r3, REG_FollowerGObj - li r4, ASID_CaptureJump - li r5, 0 - li r6, 0 - branchl r12,ActionStateChange #0x800693ac - SkipBreak: - restore - branch r12,Wobbling_Exit - - Original: - lwz r0, 0x0010 (r27) +# Original codeline +lwz r0, 0x0010 (r27) \ No newline at end of file diff --git a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm index aa126919..ba2a244a 100644 --- a/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +++ b/Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm @@ -48,8 +48,8 @@ beq RETURN_LOCKED b EXIT LOGGED_IN_STATE: -cmpwi r4, OPTION_RANKED_IDX -beq RETURN_LOCKED +# cmpwi r4, OPTION_RANKED_IDX +# beq RETURN_LOCKED cmpwi r4, OPTION_LOGIN_IDX beq RETURN_LOCKED cmpwi r4, OPTION_UPDATE_IDX diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index e37f273f..fd7ff379 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -1778,6 +1778,27 @@ "Annotation": "Common/PSCameraIndependentMonitor/PSCameraIndependentMonitor.asm", "Tags": "[affects-gameplay]" }, + { + "InjectionAddress": "800DB880", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "External/PreventWobbling/Init Wobble Count Air.asm", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "800DBBD4", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "External/PreventWobbling/Init Wobble Count Ground.asm", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8008F090", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "External/PreventWobbling/Wobble Check.asm", + "Tags": "[affects-gameplay]" + }, { "InjectionAddress": "803761EC", "Name": "Recommended: Normal Lag Reduction", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ed68d8aa..c07d980e 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4273,19 +4273,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -6865,6 +6864,76 @@ C03D000C FC020840 BA8100B0 800100E4 382100E0 7C0803A6 60000000 00000000 +C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm +38600000 987D2384 +3860FFFF B07D2386 +8001005C 00000000 +C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm +38600000 987D2384 +3860FFFF B07D2386 +8001005C 00000000 +C208F090 0000003D #External/PreventWobbling/Wobble Check.asm +807B0010 2C0300DF +418001D8 2C0300E4 +418101D0 807B1A58 +2C030000 418201C4 +8083002C 88842222 +5484077B 418201B4 +809B1868 7C032000 +41820034 A0A40000 +2C050006 4082019C +80A4002C 80850518 +7C032000 4082018C +A0650DA8 A09B2386 +7C032000 4182017C +48000018 80A3002C +A0652088 A09B2386 +7C032000 41820164 +B07B2386 887B2384 +38630001 987B2384 +3D808016 618CB168 +7D8903A6 4E800421 +2C030000 4082013C +887B2384 2C030003 +40810130 7C0802A6 +90010004 9421FF20 +BE8100B0 829B1A58 +7E83A378 3D80800D +618CA698 7D8903A6 +4E800421 8074002C +8863000C 38800001 +3D808003 618C418C +7D8903A6 4E800421 +2C030000 418200C4 +7C751B78 8095002C +8804221F 54000673 +408200B0 88042219 +5400077B 408200A4 +88042071 5400E73E +2C00000D 41820094 +80A400E0 2C050000 +4082001C 38800000 +3D80800D 618CA698 +7D8903A6 4E800421 +48000070 8075002C +3D808007 618CD5D4 +7D8903A6 4E800421 +8075002C 80ADAEB4 +C0050374 C023002C +FC200850 EC000072 +D0030080 C0050378 +D0030084 C0029700 +D0032340 C0229700 +C0429704 FC600890 +7EA3AB78 388000E6 +38A00000 38C00000 +3D808006 618C93AC +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +3D808008 618CF0C8 +7D8903A6 4E800420 +801B0010 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 0704aa77..0bad6a1d 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4272,19 +4272,18 @@ C222B044 00000006 #Online/Menus/TitleMenu/AllowSwapToSameSubmenu.asm 7D8903A6 4E800420 38600000 986DAFA2 60000000 00000000 -C22299F0 00000019 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm -2C030008 408200B8 +C22299F0 00000018 #Online/Menus/TitleMenu/HandleOnlineLockedOptions.asm +2C030008 408200B0 886DAFA1 2C030000 41820014 2C030001 41820040 2C030002 -41820054 2C040000 -41820080 2C040001 -41820078 2C040002 -41820070 2C040003 -41820068 2C040005 -41820060 2C040006 -41820058 48000068 -2C040000 4182004C +4182004C 2C040000 +41820078 2C040001 +41820070 2C040002 +41820068 2C040003 +41820060 2C040005 +41820058 2C040006 +41820050 48000060 2C040004 41820044 2C040006 4182003C 4800004C 2C040000 @@ -6864,6 +6863,76 @@ C03D000C FC020840 BA8100B0 800100E4 382100E0 7C0803A6 60000000 00000000 +C20DB880 00000003 #External/PreventWobbling/Init Wobble Count Air.asm +38600000 987D2384 +3860FFFF B07D2386 +8001005C 00000000 +C20DBBD4 00000003 #External/PreventWobbling/Init Wobble Count Ground.asm +38600000 987D2384 +3860FFFF B07D2386 +8001005C 00000000 +C208F090 0000003D #External/PreventWobbling/Wobble Check.asm +807B0010 2C0300DF +418001D8 2C0300E4 +418101D0 807B1A58 +2C030000 418201C4 +8083002C 88842222 +5484077B 418201B4 +809B1868 7C032000 +41820034 A0A40000 +2C050006 4082019C +80A4002C 80850518 +7C032000 4082018C +A0650DA8 A09B2386 +7C032000 4182017C +48000018 80A3002C +A0652088 A09B2386 +7C032000 41820164 +B07B2386 887B2384 +38630001 987B2384 +3D808016 618CB168 +7D8903A6 4E800421 +2C030000 4082013C +887B2384 2C030003 +40810130 7C0802A6 +90010004 9421FF20 +BE8100B0 829B1A58 +7E83A378 3D80800D +618CA698 7D8903A6 +4E800421 8074002C +8863000C 38800001 +3D808003 618C418C +7D8903A6 4E800421 +2C030000 418200C4 +7C751B78 8095002C +8804221F 54000673 +408200B0 88042219 +5400077B 408200A4 +88042071 5400E73E +2C00000D 41820094 +80A400E0 2C050000 +4082001C 38800000 +3D80800D 618CA698 +7D8903A6 4E800421 +48000070 8075002C +3D808007 618CD5D4 +7D8903A6 4E800421 +8075002C 80ADAEB4 +C0050374 C023002C +FC200850 EC000072 +D0030080 C0050378 +D0030084 C0029700 +D0032340 C0229700 +C0429704 FC600890 +7EA3AB78 388000E6 +38A00000 38C00000 +3D808006 618C93AC +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +3D808008 618CF0C8 +7D8903A6 4E800420 +801B0010 00000000 $Recommended: Normal Lag Reduction [Hannes Mann] *Reduces input lag diff --git a/console_gameplay_both.json b/console_gameplay_both.json index 49a554e9..e9d589e3 100644 --- a/console_gameplay_both.json +++ b/console_gameplay_both.json @@ -36,7 +36,7 @@ { "type": "injectFolder", "sourceFolder": "External/PreventWobbling", - "isRecursive": true, + "isRecursive": false, "annotation": "Disable wobbling" } ] diff --git a/console_gameplay_wobbling.json b/console_gameplay_wobbling.json index b3b53ae2..911c705f 100644 --- a/console_gameplay_wobbling.json +++ b/console_gameplay_wobbling.json @@ -20,7 +20,7 @@ { "type": "injectFolder", "sourceFolder": "External/PreventWobbling", - "isRecursive": true, + "isRecursive": false, "annotation": "Disable wobbling" } ] diff --git a/netplay.json b/netplay.json index 3d746114..de99eee0 100644 --- a/netplay.json +++ b/netplay.json @@ -360,6 +360,12 @@ "sourceFolder": "Common/PSCameraIndependentMonitor", "isRecursive": true, "annotation": "Avoids PS + Widescreen desyncs [Fizzi]" + }, + { + "type": "injectFolder", + "sourceFolder": "External/PreventWobbling", + "isRecursive": false, + "annotation": "Disable wobbling [UnclePunch]" } ] }, From bd57a702be8f02051b01c18875b2e0c91c5cf76d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 13 Dec 2022 21:06:17 -0500 Subject: [PATCH 182/217] fix inputs on first actionable frame --- Online/Core/TriggerSendInput.asm | 4 ++-- Online/Online.s | 5 +++++ Output/Netplay/GALE01r2.ini | 4 ++-- Output/Netplay/GALJ01r2.ini | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Online/Core/TriggerSendInput.asm b/Online/Core/TriggerSendInput.asm index 29af048f..52847705 100644 --- a/Online/Core/TriggerSendInput.asm +++ b/Online/Core/TriggerSendInput.asm @@ -83,7 +83,7 @@ PROCESS_NOT_ROLLBACK: # both replays are identical when considering only finalized frames ################################################################################ lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) -li r4, UNFREEZE_INPUTS_FRAME +li r4, START_SYNC_FRAME sub r3, r4, r3 cmpw REG_FRAME_INDEX, r3 # Frame 84 +/- 1 (not sure) is first unfrozen frame bge SKIP_FROZEN_INPUT_CLEAR @@ -767,7 +767,7 @@ logf LOG_LEVEL_NOTICE, "[TSI] [%d] (Opp) P%d Needs Prediction" # Don't save any states at the start of the game, it's frozen anyway # and there might still be stuff loading lbz r3, ODB_DELAY_FRAMES(REG_ODB_ADDRESS) -li r4, UNFREEZE_INPUTS_FRAME +li r4, START_SYNC_FRAME sub r3, r4, r3 cmpw REG_FRAME_INDEX, r3 # Frame 84 +/- 1 (not sure) is first unfrozen frame blt LOAD_STALE_INPUTS diff --git a/Online/Online.s b/Online/Online.s index 571492fa..350917d5 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -58,6 +58,11 @@ .set UNFREEZE_INPUTS_FRAME, 84 +# Inputs before freeze time are important because if they get zero'd out, inputs on the first +# actionable frame will be treated as new inputs rather than held inputs. +# Think 5 should be more than enough (pad buffer size), 6 to be safe +.set START_SYNC_FRAME, UNFREEZE_INPUTS_FRAME - 6 + .set STATIC_PLAYER_BLOCK_P1, 0x80453080 .set STATIC_PLAYER_BLOCK_LEN, 0xE90 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index c07d980e..18304fb9 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1812,7 +1812,7 @@ C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 887B00DF 2C030000 41820010 887B00E0 2C030000 4182067C -887B0021 38800054 +887B0021 3880004E 7C632050 7C1A1800 4080001C 387E002C 38800030 3D808000 @@ -1982,7 +1982,7 @@ BA8100B0 800100E4 1CD40004 38C6001A 7C66C02E 7C7A1850 2C030000 408000D8 -887B0021 38800054 +887B0021 3880004E 7C632050 7C1A1800 418000C0 887B000F 2C030001 418200B4 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 0bad6a1d..8ef9e40a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1811,7 +1811,7 @@ C2376A28 000000F2 #Online/Core/TriggerSendInput.asm 887B00DF 2C030000 41820010 887B00E0 2C030000 4182067C -887B0021 38800054 +887B0021 3880004E 7C632050 7C1A1800 4080001C 387E002C 38800030 3D808000 @@ -1981,7 +1981,7 @@ BA8100B0 800100E4 1CD40004 38C6001A 7C66C02E 7C7A1850 2C030000 408000D8 -887B0021 38800054 +887B0021 3880004E 7C632050 7C1A1800 418000C0 887B000F 2C030001 418200B4 From 65f9064989f61e29fa2587f00cc5e258bfb15e78 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 17 Dec 2022 04:55:40 -0500 Subject: [PATCH 183/217] send out completion messages --- Common/Common.s | 1 + Online/Slippi Online Scene/main.asm | 35 +- Output/Netplay/GALE01r2.ini | 579 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 579 ++++++++++++++-------------- 4 files changed, 627 insertions(+), 567 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 7764a7ff..f2e987de 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -541,6 +541,7 @@ add \reg, r3, r4 .set CONST_SlippiCmdReportMatch,0xBD .set CONST_SlippiCmdSendNameEntryIndex,0xBE .set CONST_SlippiCmdNameEntryAutoComplete,0xBF +.set CONST_SlippiCmdReportSetCompletion,0xC2 # For Slippi file loads .set CONST_SlippiCmdFileLength, 0xD1 .set CONST_SlippiCmdFileLoad, 0xD2 diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index fca73868..883f11be 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -559,6 +559,25 @@ restore blr #endregion +FN_ReportSetCompletion: +backup +mr r31, r3 + +li r3, 1 +branchl r12, HSD_MemAlloc + +# Write tx data +li r4, CONST_SlippiCmdReportSetCompletion +stb r4, 0(r3) +stb r31, 1(r3) + +# Transfer completion +li r4, 1 +li r5, CONST_ExiWrite +branchl r12, FN_EXITransferBuffer + +blr + #region VSSceneDecide VSSceneDecide: .set REG_MSRB_ADDR, 31 @@ -587,7 +606,12 @@ bne VSSceneDecide_SkipRankedHandler # If connection is not active, just go back to CSS lbz r3, MSRB_CONNECTION_STATE(REG_MSRB_ADDR) cmpwi r3, MM_STATE_IDLE -beq VSSceneDecide_SkipRankedHandler +bne VSSceneDecide_ConnectionActive +# Report disconnect +li r3, 1 +bl FN_ReportSetCompletion +b VSSceneDecide_SkipRankedHandler +VSSceneDecide_ConnectionActive: bl GamePrepData_BLRL mflr REG_GPD @@ -654,6 +678,10 @@ stb r3, 0x5(r4) b VSSceneDecide_ModeHandlerEnd VSSceneDecide_RankedSetOver: +# Report normal set completion +li r3, 0 +bl FN_ReportSetCompletion + # Disconnect from opponent # Prepare buffer for EXI transfer li r3, 1 @@ -1377,6 +1405,11 @@ cmpwi r3, MM_STATE_CONNECTION_SUCCESS beq GamePrepSceneDecide_ExecNormal # Here we have disconnected from opponent, go back to CSS + +# I commented the below because the game setup scene itself already sends the communication +# li r3, 1 +# bl FN_ReportSetCompletion + # Go back to CSS load r4, 0x80479d30 li r3, 0x01 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 18304fb9..399223cb 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4924,7 +4924,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001F0 #Online/Slippi Online Scene/main.asm +C21A45B8 000001FD #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4935,7 +4935,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F14 80830000 +48000F78 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4967,7 +4967,7 @@ BE8100B0 3C80803E BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B31 +7C8802A6 48000B95 7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 @@ -4997,16 +4997,16 @@ BA8100B0 800100E4 48000275 09000000 80480668 80480668 02030000 801B1588 -4800030D 02000000 +4800035D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005B9 -480008F5 20000000 +04030000 4800061D +48000959 20000000 80490880 804D68D0 -05030000 48000C09 -48000C49 50000000 +05030000 48000C6D +48000CAD 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5044,7 +5044,7 @@ BE8100B0 7C7E1B78 7F6802A6 7F63DB78 3880001C 3D808000 618CC160 7D8903A6 -4E800421 480008C9 +4E800421 4800092D 7C6802A6 907B0018 38600003 987B0000 38600001 B07B0001 @@ -5058,7 +5058,7 @@ BE8100B0 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000771 3C808047 +480007D5 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -5086,7 +5086,7 @@ BE8100B0 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000691 3C808047 +480006F5 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -5096,331 +5096,344 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 +BE8100B0 7C7F1B78 +38600001 3D808037 +618CF1E4 7D8903A6 +4E800421 388000C2 +98830000 9BE30001 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +4E800020 7C0802A6 +90010004 9421FF20 BE8100B0 3D80801B 618C15C8 7D8903A6 4E800421 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 40820108 +2C030000 4082011C 887F0000 2C030000 -418200FC 4BFFFD09 -7F6802A6 3C808046 -6084B6A0 88640008 -987B0017 480006D5 -7C7C1B78 2C1C0000 -40800014 887B0006 -38630001 987B0006 -48000060 9B9B0005 -A09B0001 38840006 -7F9B21AE 387C0003 -7C9B18AE 38A40001 -7CBB19AE 1C9C0002 -38840010 A07F026A -7C7B232E 889B0000 -38840001 38600002 -7C841B96 7C052000 -4080002C A07B0001 -38630001 B07B0001 -38600000 987B0006 +40820010 38600001 +4BFFFF5D 48000104 +4BFFFCAD 7F6802A6 +3C808046 6084B6A0 +88640008 987B0017 +480006DD 7C7C1B78 +2C1C0000 40800014 +887B0006 38630001 +987B0006 48000060 +9B9B0005 A09B0001 +38840006 7F9B21AE +387C0003 7C9B18AE +38A40001 7CBB19AE +1C9C0002 38840010 +A07F026A 7C7B232E +889B0000 38840001 +38600002 7C841B96 +7C052000 4080002C +A07B0001 38630001 +B07B0001 38600000 +987B0006 3C808047 +60849D30 38600006 +98640005 4800006C +38600000 4BFFFEA9 +38600001 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BA 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 3C808047 60849D30 -38600006 98640005 -48000064 38600001 +38600001 98640005 +887F0003 480006E9 +986DAFC9 886DAFA0 +2C030003 40820020 +887F0003 38800001 +2C030000 40820008 +38800000 988DAFC9 +4800003C 3A800000 +3AA00000 7E83A378 +480006AD 2C030000 +41820008 3AB50001 +3A940001 2C140004 +4180FFE4 2C150001 +4182000C 38600000 +986DAFC9 3E808047 +62949DA4 887F0003 +48000675 2C030000 +41820018 38600001 +98740000 38600000 +9874005D 48000014 +38600000 98740000 +38600001 9874005D +886DAFA0 2C030003 +4182000C 2C030000 +4082000C 38600000 +98740004 38600000 +986DAFCA 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C7E1B78 386000BA +7C7E1B78 386000BC 987E0000 7FC3F378 38800001 38A00001 3D808000 618C55F0 7D8903A6 4E800421 +7FC3F378 38800004 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 3C80804D +807E0000 90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 887F0003 -480006E9 986DAFC9 -886DAFA0 2C030003 -40820020 887F0003 -38800001 2C030000 -40820008 38800000 -988DAFC9 4800003C -3A800000 3AA00000 -7E83A378 480006AD -2C030000 41820008 -3AB50001 3A940001 -2C140004 4180FFE4 -2C150001 4182000C -38600000 986DAFC9 -3E808047 62949DA4 -887F0003 48000675 -2C030000 41820018 -38600001 98740000 -38600000 9874005D -48000014 38600000 -98740000 38600001 -9874005D 886DAFA0 -2C030003 4182000C -2C030000 4082000C -38600000 98740004 -38600000 986DAFCA -38600004 3D808037 -618CF1E4 7D8903A6 +4E800421 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 4E800021 +01780101 01FF2121 +FF2121EE 0000EE00 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600000 3D808000 +618C5610 7D8903A6 4E800421 7C7E1B78 -386000BC 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -38800004 38A00000 -3D808000 618C55F0 +83ED8840 3BFF0598 +886DAFA0 2C030003 +40820048 3BA00000 +1CBD0024 38650069 +7C7F18AE 38630001 +38850060 7C9F20AE +3D808000 618C56B0 7D8903A6 4E800421 -3C80804D 807E0000 -90645F90 7FC3F378 -3D808037 618CF1B0 +1C9D0024 38840063 +7C7F21AE 3BBD0001 +2C1D0004 4180FFC4 +3C608049 60630888 +4BFFFF65 7C8802A6 +38A00010 3D808000 +618C31F4 7D8903A6 +4E800421 3C808049 +60840888 887F0060 +98640005 887F0063 +9864000B 887F0084 +98640008 887F0087 +9864000E 38600000 +9864FFFF 9864FFFB +887E0264 2C030000 +418200F4 887E0003 +1C630024 386302C5 +7F7E18AE 38600002 +98640002 38600001 +9864FFFB 98640006 +98640007 98640009 +9864000A 9864000C +9864000D 9864000F +98640010 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 40820030 +1CBD0024 38A50060 +7CBF28AE 38DC0005 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000B 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840003 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 41820030 +1CBD0024 38A50060 +7CBF28AE 38DC0008 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000E 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840004 3C808043 +60842078 887F0060 +90640014 887F0063 +98640018 887F0084 +9064001C 887F0087 +98640020 887E0264 +2C030000 41820024 +887F00A8 90640024 +887F00AB 98640028 +887F00CC 9064002C +887F00CF 98640030 +A07F000E 9064000C +3D808001 618C8254 +7D8903A6 4E800421 +386000C7 3D808001 +618C8C2C 7D8903A6 +4E800421 38600004 +3D808001 618C7700 7D8903A6 4E800421 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 +3860001C 3D808002 +618C6F2C 7D8903A6 +4E800421 3A800000 +1C140024 7FF5FB78 +7EB50214 3D808000 +618C569C 7D8903A6 +4E800421 88950060 +7C840774 7C041800 +41820028 38600000 +3D808000 618C56A0 +7D8903A6 4E800421 +3D808000 618C56A8 +7D8903A6 4E800421 +3A940001 2C140006 +3AB50024 4180FFB0 +A07F000E 3D808022 +618C519C 7D8903A6 +4E800421 7C641B78 +38600001 3D808000 +618C56A0 7D8903A6 +4E800421 3D808000 +618C56A8 7D8903A6 +4E800421 3D808002 +618C7168 7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -4E800021 01780101 -01FF2121 FF2121EE -0000EE00 7C0802A6 +7C0802A6 90010004 +9421FF20 BE8100B0 +3C808047 60849D30 +38600003 98640005 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 90010004 9421FF20 BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 -7C7E1B78 83ED8840 -3BFF0598 886DAFA0 -2C030003 40820048 -3BA00000 1CBD0024 -38650069 7C7F18AE -38630001 38850060 -7C9F20AE 3D808000 -618C56B0 7D8903A6 -4E800421 1C9D0024 -38840063 7C7F21AE -3BBD0001 2C1D0004 -4180FFC4 3C608049 -60630888 4BFFFF65 -7C8802A6 38A00010 +7C7F1B78 83CD8840 +3BDE0598 7FC3F378 +389F025C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -3C808049 60840888 -887F0060 98640005 -887F0063 9864000B -887F0084 98640008 -887F0087 9864000E -38600000 9864FFFF -9864FFFB 887E0264 -2C030000 418200F4 -887E0003 1C630024 -386302C5 7F7E18AE -38600002 98640002 -38600001 9864FFFB -98640006 98640007 -98640009 9864000A -9864000C 9864000D -9864000F 98640010 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -40820030 1CBD0024 -38A50060 7CBF28AE -38DC0005 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000B -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840003 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -41820030 1CBD0024 -38A50060 7CBF28AE -38DC0008 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000E -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840004 -3C808043 60842078 -887F0060 90640014 -887F0063 98640018 -887F0084 9064001C -887F0087 98640020 -887E0264 2C030000 -41820024 887F00A8 -90640024 887F00AB -98640028 887F00CC -9064002C 887F00CF -98640030 A07F000E -9064000C 3D808001 -618C8254 7D8903A6 -4E800421 386000C7 -3D808001 618C8C2C -7D8903A6 4E800421 -38600004 3D808001 -618C7700 7D8903A6 -4E800421 3860001C -3D808002 618C6F2C -7D8903A6 4E800421 -3A800000 1C140024 -7FF5FB78 7EB50214 -3D808000 618C569C +7FC3F378 3D808000 +618C5694 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F02BC +98830000 889F02BF +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F02E0 98640002 +38602121 B0640003 +3C808049 60840880 +887F02E3 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 3FE08047 +63FF9DA4 887F0004 +2C030001 41820010 +2C030002 4182007C +480000C4 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -88950060 7C840774 -7C041800 41820028 -38600000 3D808000 -618C56A0 7D8903A6 -4E800421 3D808000 -618C56A8 7D8903A6 -4E800421 3A940001 -2C140006 3AB50024 -4180FFB0 A07F000E -3D808022 618C519C +7C7B1B78 38600001 +3D808003 618C3BD8 7D8903A6 4E800421 -7C641B78 38600001 -3D808000 618C56A0 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 7D8903A6 4E800421 -3D808000 618C56A8 +7C7B1B78 38600001 +3D808003 618C42B4 7D8903A6 4E800421 -3D808002 618C7168 +7C1B1800 41800048 +4181004C 48000050 +38600000 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820024 38600001 +3D808003 618C3BD8 7D8903A6 4E800421 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 -BE8100B0 3C808047 -60849D30 38600003 -98640005 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7F1B78 -83CD8840 3BDE0598 -7FC3F378 389F025C -38A00138 3D808000 -618C31F4 7D8903A6 -4E800421 7FC3F378 -3D808000 618C5694 -7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F02BC 98830000 -889F02BF 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F02E0 -98640002 38602121 -B0640003 3C808049 -60840880 887F02E3 -98640016 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 +BE8100B0 7C7D1B78 3FE08047 63FF9DA4 -887F0004 2C030001 -41820010 2C030002 -4182007C 480000C4 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 -3D808003 618C3BD8 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA8100B0 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +83E30010 887F0006 +2C030000 40820014 +3D808001 618C74BC +7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +887E0000 2C030004 +41820018 3C808047 +60849D30 38600001 +98640005 48000038 887F0006 2C030000 -40820014 3D808001 -618C74BC 7D8903A6 -4E800421 BA8100B0 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFC5D 3C808047 +60849D30 38600005 +98640005 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -83E30010 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0000 -2C030004 41820018 -3C808047 60849D30 -38600001 98640005 -48000038 887F0006 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFC5D -3C808047 60849D30 -38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8ef9e40a..a7d1b80f 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4923,7 +4923,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001F0 #Online/Slippi Online Scene/main.asm +C21A45B8 000001FD #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4934,7 +4934,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F14 80830000 +48000F78 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4966,7 +4966,7 @@ BE8100B0 3C80803E BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B31 +7C8802A6 48000B95 7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 @@ -4996,16 +4996,16 @@ BA8100B0 800100E4 48000275 09000000 80480668 80480668 02030000 801B1588 -4800030D 02000000 +4800035D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 480005B9 -480008F5 20000000 +04030000 4800061D +48000959 20000000 80490880 804D68D0 -05030000 48000C09 -48000C49 50000000 +05030000 48000C6D +48000CAD 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5043,7 +5043,7 @@ BE8100B0 7C7E1B78 7F6802A6 7F63DB78 3880001C 3D808000 618CC160 7D8903A6 -4E800421 480008C9 +4E800421 4800092D 7C6802A6 907B0018 38600003 987B0000 38600001 B07B0001 @@ -5057,7 +5057,7 @@ BE8100B0 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -48000771 3C808047 +480007D5 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -5085,7 +5085,7 @@ BE8100B0 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000691 3C808047 +480006F5 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -5095,331 +5095,344 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 +BE8100B0 7C7F1B78 +38600001 3D808037 +618CF1E4 7D8903A6 +4E800421 388000C2 +98830000 9BE30001 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +4E800020 7C0802A6 +90010004 9421FF20 BE8100B0 3D80801B 618C15C8 7D8903A6 4E800421 38600000 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 40820108 +2C030000 4082011C 887F0000 2C030000 -418200FC 4BFFFD09 -7F6802A6 3C808046 -6084B6A0 88640008 -987B0017 480006D5 -7C7C1B78 2C1C0000 -40800014 887B0006 -38630001 987B0006 -48000060 9B9B0005 -A09B0001 38840006 -7F9B21AE 387C0003 -7C9B18AE 38A40001 -7CBB19AE 1C9C0002 -38840010 A07F026A -7C7B232E 889B0000 -38840001 38600002 -7C841B96 7C052000 -4080002C A07B0001 -38630001 B07B0001 -38600000 987B0006 +40820010 38600001 +4BFFFF5D 48000104 +4BFFFCAD 7F6802A6 +3C808046 6084B6A0 +88640008 987B0017 +480006DD 7C7C1B78 +2C1C0000 40800014 +887B0006 38630001 +987B0006 48000060 +9B9B0005 A09B0001 +38840006 7F9B21AE +387C0003 7C9B18AE +38A40001 7CBB19AE +1C9C0002 38840010 +A07F026A 7C7B232E +889B0000 38840001 +38600002 7C841B96 +7C052000 4080002C +A07B0001 38630001 +B07B0001 38600000 +987B0006 3C808047 +60849D30 38600006 +98640005 4800006C +38600000 4BFFFEA9 +38600001 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BA 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +3D808037 618CF1B0 +7D8903A6 4E800421 3C808047 60849D30 -38600006 98640005 -48000064 38600001 +38600001 98640005 +887F0003 480006E9 +986DAFC9 886DAFA0 +2C030003 40820020 +887F0003 38800001 +2C030000 40820008 +38800000 988DAFC9 +4800003C 3A800000 +3AA00000 7E83A378 +480006AD 2C030000 +41820008 3AB50001 +3A940001 2C140004 +4180FFE4 2C150001 +4182000C 38600000 +986DAFC9 3E808047 +62949DA4 887F0003 +48000675 2C030000 +41820018 38600001 +98740000 38600000 +9874005D 48000014 +38600000 98740000 +38600001 9874005D +886DAFA0 2C030003 +4182000C 2C030000 +4082000C 38600000 +98740004 38600000 +986DAFCA 38600004 3D808037 618CF1E4 7D8903A6 4E800421 -7C7E1B78 386000BA +7C7E1B78 386000BC 987E0000 7FC3F378 38800001 38A00001 3D808000 618C55F0 7D8903A6 4E800421 +7FC3F378 38800004 +38A00000 3D808000 +618C55F0 7D8903A6 +4E800421 3C80804D +807E0000 90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 3C808047 -60849D30 38600001 -98640005 887F0003 -480006E9 986DAFC9 -886DAFA0 2C030003 -40820020 887F0003 -38800001 2C030000 -40820008 38800000 -988DAFC9 4800003C -3A800000 3AA00000 -7E83A378 480006AD -2C030000 41820008 -3AB50001 3A940001 -2C140004 4180FFE4 -2C150001 4182000C -38600000 986DAFC9 -3E808047 62949DA4 -887F0003 48000675 -2C030000 41820018 -38600001 98740000 -38600000 9874005D -48000014 38600000 -98740000 38600001 -9874005D 886DAFA0 -2C030003 4182000C -2C030000 4082000C -38600000 98740004 -38600000 986DAFCA -38600004 3D808037 -618CF1E4 7D8903A6 +4E800421 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 4E800021 +01780101 01FF2121 +FF2121EE 0000EE00 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600000 3D808000 +618C5610 7D8903A6 4E800421 7C7E1B78 -386000BC 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -38800004 38A00000 -3D808000 618C55F0 +83ED8840 3BFF0598 +886DAFA0 2C030003 +40820048 3BA00000 +1CBD0024 38650069 +7C7F18AE 38630001 +38850060 7C9F20AE +3D808000 618C56B0 7D8903A6 4E800421 -3C80804D 807E0000 -90645F90 7FC3F378 -3D808037 618CF1B0 +1C9D0024 38840063 +7C7F21AE 3BBD0001 +2C1D0004 4180FFC4 +3C608049 60630888 +4BFFFF65 7C8802A6 +38A00010 3D808000 +618C31F4 7D8903A6 +4E800421 3C808049 +60840888 887F0060 +98640005 887F0063 +9864000B 887F0084 +98640008 887F0087 +9864000E 38600000 +9864FFFF 9864FFFB +887E0264 2C030000 +418200F4 887E0003 +1C630024 386302C5 +7F7E18AE 38600002 +98640002 38600001 +9864FFFB 98640006 +98640007 98640009 +9864000A 9864000C +9864000D 9864000F +98640010 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 40820030 +1CBD0024 38A50060 +7CBF28AE 38DC0005 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000B 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840003 3BA00000 +3B800000 1C7D0024 +38630069 7C7F18AE +7C03D800 41820030 +1CBD0024 38A50060 +7CBF28AE 38DC0008 +7CA621AE 1CBD0024 +38A50063 7CBF28AE +38DC000E 7CA621AE +3B9C0001 3BBD0001 +2C1D0004 4180FFB8 +9B840004 3C808043 +60842078 887F0060 +90640014 887F0063 +98640018 887F0084 +9064001C 887F0087 +98640020 887E0264 +2C030000 41820024 +887F00A8 90640024 +887F00AB 98640028 +887F00CC 9064002C +887F00CF 98640030 +A07F000E 9064000C +3D808001 618C8254 +7D8903A6 4E800421 +386000C7 3D808001 +618C8C2C 7D8903A6 +4E800421 38600004 +3D808001 618C7700 7D8903A6 4E800421 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 +3860001C 3D808002 +618C6F2C 7D8903A6 +4E800421 3A800000 +1C140024 7FF5FB78 +7EB50214 3D808000 +618C569C 7D8903A6 +4E800421 88950060 +7C840774 7C041800 +41820028 38600000 +3D808000 618C56A0 +7D8903A6 4E800421 +3D808000 618C56A8 +7D8903A6 4E800421 +3A940001 2C140006 +3AB50024 4180FFB0 +A07F000E 3D808022 +618C519C 7D8903A6 +4E800421 7C641B78 +38600001 3D808000 +618C56A0 7D8903A6 +4E800421 3D808000 +618C56A8 7D8903A6 +4E800421 3D808002 +618C7168 7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -4E800021 01780101 -01FF2121 FF2121EE -0000EE00 7C0802A6 +7C0802A6 90010004 +9421FF20 BE8100B0 +3C808047 60849D30 +38600003 98640005 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 90010004 9421FF20 BE8100B0 38600000 3D808000 618C5610 7D8903A6 4E800421 -7C7E1B78 83ED8840 -3BFF0598 886DAFA0 -2C030003 40820048 -3BA00000 1CBD0024 -38650069 7C7F18AE -38630001 38850060 -7C9F20AE 3D808000 -618C56B0 7D8903A6 -4E800421 1C9D0024 -38840063 7C7F21AE -3BBD0001 2C1D0004 -4180FFC4 3C608049 -60630888 4BFFFF65 -7C8802A6 38A00010 +7C7F1B78 83CD8840 +3BDE0598 7FC3F378 +389F025C 38A00138 3D808000 618C31F4 7D8903A6 4E800421 -3C808049 60840888 -887F0060 98640005 -887F0063 9864000B -887F0084 98640008 -887F0087 9864000E -38600000 9864FFFF -9864FFFB 887E0264 -2C030000 418200F4 -887E0003 1C630024 -386302C5 7F7E18AE -38600002 98640002 -38600001 9864FFFB -98640006 98640007 -98640009 9864000A -9864000C 9864000D -9864000F 98640010 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -40820030 1CBD0024 -38A50060 7CBF28AE -38DC0005 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000B -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840003 -3BA00000 3B800000 -1C7D0024 38630069 -7C7F18AE 7C03D800 -41820030 1CBD0024 -38A50060 7CBF28AE -38DC0008 7CA621AE -1CBD0024 38A50063 -7CBF28AE 38DC000E -7CA621AE 3B9C0001 -3BBD0001 2C1D0004 -4180FFB8 9B840004 -3C808043 60842078 -887F0060 90640014 -887F0063 98640018 -887F0084 9064001C -887F0087 98640020 -887E0264 2C030000 -41820024 887F00A8 -90640024 887F00AB -98640028 887F00CC -9064002C 887F00CF -98640030 A07F000E -9064000C 3D808001 -618C8254 7D8903A6 -4E800421 386000C7 -3D808001 618C8C2C -7D8903A6 4E800421 -38600004 3D808001 -618C7700 7D8903A6 -4E800421 3860001C -3D808002 618C6F2C -7D8903A6 4E800421 -3A800000 1C140024 -7FF5FB78 7EB50214 -3D808000 618C569C +7FC3F378 3D808000 +618C5694 7D8903A6 +4E800421 3D808017 +618CEB30 7D8903A6 +4E800421 889F02BC +98830000 889F02BF +98830001 38800000 +98830002 38800003 +98830005 38800078 +98830004 3C80803D +6084DEC8 8084000C +887F02E0 98640002 +38602121 B0640003 +3C808049 60840880 +887F02E3 98640016 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 3FE08047 +63FF9DA4 887F0004 +2C030001 41820010 +2C030002 4182007C +480000C4 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -88950060 7C840774 -7C041800 41820028 -38600000 3D808000 -618C56A0 7D8903A6 -4E800421 3D808000 -618C56A8 7D8903A6 -4E800421 3A940001 -2C140006 3AB50024 -4180FFB0 A07F000E -3D808022 618C519C +7C7B1B78 38600001 +3D808003 618C3BD8 7D8903A6 4E800421 -7C641B78 38600001 -3D808000 618C56A0 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 7D8903A6 4E800421 -3D808000 618C56A8 +7C7B1B78 38600001 +3D808003 618C42B4 7D8903A6 4E800421 -3D808002 618C7168 +7C1B1800 41800048 +4181004C 48000050 +38600000 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820024 38600001 +3D808003 618C3BD8 7D8903A6 4E800421 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 -BE8100B0 3C808047 -60849D30 38600003 -98640005 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7F1B78 -83CD8840 3BDE0598 -7FC3F378 389F025C -38A00138 3D808000 -618C31F4 7D8903A6 -4E800421 7FC3F378 -3D808000 618C5694 -7D8903A6 4E800421 -3D808017 618CEB30 -7D8903A6 4E800421 -889F02BC 98830000 -889F02BF 98830001 -38800000 98830002 -38800003 98830005 -38800078 98830004 -3C80803D 6084DEC8 -8084000C 887F02E0 -98640002 38602121 -B0640003 3C808049 -60840880 887F02E3 -98640016 7FE3FB78 -3D808037 618CF1B0 -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -7C0802A6 90010004 -9421FF20 BE8100B0 +BE8100B0 7C7D1B78 3FE08047 63FF9DA4 -887F0004 2C030001 -41820010 2C030002 -4182007C 480000C4 -38600000 3D808003 -618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 -3D808003 618C3BD8 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA8100B0 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +83E30010 887F0006 +2C030000 40820014 +3D808001 618C74BC +7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +887E0000 2C030004 +41820018 3C808047 +60849D30 38600001 +98640005 48000038 887F0006 2C030000 -40820014 3D808001 -618C74BC 7D8903A6 -4E800421 BA8100B0 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFC5D 3C808047 +60849D30 38600005 +98640005 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -83E30010 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0000 -2C030004 41820018 -3C808047 60849D30 -38600001 98640005 -48000038 887F0006 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFC5D -3C808047 60849D30 -38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 From 3718b9fa64be0541fb189ff70cb600e5ddcf9acf Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 17 Dec 2022 13:38:24 -0500 Subject: [PATCH 184/217] fix bug with reporting completions --- Online/Slippi Online Scene/main.asm | 3 ++- Output/Netplay/GALE01r2.ini | 32 +++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 32 +++++++++++++++-------------- 3 files changed, 36 insertions(+), 31 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index 883f11be..a7e613be 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -563,7 +563,7 @@ FN_ReportSetCompletion: backup mr r31, r3 -li r3, 1 +li r3, 2 branchl r12, HSD_MemAlloc # Write tx data @@ -576,6 +576,7 @@ li r4, 1 li r5, CONST_ExiWrite branchl r12, FN_EXITransferBuffer +restore blr #region VSSceneDecide diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 399223cb..954934a3 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4924,7 +4924,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001FD #Online/Slippi Online Scene/main.asm +C21A45B8 000001FF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4935,7 +4935,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F78 80830000 +48000F88 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4967,7 +4967,7 @@ BE8100B0 3C80803E BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B95 +7C8802A6 48000BA5 7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 @@ -4997,16 +4997,16 @@ BA8100B0 800100E4 48000275 09000000 80480668 80480668 02030000 801B1588 -4800035D 02000000 +4800036D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 4800061D -48000959 20000000 +04030000 4800062D +48000969 20000000 80490880 804D68D0 -05030000 48000C6D -48000CAD 50000000 +05030000 48000C7D +48000CBD 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5044,7 +5044,7 @@ BE8100B0 7C7E1B78 7F6802A6 7F63DB78 3880001C 3D808000 618CC160 7D8903A6 -4E800421 4800092D +4E800421 4800093D 7C6802A6 907B0018 38600003 987B0000 38600001 B07B0001 @@ -5058,7 +5058,7 @@ BE8100B0 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -480007D5 3C808047 +480007E5 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -5086,7 +5086,7 @@ BE8100B0 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -480006F5 3C808047 +48000705 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -5097,13 +5097,15 @@ BA8100B0 800100E4 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 7C7F1B78 -38600001 3D808037 +38600002 3D808037 618CF1E4 7D8903A6 4E800421 388000C2 98830000 9BE30001 38800001 38A00001 3D808000 618C55F0 7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 3D80801B @@ -5115,8 +5117,8 @@ BE8100B0 3D80801B 2C030000 4082011C 887F0000 2C030000 40820010 38600001 -4BFFFF5D 48000104 -4BFFFCAD 7F6802A6 +4BFFFF4D 48000104 +4BFFFC9D 7F6802A6 3C808046 6084B6A0 88640008 987B0017 480006DD 7C7C1B78 @@ -5137,7 +5139,7 @@ B07B0001 38600000 987B0006 3C808047 60849D30 38600006 98640005 4800006C -38600000 4BFFFEA9 +38600000 4BFFFE99 38600001 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a7d1b80f..2c8d467a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4923,7 +4923,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001FD #Online/Slippi Online Scene/main.asm +C21A45B8 000001FF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4934,7 +4934,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F78 80830000 +48000F88 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4966,7 +4966,7 @@ BE8100B0 3C80803E BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000B95 +7C8802A6 48000BA5 7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 @@ -4996,16 +4996,16 @@ BA8100B0 800100E4 48000275 09000000 80480668 80480668 02030000 801B1588 -4800035D 02000000 +4800036D 02000000 80480530 80479D98 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 4800061D -48000959 20000000 +04030000 4800062D +48000969 20000000 80490880 804D68D0 -05030000 48000C6D -48000CAD 50000000 +05030000 48000C7D +48000CBD 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5043,7 +5043,7 @@ BE8100B0 7C7E1B78 7F6802A6 7F63DB78 3880001C 3D808000 618CC160 7D8903A6 -4E800421 4800092D +4E800421 4800093D 7C6802A6 907B0018 38600003 987B0000 38600001 B07B0001 @@ -5057,7 +5057,7 @@ BE8100B0 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -480007D5 3C808047 +480007E5 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -5085,7 +5085,7 @@ BE8100B0 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -480006F5 3C808047 +48000705 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -5096,13 +5096,15 @@ BA8100B0 800100E4 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 7C7F1B78 -38600001 3D808037 +38600002 3D808037 618CF1E4 7D8903A6 4E800421 388000C2 98830000 9BE30001 38800001 38A00001 3D808000 618C55F0 7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 3D80801B @@ -5114,8 +5116,8 @@ BE8100B0 3D80801B 2C030000 4082011C 887F0000 2C030000 40820010 38600001 -4BFFFF5D 48000104 -4BFFFCAD 7F6802A6 +4BFFFF4D 48000104 +4BFFFC9D 7F6802A6 3C808046 6084B6A0 88640008 987B0017 480006DD 7C7C1B78 @@ -5136,7 +5138,7 @@ B07B0001 38600000 987B0006 3C808047 60849D30 38600006 98640005 4800006C -38600000 4BFFFEA9 +38600000 4BFFFE99 38600001 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 From a56af40c0f1ec1b2b2eab4f623f86a36b749e7ac Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 9 Feb 2023 15:52:26 -0500 Subject: [PATCH 185/217] add logic to skip dead fighters for whispy dir --- Common/FastForward/WhispyDirectionFix.asm | 26 +++++++++++++++++++++++ Output/Playback/GALE01r2.ini | 7 ++++++ Output/Playback/GALJ01r2.ini | 7 ++++++ 3 files changed, 40 insertions(+) create mode 100644 Common/FastForward/WhispyDirectionFix.asm diff --git a/Common/FastForward/WhispyDirectionFix.asm b/Common/FastForward/WhispyDirectionFix.asm new file mode 100644 index 00000000..162b0870 --- /dev/null +++ b/Common/FastForward/WhispyDirectionFix.asm @@ -0,0 +1,26 @@ +################################################################################ +# Address: 8008653c +################################################################################ +.include "Common/Common.s" + +# This was added to prevent a bug where if a fighter is camera KO'd on the same frames that +# whispy decides what direction to blow, whispy would check the fighter bones at 80086538 +# to determine if the character is to the left or right of center. During a fast-forward/rollback, +# however, the bone positions can be wrong. This is likely due to our FreezeDeadUpFallPhysics logic? +# Could be worth taking a look at that some time to see if we can make it behave identically during +# a fast-forward. I'm not super confident though because I think it's dependent on camera position +# which I don't think updates correctly all the time during a FFW? + +lwz r12, 0x2C(r29) +lwz r3, 0x10(r12) +cmpwi r3, 0xB +bgt EXIT + +# If character is in a Dead animation (such as camera KO), we load zero into r0 in order +# to effectively say that the character is on neither side (left or right), skipping the +# character in the logic calculation. +li r0, 0 +branch r12, 0x8008655c + +EXIT: +lfs f1, 0x0020(sp) \ No newline at end of file diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 4989a922..77248930 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -898,6 +898,13 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C208653C 00000006 #Common/FastForward/WhispyDirectionFix.asm +819D002C 806C0010 +2C03000A 41810018 +38000000 3D808008 +618C655C 7D8903A6 +4E800420 C0210020 +60000000 00000000 C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm 38600021 4E800020 60000000 00000000 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index f074a13b..acb64abc 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -897,6 +897,13 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 +C208653C 00000006 #Common/FastForward/WhispyDirectionFix.asm +819D002C 806C0010 +2C03000A 41810018 +38000000 3D808008 +618C655C 7D8903A6 +4E800420 C0210020 +60000000 00000000 C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm 38600021 4E800020 60000000 00000000 From 7b35a77c04cd951f790d646084ddc2596fdd4546 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 9 Feb 2023 16:13:23 -0500 Subject: [PATCH 186/217] move file to online and add affects gameplay --- .../Core/WhispyBlowDirFix/WhispyBlowDirFix.asm | 1 + Output/InjectionLists/list_netplay.json | 7 +++++++ Output/Netplay/GALE01r2.ini | 7 +++++++ Output/Netplay/GALJ01r2.ini | 7 +++++++ Output/Playback/GALE01r2.ini | 7 ------- Output/Playback/GALJ01r2.ini | 7 ------- 6 files changed, 22 insertions(+), 14 deletions(-) rename Common/FastForward/WhispyDirectionFix.asm => Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm (97%) diff --git a/Common/FastForward/WhispyDirectionFix.asm b/Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm similarity index 97% rename from Common/FastForward/WhispyDirectionFix.asm rename to Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm index 162b0870..a34fb63c 100644 --- a/Common/FastForward/WhispyDirectionFix.asm +++ b/Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 8008653c +# Tags: [affects-gameplay] ################################################################################ .include "Common/Common.s" diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index fd7ff379..068f2730 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -784,6 +784,13 @@ "Annotation": "Online/Core/Teams/PreventDeadStranding.asm", "Tags": "" }, + { + "InjectionAddress": "8008653C", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm", + "Tags": "[affects-gameplay]" + }, { "InjectionAddress": "80266BC4", "Name": "Required: Slippi Online", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 954934a3..5b97b9b7 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -2338,6 +2338,13 @@ C216BE28 0000000A #Online/Core/Teams/PreventDeadStranding.asm 4800000C 38600000 48000004 2C030000 60000000 00000000 +C208653C 00000006 #Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm +819D002C 806C0010 +2C03000B 41810018 +38000000 3D808008 +618C655C 7D8903A6 +4E800420 C0210020 +60000000 00000000 C2266BC4 00000006 #Online/Menus/CSS/DisableLRSTART.asm 3C608048 80639D30 5463443E 2C030008 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 2c8d467a..05bd1ffb 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -2337,6 +2337,13 @@ C216BE28 0000000A #Online/Core/Teams/PreventDeadStranding.asm 4800000C 38600000 48000004 2C030000 60000000 00000000 +C208653C 00000006 #Online/Core/WhispyBlowDirFix/WhispyBlowDirFix.asm +819D002C 806C0010 +2C03000B 41810018 +38000000 3D808008 +618C655C 7D8903A6 +4E800420 C0210020 +60000000 00000000 C2266BC4 00000006 #Online/Menus/CSS/DisableLRSTART.asm 3C608048 80639D30 5463443E 2C030008 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 77248930..4989a922 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -898,13 +898,6 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 -C208653C 00000006 #Common/FastForward/WhispyDirectionFix.asm -819D002C 806C0010 -2C03000A 41810018 -38000000 3D808008 -618C655C 7D8903A6 -4E800420 C0210020 -60000000 00000000 C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm 38600021 4E800020 60000000 00000000 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index acb64abc..f074a13b 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -897,13 +897,6 @@ C209E090 00000011 #Common/FastForward/DynamicsFix.asm 8001001C 38210018 7C0803A6 4E800020 BB010028 00000000 -C208653C 00000006 #Common/FastForward/WhispyDirectionFix.asm -819D002C 806C0010 -2C03000A 41810018 -38000000 3D808008 -618C655C 7D8903A6 -4E800420 C0210020 -60000000 00000000 C200569C 00000002 #Common/CompatibilityHooks/GetFighterNum.asm 38600021 4E800020 60000000 00000000 From 422bb7838d7e7984f5bb02ceae8941d48e2df8bd Mon Sep 17 00:00:00 2001 From: Calvin Keats Date: Sun, 7 May 2023 19:22:23 -0500 Subject: [PATCH 187/217] add UCF 0.84 --- Binary/UCF_0.84.bin | Bin 0 -> 2128 bytes External/UCF 0.84/Indicator/UCF Text.asm | 104 ++++++++ Output/Console/g_ucf_084.bin | Bin 0 -> 2352 bytes Output/Console/g_ucf_084.txt | 295 +++++++++++++++++++++++ Output/Console/g_ucf_084_stealth.bin | Bin 0 -> 2128 bytes Output/Console/g_ucf_084_stealth.txt | 267 ++++++++++++++++++++ build-console-all.bat | 2 + build.bat | 2 + build.sh | 2 + console_UCF_084.json | 36 +++ console_UCF_084_stealth.json | 26 ++ 11 files changed, 734 insertions(+) create mode 100644 Binary/UCF_0.84.bin create mode 100644 External/UCF 0.84/Indicator/UCF Text.asm create mode 100644 Output/Console/g_ucf_084.bin create mode 100644 Output/Console/g_ucf_084.txt create mode 100644 Output/Console/g_ucf_084_stealth.bin create mode 100644 Output/Console/g_ucf_084_stealth.txt create mode 100644 console_UCF_084.json create mode 100644 console_UCF_084_stealth.json diff --git a/Binary/UCF_0.84.bin b/Binary/UCF_0.84.bin new file mode 100644 index 0000000000000000000000000000000000000000..dd2cb0f495d49b1ffeb9e9138625d1bacc1edf07 GIT binary patch literal 2128 zcmcIkU2GIp6#lk5%-*d_SY-^0_Gi{EW`~Rf8e(SZZo9iS+Ab?pvKt7Iu&`i!@S%i0 z^kIgb>6WA$`_P6y01>1_d85GuV>SHDHbT%~qAyL;AVLfjOo_z!fKs}iyW46_ct8_x zGMRIK&b{ZH?>pawcrFVd-2r?`|9>?u)dAY~pRY=s1oS3s$tYrL*ozY}8>-e1G2Ksd z0lv3v$mtxNk%9MfZPxG_2t)gT%@$-m^tWG%&S^RF%aNaZ!LNV8ufO7lp+gY3-$=0R zTnZv|*oKrJs5u>#t=jxgk9u`Qj+u)4^kz#4s%{|G=Q>GysSkb>1G>`KoB!icZ_x{v z%IMyXayfPiOpigRPh!2TfHfY3@3r%Qsce-RZ$LD?(~{XawayNMS$83r_0!UD5dI>~ zhvVd{z%_IWzKr6zc$C&My4Y&ACZ&wRBIeFb>+BW?suwHi9Y5KA)$7_BKZT70HlESG z6y<^4s5SaMJx0#cv#C6Pf!3GPnveFhCF`F!FNh(E6QvKaehyj0Z8)W4qCAHhf9V}) zdJuuf)*gS!z{XkZ7{5QbV|)&1cx+`GOl!*+?bq2Z1PqYPP-D~FWbsLgzs6KLCru?G zsovEf?A|k@(^9b$-b|<1O0iQ7(N$~__Y=0R_$WGby*zI=d_y^UE@l{ulvc^nVzIG7pA47JK-J3i@gQHus~QA;s_UZ zLoJMAW1$313nG?9bxinYGs^mAQ+c(UY9a7C)YrmCd?4%- z66M2;pA(YK%JUiKxtN|IT$2gOxTlR}l4L7gW5p4vj5&;L$&rir5uiSsVaf@`>~ zDMsIR;-Xtu;)4Tu_?GfC-Ur!kf@*g*T(jGt4zEQZqpX;xnDR&0LZn&{V}S|pk&o%O zn))?*DRu2z-g~?U`5qs0a;@Ka1A_A|*laK`J}0w=sh8oi?!d3jpoaI3Re)+-tvPL- z89V0)V#HbFmgcCO6m$20Aa+}~-Le4Gsl>B=)Mt$Pjbjt09P2bw4Ab4i{7n2*`DQBdT!QA; z>8Z+?SiWzT3_s^z+p5~=6ZzLp@$Oy1zYy{7E6VXom4A+a5rZ^);Ii1QiiEob)mc-C z?Xq!a!z9@udh-k8%7#hf3UNrRaEOr~vehs!!EUF>tTzzmJiT6Q5)bhHCXPyE_i%g{ z`@K{URX%szV)*``yLlGbmQufPmfIDM**H?+*y~TP3EExKz}keAo~de}nQW1auM<*5 z6TGo8aA$U6L{D>LitLD un{cr(Lf9UNIDh46mHNf7vrIU<&@0Yh0M)m?*V_^wDs>*WPj1kAh*!Kk?+^@k9!>AOEc zYZbWqZor>Wyr=h2UnVLx8BHlEqp(I}!-@q~0|eEFnRHHo;(+RNZAcu(k{$~$XeUIu zXA`RQZf}R4^LDH#O`f9u>D1?^G3}}T&z)DqFy)Ejr&u_FED{!+;$BgnfICop7g{ug z;6rnBpr~WXIMyG(+q?ew1W^0X%+?y_s$m+hwp%Xo*HklSb|LRHOHFhOx%{wUlJkB&D_2 zSfkD0%K!MgWH-TOFmH#U@F%{SpP~A^eY8J|rfANoE7G0~@b%=y&H`arAS??BL<*ar z77k%ap$JV2A)ZC0jrjL2qe!-!U#+`T2X#APMS0z`HnM@39EV=j!t=adJRr)}Ys1IJ z;aOa?(OAAK6X)$_vAvwXg_ALuUV9_)fgK6#iU@&>vT(7XyxvZCA@F;sse+&QK-ecG zs)y;nCZ#AVO=g()bb5?%O(iA$jy9Z0QLL;U*2f;zsZG`S@}E>^nmBr&IPcO-xcZyx zaib%BqsHU-wGqEw=Mmr)!~W7=;N zYb#16TlYpsX}(Ocp^rsJbu>sS%A5+CH&9JA1Stom-{$&+%<~=bu|McFleFq0{CWw$ zNQ_YDT%Pa~_e^yBA9(RID%|`BW-LYr8tYtgmM2GT#CPyGy+U-~`=0hY$3t4&30BtM zeh7s1y>V>5Pda1K1pHikTx&E>u&9sEd!#i!uQI-N*yLI#KOx_9>$%yZdM+hJ>u;6x zT+97*ZpI|Pr(%KdtR)QSKH3s>5P%yI5rWgv05|42<_d^=Ohl7uD2y$O49dL zI;z}8rf(gmAi(+8JgX}9O#UsSe78KszcBIdTdMI~g@2BK0i8U%=d9SSiiEof)tOt) z?W}%l(I~}XI`eD&+@ewa9C1i2bBNJ8WGiW4gxzeTutrCO^Yp4+FYe&_CXPxJcW`_k z>AhGGRsQXG#K_%V&*E`p8;ae+Q685$W?`_*v8B)N3EFM)z^bH_9;z8w1uO@7n^gFbC&!NG1F|=)cbzguq*#+JwKnh~Za!vF2G z$2*)i)DP!92$elP9DKaTmN}h#9*r{^XO;1fTON(m`UvSMlnesj*e058ZQB;RaN#2F g%Pd_kFI=E4q16WA$`_P6y01>1_d85GuV>SHDHbT%~qAyL;AVLfjOo_z!fKs}iyW46_ct8_x zGMRIK&b{ZH?>pawcrFVd-2r?`|9>?u)dAY~pRY=s1oS3s$tYrL*ozY}8>-e1G2Ksd z0lv3v$mtxNk%9MfZPxG_2t)gT%@$-m^tWG%&S^RF%aNaZ!LNV8ufO7lp+gY3-$=0R zTnZv|*oKrJs5u>#t=jxgk9u`Qj+u)4^kz#4s%{|G=Q>GysSkb>1G>`KoB!icZ_x{v z%IMyXayfPiOpigRPh!2TfHfY3@3r%Qsce-RZ$LD?(~{XawayNMS$83r_0!UD5dI>~ zhvVd{z%_IWzKr6zc$C&My4Y&ACZ&wRBIeFb>+BW?suwHi9Y5KA)$7_BKZT70HlESG z6y<^4s5SaMJx0#cv#C6Pf!3GPnveFhCF`F!FNh(E6QvKaehyj0Z8)W4qCAHhf9V}) zdJuuf)*gS!z{XkZ7{5QbV|)&1cx+`GOl!*+?bq2Z1PqYPP-D~FWbsLgzs6KLCru?G zsovEf?A|k@(^9b$-b|<1O0iQ7(N$~__Y=0R_$WGby*zI=d_y^UE@l{ulvc^nVzIG7pA47JK-J3i@gQHus~QA;s_UZ zLoJMAW1$313nG?9bxinYGs^mAQ+c(UY9a7C)YrmCd?4%- z66M2;pA(YK%JUiKxtN|IT$2gOxTlR}l4L7gW5p4vj5&;L$&rir5uiSsVaf@`>~ zDMsIR;-Xtu;)4Tu_?GfC-Ur!kf@*g*T(jGt4zEQZqpX;xnDR&0LZn&{V}S|pk&o%O zn))?*DRu2z-g~?U`5qs0a;@Ka1A_A|*laK`J}0w=sh8oi?!d3jpoaI3Re)+-tvPL- z89V0)V#HbFmgcCO6m$20Aa+}~-Le4Gsl>B=)Mt$Pjbjt09P2bw4Ab4i{7n2*`DQBdT!QA; z>8Z+?SiWzT3_s^z+p5~=6ZzLp@$Oy1zYy{7E6VXom4A+a5rZ^);Ii1QiiEob)mc-C z?Xq!a!z9@udh-k8%7#hf3UNrRaEOr~vehs!!EUF>tTzzmJiT6Q5)bhHCXPyE_i%g{ z`@K{URX%szV)*``yLlGbmQufPmfIDM**H?+*y~TP3EExKz}keAo~de}nQW1auM<*5 z6TGo8aA$U6L{D>LitLD un{cr(Lf9UNIDh46mHNf7vrIU<&@ Date: Fri, 12 May 2023 01:38:31 -0700 Subject: [PATCH 188/217] update makefile --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 5c967a9e..9d175d43 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,8 @@ CONSOLE_CORE_PORTB := core CONSOLE_CORE_PORTA := core_porta CONSOLE_UCF := console_UCF.json CONSOLE_UCF_STEALTH := console_UCF_stealth.json +CONSOLE_UCF_084 := console_UCF_084.json +CONSOLE_UCF_084_STEALTH := console_UCF_084_stealth.json CONSOLE_MODS_STEALTH := console_mods_stealth.json CONSOLE_MODS_TOURNAMENT := console_mods_tournament.json CONSOLE_MODS_FRIENDLIES := console_mods_friendlies.json @@ -30,8 +32,8 @@ CONSOLE_SCREEN_WIDE := console_screen_wide.json CONSOLE_SCREEN_SHUTTERS := console_screen_wide_shutters.json CONSOLE_SAFETY := console_safety.json CONSOLE_CRASH_OUTPUT := console_crash_output.json -CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ - $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) $(CONSOLE_MODS_FRIENDLIES) \ +CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ $(CONSOLE_UCF_084) \ + $(CONSOLE_UCF_084_STEALTH) $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) $(CONSOLE_MODS_FRIENDLIES) \ $(CONSOLE_PAL) $(CONSOLE_FROZEN_PS) $(CONSOLE_FROZEN_ALL) $(CONSOLE_GAMEPLAY_LGL) \ $(CONSOLE_GAMEPLAY_WOBBLE) $(CONSOLE_GAMEPLAY_BOTH) $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) \ $(CONSOLE_SCREEN_WIDE) $(CONSOLE_SCREEN_SHUTTERS) $(CONSOLE_SAFETY) ${CONSOLE_CRASH_OUTPUT} From 4b8946bedb348b354b2c73e5115ddec8d3c4a2c8 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Fri, 12 May 2023 01:39:29 -0700 Subject: [PATCH 189/217] use ubuntu latest for build check and run `make init list` --- .github/workflows/build_check.yml | 2 +- Output/InjectionLists/list_ | 67 +++++++++++++++++++ .../list_console_UCF_084_stealth.json | 60 +++++++++++++++++ 3 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 Output/InjectionLists/list_ create mode 100644 Output/InjectionLists/list_console_UCF_084_stealth.json diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml index 8a428157..23eaf3e2 100644 --- a/.github/workflows/build_check.yml +++ b/.github/workflows/build_check.yml @@ -11,7 +11,7 @@ on: jobs: ubuntu64: name: "Build Check" - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: - name: "Checkout" uses: actions/checkout@v2 diff --git a/Output/InjectionLists/list_ b/Output/InjectionLists/list_ new file mode 100644 index 00000000..b4bd0514 --- /dev/null +++ b/Output/InjectionLists/list_ @@ -0,0 +1,67 @@ +{ + "Details": [ + { + "InjectionAddress": "8006B460", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800C9A44", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800998A4", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800908F4", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8009A0B8", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800D65EC", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8008E54C", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80093294", + "Name": "UCF Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "802662D0", + "Name": "UCF Slippi", + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/Indicator/UCF Text.asm", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_console_UCF_084_stealth.json b/Output/InjectionLists/list_console_UCF_084_stealth.json new file mode 100644 index 00000000..04df9d9f --- /dev/null +++ b/Output/InjectionLists/list_console_UCF_084_stealth.json @@ -0,0 +1,60 @@ +{ + "Details": [ + { + "InjectionAddress": "8006B460", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800C9A44", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800998A4", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800908F4", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8009A0B8", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "800D65EC", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "8008E54C", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + }, + { + "InjectionAddress": "80093294", + "Name": "UCF 0.84 Slippi", + "Codetype": "C2", + "Annotation": "", + "Tags": "" + } + ] +} \ No newline at end of file From ee1c45a1cf550825eccb2ffaaaf0d8bdbaf3e40e Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Fri, 19 May 2023 09:47:33 -0700 Subject: [PATCH 190/217] fix makefile --- Makefile | 2 +- Output/InjectionLists/{list_ => list_console_UCF_084.json} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename Output/InjectionLists/{list_ => list_console_UCF_084.json} (100%) diff --git a/Makefile b/Makefile index 9d175d43..3f93d9df 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ CONSOLE_SCREEN_WIDE := console_screen_wide.json CONSOLE_SCREEN_SHUTTERS := console_screen_wide_shutters.json CONSOLE_SAFETY := console_safety.json CONSOLE_CRASH_OUTPUT := console_crash_output.json -CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) \ $(CONSOLE_UCF_084) \ +CONSOLE := $(CONSOLE_UCF) $(CONSOLE_UCF_STEALTH) $(CONSOLE_UCF_084) \ $(CONSOLE_UCF_084_STEALTH) $(CONSOLE_MODS_STEALTH) $(CONSOLE_MODS_TOURNAMENT) $(CONSOLE_MODS_FRIENDLIES) \ $(CONSOLE_PAL) $(CONSOLE_FROZEN_PS) $(CONSOLE_FROZEN_ALL) $(CONSOLE_GAMEPLAY_LGL) \ $(CONSOLE_GAMEPLAY_WOBBLE) $(CONSOLE_GAMEPLAY_BOTH) $(CONSOLE_LAG_PD) $(CONSOLE_LAG_PDHALFVB) \ diff --git a/Output/InjectionLists/list_ b/Output/InjectionLists/list_console_UCF_084.json similarity index 100% rename from Output/InjectionLists/list_ rename to Output/InjectionLists/list_console_UCF_084.json From 0c32adbe30be89c358bec82aa03671bf21515fb4 Mon Sep 17 00:00:00 2001 From: Calvin Keats Date: Fri, 26 May 2023 22:44:17 -0500 Subject: [PATCH 191/217] Should work but doesn't... --- .../UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm | 41 ++++ External/UCF 0.84/UCF/UCF Dashback.asm | 73 +++++++ .../UCF/UCF Pad Buffer + 1.0 Cardinals.asm | 190 ++++++++++++++++++ External/UCF 0.84/UCF/UCF SDI.asm | 67 ++++++ .../UCF 0.84/UCF/UCF Shield Drop Extended.asm | 86 ++++++++ External/UCF 0.84/UCF/UCF Shield Drop.asm | 61 ++++++ External/UCF 0.84/UCF/UCF Shield SDI.asm | 47 +++++ External/UCF 0.84/UCF/UCF Tumble.asm | 46 +++++ console_UCF_084.json | 9 +- console_UCF_084_stealth.json | 9 +- 10 files changed, 623 insertions(+), 6 deletions(-) create mode 100644 External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm create mode 100644 External/UCF 0.84/UCF/UCF Dashback.asm create mode 100644 External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm create mode 100644 External/UCF 0.84/UCF/UCF SDI.asm create mode 100644 External/UCF 0.84/UCF/UCF Shield Drop Extended.asm create mode 100644 External/UCF 0.84/UCF/UCF Shield Drop.asm create mode 100644 External/UCF 0.84/UCF/UCF Shield SDI.asm create mode 100644 External/UCF 0.84/UCF/UCF Tumble.asm diff --git a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm new file mode 100644 index 00000000..5fbe9bb1 --- /dev/null +++ b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm @@ -0,0 +1,41 @@ +################################################################################ +# Address: 800D65EC +################################################################################ + +loc_0x0: + bl loc_0x3C + addis r24, r23, 2621 + bc 21, 0, 0x8 + subi r6, r17, 0x48E9 + .word 0x00000000 + .word 0x00000000 + +loc_0x18: + fabs f1, f1 + lfs f2, 4(r4) + lfs f3, 8(r4) + fmsubs f1, f1, f2, f3 + fctiwz f1, f1 + stfd f1, 12(r4) + lwz r6, 16(r4) + addi r6, r6, 0x2 + blr + +loc_0x3C: + lfs f0, 148(r4) + mflr r4 + lbz r6, 1648(r5) + cmpwi r6, 0x1 + bge- loc_0x78 + lfs f1, 1568(r5) + bl loc_0x18 + mullw r7, r6, r6 + lfs f1, 1572(r5) + bl loc_0x18 + mullw r6, r6, r6 + add r6, r6, r7 + cmpwi r6, 0x1900 + ble- loc_0x78 + lfs f0, 0(r4) + +loc_0x78: diff --git a/External/UCF 0.84/UCF/UCF Dashback.asm b/External/UCF 0.84/UCF/UCF Dashback.asm new file mode 100644 index 00000000..ecae16b9 --- /dev/null +++ b/External/UCF 0.84/UCF/UCF Dashback.asm @@ -0,0 +1,73 @@ +################################################################################ +# Address: 800C9A44 +################################################################################ + +loc_0x0: + lbz r9, 8735(r31) + stfs f0, 44(r31) + andi. r9, r9, 0x8 + bne- loc_0xFC + lwz r10, 2196(r31) + lis r9, 0x4000 + cmpw r10, r9 + bne- loc_0xFC + lfs f12, 1568(r31) + lwz r9, -20812(r13) + fmuls f0, f0, f12 + lfs f12, 60(r9) + fcmpu cr0, f0, f12 + blt- loc_0xFC + lbz r9, 1648(r31) + cmplwi r9, 1 + bgt- loc_0xFC + lis r8, 0x8007 + lbz r10, 1560(r31) + subi r8, r8, 0x52F0 + lwzu r9, 1040(r8) + rlwinm r9, r9, 6, 0, 25 + srawi r9, r9, 6 + addi r9, r9, 0x4 + add r9, r9, r8 + mulli r8, r10, 0xC + mulli r10, r10, 0x6 + add r8, r9, r8 + lbz r8, 8(r8) + add r7, r10, r8 + subi r8, r8, 0x2 + rlwinm r8, r8, 0, 30, 31 + rlwinm r7, r7, 1, 0, 30 + add r10, r10, r8 + lbzx r7, r9, r7 + rlwinm r10, r10, 1, 0, 30 + lbzx r9, r9, r10 + extsb r7, r7 + extsb r9, r9 + sub r9, r7, r9 + mullw r9, r9, r9 + cmpwi r9, 0x15F9 + ble- loc_0xFC + stwu r1, -8(r1) + li r9, 0x1 + li r4, 0x1 + stw r9, 9024(r31) + stw r9, 9048(r31) + lis r9, 0x8003 + addi r9, r9, 0x418C + lbz r3, 12(r31) + mtctr r9 + bctrl + cmpwi r3, 0x0 + beq- loc_0xF8 + lwz r9, 44(r3) + lwz r10, 7884(r9) + lwz r9, 44(r31) + stw r9, 24(r10) + rlwinm r9, r9, 1, 31, 31 + addi r9, r9, 0x7F + stb r9, 6(r10) + +loc_0xF8: + addi r1, r1, 0x8 + +loc_0xFC: + diff --git a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm new file mode 100644 index 00000000..d27793e2 --- /dev/null +++ b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm @@ -0,0 +1,190 @@ +################################################################################ +# Address: 8006B460 +################################################################################ + +loc_0x0: + bl loc_0xB0 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + stmw r24, 0(r28) + subi r6, r17, 0x48E9 + bc 21, 0, 0x3c + +loc_0x40: + addi r9, r3, 0x4F + rlwinm r9, r9, 0, 24, 31 + cmplwi r9, 158 + ble- loc_0x78 + addi r4, r4, 0x6 + rlwinm r4, r4, 0, 24, 31 + cmplwi r4, 12 + bgtlr- + rlwinm r3, r3, 0, 0, 0 + li r9, 0x0 + xoris r3, r3, 16256 + stw r9, 4(r5) + stw r3, 0(r5) + blr + +loc_0x78: + addi r9, r4, 0x4F + rlwinm r9, r9, 0, 24, 31 + cmplwi r9, 158 + blelr- + addi r3, r3, 0x6 + rlwinm r3, r3, 0, 24, 31 + cmplwi r3, 12 + bgtlr- + rlwinm r4, r4, 0, 0, 0 + li r9, 0x0 + xoris r4, r4, 16256 + stw r9, 0(r5) + stw r4, 4(r5) + blr + +loc_0xB0: + stwu r1, -64(r1) + stmw r25, 36(r1) + stw r28, 20(r1) + mflr r28 + lis r9, 0x800A + mr r3, r31 + addi r9, r9, 0x2040 + mtctr r9 + bctrl + cmpwi r3, 0x0 + bne- loc_0x278 + lis r9, 0x804C + lbz r30, 1560(r31) + addi r9, r9, 0x1F78 + mr r26, r31 + lbz r8, 1(r9) + cmpwi r8, 0x0 + subi r10, r8, 0x1 + bne+ loc_0x100 + li r10, 0x4 + +loc_0x100: + mulli r10, r10, 0x30 + lwz r9, 8(r9) + mulli r27, r30, 0xC + addi r29, r28, 0x0 + add r9, r9, r10 + mulli r30, r30, 0x6 + add r8, r9, r27 + lwzx r10, r9, r27 + lwz r9, 8(r8) + lwz r7, 4(r8) + add r8, r29, r27 + stw r9, 16(r1) + lbz r9, 8(r8) + stw r10, 8(r1) + addi r9, r9, 0x1 + stw r7, 12(r1) + rlwinm r9, r9, 0, 30, 31 + stb r9, 8(r8) + rlwinm r25, r9, 0, 24, 31 + add r9, r30, r9 + rlwinm r9, r9, 1, 0, 30 + sthx r10, r29, r9 + lwz r9, 4(r26) + cmpwi r9, 0x13 + bne+ loc_0x170 + lwz r9, 16(r26) + cmpwi r9, 0x15D + beq+ loc_0x1A0 + +loc_0x170: + lbz r4, 11(r1) + addi r5, r26, 0x620 + lbz r3, 10(r1) + extsb r4, r4 + extsb r3, r3 + bl loc_0x40 + lbz r4, 13(r1) + lbz r3, 12(r1) + addi r5, r26, 0x638 + extsb r4, r4 + extsb r3, r3 + bl loc_0x40 + +loc_0x1A0: + lfs f0, 1572(r26) + li r10, 0x0 + lfs f12, 48(r28) + fcmpu cr0, f0, f12 + bgt- loc_0x270 + lfs f12, 1568(r26) + fabs f0, f0 + lfs f10, 56(r28) + addi r9, r1, 0x18 + fabs f12, f12 + lfs f11, 52(r28) + fmsubs f0, f0, f10, f11 + fmsubs f12, f12, f10, f11 + fctiwz f0, f0 + fctiwz f12, f12 + stfiwx f12, r0, r9 + addi r9, r1, 0x1C + lwz r8, 24(r1) + stfiwx f0, r0, r9 + addi r8, r8, 0x2 + lwz r9, 28(r1) + mullw r8, r8, r8 + addi r9, r9, 0x2 + mullw r9, r9, r9 + add r9, r9, r8 + cmpwi r9, 0x1900 + ble- loc_0x270 + add r9, r29, r27 + lbz r10, 9(r9) + rlwinm r9, r10, 0, 24, 31 + cmpwi r9, 0x0 + bne- loc_0x26C + lbz r9, 1649(r26) + cmplwi r9, 1 + bgt+ loc_0x270 + subi r9, r25, 0x2 + add r8, r30, r25 + rlwinm r9, r9, 0, 30, 31 + rlwinm r8, r8, 1, 0, 30 + add r30, r30, r9 + add r8, r29, r8 + rlwinm r30, r30, 1, 0, 30 + lbz r8, 1(r8) + add r30, r29, r30 + lbz r9, 1(r30) + extsb r8, r8 + extsb r9, r9 + sub r9, r8, r9 + mullw r9, r9, r9 + cmpwi r9, 0x790 + ble- loc_0x270 + +loc_0x26C: + addi r10, r10, 0x1 + +loc_0x270: + add r29, r29, r27 + stb r10, 9(r29) + +loc_0x278: + lbz r3, 1656(r31) + lwz r28, 20(r1) + lwz r25, 36(r1) + lwz r26, 40(r1) + lwz r27, 44(r1) + lwz r29, 52(r1) + lwz r30, 56(r1) + addi r1, r1, 0x40 + diff --git a/External/UCF 0.84/UCF/UCF SDI.asm b/External/UCF 0.84/UCF/UCF SDI.asm new file mode 100644 index 00000000..3d9d5ddb --- /dev/null +++ b/External/UCF 0.84/UCF/UCF SDI.asm @@ -0,0 +1,67 @@ +################################################################################ +# Address: 8008E54C +################################################################################ + +loc_0x0: + cmpw r0, r5 + blt- loc_0xE0 + lbz r9, 1651(r3) + cmplwi r9, 1 + ble- loc_0x24 + lbz r9, 1652(r3) + lis r10, 0x6000 + cmplwi r9, 1 + bgt- loc_0xDC + +loc_0x24: + lfs f12, 1580(r3) + lis r10, 0x6000 + lfs f0, 1576(r3) + fmuls f12, f12, f12 + fmadds f0, f0, f0, f12 + lfs f12, 1200(r4) + fmuls f12, f12, f12 + fcmpu cr0, f12, f0 + ble- loc_0xDC + lis r8, 0x8007 + lbz r10, 1560(r3) + subi r8, r8, 0x52F0 + lwzu r9, 1040(r8) + rlwinm r9, r9, 6, 0, 25 + srawi r9, r9, 6 + addi r9, r9, 0x4 + add r9, r9, r8 + mulli r8, r10, 0xC + mulli r10, r10, 0x6 + add r8, r9, r8 + lbz r8, 8(r8) + subi r7, r8, 0x2 + add r8, r10, r8 + rlwinm r7, r7, 0, 30, 31 + rlwinm r8, r8, 1, 0, 30 + add r10, r10, r7 + add r6, r9, r8 + rlwinm r10, r10, 1, 0, 30 + lbzx r8, r9, r8 + add r7, r9, r10 + lbzx r9, r9, r10 + extsb r8, r8 + lbz r10, 1(r7) + extsb r9, r9 + sub r9, r8, r9 + lbz r8, 1(r6) + extsb r10, r10 + mullw r9, r9, r9 + extsb r8, r8 + sub r10, r8, r10 + mullw r10, r10, r10 + add r9, r9, r10 + lis r10, 0x6000 + cmpwi r9, 0x15F9 + ble- loc_0xDC + lis r10, 0x8000 + +loc_0xDC: + .word 0x7d580120 + +loc_0xE0: diff --git a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm new file mode 100644 index 00000000..aa676203 --- /dev/null +++ b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm @@ -0,0 +1,86 @@ +################################################################################ +# Address: 8009A0B8 +################################################################################ + +loc_0x0: + bl loc_0x9C + stmw r24, 0(r28) + subi r6, r17, 0x48E9 + bc 21, 0, 0xc + +loc_0x10: + lfs f0, 0(r3) + lfs f11, 8(r30) + fabs f0, f0 + lfs f12, 4(r30) + stwu r1, -16(r1) + fmsubs f0, f0, f11, f12 + addi r9, r1, 0x8 + addi r10, r1, 0xC + fctiwz f0, f0 + stfiwx f0, r0, r9 + lfs f0, 4(r3) + lwz r9, 8(r1) + fabs f0, f0 + addi r9, r9, 0x2 + mullw r9, r9, r9 + fmsubs f0, f0, f11, f12 + fctiwz f0, f0 + stfiwx f0, r0, r10 + lwz r3, 12(r1) + addi r1, r1, 0x10 + addi r3, r3, 0x2 + mullw r3, r3, r3 + add r3, r3, r9 + subi r9, r3, 0x1901 + nor r3, r3, r9 + rlwinm r3, r3, 1, 31, 31 + blr + +loc_0x7C: + lfs f12, 4(r3) + lfs f0, 0(r30) + fcmpu cr0, f12, f0 + cror 2, 1, 3 + beq+ loc_0x94 + b loc_0x10 + +loc_0x94: + li r3, 0x0 + blr + +loc_0x9C: + stwu r1, -40(r1) + stw r29, 28(r1) + stw r30, 8(r1) + mflr r30 + cror 2, 0, 2 + beq- loc_0xD8 + lbz r9, 1649(r4) + mr r29, r4 + cmplwi r9, 2 + bgt+ loc_0xD4 + addi r3, r4, 0x620 + bl loc_0x7C + cmpwi r3, 0x0 + bne- loc_0xE8 + +loc_0xD4: + crclr 2, 2 + +loc_0xD8: + lwz r30, 8(r1) + lwz r29, 28(r1) + addi r1, r1, 0x28 + b loc_0x100 + +loc_0xE8: + addi r3, r29, 0x628 + bl loc_0x7C + cmpwi r3, 0x0 + beq- loc_0xD4 + crset 2, 2 + b loc_0xD8 + +loc_0x100: + diff --git a/External/UCF 0.84/UCF/UCF Shield Drop.asm b/External/UCF 0.84/UCF/UCF Shield Drop.asm new file mode 100644 index 00000000..fc19e344 --- /dev/null +++ b/External/UCF 0.84/UCF/UCF Shield Drop.asm @@ -0,0 +1,61 @@ +################################################################################ +# Address: 800998A4 +################################################################################ + +loc_0x0: + bl loc_0x3C + stmw r26, -13107(r12) + bc 21, 0, 0x8 + subi r6, r17, 0x48E9 + .word 0x00000000 + .word 0x00000000 + +loc_0x18: + fabs f1, f1 + lfs f2, 4(r6) + lfs f3, 8(r6) + fmsubs f1, f1, f2, f3 + fctiwz f1, f1 + stfd f1, 12(r6) + lwz r7, 16(r6) + addi r7, r7, 0x2 + blr + +loc_0x3C: + lwz r4, 44(r3) + mflr r6 + lwz r5, -20812(r13) + lfs f0, 1596(r4) + lfs f1, 788(r5) + fcmpo cr0, f0, f1 + ble- loc_0xC4 + lbz r0, 1648(r4) + lwz r7, 800(r5) + cmpw r0, r7 + blt- loc_0xC4 + lfs f1, 1572(r4) + lfs f0, 0(r6) + fcmpo cr0, f1, f0 + ble- loc_0xC4 + lwz r0, 2108(r4) + cmpwi r0, 0xFFFF + beq- loc_0xC4 + lwz r0, 2112(r4) + rlwinm. r0, r0, 0, 23, 23 + beq- loc_0xC4 + bl loc_0x18 + mullw r0, r7, r7 + lfs f1, 1568(r4) + bl loc_0x18 + mullw r7, r7, r7 + add r0, r0, r7 + cmpwi r0, 0x1900 + ble- loc_0xC4 + lwz r7, 28(r1) + addi r1, r1, 0x18 + addi r7, r7, 0x8 + mtlr r7 + blr + +loc_0xC4: + diff --git a/External/UCF 0.84/UCF/UCF Shield SDI.asm b/External/UCF 0.84/UCF/UCF Shield SDI.asm new file mode 100644 index 00000000..1b0cb7ff --- /dev/null +++ b/External/UCF 0.84/UCF/UCF Shield SDI.asm @@ -0,0 +1,47 @@ +################################################################################ +# Address: 80093294 +################################################################################ + +loc_0x0: + cmpw r3, r0 + blt- loc_0x98 + lbz r9, 1651(r4) + lis r6, 0x6000 + cmplwi r9, 1 + bgt- loc_0x94 + lfs f12, 1576(r4) + lfs f0, 1200(r5) + fcmpu cr0, f12, f0 + bge- loc_0x94 + lis r8, 0x8007 + lbz r10, 1560(r4) + subi r8, r8, 0x52F0 + lwzu r9, 1040(r8) + rlwinm r9, r9, 6, 0, 25 + srawi r9, r9, 6 + addi r9, r9, 0x4 + add r9, r9, r8 + mulli r8, r10, 0xC + mulli r10, r10, 0x6 + add r8, r9, r8 + lbz r8, 8(r8) + add r7, r10, r8 + subi r8, r8, 0x2 + rlwinm r8, r8, 0, 30, 31 + rlwinm r7, r7, 1, 0, 30 + add r10, r10, r8 + lbzx r7, r9, r7 + rlwinm r10, r10, 1, 0, 30 + lbzx r9, r9, r10 + extsb r7, r7 + extsb r9, r9 + sub r9, r7, r9 + mullw r9, r9, r9 + cmpwi r9, 0x15F9 + ble- loc_0x94 + lis r6, 0x8000 + +loc_0x94: + .word 0x7cd80120 + +loc_0x98: diff --git a/External/UCF 0.84/UCF/UCF Tumble.asm b/External/UCF 0.84/UCF/UCF Tumble.asm new file mode 100644 index 00000000..f5267c37 --- /dev/null +++ b/External/UCF 0.84/UCF/UCF Tumble.asm @@ -0,0 +1,46 @@ +################################################################################ +# Address: 800908F4 +################################################################################ + +loc_0x0: + cmpwi r3, 0x1 + bne- loc_0x90 + lfs f12, 1576(r31) + lis r10, 0x6000 + fabs f12, f12 + fcmpu cr0, f12, f0 + bge- loc_0x8C + lis r8, 0x8007 + lbz r10, 1560(r31) + subi r8, r8, 0x52F0 + lwzu r9, 1040(r8) + rlwinm r9, r9, 6, 0, 25 + srawi r9, r9, 6 + addi r9, r9, 0x4 + add r9, r9, r8 + mulli r8, r10, 0xC + mulli r10, r10, 0x6 + add r8, r9, r8 + lbz r8, 8(r8) + add r7, r10, r8 + subi r8, r8, 0x2 + rlwinm r8, r8, 0, 30, 31 + rlwinm r7, r7, 1, 0, 30 + add r10, r10, r8 + lbzx r7, r9, r7 + rlwinm r10, r10, 1, 0, 30 + lbzx r9, r9, r10 + extsb r7, r7 + lis r10, 0x6000 + extsb r9, r9 + sub r9, r7, r9 + mullw r9, r9, r9 + cmpwi r9, 0x15F9 + ble- loc_0x8C + lis r10, 0x8000 + +loc_0x8C: + .word 0x7d580120 + +loc_0x90: + diff --git a/console_UCF_084.json b/console_UCF_084.json index 3417721b..72237ae9 100644 --- a/console_UCF_084.json +++ b/console_UCF_084.json @@ -17,12 +17,15 @@ "Fizzi", "Altimor", "PracticalTAS", - "CarVac" + "CarVac", + "Krohnos" ], "build": [ { - "type": "binary", - "sourceFile": "Binary/UCF_0.84.bin" + "type": "injectFolder", + "sourceFolder": "External/UCF 0.84/UCF", + "isRecursive": true, + "annotation": "UCF v0.84" }, { "type": "injectFolder", diff --git a/console_UCF_084_stealth.json b/console_UCF_084_stealth.json index 86402c16..d7107107 100644 --- a/console_UCF_084_stealth.json +++ b/console_UCF_084_stealth.json @@ -13,12 +13,15 @@ "authors": [ "Altimor", "PracticalTAS", - "CarVac" + "CarVac", + "Krohnos" ], "build": [ { - "type": "binary", - "sourceFile": "Binary/UCF_0.84.bin" + "type": "injectFolder", + "sourceFolder": "External/UCF 0.84/UCF", + "isRecursive": true, + "annotation": "UCF v0.84" } ] } From 42c6bb9e39fae6fe3581ee2f694ea23262bbec74 Mon Sep 17 00:00:00 2001 From: Calvin Keats Date: Sat, 27 May 2023 00:12:58 -0500 Subject: [PATCH 192/217] weird instruction fixes --- .../UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm | 6 +- .../UCF/UCF Pad Buffer + 1.0 Cardinals.asm | 6 +- .../UCF 0.84/UCF/UCF Shield Drop Extended.asm | 14 +- External/UCF 0.84/UCF/UCF Shield Drop.asm | 8 +- Output/Console/g_ucf_084.bin | Bin 2352 -> 2320 bytes Output/Console/g_ucf_084.txt | 268 +++++++++--------- Output/Console/g_ucf_084_stealth.bin | Bin 2128 -> 2096 bytes Output/Console/g_ucf_084_stealth.txt | 268 +++++++++--------- 8 files changed, 282 insertions(+), 288 deletions(-) diff --git a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm index 5fbe9bb1..e4d5ff3d 100644 --- a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm +++ b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm @@ -4,9 +4,9 @@ loc_0x0: bl loc_0x3C - addis r24, r23, 2621 - bc 21, 0, 0x8 - subi r6, r17, 0x48E9 + .float 0.59 + .float 80 + .float 0.0001 .word 0x00000000 .word 0x00000000 diff --git a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm index d27793e2..69fea745 100644 --- a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm +++ b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm @@ -16,9 +16,9 @@ loc_0x0: .word 0x00000000 .word 0x00000000 .word 0x00000000 - stmw r24, 0(r28) - subi r6, r17, 0x48E9 - bc 21, 0, 0x3c + .float -0.609375 + .float 0.0001 + .float 80 loc_0x40: addi r9, r3, 0x4F diff --git a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm index aa676203..5b926118 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm @@ -4,10 +4,10 @@ loc_0x0: bl loc_0x9C - stmw r24, 0(r28) - subi r6, r17, 0x48E9 - bc 21, 0, 0xc - + .float -0.609375 + .float 0.0001 + .float 80 + loc_0x10: lfs f0, 0(r3) lfs f11, 8(r30) @@ -66,7 +66,8 @@ loc_0x9C: bne- loc_0xE8 loc_0xD4: - crclr 2, 2 + #crclr 2, 2 + .float 5.08739e+07 loc_0xD8: lwz r30, 8(r1) @@ -79,7 +80,8 @@ loc_0xE8: bl loc_0x7C cmpwi r3, 0x0 beq- loc_0xD4 - crset 2, 2 + #crset 2, 2 + .float 5.08746e+07 b loc_0xD8 loc_0x100: diff --git a/External/UCF 0.84/UCF/UCF Shield Drop.asm b/External/UCF 0.84/UCF/UCF Shield Drop.asm index fc19e344..efad1a43 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop.asm @@ -4,9 +4,9 @@ loc_0x0: bl loc_0x3C - stmw r26, -13107(r12) - bc 21, 0, 0x8 - subi r6, r17, 0x48E9 + .float -0.8 + .float 80 + .float 0.0001 .word 0x00000000 .word 0x00000000 @@ -38,7 +38,7 @@ loc_0x3C: fcmpo cr0, f1, f0 ble- loc_0xC4 lwz r0, 2108(r4) - cmpwi r0, 0xFFFF + cmpwi r0, -1 beq- loc_0xC4 lwz r0, 2112(r4) rlwinm. r0, r0, 0, 23, 23 diff --git a/Output/Console/g_ucf_084.bin b/Output/Console/g_ucf_084.bin index 33b5a516767d0838d1d050f7ccce72966a6dca57..87980f732965a635ef22715083e1db30265545b8 100644 GIT binary patch delta 220 zcmdlWG(kw>5O3-m1_lOx4+aKHdvPvXrv(fQ78kdRPxfI;*}Q~_myw%oO9D_qAW*@~ ziGmUvZE~6TIiC6eg=A_NG#DHk7;a2H!FGj*Q2{8#kXw?N#Gp4>f%QIP_aruDRV(lR z|L-J#WPsoh=ZqylN)lw(exEaE;dY&2-XM_xQUL^qIE|(NDd8Gs29V(sChuVHkzrH- g3PBA&#L4jm$Pvf%QIP_aruDRV(lR z|L-J#WPsoh=ZqylN)lw(exEaE;dY&2-XM_xQUL^qIE|(NDd8Gs29V(sChuVHkzrH- d3PBA&#L4jm$Pv Date: Sat, 27 May 2023 01:23:18 -0400 Subject: [PATCH 193/217] remove chat messages file --- Common/Common.s | 1 - External/NormalDevelopMode/Enable.asm | 5 + External/NormalDevelopMode/NormalCStick1.asm | 5 + External/NormalDevelopMode/NormalCStick2.asm | 5 + External/NormalDevelopMode/StaleMoves.asm | 5 + Online/Static/ChatMessages.asm | 126 ------------------- Output/InjectionLists/list_debugging.json | 32 +++++ Output/InjectionLists/list_netplay.json | 7 -- Output/Netplay/GALE01r2.ini | 48 ------- Output/Netplay/GALJ01r2.ini | 48 ------- debugging.json | 27 ++++ list-injections.bat | 1 + 12 files changed, 80 insertions(+), 230 deletions(-) create mode 100644 External/NormalDevelopMode/Enable.asm create mode 100644 External/NormalDevelopMode/NormalCStick1.asm create mode 100644 External/NormalDevelopMode/NormalCStick2.asm create mode 100644 External/NormalDevelopMode/StaleMoves.asm delete mode 100644 Online/Static/ChatMessages.asm create mode 100644 Output/InjectionLists/list_debugging.json create mode 100644 debugging.json diff --git a/Common/Common.s b/Common/Common.s index f2e987de..6ee37439 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -351,7 +351,6 @@ add \reg, r3, r4 .set FN_MultiplyRWithF,0x800055ec .set FN_IntToFloat,0x800055f4 .set FG_CreateSubtext,0x800056b4 -.set FN_LoadChatMessageProperties,0x800056ac .set FN_GetTeamCostumeIndex,0x800056b0 .set FN_GetCSSIconData,0x800056b8 .set FN_AdjustNullID,0x80005694 diff --git a/External/NormalDevelopMode/Enable.asm b/External/NormalDevelopMode/Enable.asm new file mode 100644 index 00000000..da4a9b92 --- /dev/null +++ b/External/NormalDevelopMode/Enable.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x8015FDBC +################################################################################ + +b 0xAC \ No newline at end of file diff --git a/External/NormalDevelopMode/NormalCStick1.asm b/External/NormalDevelopMode/NormalCStick1.asm new file mode 100644 index 00000000..470cf731 --- /dev/null +++ b/External/NormalDevelopMode/NormalCStick1.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x8006AE90 +################################################################################ + +li r0, 0 \ No newline at end of file diff --git a/External/NormalDevelopMode/NormalCStick2.asm b/External/NormalDevelopMode/NormalCStick2.asm new file mode 100644 index 00000000..3ac14f58 --- /dev/null +++ b/External/NormalDevelopMode/NormalCStick2.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x800300A4 +################################################################################ + +li r0, 0 \ No newline at end of file diff --git a/External/NormalDevelopMode/StaleMoves.asm b/External/NormalDevelopMode/StaleMoves.asm new file mode 100644 index 00000000..d998f128 --- /dev/null +++ b/External/NormalDevelopMode/StaleMoves.asm @@ -0,0 +1,5 @@ +################################################################################ +# Address: 0x80089250 +################################################################################ + +b 0x8 \ No newline at end of file diff --git a/Online/Static/ChatMessages.asm b/Online/Static/ChatMessages.asm deleted file mode 100644 index 81088bf9..00000000 --- a/Online/Static/ChatMessages.asm +++ /dev/null @@ -1,126 +0,0 @@ -################################################################################ -# Address: FN_LoadChatMessageProperties -################################################################################ -# Inputs: -# r3 - Category direction -# r3: 0x08=up, 0x04=down, 0x01=left, 0x02=left -# r4 - Message chosen (PAD_UP/DOWN/RIGHT/LEFT) -# r4: 0x08=PAD_UP 0x04=PAD_DOWN 0x02=PAD_RIGHT 0x01=PAD_LEFT -################################################################################ -# Returns: -# r3: Address to Text Properties -# r4: Address to Message -################################################################################ -# Description: -# Loads Chat Message Properties and chat message for a given category -################################################################################ - -.include "Common/Common.s" -.include "Online/Online.s" - -# backup where we came from -mflr r5 - -cmpwi r3, 0x08 # PAD_UP -beq INIT_UP_CHAT_TEXT_PROPERTIES -cmpwi r3, 0x04 # PAD_DOWN -beq INIT_DOWN_CHAT_TEXT_PROPERTIES -cmpwi r3, 0x02 # PAD_RIGHT -beq INIT_RIGHT_CHAT_TEXT_PROPERTIES -cmpwi r3, 0x01 # PAD_LEFT -beq INIT_LEFT_CHAT_TEXT_PROPERTIES - -INIT_UP_CHAT_TEXT_PROPERTIES: -bl UP_CHAT_TEXT_PROPERTIES -mflr r3 -b CHECK_MSG_INPUT -INIT_DOWN_CHAT_TEXT_PROPERTIES: -bl DOWN_CHAT_TEXT_PROPERTIES -mflr r3 -b CHECK_MSG_INPUT -INIT_RIGHT_CHAT_TEXT_PROPERTIES: -bl RIGHT_CHAT_TEXT_PROPERTIES -mflr r3 -b CHECK_MSG_INPUT -INIT_LEFT_CHAT_TEXT_PROPERTIES: -bl LEFT_CHAT_TEXT_PROPERTIES -mflr r3 - -CHECK_MSG_INPUT: - -lbz r7, 0(r3) # HEADER length -lbz r8, 1(r3) # UP length -lbz r9, 2(r3) # LEFT length -lbz r10, 3(r3) # RIGHT length - -# save target label in r6 -mr r6, r4 -# calculate address of label -addi r4, r3, 0x4 # Skip over lengths -add r4, r4, r7 # skip over header -cmpwi r6, 0x08 # PAD_UP -beq EXIT -add r4, r4, r8 # skip over up -cmpwi r6, 0x01 # PAD_LEFT -beq EXIT -add r4, r4, r9 # skip over left -cmpwi r6, 0x02 # PAD_RIGHT -beq EXIT -add r4, r4, r10 # skip over right - -EXIT: -# go back to where we were -mtctr r5 -bctr - -UP_CHAT_TEXT_PROPERTIES: -blrl -.byte 7 # length of Header -.byte 4 # length of UP -.byte 9 # length of LEFT -.byte 4 # length of RIGHT -.string "Common" -.string "ggs" -.string "one more" -.string "brb" -.string "good luck" -.align 2 - -LEFT_CHAT_TEXT_PROPERTIES: -blrl -.byte 12 # length of Header -.byte 12 # length of UP -.byte 13 # length of LEFT -.byte 7 # length of RIGHT -.string "Compliments" -.string "well played" -.string "that was fun" -.string "thanks" -.string "too good" -.align 2 - -RIGHT_CHAT_TEXT_PROPERTIES: -blrl -.byte 10 # length of Header -.byte 6 # length of UP -.byte 5 # length of LEFT -.byte 4 # length of RIGHT -.string "Reactions" -.string "sorry" -.string "my b" -.string "lol" -.string "wow" -.align 2 - -DOWN_CHAT_TEXT_PROPERTIES: -blrl -.byte 5 # length of Header -.byte 9 # length of UP -.byte 8 # length of LEFT -.byte 23 # length of RIGHT -.string "Misc" -.string "gotta go" -.string "one sec" -.string "let's play again later" -.string "bad connection" -.align 2 diff --git a/Output/InjectionLists/list_debugging.json b/Output/InjectionLists/list_debugging.json new file mode 100644 index 00000000..05bc07ee --- /dev/null +++ b/Output/InjectionLists/list_debugging.json @@ -0,0 +1,32 @@ +{ + "Details": [ + { + "InjectionAddress": "8015FDBC", + "Name": "Optional: Normal Functionality in Develop Mode (1.02)", + "Codetype": "Auto", + "Annotation": "External/NormalDevelopMode/Enable.asm", + "Tags": "" + }, + { + "InjectionAddress": "8006AE90", + "Name": "Optional: Normal Functionality in Develop Mode (1.02)", + "Codetype": "Auto", + "Annotation": "External/NormalDevelopMode/NormalCStick1.asm", + "Tags": "" + }, + { + "InjectionAddress": "800300A4", + "Name": "Optional: Normal Functionality in Develop Mode (1.02)", + "Codetype": "Auto", + "Annotation": "External/NormalDevelopMode/NormalCStick2.asm", + "Tags": "" + }, + { + "InjectionAddress": "80089250", + "Name": "Optional: Normal Functionality in Develop Mode (1.02)", + "Codetype": "Auto", + "Annotation": "External/NormalDevelopMode/StaleMoves.asm", + "Tags": "" + } + ] +} \ No newline at end of file diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 068f2730..732af658 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -1232,13 +1232,6 @@ "Annotation": "Online/Static/CSSUpdateCSP.asm", "Tags": "" }, - { - "InjectionAddress": "800056AC", - "Name": "Required: Slippi Online", - "Codetype": "Auto", - "Annotation": "Online/Static/ChatMessages.asm", - "Tags": "" - }, { "InjectionAddress": "80005690", "Name": "Required: Slippi Online", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index fc95027d..38a58901 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5140,54 +5140,6 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 -C20056AC 0000002F #Online/Static/ChatMessages.asm -7CA802A6 2C030008 -4182001C 2C030004 -41820020 2C030002 -41820024 2C030001 -41820028 48000075 -7C6802A6 48000024 -480000FD 7C6802A6 -48000018 480000C9 -7C6802A6 4800000C -4800007D 7C6802A6 -88E30000 89030001 -89230002 89430003 -7C862378 38830004 -7C843A14 2C060008 -41820020 7C844214 -2C060001 41820014 -7C844A14 2C060002 -41820008 7C845214 -7CA903A6 4E800420 -4E800021 07040904 -436F6D6D 6F6E0067 -6773006F 6E65206D -6F726500 62726200 -676F6F64 206C7563 -6B000000 4E800021 -0C0C0D07 436F6D70 -6C696D65 6E747300 -77656C6C 20706C61 -79656400 74686174 -20776173 2066756E -00746861 6E6B7300 -746F6F20 676F6F64 -00000000 4E800021 -0A060504 52656163 -74696F6E 7300736F -72727900 6D792062 -006C6F6C 00776F77 -00000000 4E800021 -05090817 4D697363 -00676F74 74612067 -6F006F6E 65207365 -63006C65 74277320 -706C6179 20616761 -696E206C 61746572 -00626164 20636F6E -6E656374 696F6E00 -60000000 00000000 C2005690 00000002 #Online/Static/CheckAltStageName.asm 38600000 4E800020 60000000 00000000 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 16415746..2762959b 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5139,54 +5139,6 @@ C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 800100E4 382100E0 7C0803A6 4E800020 60000000 00000000 -C20056AC 0000002F #Online/Static/ChatMessages.asm -7CA802A6 2C030008 -4182001C 2C030004 -41820020 2C030002 -41820024 2C030001 -41820028 48000075 -7C6802A6 48000024 -480000FD 7C6802A6 -48000018 480000C9 -7C6802A6 4800000C -4800007D 7C6802A6 -88E30000 89030001 -89230002 89430003 -7C862378 38830004 -7C843A14 2C060008 -41820020 7C844214 -2C060001 41820014 -7C844A14 2C060002 -41820008 7C845214 -7CA903A6 4E800420 -4E800021 07040904 -436F6D6D 6F6E0067 -6773006F 6E65206D -6F726500 62726200 -676F6F64 206C7563 -6B000000 4E800021 -0C0C0D07 436F6D70 -6C696D65 6E747300 -77656C6C 20706C61 -79656400 74686174 -20776173 2066756E -00746861 6E6B7300 -746F6F20 676F6F64 -00000000 4E800021 -0A060504 52656163 -74696F6E 7300736F -72727900 6D792062 -006C6F6C 00776F77 -00000000 4E800021 -05090817 4D697363 -00676F74 74612067 -6F006F6E 65207365 -63006C65 74277320 -706C6179 20616761 -696E206C 61746572 -00626164 20636F6E -6E656374 696F6E00 -60000000 00000000 C2005690 00000002 #Online/Static/CheckAltStageName.asm 38600000 4E800020 60000000 00000000 diff --git a/debugging.json b/debugging.json new file mode 100644 index 00000000..5c715423 --- /dev/null +++ b/debugging.json @@ -0,0 +1,27 @@ +{ + "outputFiles": [ + { + "file": "Output/Netplay/debugging.txt" + } + ], + "codes": [ + { + "name": "Optional: Normal Functionality in Develop Mode (1.02)", + "authors": [ + "Magus", + "Achilles", + "UnclePunch" + ], + "description": [ + "Enables stale moves and disables cstick camera control" + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "External/NormalDevelopMode", + "isRecursive": true + } + ] + } + ] +} diff --git a/list-injections.bat b/list-injections.bat index 4adb4822..1028fe88 100644 --- a/list-injections.bat +++ b/list-injections.bat @@ -19,6 +19,7 @@ set list=%list%;console_screen_wide.json set list=%list%;console_screen_wide_shutters.json set list=%list%;console_safety.json set list=%list%;console_crash_output.json +set list=%list%;debugging.json for %%a in (%list%) do ( echo Listing %%a... From 2c984cf7ce8a642255fc2fa8204c37d15d95b852 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 27 May 2023 01:38:41 -0400 Subject: [PATCH 194/217] fix assembler warnings for ucf 0.84 codes --- .../UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm | 4 +- .../UCF/UCF Pad Buffer + 1.0 Cardinals.asm | 28 ++--- External/UCF 0.84/UCF/UCF SDI.asm | 2 +- .../UCF 0.84/UCF/UCF Shield Drop Extended.asm | 4 +- External/UCF 0.84/UCF/UCF Shield Drop.asm | 4 +- External/UCF 0.84/UCF/UCF Shield SDI.asm | 2 +- External/UCF 0.84/UCF/UCF Tumble.asm | 2 +- Output/Console/g_ucf_084.bin | Bin 2320 -> 2352 bytes Output/Console/g_ucf_084.txt | 110 +++++++++--------- Output/Console/g_ucf_084_stealth.bin | Bin 2096 -> 2128 bytes Output/Console/g_ucf_084_stealth.txt | 110 +++++++++--------- 11 files changed, 137 insertions(+), 129 deletions(-) diff --git a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm index e4d5ff3d..91fd4389 100644 --- a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm +++ b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm @@ -7,8 +7,8 @@ loc_0x0: .float 0.59 .float 80 .float 0.0001 - .word 0x00000000 - .word 0x00000000 + .long 0x00000000 + .long 0x00000000 loc_0x18: fabs f1, f1 diff --git a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm index 69fea745..8e5f2664 100644 --- a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm +++ b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm @@ -4,18 +4,18 @@ loc_0x0: bl loc_0xB0 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 - .word 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 + .long 0x00000000 .float -0.609375 .float 0.0001 .float 80 @@ -134,10 +134,10 @@ loc_0x1A0: fmsubs f12, f12, f10, f11 fctiwz f0, f0 fctiwz f12, f12 - stfiwx f12, r0, r9 + stfiwx f12, 0, r9 addi r9, r1, 0x1C lwz r8, 24(r1) - stfiwx f0, r0, r9 + stfiwx f0, 0, r9 addi r8, r8, 0x2 lwz r9, 28(r1) mullw r8, r8, r8 diff --git a/External/UCF 0.84/UCF/UCF SDI.asm b/External/UCF 0.84/UCF/UCF SDI.asm index 3d9d5ddb..e0bc56f3 100644 --- a/External/UCF 0.84/UCF/UCF SDI.asm +++ b/External/UCF 0.84/UCF/UCF SDI.asm @@ -62,6 +62,6 @@ loc_0x24: lis r10, 0x8000 loc_0xDC: - .word 0x7d580120 + .long 0x7d580120 loc_0xE0: diff --git a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm index 5b926118..42e91e10 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm @@ -18,7 +18,7 @@ loc_0x10: addi r9, r1, 0x8 addi r10, r1, 0xC fctiwz f0, f0 - stfiwx f0, r0, r9 + stfiwx f0, 0, r9 lfs f0, 4(r3) lwz r9, 8(r1) fabs f0, f0 @@ -26,7 +26,7 @@ loc_0x10: mullw r9, r9, r9 fmsubs f0, f0, f11, f12 fctiwz f0, f0 - stfiwx f0, r0, r10 + stfiwx f0, 0, r10 lwz r3, 12(r1) addi r1, r1, 0x10 addi r3, r3, 0x2 diff --git a/External/UCF 0.84/UCF/UCF Shield Drop.asm b/External/UCF 0.84/UCF/UCF Shield Drop.asm index efad1a43..155e4812 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop.asm @@ -7,8 +7,8 @@ loc_0x0: .float -0.8 .float 80 .float 0.0001 - .word 0x00000000 - .word 0x00000000 + .long 0x00000000 + .long 0x00000000 loc_0x18: fabs f1, f1 diff --git a/External/UCF 0.84/UCF/UCF Shield SDI.asm b/External/UCF 0.84/UCF/UCF Shield SDI.asm index 1b0cb7ff..6c2caca8 100644 --- a/External/UCF 0.84/UCF/UCF Shield SDI.asm +++ b/External/UCF 0.84/UCF/UCF Shield SDI.asm @@ -42,6 +42,6 @@ loc_0x0: lis r6, 0x8000 loc_0x94: - .word 0x7cd80120 + .long 0x7cd80120 loc_0x98: diff --git a/External/UCF 0.84/UCF/UCF Tumble.asm b/External/UCF 0.84/UCF/UCF Tumble.asm index f5267c37..cf218abf 100644 --- a/External/UCF 0.84/UCF/UCF Tumble.asm +++ b/External/UCF 0.84/UCF/UCF Tumble.asm @@ -40,7 +40,7 @@ loc_0x0: lis r10, 0x8000 loc_0x8C: - .word 0x7d580120 + .long 0x7d580120 loc_0x90: diff --git a/Output/Console/g_ucf_084.bin b/Output/Console/g_ucf_084.bin index 87980f732965a635ef22715083e1db30265545b8..c15bea23c8c719f46b34a4504d38ec7e29d92e52 100644 GIT binary patch delta 207 zcmbOrv_VMb5O3-m1_lNJ4+aKXdvPvXrv(fQ78kdR1H~97N~AC)Fl?+6Wt0s8%5MaT zVFR0|Fm^L>%GNMwFgP|a+?lMwa)qZhf>9v>s(3R8t2Cpa?S7v#XOWGcY{0fb1f=8; zr_mH3B~ru805V|8h($ delta 180 zcmdlWG(kw>5O3-m1_lOx4+aKHdvPvXrv(fQ78kdRPn1d7*dolx8VHn_Ie8(Y#O5=M z#Y~(sH4GXIjtvYqCVQ}4;bBw&YGueRNlaqU+pNJV&B$xH-{;I(m>H8p*fvNcfRq5i zAx@(yKuWlVnE_%GNMwFgP|a+?lMwa)qZhf>9v>s(3R8t2Cpa?S7v#XOWGcY{0fb1f=8; vr_mH3B~ru805V|8H8p*fvNcfRq5i yAx@(yKuWlVnE_ Date: Sat, 27 May 2023 01:55:23 -0400 Subject: [PATCH 195/217] fix two float values --- .../UCF 0.84/UCF/UCF Shield Drop Extended.asm | 4 ++-- Output/Console/g_ucf_084.bin | Bin 2352 -> 2352 bytes Output/Console/g_ucf_084.txt | 4 ++-- Output/Console/g_ucf_084_stealth.bin | Bin 2128 -> 2128 bytes Output/Console/g_ucf_084_stealth.txt | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm index 42e91e10..c844e759 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm @@ -67,7 +67,7 @@ loc_0x9C: loc_0xD4: #crclr 2, 2 - .float 5.08739e+07 + .float 50873864 loc_0xD8: lwz r30, 8(r1) @@ -81,7 +81,7 @@ loc_0xE8: cmpwi r3, 0x0 beq- loc_0xD4 #crset 2, 2 - .float 5.08746e+07 + .float 50874632 b loc_0xD8 loc_0x100: diff --git a/Output/Console/g_ucf_084.bin b/Output/Console/g_ucf_084.bin index c15bea23c8c719f46b34a4504d38ec7e29d92e52..1f49962fe6efde4288d7ced7f9304ad184969e17 100644 GIT binary patch delta 20 bcmdlWv_WVCI~!xuWDYiEMyJg>Y%I(GJZuEG delta 20 bcmdlWv_WVCI~!y7WDYiEMyt&_Y%I(GJg5Y@ diff --git a/Output/Console/g_ucf_084.txt b/Output/Console/g_ucf_084.txt index 0155b4ba..9f951dd1 100644 --- a/Output/Console/g_ucf_084.txt +++ b/Output/Console/g_ucf_084.txt @@ -191,12 +191,12 @@ C01E0000 FC0C0000 7C9D2378 28090002 41A10014 38640620 4BFFFFB5 2C030000 -40820018 4C42118B +40820018 4C421182 83C10008 83A1001C 38210028 4800001C 387D0628 4BFFFF91 2C030000 41A2FFE0 -4C42123A 4BFFFFDC +4C421242 4BFFFFDC 60000000 00000000 C20998A4 00000019 #External/UCF 0.84/UCF/UCF Shield Drop.asm 4800003D BF4CCCCD diff --git a/Output/Console/g_ucf_084_stealth.bin b/Output/Console/g_ucf_084_stealth.bin index 68921867deb45a69a58414c09a1627852a60d7a2..f341386cfd1db52d75cfe6d9cc85999c5a8e1a55 100644 GIT binary patch delta 20 bcmca0a6w=LI~!xuWDYiEMyJg>Y${9uK_dkd delta 20 bcmca0a6w=LI~!y7WDYiEMyt&_Y${9uL0<(F diff --git a/Output/Console/g_ucf_084_stealth.txt b/Output/Console/g_ucf_084_stealth.txt index 1bd582d9..417c174a 100644 --- a/Output/Console/g_ucf_084_stealth.txt +++ b/Output/Console/g_ucf_084_stealth.txt @@ -191,12 +191,12 @@ C01E0000 FC0C0000 7C9D2378 28090002 41A10014 38640620 4BFFFFB5 2C030000 -40820018 4C42118B +40820018 4C421182 83C10008 83A1001C 38210028 4800001C 387D0628 4BFFFF91 2C030000 41A2FFE0 -4C42123A 4BFFFFDC +4C421242 4BFFFFDC 60000000 00000000 C20998A4 00000019 #External/UCF 0.84/UCF/UCF Shield Drop.asm 4800003D BF4CCCCD From 74dc17e9bbefb7f95b66b70891b7f3a009221fa1 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 27 May 2023 02:04:01 -0400 Subject: [PATCH 196/217] add affects-gameplay tag to ucf 0.84 --- .../UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm | 1 + External/UCF 0.84/UCF/UCF Dashback.asm | 1 + .../UCF/UCF Pad Buffer + 1.0 Cardinals.asm | 1 + External/UCF 0.84/UCF/UCF SDI.asm | 1 + .../UCF 0.84/UCF/UCF Shield Drop Extended.asm | 1 + External/UCF 0.84/UCF/UCF Shield Drop.asm | 1 + External/UCF 0.84/UCF/UCF Shield SDI.asm | 1 + External/UCF 0.84/UCF/UCF Tumble.asm | 1 + .../InjectionLists/list_console_UCF_084.json | 60 +++++++++---------- .../list_console_UCF_084_stealth.json | 60 +++++++++---------- list-injections.bat | 2 + 11 files changed, 70 insertions(+), 60 deletions(-) diff --git a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm index 91fd4389..32749ae4 100644 --- a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm +++ b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 800D65EC +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF Dashback.asm b/External/UCF 0.84/UCF/UCF Dashback.asm index ecae16b9..929556df 100644 --- a/External/UCF 0.84/UCF/UCF Dashback.asm +++ b/External/UCF 0.84/UCF/UCF Dashback.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 800C9A44 +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm index 8e5f2664..e8bdc55a 100644 --- a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm +++ b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 8006B460 +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF SDI.asm b/External/UCF 0.84/UCF/UCF SDI.asm index e0bc56f3..4b17ea8b 100644 --- a/External/UCF 0.84/UCF/UCF SDI.asm +++ b/External/UCF 0.84/UCF/UCF SDI.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 8008E54C +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm index c844e759..5cfecfbb 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 8009A0B8 +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF Shield Drop.asm b/External/UCF 0.84/UCF/UCF Shield Drop.asm index 155e4812..de3cd22f 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 800998A4 +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF Shield SDI.asm b/External/UCF 0.84/UCF/UCF Shield SDI.asm index 6c2caca8..f1c61fe6 100644 --- a/External/UCF 0.84/UCF/UCF Shield SDI.asm +++ b/External/UCF 0.84/UCF/UCF Shield SDI.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 80093294 +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/External/UCF 0.84/UCF/UCF Tumble.asm b/External/UCF 0.84/UCF/UCF Tumble.asm index cf218abf..efdfbc32 100644 --- a/External/UCF 0.84/UCF/UCF Tumble.asm +++ b/External/UCF 0.84/UCF/UCF Tumble.asm @@ -1,5 +1,6 @@ ################################################################################ # Address: 800908F4 +# Tags: [affects-gameplay] ################################################################################ loc_0x0: diff --git a/Output/InjectionLists/list_console_UCF_084.json b/Output/InjectionLists/list_console_UCF_084.json index b4bd0514..21ab13d8 100644 --- a/Output/InjectionLists/list_console_UCF_084.json +++ b/Output/InjectionLists/list_console_UCF_084.json @@ -1,60 +1,60 @@ { "Details": [ { - "InjectionAddress": "8006B460", + "InjectionAddress": "800D65EC", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm", + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800C9A44", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Dashback.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800998A4", + "InjectionAddress": "8006B460", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800908F4", + "InjectionAddress": "8008E54C", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF SDI.asm", + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8009A0B8", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield Drop Extended.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800D65EC", + "InjectionAddress": "800998A4", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield Drop.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "8008E54C", + "InjectionAddress": "80093294", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield SDI.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "80093294", + "InjectionAddress": "800908F4", "Name": "UCF Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Tumble.asm", + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802662D0", diff --git a/Output/InjectionLists/list_console_UCF_084_stealth.json b/Output/InjectionLists/list_console_UCF_084_stealth.json index 04df9d9f..e26703ef 100644 --- a/Output/InjectionLists/list_console_UCF_084_stealth.json +++ b/Output/InjectionLists/list_console_UCF_084_stealth.json @@ -1,60 +1,60 @@ { "Details": [ { - "InjectionAddress": "8006B460", + "InjectionAddress": "800D65EC", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm", + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800C9A44", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Dashback.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800998A4", + "InjectionAddress": "8006B460", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800908F4", + "InjectionAddress": "8008E54C", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF SDI.asm", + "Tags": "[affects-gameplay]" }, { "InjectionAddress": "8009A0B8", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield Drop Extended.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "800D65EC", + "InjectionAddress": "800998A4", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield Drop.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "8008E54C", + "InjectionAddress": "80093294", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield SDI.asm", + "Tags": "[affects-gameplay]" }, { - "InjectionAddress": "80093294", + "InjectionAddress": "800908F4", "Name": "UCF 0.84 Slippi", - "Codetype": "C2", - "Annotation": "", - "Tags": "" + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Tumble.asm", + "Tags": "[affects-gameplay]" } ] } \ No newline at end of file diff --git a/list-injections.bat b/list-injections.bat index 4adb4822..0ee8772b 100644 --- a/list-injections.bat +++ b/list-injections.bat @@ -4,6 +4,8 @@ set list=netplay.json set list=%list%;console_core.json set list=%list%;console_UCF.json set list=%list%;console_UCF_stealth.json +set list=%list%;console_UCF_084.json +set list=%list%;console_UCF_084_stealth.json set list=%list%;console_mods_stealth.json set list=%list%;console_mods_tournament.json set list=%list%;console_mods_friendlies.json From f26aabc785107133273116f0572f237d60132acd Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 27 May 2023 12:38:13 -0400 Subject: [PATCH 197/217] backup and restore raw y analog value for UCF 0.84 --- Output/Console/GALE01r2.ini | 13 +++++++------ Output/Console/g_core.bin | Bin 5448 -> 5456 bytes Output/Console/g_core_porta.bin | Bin 5448 -> 5456 bytes Output/Netplay/GALE01r2.ini | 17 +++++++++-------- Output/Netplay/GALJ01r2.ini | 17 +++++++++-------- Output/Playback/GALE01r2.ini | 13 +++++++------ Output/Playback/GALJ01r2.ini | 13 +++++++------ Playback/Core/RestoreGameFrame.asm | 4 +++- Playback/Playback.s | 7 ++++--- Recording/Recording.s | 6 +++--- Recording/SendGamePreFrame.asm | 10 +++++++--- 11 files changed, 56 insertions(+), 44 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 37f04ec2..4dcf04af 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -144,7 +144,7 @@ C216E74C 00000109 #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -3860072A 3D808037 +38600732 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -158,7 +158,7 @@ C216E74C 00000109 #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 3860003F +987E0005 38600040 B07E0006 38600038 987E0008 38600050 B07E0009 38600039 @@ -174,7 +174,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030E 60630000 +3C60030F 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -453,12 +453,12 @@ B07D0030 887F1968 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0DC 0000002B #Recording/SendGamePreFrame.asm +C206B0DC 0000002C #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820118 +2C030000 41820120 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600037 @@ -491,8 +491,9 @@ B07D0031 80640030 1C840030 7C632214 1C9B000C 7C632214 88630002 987D003B +88630003 987D0040 807F1830 907D003C -838DB650 3B9C0040 +838DB650 3B9C0041 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 891c5733fb61516220eda00c1a7ffa4adadada85..ba7fd1ea49d18dbc4d6cd63b994fa128731dca99 100644 GIT binary patch delta 67 zcmV-J0KEUmD$pvh3j_f&lMDoN0YH<01bYDwv-||R2mvgT3?~5~qu>nz7>Hv41DJgP ZK!AT3Fpzx!JcEt4P&=FeL9_4nz5P*LeFpzx! VJcEt4P&=FeK$DOS6tfHuLnz7>Hv41DJgP ZK!AT3Fpzx!JcEt4P&=FeL9_4nz5P*LeFpzx! VJcEt4P&=FeK$DOS6tfHuL Date: Sat, 27 May 2023 12:46:42 -0400 Subject: [PATCH 198/217] build all outputs --- Output/Console/GALE01r2.ini | 6 +++--- Output/Console/g_core.bin | Bin 5456 -> 5456 bytes Output/Console/g_core_porta.bin | Bin 5456 -> 5456 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 4dcf04af..114336f9 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -489,9 +489,9 @@ B07D0031 80640030 3884FFFF 2C040000 40A00008 38840005 1C840030 7C632214 -1C9B000C 7C632214 -88630002 987D003B -88630003 987D0040 +1C9B000C 7C832214 +88640002 987D003B +88640003 987D0040 807F1830 907D003C 838DB650 3B9C0041 938DB650 BA8100B0 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index ba7fd1ea49d18dbc4d6cd63b994fa128731dca99..4008e916ebf5036dc25e1712946465cbba485058 100644 GIT binary patch delta 26 icmcbhbwO*xRX*NkC6SI42BsOc4Avbfn;-Gzu>k;x=LwGh delta 26 icmcbhbwO*xRX*NiC6SI~2BsOc4AvdVn;-Gzu>k;vlL>7A diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index 51306564a5a53eb995675ea38141c5571db659ad..ef17deb71ae363bfe4655b792297442cbac8d081 100644 GIT binary patch delta 26 icmcbhbwO*xRX*NkC6SI42BsOc4Avbfn;-Gzu>k;x=LwGh delta 26 icmcbhbwO*xRX*NiC6SI~2BsOc4AvdVn;-Gzu>k;vlL>7A From 8ed7dd2a601357ef68d2ab6c712fad3fd775d6f3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sat, 27 May 2023 15:50:45 -0400 Subject: [PATCH 199/217] make unranked the default selection --- Online/Static/UserDisplayFunctions.asm | 2 +- Output/Netplay/GALE01r2.ini | 2 +- Output/Netplay/GALJ01r2.ini | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Online/Static/UserDisplayFunctions.asm b/Online/Static/UserDisplayFunctions.asm index c4186ff1..244c4aa3 100644 --- a/Online/Static/UserDisplayFunctions.asm +++ b/Online/Static/UserDisplayFunctions.asm @@ -448,7 +448,7 @@ backup # Determine index to select, use first non-locked index load r5, 0x803eae68 lbz r5, 0x08F4(r5) # Load number of options -li r4, 0 +li r4, OPTION_UNRANKED_IDX # Start looping from unranked, don't want to select ranked by default LOOP_FIND_FIRST_UNLOCKED_START: # Function call doesn't overwrite r4, safe to just keep using it li r3, 0x8 # Use online menu ID for function calls diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index ff8ccb3d..73742dc9 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -5913,7 +5913,7 @@ BE8100B0 4BFFFCA9 7C0802A6 90010004 9421FF20 BE8100B0 3CA0803E 60A5AE68 -88A508F4 38800000 +88A508F4 38800001 38600008 3D808022 618C9938 7D8903A6 4E800421 2C030001 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 512836bc..eb955a01 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -5912,7 +5912,7 @@ BE8100B0 4BFFFCA9 7C0802A6 90010004 9421FF20 BE8100B0 3CA0803E 60A5AE68 -88A508F4 38800000 +88A508F4 38800001 38600008 3D808022 618C9938 7D8903A6 4E800421 2C030001 From 8e359d5a4d37bca432b1238adfb3a0dc2429f2b7 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 15 Jun 2023 22:42:30 -0400 Subject: [PATCH 200/217] update ucf 0.84 codes the codes we were given were actually old --- .../UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm | 67 ++-- External/UCF 0.84/UCF/UCF Dashback.asm | 132 ++++--- .../UCF/UCF Pad Buffer + 1.0 Cardinals.asm | 352 +++++++++--------- External/UCF 0.84/UCF/UCF SDI.asm | 119 +++--- .../UCF 0.84/UCF/UCF Shield Drop Extended.asm | 102 +---- External/UCF 0.84/UCF/UCF Shield Drop.asm | 106 +++--- External/UCF 0.84/UCF/UCF Shield SDI.asm | 81 ++-- External/UCF 0.84/UCF/UCF Tumble.asm | 78 ++-- Output/Console/g_ucf_084.bin | Bin 2352 -> 2168 bytes Output/Console/g_ucf_084.txt | 59 +-- Output/Console/g_ucf_084_stealth.bin | Bin 2128 -> 1944 bytes Output/Console/g_ucf_084_stealth.txt | 59 +-- 12 files changed, 492 insertions(+), 663 deletions(-) diff --git a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm index 32749ae4..2b04b682 100644 --- a/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm +++ b/External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm @@ -3,40 +3,33 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - bl loc_0x3C - .float 0.59 - .float 80 - .float 0.0001 - .long 0x00000000 - .long 0x00000000 - -loc_0x18: - fabs f1, f1 - lfs f2, 4(r4) - lfs f3, 8(r4) - fmsubs f1, f1, f2, f3 - fctiwz f1, f1 - stfd f1, 12(r4) - lwz r6, 16(r4) - addi r6, r6, 0x2 - blr - -loc_0x3C: - lfs f0, 148(r4) - mflr r4 - lbz r6, 1648(r5) - cmpwi r6, 0x1 - bge- loc_0x78 - lfs f1, 1568(r5) - bl loc_0x18 - mullw r7, r6, r6 - lfs f1, 1572(r5) - bl loc_0x18 - mullw r6, r6, r6 - add r6, r6, r7 - cmpwi r6, 0x1900 - ble- loc_0x78 - lfs f0, 0(r4) - -loc_0x78: +.long 0x4800003D +.long 0x3F170A3D +.long 0x42A00000 +.long 0x38D1B717 +.long 0x00000000 +.long 0x00000000 +.long 0xFC200A10 +.long 0xC0440004 +.long 0xC0640008 +.long 0xEC2118B8 +.long 0xFC20081E +.long 0xD824000C +.long 0x80C40010 +.long 0x38C60002 +.long 0x4E800020 +.long 0xC0040094 +.long 0x7C8802A6 +.long 0x88C50670 +.long 0x2C060001 +.long 0x4080002C +.long 0xC0250620 +.long 0x4BFFFFC5 +.long 0x7C0631D6 +.long 0xC0250624 +.long 0x4BFFFFB9 +.long 0x7CC631D6 +.long 0x7C003214 +.long 0x2C001900 +.long 0x40810008 +.long 0xC0040000 diff --git a/External/UCF 0.84/UCF/UCF Dashback.asm b/External/UCF 0.84/UCF/UCF Dashback.asm index 929556df..dc89a608 100644 --- a/External/UCF 0.84/UCF/UCF Dashback.asm +++ b/External/UCF 0.84/UCF/UCF Dashback.asm @@ -3,72 +3,66 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - lbz r9, 8735(r31) - stfs f0, 44(r31) - andi. r9, r9, 0x8 - bne- loc_0xFC - lwz r10, 2196(r31) - lis r9, 0x4000 - cmpw r10, r9 - bne- loc_0xFC - lfs f12, 1568(r31) - lwz r9, -20812(r13) - fmuls f0, f0, f12 - lfs f12, 60(r9) - fcmpu cr0, f0, f12 - blt- loc_0xFC - lbz r9, 1648(r31) - cmplwi r9, 1 - bgt- loc_0xFC - lis r8, 0x8007 - lbz r10, 1560(r31) - subi r8, r8, 0x52F0 - lwzu r9, 1040(r8) - rlwinm r9, r9, 6, 0, 25 - srawi r9, r9, 6 - addi r9, r9, 0x4 - add r9, r9, r8 - mulli r8, r10, 0xC - mulli r10, r10, 0x6 - add r8, r9, r8 - lbz r8, 8(r8) - add r7, r10, r8 - subi r8, r8, 0x2 - rlwinm r8, r8, 0, 30, 31 - rlwinm r7, r7, 1, 0, 30 - add r10, r10, r8 - lbzx r7, r9, r7 - rlwinm r10, r10, 1, 0, 30 - lbzx r9, r9, r10 - extsb r7, r7 - extsb r9, r9 - sub r9, r7, r9 - mullw r9, r9, r9 - cmpwi r9, 0x15F9 - ble- loc_0xFC - stwu r1, -8(r1) - li r9, 0x1 - li r4, 0x1 - stw r9, 9024(r31) - stw r9, 9048(r31) - lis r9, 0x8003 - addi r9, r9, 0x418C - lbz r3, 12(r31) - mtctr r9 - bctrl - cmpwi r3, 0x0 - beq- loc_0xF8 - lwz r9, 44(r3) - lwz r10, 7884(r9) - lwz r9, 44(r31) - stw r9, 24(r10) - rlwinm r9, r9, 1, 31, 31 - addi r9, r9, 0x7F - stb r9, 6(r10) - -loc_0xF8: - addi r1, r1, 0x8 - -loc_0xFC: - +.long 0x893F221F +.long 0xD01F002C +.long 0x71290008 +.long 0x408200F0 +.long 0x815F0894 +.long 0x3D204000 +.long 0x7C0A4800 +.long 0x408200E0 +.long 0xC19F0620 +.long 0x812DAEB4 +.long 0xEC000332 +.long 0xC189003C +.long 0xFC006000 +.long 0x418000C8 +.long 0x893F0670 +.long 0x28090001 +.long 0x418100BC +.long 0x3D008007 +.long 0x895F0618 +.long 0x3908AD10 +.long 0x85280750 +.long 0x55293032 +.long 0x7D293670 +.long 0x39290004 +.long 0x7D294214 +.long 0x1D0A000C +.long 0x1D4A0006 +.long 0x7D094214 +.long 0x89080008 +.long 0x7CEA4214 +.long 0x3908FFFE +.long 0x550807BE +.long 0x54E7083C +.long 0x7D4A4214 +.long 0x7CE938AE +.long 0x554A083C +.long 0x7D2950AE +.long 0x7CE70774 +.long 0x7D290774 +.long 0x7D293850 +.long 0x7D2949D6 +.long 0x2C0915F9 +.long 0x40810054 +.long 0x9421FFF8 +.long 0x39200001 +.long 0x38800001 +.long 0x913F2340 +.long 0x913F2358 +.long 0x3D208003 +.long 0x3929418C +.long 0x887F000C +.long 0x7D2903A6 +.long 0x4E800421 +.long 0x2C030000 +.long 0x41820020 +.long 0x8123002C +.long 0x81491ECC +.long 0x813F002C +.long 0x912A0018 +.long 0x55290FFE +.long 0x3929007F +.long 0x992A0006 +.long 0x38210008 diff --git a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm index e8bdc55a..98fa94df 100644 --- a/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm +++ b/External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm @@ -3,189 +3,169 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - bl loc_0xB0 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .long 0x00000000 - .float -0.609375 - .float 0.0001 - .float 80 - -loc_0x40: - addi r9, r3, 0x4F - rlwinm r9, r9, 0, 24, 31 - cmplwi r9, 158 - ble- loc_0x78 - addi r4, r4, 0x6 - rlwinm r4, r4, 0, 24, 31 - cmplwi r4, 12 - bgtlr- - rlwinm r3, r3, 0, 0, 0 - li r9, 0x0 - xoris r3, r3, 16256 - stw r9, 4(r5) - stw r3, 0(r5) - blr - -loc_0x78: - addi r9, r4, 0x4F - rlwinm r9, r9, 0, 24, 31 - cmplwi r9, 158 - blelr- - addi r3, r3, 0x6 - rlwinm r3, r3, 0, 24, 31 - cmplwi r3, 12 - bgtlr- - rlwinm r4, r4, 0, 0, 0 - li r9, 0x0 - xoris r4, r4, 16256 - stw r9, 0(r5) - stw r4, 4(r5) - blr - -loc_0xB0: - stwu r1, -64(r1) - stmw r25, 36(r1) - stw r28, 20(r1) - mflr r28 - lis r9, 0x800A - mr r3, r31 - addi r9, r9, 0x2040 - mtctr r9 - bctrl - cmpwi r3, 0x0 - bne- loc_0x278 - lis r9, 0x804C - lbz r30, 1560(r31) - addi r9, r9, 0x1F78 - mr r26, r31 - lbz r8, 1(r9) - cmpwi r8, 0x0 - subi r10, r8, 0x1 - bne+ loc_0x100 - li r10, 0x4 - -loc_0x100: - mulli r10, r10, 0x30 - lwz r9, 8(r9) - mulli r27, r30, 0xC - addi r29, r28, 0x0 - add r9, r9, r10 - mulli r30, r30, 0x6 - add r8, r9, r27 - lwzx r10, r9, r27 - lwz r9, 8(r8) - lwz r7, 4(r8) - add r8, r29, r27 - stw r9, 16(r1) - lbz r9, 8(r8) - stw r10, 8(r1) - addi r9, r9, 0x1 - stw r7, 12(r1) - rlwinm r9, r9, 0, 30, 31 - stb r9, 8(r8) - rlwinm r25, r9, 0, 24, 31 - add r9, r30, r9 - rlwinm r9, r9, 1, 0, 30 - sthx r10, r29, r9 - lwz r9, 4(r26) - cmpwi r9, 0x13 - bne+ loc_0x170 - lwz r9, 16(r26) - cmpwi r9, 0x15D - beq+ loc_0x1A0 - -loc_0x170: - lbz r4, 11(r1) - addi r5, r26, 0x620 - lbz r3, 10(r1) - extsb r4, r4 - extsb r3, r3 - bl loc_0x40 - lbz r4, 13(r1) - lbz r3, 12(r1) - addi r5, r26, 0x638 - extsb r4, r4 - extsb r3, r3 - bl loc_0x40 - -loc_0x1A0: - lfs f0, 1572(r26) - li r10, 0x0 - lfs f12, 48(r28) - fcmpu cr0, f0, f12 - bgt- loc_0x270 - lfs f12, 1568(r26) - fabs f0, f0 - lfs f10, 56(r28) - addi r9, r1, 0x18 - fabs f12, f12 - lfs f11, 52(r28) - fmsubs f0, f0, f10, f11 - fmsubs f12, f12, f10, f11 - fctiwz f0, f0 - fctiwz f12, f12 - stfiwx f12, 0, r9 - addi r9, r1, 0x1C - lwz r8, 24(r1) - stfiwx f0, 0, r9 - addi r8, r8, 0x2 - lwz r9, 28(r1) - mullw r8, r8, r8 - addi r9, r9, 0x2 - mullw r9, r9, r9 - add r9, r9, r8 - cmpwi r9, 0x1900 - ble- loc_0x270 - add r9, r29, r27 - lbz r10, 9(r9) - rlwinm r9, r10, 0, 24, 31 - cmpwi r9, 0x0 - bne- loc_0x26C - lbz r9, 1649(r26) - cmplwi r9, 1 - bgt+ loc_0x270 - subi r9, r25, 0x2 - add r8, r30, r25 - rlwinm r9, r9, 0, 30, 31 - rlwinm r8, r8, 1, 0, 30 - add r30, r30, r9 - add r8, r29, r8 - rlwinm r30, r30, 1, 0, 30 - lbz r8, 1(r8) - add r30, r29, r30 - lbz r9, 1(r30) - extsb r8, r8 - extsb r9, r9 - sub r9, r8, r9 - mullw r9, r9, r9 - cmpwi r9, 0x790 - ble- loc_0x270 - -loc_0x26C: - addi r10, r10, 0x1 - -loc_0x270: - add r29, r29, r27 - stb r10, 9(r29) - -loc_0x278: - lbz r3, 1656(r31) - lwz r28, 20(r1) - lwz r25, 36(r1) - lwz r26, 40(r1) - lwz r27, 44(r1) - lwz r29, 52(r1) - lwz r30, 56(r1) - addi r1, r1, 0x40 - +.long 0x480000B1 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0x00000000 +.long 0xBF1C0000 +.long 0x38D1B717 +.long 0x42A00000 +.long 0x3923004F +.long 0x5529063E +.long 0x2809009E +.long 0x4081002C +.long 0x38840006 +.long 0x5484063E +.long 0x2804000C +.long 0x4D810020 +.long 0x54630000 +.long 0x39200000 +.long 0x6C633F80 +.long 0x91250004 +.long 0x90650000 +.long 0x4E800020 +.long 0x3924004F +.long 0x5529063E +.long 0x2809009E +.long 0x4C810020 +.long 0x38630006 +.long 0x5463063E +.long 0x2803000C +.long 0x4D810020 +.long 0x54840000 +.long 0x39200000 +.long 0x6C843F80 +.long 0x91250000 +.long 0x90850004 +.long 0x4E800020 +.long 0x9421FFC0 +.long 0xBF210024 +.long 0x93810014 +.long 0x7F8802A6 +.long 0x3D20800A +.long 0x7FE3FB78 +.long 0x39292040 +.long 0x7D2903A6 +.long 0x4E800421 +.long 0x2C030000 +.long 0x408201A0 +.long 0x3D20804C +.long 0x8BDF0618 +.long 0x39291F78 +.long 0x7FFAFB78 +.long 0x89090001 +.long 0x2C080000 +.long 0x3948FFFF +.long 0x40A20008 +.long 0x39400004 +.long 0x1D4A0030 +.long 0x81290008 +.long 0x1F7E000C +.long 0x3BBC0000 +.long 0x7D295214 +.long 0x1FDE0006 +.long 0x7D09DA14 +.long 0x7D49D82E +.long 0x81280008 +.long 0x80E80004 +.long 0x7D1DDA14 +.long 0x91210010 +.long 0x89280008 +.long 0x91410008 +.long 0x39290001 +.long 0x90E1000C +.long 0x552907BE +.long 0x99280008 +.long 0x5539063E +.long 0x7D3E4A14 +.long 0x5529083C +.long 0x7D5D4B2E +.long 0x813A0004 +.long 0x2C090013 +.long 0x40A20010 +.long 0x813A0010 +.long 0x2C09015D +.long 0x41A20034 +.long 0x8881000B +.long 0x38BA0620 +.long 0x8861000A +.long 0x7C840774 +.long 0x7C630774 +.long 0x4BFFFEBD +.long 0x8881000D +.long 0x8861000C +.long 0x38BA0638 +.long 0x7C840774 +.long 0x7C630774 +.long 0x4BFFFEA5 +.long 0xC01A0624 +.long 0x39400000 +.long 0xC19C0030 +.long 0xFC006000 +.long 0x418100C0 +.long 0xC19A0620 +.long 0xFC000210 +.long 0xC15C0038 +.long 0x39210018 +.long 0xFD806210 +.long 0xC17C0034 +.long 0xEC005AB8 +.long 0xED8C5AB8 +.long 0xFC00001E +.long 0xFD80601E +.long 0x7D804FAE +.long 0x3921001C +.long 0x81010018 +.long 0x7C004FAE +.long 0x39080002 +.long 0x8121001C +.long 0x7D0841D6 +.long 0x39290002 +.long 0x7D2949D6 +.long 0x7D294214 +.long 0x2C091900 +.long 0x40810068 +.long 0x7D3DDA14 +.long 0x89490009 +.long 0x5549063E +.long 0x2C090000 +.long 0x40820050 +.long 0x893A0671 +.long 0x28090001 +.long 0x41A10048 +.long 0x3939FFFE +.long 0x7D1ECA14 +.long 0x552907BE +.long 0x5508083C +.long 0x7FDE4A14 +.long 0x7D1D4214 +.long 0x57DE083C +.long 0x89080001 +.long 0x7FDDF214 +.long 0x893E0001 +.long 0x7D080774 +.long 0x7D290774 +.long 0x7D294050 +.long 0x7D2949D6 +.long 0x2C090790 +.long 0x40810008 +.long 0x394A0001 +.long 0x7FBDDA14 +.long 0x995D0009 +.long 0x887F0678 +.long 0x83810014 +.long 0x83210024 +.long 0x83410028 +.long 0x8361002C +.long 0x83A10034 +.long 0x83C10038 +.long 0x38210040 diff --git a/External/UCF 0.84/UCF/UCF SDI.asm b/External/UCF 0.84/UCF/UCF SDI.asm index 4b17ea8b..7b9426a6 100644 --- a/External/UCF 0.84/UCF/UCF SDI.asm +++ b/External/UCF 0.84/UCF/UCF SDI.asm @@ -3,66 +3,59 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - cmpw r0, r5 - blt- loc_0xE0 - lbz r9, 1651(r3) - cmplwi r9, 1 - ble- loc_0x24 - lbz r9, 1652(r3) - lis r10, 0x6000 - cmplwi r9, 1 - bgt- loc_0xDC - -loc_0x24: - lfs f12, 1580(r3) - lis r10, 0x6000 - lfs f0, 1576(r3) - fmuls f12, f12, f12 - fmadds f0, f0, f0, f12 - lfs f12, 1200(r4) - fmuls f12, f12, f12 - fcmpu cr0, f12, f0 - ble- loc_0xDC - lis r8, 0x8007 - lbz r10, 1560(r3) - subi r8, r8, 0x52F0 - lwzu r9, 1040(r8) - rlwinm r9, r9, 6, 0, 25 - srawi r9, r9, 6 - addi r9, r9, 0x4 - add r9, r9, r8 - mulli r8, r10, 0xC - mulli r10, r10, 0x6 - add r8, r9, r8 - lbz r8, 8(r8) - subi r7, r8, 0x2 - add r8, r10, r8 - rlwinm r7, r7, 0, 30, 31 - rlwinm r8, r8, 1, 0, 30 - add r10, r10, r7 - add r6, r9, r8 - rlwinm r10, r10, 1, 0, 30 - lbzx r8, r9, r8 - add r7, r9, r10 - lbzx r9, r9, r10 - extsb r8, r8 - lbz r10, 1(r7) - extsb r9, r9 - sub r9, r8, r9 - lbz r8, 1(r6) - extsb r10, r10 - mullw r9, r9, r9 - extsb r8, r8 - sub r10, r8, r10 - mullw r10, r10, r10 - add r9, r9, r10 - lis r10, 0x6000 - cmpwi r9, 0x15F9 - ble- loc_0xDC - lis r10, 0x8000 - -loc_0xDC: - .long 0x7d580120 - -loc_0xE0: +.long 0x7C002800 +.long 0x418000DC +.long 0x89230673 +.long 0x28090001 +.long 0x40810014 +.long 0x89230674 +.long 0x3D406000 +.long 0x28090001 +.long 0x418100BC +.long 0xC183062C +.long 0x3D406000 +.long 0xC0030628 +.long 0xED8C0332 +.long 0xEC00603A +.long 0xC18404B0 +.long 0xED8C0332 +.long 0xFC0C0000 +.long 0x40810098 +.long 0x3D008007 +.long 0x89430618 +.long 0x3908AD10 +.long 0x85280750 +.long 0x55293032 +.long 0x7D293670 +.long 0x39290004 +.long 0x7D294214 +.long 0x1D0A000C +.long 0x1D4A0006 +.long 0x7D094214 +.long 0x89080008 +.long 0x38E8FFFE +.long 0x7D0A4214 +.long 0x54E707BE +.long 0x5508083C +.long 0x7D4A3A14 +.long 0x7CC94214 +.long 0x554A083C +.long 0x7D0940AE +.long 0x7CE95214 +.long 0x7D2950AE +.long 0x7D080774 +.long 0x89470001 +.long 0x7D290774 +.long 0x7D294050 +.long 0x89060001 +.long 0x7D4A0774 +.long 0x7D2949D6 +.long 0x7D080774 +.long 0x7D4A4050 +.long 0x7D4A51D6 +.long 0x7D295214 +.long 0x3D406000 +.long 0x2C090F04 +.long 0x40810008 +.long 0x3D408000 +.long 0x7D580120 diff --git a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm index 5cfecfbb..39d01b1e 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop Extended.asm @@ -3,87 +3,21 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - bl loc_0x9C - .float -0.609375 - .float 0.0001 - .float 80 - -loc_0x10: - lfs f0, 0(r3) - lfs f11, 8(r30) - fabs f0, f0 - lfs f12, 4(r30) - stwu r1, -16(r1) - fmsubs f0, f0, f11, f12 - addi r9, r1, 0x8 - addi r10, r1, 0xC - fctiwz f0, f0 - stfiwx f0, 0, r9 - lfs f0, 4(r3) - lwz r9, 8(r1) - fabs f0, f0 - addi r9, r9, 0x2 - mullw r9, r9, r9 - fmsubs f0, f0, f11, f12 - fctiwz f0, f0 - stfiwx f0, 0, r10 - lwz r3, 12(r1) - addi r1, r1, 0x10 - addi r3, r3, 0x2 - mullw r3, r3, r3 - add r3, r3, r9 - subi r9, r3, 0x1901 - nor r3, r3, r9 - rlwinm r3, r3, 1, 31, 31 - blr - -loc_0x7C: - lfs f12, 4(r3) - lfs f0, 0(r30) - fcmpu cr0, f12, f0 - cror 2, 1, 3 - beq+ loc_0x94 - b loc_0x10 - -loc_0x94: - li r3, 0x0 - blr - -loc_0x9C: - stwu r1, -40(r1) - stw r29, 28(r1) - stw r30, 8(r1) - mflr r30 - cror 2, 0, 2 - beq- loc_0xD8 - lbz r9, 1649(r4) - mr r29, r4 - cmplwi r9, 2 - bgt+ loc_0xD4 - addi r3, r4, 0x620 - bl loc_0x7C - cmpwi r3, 0x0 - bne- loc_0xE8 - -loc_0xD4: - #crclr 2, 2 - .float 50873864 - -loc_0xD8: - lwz r30, 8(r1) - lwz r29, 28(r1) - addi r1, r1, 0x28 - b loc_0x100 - -loc_0xE8: - addi r3, r29, 0x628 - bl loc_0x7C - cmpwi r3, 0x0 - beq- loc_0xD4 - #crset 2, 2 - .float 50874632 - b loc_0xD8 - -loc_0x100: - +.long 0x4C401382 +.long 0x4182003C +.long 0x3D208007 +.long 0x89040618 +.long 0x3929AD10 +.long 0x81490750 +.long 0x1D08000C +.long 0x39290754 +.long 0x554A3032 +.long 0x7D4A3670 +.long 0x7D295214 +.long 0x7D294214 +.long 0x89290009 +.long 0x28090001 +.long 0x4081000C +.long 0x4C421242 +.long 0x4800000C +.long 0x4C421182 diff --git a/External/UCF 0.84/UCF/UCF Shield Drop.asm b/External/UCF 0.84/UCF/UCF Shield Drop.asm index de3cd22f..9f4f7d59 100644 --- a/External/UCF 0.84/UCF/UCF Shield Drop.asm +++ b/External/UCF 0.84/UCF/UCF Shield Drop.asm @@ -3,60 +3,52 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - bl loc_0x3C - .float -0.8 - .float 80 - .float 0.0001 - .long 0x00000000 - .long 0x00000000 - -loc_0x18: - fabs f1, f1 - lfs f2, 4(r6) - lfs f3, 8(r6) - fmsubs f1, f1, f2, f3 - fctiwz f1, f1 - stfd f1, 12(r6) - lwz r7, 16(r6) - addi r7, r7, 0x2 - blr - -loc_0x3C: - lwz r4, 44(r3) - mflr r6 - lwz r5, -20812(r13) - lfs f0, 1596(r4) - lfs f1, 788(r5) - fcmpo cr0, f0, f1 - ble- loc_0xC4 - lbz r0, 1648(r4) - lwz r7, 800(r5) - cmpw r0, r7 - blt- loc_0xC4 - lfs f1, 1572(r4) - lfs f0, 0(r6) - fcmpo cr0, f1, f0 - ble- loc_0xC4 - lwz r0, 2108(r4) - cmpwi r0, -1 - beq- loc_0xC4 - lwz r0, 2112(r4) - rlwinm. r0, r0, 0, 23, 23 - beq- loc_0xC4 - bl loc_0x18 - mullw r0, r7, r7 - lfs f1, 1568(r4) - bl loc_0x18 - mullw r7, r7, r7 - add r0, r0, r7 - cmpwi r0, 0x1900 - ble- loc_0xC4 - lwz r7, 28(r1) - addi r1, r1, 0x18 - addi r7, r7, 0x8 - mtlr r7 - blr - -loc_0xC4: - +.long 0x4800003D +.long 0xBF4CCCCD +.long 0x42A00000 +.long 0x38D1B717 +.long 0x00000000 +.long 0x00000000 +.long 0xFC200A10 +.long 0xC0460004 +.long 0xC0660008 +.long 0xEC2118B8 +.long 0xFC20081E +.long 0xD826000C +.long 0x80E60010 +.long 0x38E70002 +.long 0x4E800020 +.long 0x8083002C +.long 0x7CC802A6 +.long 0x80ADAEB4 +.long 0xC004063C +.long 0xC0250314 +.long 0xFC000840 +.long 0x40810070 +.long 0x88040670 +.long 0x80E50320 +.long 0x7C003800 +.long 0x41800060 +.long 0xC0240624 +.long 0xC0060000 +.long 0xFC010040 +.long 0x40810050 +.long 0x8004083C +.long 0x2C00FFFF +.long 0x41820044 +.long 0x80040840 +.long 0x540005EF +.long 0x41820038 +.long 0x4BFFFF89 +.long 0x7C0739D6 +.long 0xC0240620 +.long 0x4BFFFF7D +.long 0x7CE739D6 +.long 0x7C003A14 +.long 0x2C001900 +.long 0x40810018 +.long 0x80E1001C +.long 0x38210018 +.long 0x38E70008 +.long 0x7CE803A6 +.long 0x4E800020 diff --git a/External/UCF 0.84/UCF/UCF Shield SDI.asm b/External/UCF 0.84/UCF/UCF Shield SDI.asm index f1c61fe6..b1e15d4e 100644 --- a/External/UCF 0.84/UCF/UCF Shield SDI.asm +++ b/External/UCF 0.84/UCF/UCF Shield SDI.asm @@ -3,46 +3,41 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - cmpw r3, r0 - blt- loc_0x98 - lbz r9, 1651(r4) - lis r6, 0x6000 - cmplwi r9, 1 - bgt- loc_0x94 - lfs f12, 1576(r4) - lfs f0, 1200(r5) - fcmpu cr0, f12, f0 - bge- loc_0x94 - lis r8, 0x8007 - lbz r10, 1560(r4) - subi r8, r8, 0x52F0 - lwzu r9, 1040(r8) - rlwinm r9, r9, 6, 0, 25 - srawi r9, r9, 6 - addi r9, r9, 0x4 - add r9, r9, r8 - mulli r8, r10, 0xC - mulli r10, r10, 0x6 - add r8, r9, r8 - lbz r8, 8(r8) - add r7, r10, r8 - subi r8, r8, 0x2 - rlwinm r8, r8, 0, 30, 31 - rlwinm r7, r7, 1, 0, 30 - add r10, r10, r8 - lbzx r7, r9, r7 - rlwinm r10, r10, 1, 0, 30 - lbzx r9, r9, r10 - extsb r7, r7 - extsb r9, r9 - sub r9, r7, r9 - mullw r9, r9, r9 - cmpwi r9, 0x15F9 - ble- loc_0x94 - lis r6, 0x8000 - -loc_0x94: - .long 0x7cd80120 - -loc_0x98: +.long 0x7C030000 +.long 0x41800094 +.long 0x89240673 +.long 0x3CC06000 +.long 0x28090001 +.long 0x41810080 +.long 0xC1840628 +.long 0xC00504B0 +.long 0xFC0C0000 +.long 0x40800070 +.long 0x3D008007 +.long 0x89440618 +.long 0x3908AD10 +.long 0x85280750 +.long 0x55293032 +.long 0x7D293670 +.long 0x39290004 +.long 0x7D294214 +.long 0x1D0A000C +.long 0x1D4A0006 +.long 0x7D094214 +.long 0x89080008 +.long 0x7CEA4214 +.long 0x3908FFFE +.long 0x550807BE +.long 0x54E7083C +.long 0x7D4A4214 +.long 0x7CE938AE +.long 0x554A083C +.long 0x7D2950AE +.long 0x7CE70774 +.long 0x7D290774 +.long 0x7D293850 +.long 0x7D2949D6 +.long 0x2C090F04 +.long 0x40810008 +.long 0x3CC08000 +.long 0x7CD80120 diff --git a/External/UCF 0.84/UCF/UCF Tumble.asm b/External/UCF 0.84/UCF/UCF Tumble.asm index efdfbc32..6b8a154a 100644 --- a/External/UCF 0.84/UCF/UCF Tumble.asm +++ b/External/UCF 0.84/UCF/UCF Tumble.asm @@ -3,45 +3,39 @@ # Tags: [affects-gameplay] ################################################################################ -loc_0x0: - cmpwi r3, 0x1 - bne- loc_0x90 - lfs f12, 1576(r31) - lis r10, 0x6000 - fabs f12, f12 - fcmpu cr0, f12, f0 - bge- loc_0x8C - lis r8, 0x8007 - lbz r10, 1560(r31) - subi r8, r8, 0x52F0 - lwzu r9, 1040(r8) - rlwinm r9, r9, 6, 0, 25 - srawi r9, r9, 6 - addi r9, r9, 0x4 - add r9, r9, r8 - mulli r8, r10, 0xC - mulli r10, r10, 0x6 - add r8, r9, r8 - lbz r8, 8(r8) - add r7, r10, r8 - subi r8, r8, 0x2 - rlwinm r8, r8, 0, 30, 31 - rlwinm r7, r7, 1, 0, 30 - add r10, r10, r8 - lbzx r7, r9, r7 - rlwinm r10, r10, 1, 0, 30 - lbzx r9, r9, r10 - extsb r7, r7 - lis r10, 0x6000 - extsb r9, r9 - sub r9, r7, r9 - mullw r9, r9, r9 - cmpwi r9, 0x15F9 - ble- loc_0x8C - lis r10, 0x8000 - -loc_0x8C: - .long 0x7d580120 - -loc_0x90: - +.long 0x2C030001 +.long 0x4082008C +.long 0xC19F0628 +.long 0x3D406000 +.long 0xFD806210 +.long 0xFC0C0000 +.long 0x40800074 +.long 0x3D008007 +.long 0x895F0618 +.long 0x3908AD10 +.long 0x85280750 +.long 0x55293032 +.long 0x7D293670 +.long 0x39290004 +.long 0x7D294214 +.long 0x1D0A000C +.long 0x1D4A0006 +.long 0x7D094214 +.long 0x89080008 +.long 0x7CEA4214 +.long 0x3908FFFE +.long 0x550807BE +.long 0x54E7083C +.long 0x7D4A4214 +.long 0x7CE938AE +.long 0x554A083C +.long 0x7D2950AE +.long 0x7CE70774 +.long 0x3D406000 +.long 0x7D290774 +.long 0x7D293850 +.long 0x7D2949D6 +.long 0x2C0915F9 +.long 0x40810008 +.long 0x3D408000 +.long 0x7D580120 diff --git a/Output/Console/g_ucf_084.bin b/Output/Console/g_ucf_084.bin index 1f49962fe6efde4288d7ced7f9304ad184969e17..c0ca8513ca687d7b0bc11b1c3dd7037655f62991 100644 GIT binary patch delta 184 zcmdlW^h01mq9~i;wF9bbD&GJ9@2ojyc&&!PNJNKWVp$Fod%$E5_VCTtjM2;>_6(M) zG=3I`Mg|UBhX#h)2u6hj1_(IBxnKv7#pUB5+~nBAU}LM$z~0HiCSj?$R-n<7JwTR& zfyYvlJtWl2z^K;Cte{piNTgQNNu*Pgfm4H%fe~mXkB^g(lLrHc7HryVz$V5Bu|9~2 SpJnnKb~gymWwQnc2O|Jpx-BUH delta 355 zcmew%ut8`-qUbZjYX?->RJ{NH-&u3a@LJ6=D-j*GiDfxVECQ1!umx>4V@zO%uoWin zV2PUC#4cXXxnKta1B0Rm1H;_?G7JnB7q^Q$Enr|cz|6pKu#SP_4+E3H!FdcUQxyMy zc*BtN!%~rf!_tv~=MMveTn&T&I-ok1MxYo-ouwuNQ>~`wHIO=peE7PCLj WXh<=M{+#@T%?-kH*<8TR!3Y2|R&p2s diff --git a/Output/Console/g_ucf_084.txt b/Output/Console/g_ucf_084.txt index 9f951dd1..a250a362 100644 --- a/Output/Console/g_ucf_084.txt +++ b/Output/Console/g_ucf_084.txt @@ -11,9 +11,9 @@ FC20081E D824000C 7C8802A6 88C50670 2C060001 4080002C C0250620 4BFFFFC5 -7CE631D6 C0250624 +7C0631D6 C0250624 4BFFFFB9 7CC631D6 -7CC63A14 2C061900 +7C003214 2C001900 40810008 C0040000 60000000 00000000 C20C9A44 00000020 #External/UCF 0.84/UCF/UCF Dashback.asm @@ -27,7 +27,7 @@ FC006000 418000C8 893F0670 28090001 418100BC 3D008007 895F0618 3908AD10 -85280410 55293032 +85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 7D094214 @@ -145,7 +145,7 @@ ED8C0332 EC00603A C18404B0 ED8C0332 FC0C0000 40810098 3D008007 89430618 -3908AD10 85280410 +3908AD10 85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 @@ -161,42 +161,19 @@ FC0C0000 40810098 7D2949D6 7D080774 7D4A4050 7D4A51D6 7D295214 3D406000 -2C0915F9 40810008 +2C090F04 40810008 3D408000 7D580120 60000000 00000000 -C209A0B8 00000021 #External/UCF 0.84/UCF/UCF Shield Drop Extended.asm -4800009D BF1C0000 -38D1B717 42A00000 -C0030000 C17E0008 -FC000210 C19E0004 -9421FFF0 EC0062F8 -39210008 3941000C -FC00001E 7C004FAE -C0030004 81210008 -FC000210 39290002 -7D2949D6 EC0062F8 -FC00001E 7C0057AE -8061000C 38210010 -38630002 7C6319D6 -7C634A14 3923E6FF -7C6348F8 54630FFE -4E800020 C1830004 -C01E0000 FC0C0000 -4C411B82 41A20008 -4BFFFF80 38600000 -4E800020 9421FFD8 -93A1001C 93C10008 -7FC802A6 4C401382 -41820028 89240671 -7C9D2378 28090002 -41A10014 38640620 -4BFFFFB5 2C030000 -40820018 4C421182 -83C10008 83A1001C -38210028 4800001C -387D0628 4BFFFF91 -2C030000 41A2FFE0 -4C421242 4BFFFFDC +C209A0B8 0000000A #External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +4C401382 4182003C +3D208007 89040618 +3929AD10 81490750 +1D08000C 39290754 +554A3032 7D4A3670 +7D295214 7D294214 +89290009 28090001 +4081000C 4C421242 +4800000C 4C421182 60000000 00000000 C20998A4 00000019 #External/UCF 0.84/UCF/UCF Shield Drop.asm 4800003D BF4CCCCD @@ -231,7 +208,7 @@ C2093294 00000014 #External/UCF 0.84/UCF/UCF Shield SDI.asm C1840628 C00504B0 FC0C0000 40800070 3D008007 89440618 -3908AD10 85280410 +3908AD10 85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 @@ -242,7 +219,7 @@ FC0C0000 40800070 554A083C 7D2950AE 7CE70774 7D290774 7D293850 7D2949D6 -2C0915F9 40810008 +2C090F04 40810008 3CC08000 7CD80120 60000000 00000000 C20908F4 00000013 #External/UCF 0.84/UCF/UCF Tumble.asm @@ -251,7 +228,7 @@ C19F0628 3D406000 FD806210 FC0C0000 40800074 3D008007 895F0618 3908AD10 -85280410 55293032 +85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 7D094214 diff --git a/Output/Console/g_ucf_084_stealth.bin b/Output/Console/g_ucf_084_stealth.bin index f341386cfd1db52d75cfe6d9cc85999c5a8e1a55..f078bef73037ccbca9d0331d099baf900f677c8b 100644 GIT binary patch delta 183 zcmca0FoS_6(M) zG=3I`Mg|UBhX#h)2u6hj1_(IBxnKv7#pUB5+~nBAU}LM$z~0HiCSj?$R-n<7JwTR& zfyYvlJtWl2z^K;Cte{piNTgQNNu*Pgfm4H%fe~mXkB^g(lLrHc7HryVz$V5Bu|9~2 RpJnnKb~gymWwHi`1^@yPEadRJ{NH-&u3a@LJ6=D-j*GiDfxVECQ1!umx>4V@zO%uoWin zV2PUC#4c8Uh;zXX1_lO24+e(0`(+pyEG}*rcUr)}aDbVC;b0vD#~%hJfrIlHSf(ic z|L}$(>4&8v1Bay}1J54@2Dusr|8+ohER8@hkUC3E2Bum~&ubuc5c%+R4T%gq7K#i4 z7Rd}uHOZ3KYLdM~ER~=AuSxd!5t7Vb|Ie?1LE&IC1Iqz928KU83=BSw(oK$w7&w5w zXs}3NU;xPjEx$2&A%o21gA5$?CzzJ`I0!d6HZf>)s<0K-%vG+?;ACKOT*x3|k;0|` z)VEa!=y-=F1_>W0!KP-Qo@St4pd&PZo|LhuWzztvnFvzjxQOfj10N?LC!oNc%@wR- WjL@KB68$;(37Z>)=Q6o~T>}7DdvcZl diff --git a/Output/Console/g_ucf_084_stealth.txt b/Output/Console/g_ucf_084_stealth.txt index 417c174a..bc892313 100644 --- a/Output/Console/g_ucf_084_stealth.txt +++ b/Output/Console/g_ucf_084_stealth.txt @@ -11,9 +11,9 @@ FC20081E D824000C 7C8802A6 88C50670 2C060001 4080002C C0250620 4BFFFFC5 -7CE631D6 C0250624 +7C0631D6 C0250624 4BFFFFB9 7CC631D6 -7CC63A14 2C061900 +7C003214 2C001900 40810008 C0040000 60000000 00000000 C20C9A44 00000020 #External/UCF 0.84/UCF/UCF Dashback.asm @@ -27,7 +27,7 @@ FC006000 418000C8 893F0670 28090001 418100BC 3D008007 895F0618 3908AD10 -85280410 55293032 +85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 7D094214 @@ -145,7 +145,7 @@ ED8C0332 EC00603A C18404B0 ED8C0332 FC0C0000 40810098 3D008007 89430618 -3908AD10 85280410 +3908AD10 85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 @@ -161,42 +161,19 @@ FC0C0000 40810098 7D2949D6 7D080774 7D4A4050 7D4A51D6 7D295214 3D406000 -2C0915F9 40810008 +2C090F04 40810008 3D408000 7D580120 60000000 00000000 -C209A0B8 00000021 #External/UCF 0.84/UCF/UCF Shield Drop Extended.asm -4800009D BF1C0000 -38D1B717 42A00000 -C0030000 C17E0008 -FC000210 C19E0004 -9421FFF0 EC0062F8 -39210008 3941000C -FC00001E 7C004FAE -C0030004 81210008 -FC000210 39290002 -7D2949D6 EC0062F8 -FC00001E 7C0057AE -8061000C 38210010 -38630002 7C6319D6 -7C634A14 3923E6FF -7C6348F8 54630FFE -4E800020 C1830004 -C01E0000 FC0C0000 -4C411B82 41A20008 -4BFFFF80 38600000 -4E800020 9421FFD8 -93A1001C 93C10008 -7FC802A6 4C401382 -41820028 89240671 -7C9D2378 28090002 -41A10014 38640620 -4BFFFFB5 2C030000 -40820018 4C421182 -83C10008 83A1001C -38210028 4800001C -387D0628 4BFFFF91 -2C030000 41A2FFE0 -4C421242 4BFFFFDC +C209A0B8 0000000A #External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +4C401382 4182003C +3D208007 89040618 +3929AD10 81490750 +1D08000C 39290754 +554A3032 7D4A3670 +7D295214 7D294214 +89290009 28090001 +4081000C 4C421242 +4800000C 4C421182 60000000 00000000 C20998A4 00000019 #External/UCF 0.84/UCF/UCF Shield Drop.asm 4800003D BF4CCCCD @@ -231,7 +208,7 @@ C2093294 00000014 #External/UCF 0.84/UCF/UCF Shield SDI.asm C1840628 C00504B0 FC0C0000 40800070 3D008007 89440618 -3908AD10 85280410 +3908AD10 85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 @@ -242,7 +219,7 @@ FC0C0000 40800070 554A083C 7D2950AE 7CE70774 7D290774 7D293850 7D2949D6 -2C0915F9 40810008 +2C090F04 40810008 3CC08000 7CD80120 60000000 00000000 C20908F4 00000013 #External/UCF 0.84/UCF/UCF Tumble.asm @@ -251,7 +228,7 @@ C19F0628 3D406000 FD806210 FC0C0000 40800074 3D008007 895F0618 3908AD10 -85280410 55293032 +85280750 55293032 7D293670 39290004 7D294214 1D0A000C 1D4A0006 7D094214 From 273b1fb62fd0d7d37076ecadff1069fbc86c6aff Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 15 Aug 2023 16:32:34 -0400 Subject: [PATCH 201/217] add music control codes --- .../EXIFileLoad => Common}/AllocBuffer.asm | 0 Common/Common.s | 4 + Online/Core/Music/StartSong.asm | 79 ++++++++++++++++++ Online/Core/Music/Stop.asm | 40 +++++++++ Online/Core/Music/VolumeChange.asm | 66 +++++++++++++++ Online/Online.s | 1 - Output/Console/GALE01r2.ini | 5 ++ Output/Console/g_core.bin | Bin 5456 -> 5496 bytes Output/Console/g_core_porta.bin | Bin 5456 -> 5496 bytes Output/InjectionLists/list_console_core.json | 7 ++ Output/InjectionLists/list_netplay.json | 35 ++++++-- Output/Netplay/GALE01r2.ini | 67 +++++++++++++-- Output/Netplay/GALJ01r2.ini | 67 +++++++++++++-- Output/Playback/GALE01r2.ini | 5 ++ Output/Playback/GALJ01r2.ini | 5 ++ 15 files changed, 363 insertions(+), 18 deletions(-) rename {Online/Core/EXIFileLoad => Common}/AllocBuffer.asm (100%) create mode 100644 Online/Core/Music/StartSong.asm create mode 100644 Online/Core/Music/Stop.asm create mode 100644 Online/Core/Music/VolumeChange.asm diff --git a/Online/Core/EXIFileLoad/AllocBuffer.asm b/Common/AllocBuffer.asm similarity index 100% rename from Online/Core/EXIFileLoad/AllocBuffer.asm rename to Common/AllocBuffer.asm diff --git a/Common/Common.s b/Common/Common.s index 6ee37439..e679ea0f 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -549,6 +549,9 @@ add \reg, r3, r4 # Misc .set CONST_SlippiCmdGetDelay, 0xD5 +.set CONST_SlippiPlayMusic, 0xD6 +.set CONST_SlippiStopMusic, 0xD7 +.set CONST_SlippiChangeMusicVolume, 0xD8 # For Slippi Premade Texts .set CONST_SlippiCmdGetPremadeTextLength, 0xE1 @@ -606,6 +609,7 @@ add \reg, r3, r4 .set frameIndex,-0x49ac .set textStructDescriptorBuffer,-0x3D24 .set isWidescreen,-0x5020 +.set OFST_R13_SB_ADDR,-0x503C # Scene buffer, persists throughout scenes ################################################################################ # Log levels diff --git a/Online/Core/Music/StartSong.asm b/Online/Core/Music/StartSong.asm new file mode 100644 index 00000000..268cc658 --- /dev/null +++ b/Online/Core/Music/StartSong.asm @@ -0,0 +1,79 @@ +################################################################################ +# Address: 0x8038e910 # fileLoad_HPS, after entry num is fetched +################################################################################ + +.include "Common/Common.s" + +.set REG_PMQ, 31 +.set REG_ENTRYNUM, 30 +.set REG_INTERRUPT_IDX, 29 + +# This will contain the DVDFileInfo struct which has length 0x40 +.set SPO_STRUCT_START, BKP_FREE_SPACE_OFFSET +.set SPO_FILE_OFFSET, SPO_STRUCT_START + 0x30 +.set SPO_FILE_SIZE, SPO_FILE_OFFSET + 4 + +# This space will be used to transfer over EXI. EXI buffers must be 32 byte aligned though +# so we don't know exactly where the buffer will start +.set SPO_EXI_SPACE_START, SPO_STRUCT_START + 0x40 + +# PlayMusicQuery args +.set PMQ_COMMAND, 0 +.set PMQ_FILE_OFFSET, PMQ_COMMAND + 1 +.set PMQ_FILE_SIZE, PMQ_FILE_OFFSET + 4 +.set PMQ_SIZE, PMQ_FILE_SIZE + 4 # Confusing but this is the size of the buffer + +# Grab enough space that no matter where we are, we can byteAlign32 and still fit the PMQ data +.set SPACE_NEEDED, SPO_EXI_SPACE_START + PMQ_SIZE + 32 + +backup SPACE_NEEDED + +mr REG_ENTRYNUM, r3 + +branchl r12, OSDisableInterrupts +mr REG_INTERRUPT_IDX, r3 + +mr r3, REG_ENTRYNUM +addi r4, sp, SPO_STRUCT_START +branchl r12, 0x80337c60 # DVDFastOpen + +# TODO: File_GetLength asserts when result = 0, hopefully just ignoring it and doing nothing is fine +cmpwi r3, 0 +beq CLEANUP_AND_EXIT + +# Log +# lwz r5, SPO_FILE_OFFSET(sp) +# lwz r6, SPO_FILE_SIZE(sp) +# logf LOG_LEVEL_WARN, "[Music] Starting song at 0x%x with size %d" + +addi REG_PMQ, sp, SPO_EXI_SPACE_START +byteAlign32 REG_PMQ + +# Write command +li r3, CONST_SlippiPlayMusic +stb r3, PMQ_COMMAND(REG_PMQ) + +# Write file offset and size +lwz r3, SPO_FILE_OFFSET(sp) +stw r3, PMQ_FILE_OFFSET(REG_PMQ) +lwz r3, SPO_FILE_SIZE(sp) +stw r3, PMQ_FILE_SIZE(REG_PMQ) + +# Exec EXI transfer +mr r3, REG_PMQ +li r4, PMQ_SIZE +li r5, CONST_ExiWrite +branchl r12, FN_EXITransferBuffer + +CLEANUP_AND_EXIT: +addi r3, sp, SPO_STRUCT_START +branchl r12, 0x80337cd4 # DVDClose + +mr r3, REG_INTERRUPT_IDX +branchl r12, OSRestoreInterrupts + +mr r3, REG_ENTRYNUM + +restore SPACE_NEEDED + +lwz r0, -0x5668(r13) # replaced code line \ No newline at end of file diff --git a/Online/Core/Music/Stop.asm b/Online/Core/Music/Stop.asm new file mode 100644 index 00000000..fa226879 --- /dev/null +++ b/Online/Core/Music/Stop.asm @@ -0,0 +1,40 @@ +################################################################################ +# Address: 0x800236ec # Music_StopMusic, after function call +################################################################################ + +.include "Common/Common.s" + +.set REG_SMQ, 31 + +# This space will be used to transfer over EXI. EXI buffers must be 32 byte aligned though +# so we don't know exactly where the buffer will start +.set SPO_EXI_SPACE_START, BKP_FREE_SPACE_OFFSET + +# PlayMusicQuery args +.set SMQ_COMMAND, 0 +.set SMQ_SIZE, SMQ_COMMAND + 1 + +# Grab enough space that no matter where we are, we can byteAlign32 and still fit the SMQ data +.set SPACE_NEEDED, SPO_EXI_SPACE_START + SMQ_SIZE + 32 + +backup SPACE_NEEDED + +# logf LOG_LEVEL_WARN, "[Music] Stopping music" + +addi REG_SMQ, sp, SPO_EXI_SPACE_START +byteAlign32 REG_SMQ + +# Write command +li r3, CONST_SlippiStopMusic +stb r3, SMQ_COMMAND(REG_SMQ) + +# Exec EXI transfer +mr r3, REG_SMQ +li r4, SMQ_SIZE +li r5, CONST_ExiWrite +branchl r12, FN_EXITransferBuffer + +CLEANUP_AND_EXIT: +restore SPACE_NEEDED + +li r0, 0 # replaced code line \ No newline at end of file diff --git a/Online/Core/Music/VolumeChange.asm b/Online/Core/Music/VolumeChange.asm new file mode 100644 index 00000000..2726b0f0 --- /dev/null +++ b/Online/Core/Music/VolumeChange.asm @@ -0,0 +1,66 @@ +################################################################################ +# Address: 0x800249f0 # DSP_Process, where volume is written +################################################################################ + +.include "Common/Common.s" + +.set REG_CMVQ, 31 +.set REG_DATA, 30 + +# This space will be used to transfer over EXI. EXI buffers must be 32 byte aligned though +# so we don't know exactly where the buffer will start +.set SPO_EXI_SPACE_START, BKP_FREE_SPACE_OFFSET + +# PlayMusicQuery args +.set CMVQ_COMMAND, 0 +.set CMVQ_VOLUME, CMVQ_COMMAND + 1 +.set CMVQ_SIZE, CMVQ_VOLUME + 1 + +# Grab enough space that no matter where we are, we can byteAlign32 and still fit the CMVQ data +.set SPACE_NEEDED, SPO_EXI_SPACE_START + CMVQ_SIZE + 32 + +b CODE_START + +DATA_BLRL: +blrl +.set DO_PREV_VOLUME, 0 +.long 0x00000000 + +CODE_START: +stw r0, -0x7E18(r13) # replaced code line + +backup SPACE_NEEDED + +bl DATA_BLRL +mflr REG_DATA + +lwz r4, -0x7E18(r13) # load new value +lwz r3, DO_PREV_VOLUME(REG_DATA) # load old value +cmpw r3, r4 +beq CLEANUP_AND_EXIT + +# Update prev value to current +stw r4, DO_PREV_VOLUME(REG_DATA) + +# Here the volume differs from the previous. Let's send the new volume to Dolphin +# mr r5, r4 +# logf LOG_LEVEL_WARN, "[Music] Volume changed: %d" + +addi REG_CMVQ, sp, SPO_EXI_SPACE_START +byteAlign32 REG_CMVQ + +# Write command +li r3, CONST_SlippiChangeMusicVolume +stb r3, CMVQ_COMMAND(REG_CMVQ) + +# Write new volume +stb r4, CMVQ_VOLUME(REG_CMVQ) + +# Exec EXI transfer +mr r3, REG_CMVQ +li r4, CMVQ_SIZE +li r5, CONST_ExiWrite +branchl r12, FN_EXITransferBuffer + +CLEANUP_AND_EXIT: +restore SPACE_NEEDED \ No newline at end of file diff --git a/Online/Online.s b/Online/Online.s index 350917d5..a2eeb0d4 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -10,7 +10,6 @@ # Offsets from r13 ################################################################################ .set OFST_R13_ODB_ADDR,-0x49e4 # Online data buffer -.set OFST_R13_SB_ADDR,-0x503C # Scene buffer, persists throughout scenes .set OFST_R13_ONLINE_MODE,-0x5060 # Byte, Selected online mode .set OFST_R13_APP_STATE,-0x505F # Byte, App state / online status .set OFST_R13_FORCE_MENU_CLEAR,-0x505E # Byte, Force menu clear diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 114336f9..98d69bac 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -518,6 +518,11 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 +C21A4CB4 00000004 #Common/AllocBuffer.asm +38600080 3D808037 +618CF1E4 7D8903A6 +4E800421 906DAFC4 +38000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 4008e916ebf5036dc25e1712946465cbba485058..b01d8c0a3c01dd7db538c562c82fe0dcef90c322 100644 GIT binary patch delta 48 zcmcbh^+RjJPJU%6pDhdw3@jE23=Oso4d#hGAD`5AGB5LMU{RcqyZ(p;P;&DY{yD4w DvYHWv delta 12 UcmeyNbwO*xPX5gg`KPl204iVw)Bpeg diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index ef17deb71ae363bfe4655b792297442cbac8d081..b9b03399eb1ef21c420a91fdc356925cfffa2831 100644 GIT binary patch delta 48 zcmcbh^+RjJPJU%6pDhdw3@jE23=Oso4d#hGAD`5AGB5LMU{RcqyZ(p;P;&DY{yD4w DvYHWv delta 12 UcmeyNbwO*xPX5gg`KPl204iVw)Bpeg diff --git a/Output/InjectionLists/list_console_core.json b/Output/InjectionLists/list_console_core.json index ba1abf03..63bc27d9 100644 --- a/Output/InjectionLists/list_console_core.json +++ b/Output/InjectionLists/list_console_core.json @@ -266,6 +266,13 @@ "Annotation": "Recording/GetLCancelStatus/ResetLCancelStatus.asm", "Tags": "" }, + { + "InjectionAddress": "801A4CB4", + "Name": "Slippi Recording", + "Codetype": "Auto", + "Annotation": "Common/AllocBuffer.asm", + "Tags": "" + }, { "InjectionAddress": "800055F8", "Name": "Slippi Recording", diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 732af658..47651a01 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -462,6 +462,13 @@ "Annotation": "Recording/GetLCancelStatus/ResetLCancelStatus.asm", "Tags": "" }, + { + "InjectionAddress": "801A4CB4", + "Name": "Required: Slippi Recording", + "Codetype": "Auto", + "Annotation": "Common/AllocBuffer.asm", + "Tags": "" + }, { "InjectionAddress": "800055F8", "Name": "Required: Slippi Recording", @@ -651,13 +658,6 @@ "Annotation": "Online/Core/TriggerSendInput.asm", "Tags": "" }, - { - "InjectionAddress": "801A4CB4", - "Name": "Required: Slippi Online", - "Codetype": "Auto", - "Annotation": "Online/Core/EXIFileLoad/AllocBuffer.asm", - "Tags": "" - }, { "InjectionAddress": "800163FC", "Name": "Required: Slippi Online", @@ -728,6 +728,27 @@ "Annotation": "Online/Core/Hacks/PreventPadAlarmDuringRollback.asm", "Tags": "" }, + { + "InjectionAddress": "8038E910", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "Online/Core/Music/StartSong.asm", + "Tags": "" + }, + { + "InjectionAddress": "800236EC", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "Online/Core/Music/Stop.asm", + "Tags": "" + }, + { + "InjectionAddress": "800249F0", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "Online/Core/Music/VolumeChange.asm", + "Tags": "" + }, { "InjectionAddress": "801D4578", "Name": "Required: Slippi Online", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 582eefce..d377db37 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1021,6 +1021,11 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 +C21A4CB4 00000004 #Common/AllocBuffer.asm +38600080 3D808037 +618CF1E4 7D8903A6 +4E800421 906DAFC4 +38000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF20 BE8100B0 @@ -2040,11 +2045,6 @@ BA8100B0 800100E4 800100E4 382100E0 7C0803A6 2C1E0000 60000000 00000000 -C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm -38600080 3D808037 -618CF1E4 7D8903A6 -4E800421 906DAFC4 -38000000 00000000 C20163FC 0000001B #Online/Core/EXIFileLoad/GetFileSize.asm 7C7E1B78 7C0802A6 90010004 9421FF20 @@ -2194,6 +2194,63 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 +C238E910 0000001A #Online/Core/Music/StartSong.asm +7C0802A6 90010004 +9421FF54 BE81007C +7C7E1B78 3D808034 +618C7364 7D8903A6 +4E800421 7C7D1B78 +7FC3F378 38810008 +3D808033 618C7C60 +7D8903A6 4E800421 +2C030000 41820044 +3BE10048 3BFF001F +57FF0034 386000D6 +987F0000 80610038 +907F0001 8061003C +907F0005 7FE3FB78 +38800009 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38610008 3D808033 +618C7CD4 7D8903A6 +4E800421 7FA3EB78 +3D808034 618C738C +7D8903A6 4E800421 +7FC3F378 BA81007C +800100B0 382100AC +7C0803A6 800DA998 +60000000 00000000 +C20236EC 0000000B #Online/Core/Music/Stop.asm +7C0802A6 90010004 +9421FF9C BE810034 +3BE10008 3BFF001F +57FF0034 386000D7 +987F0000 7FE3FB78 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +BA810034 80010068 +38210064 7C0803A6 +38000000 00000000 +C20249F0 00000011 #Online/Core/Music/VolumeChange.asm +4800000C 4E800021 +00000000 900D81E8 +7C0802A6 90010004 +9421FF9C BE810034 +4BFFFFE5 7FC802A6 +808D81E8 807E0000 +7C032000 4182003C +909E0000 3BE10008 +3BFF001F 57FF0034 +386000D8 987F0000 +989F0001 7FE3FB78 +38800002 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +BA810034 80010068 +38210064 7C0803A6 +60000000 00000000 C21D4578 00000003 #Online/Core/PreventFileAlarms/FreezeStadium.asm FFE00890 3D80801D 618C4FD8 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index d42febc6..7cfef3f3 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1020,6 +1020,11 @@ C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm 38600000 987E25FF 807E00B0 00000000 +C21A4CB4 00000004 #Common/AllocBuffer.asm +38600080 3D808037 +618CF1E4 7D8903A6 +4E800421 906DAFC4 +38000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF20 BE8100B0 @@ -2039,11 +2044,6 @@ BA8100B0 800100E4 800100E4 382100E0 7C0803A6 2C1E0000 60000000 00000000 -C21A4CB4 00000004 #Online/Core/EXIFileLoad/AllocBuffer.asm -38600080 3D808037 -618CF1E4 7D8903A6 -4E800421 906DAFC4 -38000000 00000000 C20163FC 0000001B #Online/Core/EXIFileLoad/GetFileSize.asm 7C7E1B78 7C0802A6 90010004 9421FF20 @@ -2193,6 +2193,63 @@ C2019608 0000000F #Online/Core/Hacks/PreventPadAlarmDuringRollback.asm 618C9618 7D8903A6 4E800420 38600000 60000000 00000000 +C238E910 0000001A #Online/Core/Music/StartSong.asm +7C0802A6 90010004 +9421FF54 BE81007C +7C7E1B78 3D808034 +618C7364 7D8903A6 +4E800421 7C7D1B78 +7FC3F378 38810008 +3D808033 618C7C60 +7D8903A6 4E800421 +2C030000 41820044 +3BE10048 3BFF001F +57FF0034 386000D6 +987F0000 80610038 +907F0001 8061003C +907F0005 7FE3FB78 +38800009 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38610008 3D808033 +618C7CD4 7D8903A6 +4E800421 7FA3EB78 +3D808034 618C738C +7D8903A6 4E800421 +7FC3F378 BA81007C +800100B0 382100AC +7C0803A6 800DA998 +60000000 00000000 +C20236EC 0000000B #Online/Core/Music/Stop.asm +7C0802A6 90010004 +9421FF9C BE810034 +3BE10008 3BFF001F +57FF0034 386000D7 +987F0000 7FE3FB78 +38800001 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +BA810034 80010068 +38210064 7C0803A6 +38000000 00000000 +C20249F0 00000011 #Online/Core/Music/VolumeChange.asm +4800000C 4E800021 +00000000 900D81E8 +7C0802A6 90010004 +9421FF9C BE810034 +4BFFFFE5 7FC802A6 +808D81E8 807E0000 +7C032000 4182003C +909E0000 3BE10008 +3BFF001F 57FF0034 +386000D8 987F0000 +989F0001 7FE3FB78 +38800002 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +BA810034 80010068 +38210064 7C0803A6 +60000000 00000000 C21D4578 00000003 #Online/Core/PreventFileAlarms/FreezeStadium.asm FFE00890 3D80801D 618C4FD8 7D8903A6 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index fa373578..bad30343 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -846,6 +846,11 @@ C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm 4182000C 819F0044 4800000C 3D808018 618C1998 00000000 +C21A4CB4 00000004 #Common/AllocBuffer.asm +38600080 3D808037 +618CF1E4 7D8903A6 +4E800421 906DAFC4 +38000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF20 BE8100B0 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 335d5ef7..d3d3f783 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -845,6 +845,11 @@ C216E8C8 00000005 #Playback/Core/Stadium/Enable Home Run Contest Distance.asm 4182000C 819F0044 4800000C 3D808018 618C1998 00000000 +C21A4CB4 00000004 #Common/AllocBuffer.asm +38600080 3D808037 +618CF1E4 7D8903A6 +4E800421 906DAFC4 +38000000 00000000 C20055F8 0000000F #Common/GetIsFollower.asm 7C0802A6 90010004 9421FF20 BE8100B0 From b698534f286a825a36972364d81271da588f4667 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 14 Sep 2023 12:37:10 -0400 Subject: [PATCH 202/217] fix build issues --- External/Debug Inputs/DebugInputs.s | 16 +- External/Debug Inputs/LogFetchTime.asm | 2 +- Output/Console/GALE01r2.ini | 321 +++++++++++++++++++ Output/Console/g_core.bin | Bin 5496 -> 8040 bytes Output/Console/g_core_porta.bin | Bin 5496 -> 8040 bytes Output/Netplay/GALE01r2.ini | 409 ++++++++++++++++++++++++- Output/Netplay/GALJ01r2.ini | 409 ++++++++++++++++++++++++- 7 files changed, 1116 insertions(+), 41 deletions(-) diff --git a/External/Debug Inputs/DebugInputs.s b/External/Debug Inputs/DebugInputs.s index 5e295e72..088c0cfa 100644 --- a/External/Debug Inputs/DebugInputs.s +++ b/External/Debug Inputs/DebugInputs.s @@ -1,3 +1,5 @@ +.ifndef HEADER_DEBUG_INPUTS + ################################################################################ # Constants ################################################################################ @@ -25,15 +27,6 @@ ################################################################################ # Macros ################################################################################ -.macro incrementByte reg, reg_address, offset, limit -lbz \reg, \offset(\reg_address) -addi \reg, \reg, 1 -cmpwi \reg, \limit -blt 0f -li \reg, 0 -0: -stb \reg, \offset(\reg_address) -.endm # Calculates us difference from two ticks .macro calcDiffUs reg_now, reg_ref @@ -54,4 +47,7 @@ mulli r4, \reg_idx, 4 addi r4, r4, DIB_CIRCULAR_BUFFER lwzx r4, \reg_dib, r4 calcDiffUs r3, r4 -.endm \ No newline at end of file +.endm + +.endif +.set HEADER_DEBUG_INPUTS, 1 diff --git a/External/Debug Inputs/LogFetchTime.asm b/External/Debug Inputs/LogFetchTime.asm index 012f5d31..9e736e61 100644 --- a/External/Debug Inputs/LogFetchTime.asm +++ b/External/Debug Inputs/LogFetchTime.asm @@ -47,7 +47,7 @@ addi r4, r4, DIB_CIRCULAR_BUFFER stwx r3, REG_DIB, r4 # Increment index -incrementByte r3, REG_DIB, DIB_FETCH_INDEX, CIRCULAR_BUFFER_COUNT +incrementByteInBuf r3, REG_DIB, DIB_FETCH_INDEX, CIRCULAR_BUFFER_COUNT # Indicate ready, prevents other functions from running first. Only activate if currently inactive lbz r3, DIB_ACTIVE_STATE(REG_DIB) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 98d69bac..b458de8b 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -702,3 +702,324 @@ C03D000C FC020840 BA8100B0 800100E4 382100E0 7C0803A6 60000000 00000000 + +$Optional: Debug Game-Side Latency [Fizzi] +*Shows latency information on screen while in-game +C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm +48000410 4E800021 +00000000 43480000 +41C80000 000000FF +000000B4 E2E2E2FF +41200000 41880000 +546F7461 6C204761 +6D65204C 61673A20 +25752075 730A0A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4D696E20 506F6C6C +20446966 663A2025 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +506F6C6C 2D466574 +63683A20 25752075 +730A0050 6F6C6C2D +456E6769 6E653A20 +25752075 730A0000 +4E800021 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 4BFFFF31 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 40820128 +7FA3EB78 3D808030 +618C2BB0 7D8903A6 +4E800421 7FA3EB78 +38800000 38A00000 +3D808030 618C2A3C +7D8903A6 4E800421 +7FA3EB78 389F0020 +80BE0056 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0038 80BE006E +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0048 +80BE005A 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F005E 80BE005E +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0074 +80BE0062 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0088 80BE0066 +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F009B +80BE006A 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +4BFFFDCD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 +7D8903A6 4E800421 +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 +7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 4BFFFD11 +7FE802A6 386003E8 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00009 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCE1 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600072 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFBD1 +7C8802A6 90640000 +7C7E1B78 38800072 +3D808000 618CC160 +7D8903A6 4E800421 +4BFFFDD1 4BFFFE89 +4BFFFC59 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 C022A8C8 +60000000 00000000 +C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm +3C608048 80639D30 +5463443E 2C030202 +40820124 3C608048 +80639D60 2C030000 +40810114 7C0802A6 +90010004 9421FF20 +BE8100B0 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820098 3C80804C +60841FAC 80640000 +547C073E 54630036 +90640000 3D808034 +618CC408 7D8903A6 +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +93BF006A 807F0002 +9B810008 9B810009 +9B81000A 80810008 +54842026 608400FF +90810008 38810008 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 800D9368 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm +3C608048 80639D30 +5463443E 2C030202 +40820150 3C608047 +60639D64 80630000 +2C030000 4082013C +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0062 +807F000A 7C63E850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +907F0066 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +881F0002 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608047 +60639D64 80630000 +2C030000 408200F8 +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 807F006E +38630001 907F006E +3D808034 618CC408 +7D8903A6 4E800421 +809F000A 907F000A +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F006E 5463063F +41820028 807F005A +7C1D1800 40800008 +93BF005A 807F005E +7C1D1800 40810008 +93BF005E 4800000C +93BF005A 93BF005E +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 80B80000 +60000000 00000000 +C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +48000034 5464C63E +5463463E 7C032000 +4182000C 3860FFFF +48000018 3863FFF1 +1C630006 38800005 +7C632396 5463E73E +4E800020 3C608048 +80639D30 5463443E +2C030202 40820110 +3C608047 60639D64 +80630000 2C030000 +408200FC 7C0802A6 +90010004 9421FF20 +BE8100B0 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820080 3C60804A +60638B10 80630000 +38800000 7C0323AC +7C0004AC 4C00012C +83430000 7F43D378 +4BFFFF2D 2C030000 +41800050 7C7C1B78 +3D808034 618CC408 +7D8903A6 4E800421 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF0056 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 80010024 +60000000 00000000 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index b01d8c0a3c01dd7db538c562c82fe0dcef90c322..1a1e9fea60562aa73ae5839346637f045e54af09 100644 GIT binary patch delta 2367 zcmb_dUr1Y582@gPX&Ta!)=XsDdaZ3q{YM8h|HDC6FhI6)zz6@6OvWLMoH&ECfTKZC$-QDjbxlvPPrEB2i zp7Z;C-#y>=`@VDTe^IBl6kM<$k#AJqpNv;PHC;k*;{X5`XPq`zQBB4`Xbz3lQDLDPKIShvkj{X#UgL?wxFq6Rxj zZIhDE`25e<>ztnmCF>WjUbD}i=Z+eIDV#`|Bg%1gt=qT^$$W_}*ugNBRAR*iRR`j>MFot#jD+9#3GI30jp zb0~TJYbzr~BijtrN`C+unbS6(lF0FCjVUip&|=Vh^1YB1Mlu{*Ldl1JSdMJ4G6wvR z!p$aS&iqMPCQ12~q+B4r=7QaLWsG0`iWzqw<;&pnSRDKbn;$doJc=n9I_}On*QYFl z<YL%241rtnPt@<+Ch-JY@*joA1)sLP@D$6EqKO{KgWf%^a2D1xhISL``dD zRpH_y;w>M-U|aEm=HK^)b1F>4P$29gY$%lcR}F|Hy~z)$amOhZua7bPu;HEhotz1DM83agS~>61;?)ZrS*fhl zuj+JCWSHCFuG7k_>N+`;IF+-E+{D5aJykln;Y(VaHh5gz3ifquGMycI?KHbu8B2dd z!>EgGc7mK3duAt&lZ#`a#^qyhG*g%>7}!i)HH8*Nfz$7l)fjwldQi)WMJp}CxKgQc z2eo>Doz?UkVXo&AgMzIuKrur|mQ{?0=x0^uCleWxm|h#h+@Au5>|6q?is#iaYMP*~ zr066;VNW|pg2-S7n5BB#B)Ne}z@AcBsKzt256bOh;kVcSQ|6RG7ex?Ee;zr&&E^fS9G zJ_snCX#%fMbn_t&K?$ybm(UW^s=nqI-_{+J^z5MIMv;=n;&UG9;uFoW*;|_aiANj; zadk6$?E)jmLKj+cs)NYr_%ViWe`EFr;MBudC2rGm+vR`G<9;EprkhK2M9XSP^e?uz B7{LGl delta 7 OcmaE1_d{z#g(v_JXaj}- diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index b9b03399eb1ef21c420a91fdc356925cfffa2831..bfb2c09f5e8af8d0e4a8a6cb7728fd4a60b2ef0c 100644 GIT binary patch delta 2367 zcmb_dUr1Y582@gPX&Ta!)=XsDdaZ3q{YM8h|HDC6FhI6)zz6@6OvWLMoH&ECfTKZC$-QDjbxlvPPrEB2i zp7Z;C-#y>=`@VDTe^IBl6kM<$k#AJqpNv;PHC;k*;{X5`XPq`zQBB4`Xbz3lQDLDPKIShvkj{X#UgL?wxFq6Rxj zZIhDE`25e<>ztnmCF>WjUbD}i=Z+eIDV#`|Bg%1gt=qT^$$W_}*ugNBRAR*iRR`j>MFot#jD+9#3GI30jp zb0~TJYbzr~BijtrN`C+unbS6(lF0FCjVUip&|=Vh^1YB1Mlu{*Ldl1JSdMJ4G6wvR z!p$aS&iqMPCQ12~q+B4r=7QaLWsG0`iWzqw<;&pnSRDKbn;$doJc=n9I_}On*QYFl z<YL%241rtnPt@<+Ch-JY@*joA1)sLP@D$6EqKO{KgWf%^a2D1xhISL``dD zRpH_y;w>M-U|aEm=HK^)b1F>4P$29gY$%lcR}F|Hy~z)$amOhZua7bPu;HEhotz1DM83agS~>61;?)ZrS*fhl zuj+JCWSHCFuG7k_>N+`;IF+-E+{D5aJykln;Y(VaHh5gz3ifquGMycI?KHbu8B2dd z!>EgGc7mK3duAt&lZ#`a#^qyhG*g%>7}!i)HH8*Nfz$7l)fjwldQi)WMJp}CxKgQc z2eo>Doz?UkVXo&AgMzIuKrur|mQ{?0=x0^uCleWxm|h#h+@Au5>|6q?is#iaYMP*~ zr066;VNW|pg2-S7n5BB#B)Ne}z@AcBsKzt256bOh;kVcSQ|6RG7ex?Ee;zr&&E^fS9G zJ_snCX#%fMbn_t&K?$ybm(UW^s=nqI-_{+J^z5MIMv;=n;&UG9;uFoW*;|_aiANj; zadk6$?E)jmLKj+cs)NYr_%ViWe`EFr;MBudC2rGm+vR`G<9;EprkhK2M9XSP^e?uz B7{LGl delta 7 OcmaE1_d{z#g(v_JXaj}- diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index d377db37..db599beb 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4665,7 +4665,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 60631360 906400A0 3D80801B 618C136C 7D8903A6 4E800420 -38600001 00000000 +38600002 00000000 C21A45B8 000001FF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 @@ -5622,20 +5622,6 @@ BE8100B0 4BFFFCA9 7C0803A6 4E800020 60000000 00000000 043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm -041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] -0401985C 3C60804C -04019860 91231F5C -C2376200 00000003 -2C1DFFFF 41820008 -48000008 93A2C150 -60000000 00000000 -C21A5018 00000005 -3B5A0001 8002C150 -2C00FFFF 38000000 -9002C150 3D80801A -618C5078 7D8903A6 -4D820420 00000000 -04218D68 C8228000 C209E090 00000011 #Common/FastForward/DynamicsFix.asm 807E0000 80630028 48000009 48000074 @@ -6953,3 +6939,396 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 + +$Optional: Debug Game-Side Latency [Fizzi] +*Shows latency information on screen while in-game +C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm +48000410 4E800021 +00000000 43480000 +41C80000 000000FF +000000B4 E2E2E2FF +41200000 41880000 +546F7461 6C204761 +6D65204C 61673A20 +25752075 730A0A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4D696E20 506F6C6C +20446966 663A2025 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +506F6C6C 2D466574 +63683A20 25752075 +730A0050 6F6C6C2D +456E6769 6E653A20 +25752075 730A0000 +4E800021 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 4BFFFF31 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 40820128 +7FA3EB78 3D808030 +618C2BB0 7D8903A6 +4E800421 7FA3EB78 +38800000 38A00000 +3D808030 618C2A3C +7D8903A6 4E800421 +7FA3EB78 389F0020 +80BE0056 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0038 80BE006E +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0048 +80BE005A 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F005E 80BE005E +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0074 +80BE0062 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0088 80BE0066 +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F009B +80BE006A 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +4BFFFDCD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 +7D8903A6 4E800421 +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 +7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 4BFFFD11 +7FE802A6 386003E8 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00009 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCE1 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600072 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFBD1 +7C8802A6 90640000 +7C7E1B78 38800072 +3D808000 618CC160 +7D8903A6 4E800421 +4BFFFDD1 4BFFFE89 +4BFFFC59 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 C022A8C8 +60000000 00000000 +C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm +3C608048 80639D30 +5463443E 2C030202 +40820124 3C608048 +80639D60 2C030000 +40810114 7C0802A6 +90010004 9421FF20 +BE8100B0 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820098 3C80804C +60841FAC 80640000 +547C073E 54630036 +90640000 3D808034 +618CC408 7D8903A6 +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +93BF006A 807F0002 +9B810008 9B810009 +9B81000A 80810008 +54842026 608400FF +90810008 38810008 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 800D9368 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm +3C608048 80639D30 +5463443E 2C030202 +40820150 3C608047 +60639D64 80630000 +2C030000 4082013C +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0062 +807F000A 7C63E850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +907F0066 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +881F0002 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608047 +60639D64 80630000 +2C030000 408200F8 +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 807F006E +38630001 907F006E +3D808034 618CC408 +7D8903A6 4E800421 +809F000A 907F000A +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F006E 5463063F +41820028 807F005A +7C1D1800 40800008 +93BF005A 807F005E +7C1D1800 40810008 +93BF005E 4800000C +93BF005A 93BF005E +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 80B80000 +60000000 00000000 +C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +48000034 5464C63E +5463463E 7C032000 +4182000C 3860FFFF +48000018 3863FFF1 +1C630006 38800005 +7C632396 5463E73E +4E800020 3C608048 +80639D30 5463443E +2C030202 40820110 +3C608047 60639D64 +80630000 2C030000 +408200FC 7C0802A6 +90010004 9421FF20 +BE8100B0 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820080 3C60804A +60638B10 80630000 +38800000 7C0323AC +7C0004AC 4C00012C +83430000 7F43D378 +4BFFFF2D 2C030000 +41800050 7C7C1B78 +3D808034 618CC408 +7D8903A6 4E800421 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF0056 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 80010024 +60000000 00000000 +041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm + +$Optional: PD+VB [taukhan] +*PD+VB +C21A4D98 00000007 #Polling Drift Fix + VB [tauKhan] +8062A6F4 2C030001 +40820028 8062A6F0 +2C030002 4182001C +386DBD88 3D808034 +618CBA14 7D8803A6 +4E800021 4BFFFFD4 +60000000 00000000 +C21A5050 0000000B +8062A6F4 2C030001 +40820044 8062A6F0 +2C030002 40820038 +4800001C 8062A6F0 +2C030002 41820028 +8062A6F4 2C030001 +4082001C 386DBD88 +3D808034 618CBA14 +7D8803A6 4E800021 +4BFFFFD4 38600000 +60000000 00000000 +C21A4BEC 00000015 +4800007D 7C0802A6 +90010004 9421FFF8 +386DBD88 8082A6F0 +38840001 9082A6F0 +2C040001 40820014 +3D808001 618C95FC +7D8803A6 4E800021 +8082A6F0 2C040002 +40820014 3D808034 +618CBB00 7D8803A6 +4E800021 38600001 +9062A6F4 38604000 +38635624 3C808043 +B0642A42 8001000C +38210008 7C0803A6 +4E800020 7C6802A6 +3D808034 618CE894 +7D8803A6 4E800021 +3C608048 3C80801A +380446F4 38800000 +60000000 00000000 +04158268 C82280A0 +C234EB60 00000007 +8062A6F0 2C030001 +4080001C 38600000 +9062A6F4 3C608043 +38804000 388455FC +B0832A42 38600000 +9062A6F0 386DBD88 +60000000 00000000 +04397878 4800020C + +$Optional: PD [Dan Salvato] +*PD +C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] +901C0000 3D808001 +618C95FC 7D8903A6 +4E800421 00000000 +041A4DB4 60000000 +04019860 4BFFFD9D + +$Optional: 59.94Hz Engine [Fizzi] +*Attempts to fix polling drift +044DA2A8 3C88AB85 #External/59.94Hz Engine/InGameSpeed.asm +044DA9E8 3C88AB85 #External/59.94Hz Engine/MenuSpeed.asm +044D7CA0 3C88AB85 #External/59.94Hz Engine/SetSpeedOnBoot.asm +044DA5F8 3C88AB85 #External/59.94Hz Engine/TrainingModeSpeed.asm diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 7cfef3f3..2046ffbc 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4664,7 +4664,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 60631360 906400A0 3D80801B 618C136C 7D8903A6 4E800420 -38600001 00000000 +38600002 00000000 C21A45B8 000001FF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 @@ -5621,20 +5621,6 @@ BE8100B0 4BFFFCA9 7C0803A6 4E800020 60000000 00000000 043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm -041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] -0401985C 3C60804C -04019860 91231F5C -C2376200 00000003 -2C1DFFFF 41820008 -48000008 93A2C150 -60000000 00000000 -C21A5018 00000005 -3B5A0001 8002C150 -2C00FFFF 38000000 -9002C150 3D80801A -618C5078 7D8903A6 -4D820420 00000000 -04218D68 C8228000 C209E090 00000011 #Common/FastForward/DynamicsFix.asm 807E0000 80630028 48000009 48000074 @@ -6952,3 +6938,396 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 + +$Optional: Debug Game-Side Latency [Fizzi] +*Shows latency information on screen while in-game +C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm +48000410 4E800021 +00000000 43480000 +41C80000 000000FF +000000B4 E2E2E2FF +41200000 41880000 +546F7461 6C204761 +6D65204C 61673A20 +25752075 730A0A00 +506F6C6C 20436F75 +6E743A20 25750A00 +4D696E20 506F6C6C +20446966 663A2025 +75207573 0A004D61 +7820506F 6C6C2044 +6966663A 20257520 +75730A00 46657463 +682D4665 7463683A +20257520 75730A00 +506F6C6C 2D466574 +63683A20 25752075 +730A0050 6F6C6C2D +456E6769 6E653A20 +25752075 730A0000 +4E800021 4E800020 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 4BFFFF31 +7FE802A6 83DF0000 +83BE0006 887E0000 +2C030001 40820128 +7FA3EB78 3D808030 +618C2BB0 7D8903A6 +4E800421 7FA3EB78 +38800000 38A00000 +3D808030 618C2A3C +7D8903A6 4E800421 +7FA3EB78 389F0020 +80BE0056 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0038 80BE006E +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0048 +80BE005A 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F005E 80BE005E +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F0074 +80BE0062 3D808030 +618C2D4C 7D8903A6 +4E800421 7FA3EB78 +389F0088 80BE0066 +3D808030 618C2D4C +7D8903A6 4E800421 +7FA3EB78 389F009B +80BE006A 3D808030 +618C2D4C 7D8903A6 +4E800421 3C608046 +6063B6A0 88630008 +2C030000 41820020 +807E0012 3D808034 +618C9CBC 7D8903A6 +4E800421 38600002 +987E0000 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +4BFFFDCD 7FE802A6 +38600020 3D808037 +618CF1E4 7D8903A6 +4E800421 7C681B78 +3860001E 3880FF2E +38A0FFD8 38C00001 +38E00001 3D808030 +618C2834 7D8903A6 +4E800421 7C7E1B78 +806DB77C 7FC4F378 +3D808030 618C2810 +7D8903A6 4E800421 +38600000 987E0026 +7FC3F378 389F000C +3D808030 618C2B90 +7D8903A6 4E800421 +C03F0004 D03E0008 +C03F0008 D03E000C +807F0000 93C30002 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 4BFFFD11 +7FE802A6 386003E8 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C681B78 3860001F +38800000 38A00000 +38C0001D 38E00009 +3D808030 618C2834 +7D8903A6 4E800421 +7C7E1B78 806DB77C +7FC4F378 3D808030 +618C2810 7D8903A6 +4E800421 38600000 +987E0026 7FC3F378 +389F0010 3D808030 +618C2B90 7D8903A6 +4E800421 7FC3F378 +C03F0018 C05F001C +3D808030 618C2B10 +7D8903A6 4E800421 +7FC3F378 389F0014 +3D808030 618C2B64 +7D8903A6 4E800421 +7FC3F378 3D808030 +618C2AF0 7D8903A6 +4E800421 807F0000 +93C30006 38600013 +38800014 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +4BFFFCE1 7C8802A6 +38A00007 3D808038 +618CFD54 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +38600072 3D808037 +618CF1E4 7D8903A6 +4E800421 4BFFFBD1 +7C8802A6 90640000 +7C7E1B78 38800072 +3D808000 618CC160 +7D8903A6 4E800421 +4BFFFDD1 4BFFFE89 +4BFFFC59 7C6802A6 +907E0012 3D808034 +618C9BF0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 C022A8C8 +60000000 00000000 +C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm +3C608048 80639D30 +5463443E 2C030202 +40820124 3C608048 +80639D60 2C030000 +40810114 7C0802A6 +90010004 9421FF20 +BE8100B0 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820098 3C80804C +60841FAC 80640000 +547C073E 54630036 +90640000 3D808034 +618CC408 7D8903A6 +4E800421 1C9C0004 +38840016 7C9F202E +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +93BF006A 807F0002 +9B810008 9B810009 +9B81000A 80810008 +54842026 608400FF +90810008 38810008 +3D808030 618C2B90 +7D8903A6 4E800421 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 800D9368 +60000000 00000000 +C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm +3C608048 80639D30 +5463443E 2C030202 +40820150 3C608047 +60639D64 80630000 +2C030000 4082013C +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 806100DC +54638036 889F0001 +7C632378 5463803E +906100DC 807F000A +889F0001 1C840004 +38840016 7C7F212E +887F0001 38630001 +2C030010 41800008 +38600000 987F0001 +887F0000 2C030000 +4082000C 38600001 +987F0000 3D808034 +618CC408 7D8903A6 +4E800421 7C7D1B78 +809F000E 93BF000E +7C64E850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 907F0062 +807F000A 7C63E850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +907F0066 7FC3F378 +3D808034 618C738C +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +881F0002 00000000 +C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm +3C608048 80639D30 +5463443E 2C030202 +4082010C 3C608047 +60639D64 80630000 +2C030000 408200F8 +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808034 618C7364 +7D8903A6 4E800421 +7C7E1B78 3C608016 +6063E774 80830000 +5485863E 7CA50774 +54A5801E 5484043A +7C842B78 7C632214 +83E30008 807F006E +38630001 907F006E +3D808034 618CC408 +7D8903A6 4E800421 +809F000A 907F000A +7C641850 1C63000C +3C808000 608400FC +80840000 38A003E8 +7C842B96 7C842B96 +7C632396 7C7D1B78 +807F006E 5463063F +41820028 807F005A +7C1D1800 40800008 +93BF005A 807F005E +7C1D1800 40810008 +93BF005E 4800000C +93BF005A 93BF005E +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 80B80000 +60000000 00000000 +C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +48000034 5464C63E +5463463E 7C032000 +4182000C 3860FFFF +48000018 3863FFF1 +1C630006 38800005 +7C632396 5463E73E +4E800020 3C608048 +80639D30 5463443E +2C030202 40820110 +3C608047 60639D64 +80630000 2C030000 +408200FC 7C0802A6 +90010004 9421FF20 +BE8100B0 3D808034 +618C7364 7D8903A6 +4E800421 7C7E1B78 +3C608016 6063E774 +80830000 5485863E +7CA50774 54A5801E +5484043A 7C842B78 +7C632214 83E30008 +887F0000 2C030000 +41820080 3C60804A +60638B10 80630000 +38800000 7C0323AC +7C0004AC 4C00012C +83430000 7F43D378 +4BFFFF2D 2C030000 +41800050 7C7C1B78 +3D808034 618CC408 +7D8903A6 4E800421 +1C9C0004 38840016 +7C9F202E 7C641850 +1C63000C 3C808000 +608400FC 80840000 +38A003E8 7C842B96 +7C842B96 7C632396 +7C7D1B78 93BF0056 +7FC3F378 3D808034 +618C738C 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 80010024 +60000000 00000000 +041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm + +$Optional: PD+VB [taukhan] +*PD+VB +C21A4D98 00000007 #Polling Drift Fix + VB [tauKhan] +8062A6F4 2C030001 +40820028 8062A6F0 +2C030002 4182001C +386DBD88 3D808034 +618CBA14 7D8803A6 +4E800021 4BFFFFD4 +60000000 00000000 +C21A5050 0000000B +8062A6F4 2C030001 +40820044 8062A6F0 +2C030002 40820038 +4800001C 8062A6F0 +2C030002 41820028 +8062A6F4 2C030001 +4082001C 386DBD88 +3D808034 618CBA14 +7D8803A6 4E800021 +4BFFFFD4 38600000 +60000000 00000000 +C21A4BEC 00000015 +4800007D 7C0802A6 +90010004 9421FFF8 +386DBD88 8082A6F0 +38840001 9082A6F0 +2C040001 40820014 +3D808001 618C95FC +7D8803A6 4E800021 +8082A6F0 2C040002 +40820014 3D808034 +618CBB00 7D8803A6 +4E800021 38600001 +9062A6F4 38604000 +38635624 3C808043 +B0642A42 8001000C +38210008 7C0803A6 +4E800020 7C6802A6 +3D808034 618CE894 +7D8803A6 4E800021 +3C608048 3C80801A +380446F4 38800000 +60000000 00000000 +04158268 C82280A0 +C234EB60 00000007 +8062A6F0 2C030001 +4080001C 38600000 +9062A6F4 3C608043 +38804000 388455FC +B0832A42 38600000 +9062A6F0 386DBD88 +60000000 00000000 +04397878 4800020C + +$Optional: PD [Dan Salvato] +*PD +C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] +901C0000 3D808001 +618C95FC 7D8903A6 +4E800421 00000000 +041A4DB4 60000000 +04019860 4BFFFD9D + +$Optional: 59.94Hz Engine [Fizzi] +*Attempts to fix polling drift +044DA2A8 3C88AB85 #External/59.94Hz Engine/InGameSpeed.asm +044DA9E8 3C88AB85 #External/59.94Hz Engine/MenuSpeed.asm +044D7CA0 3C88AB85 #External/59.94Hz Engine/SetSpeedOnBoot.asm +044DA5F8 3C88AB85 #External/59.94Hz Engine/TrainingModeSpeed.asm From 45ddce738b6ca3e92eaca99e1a5695b9cdecf1da Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Thu, 14 Sep 2023 15:06:22 -0400 Subject: [PATCH 203/217] improve computeBranchTargetAddress macro --- Common/Common.s | 16 +-- External/Debug Inputs/LogFetchTime.asm | 2 +- Output/Console/GALE01r2.ini | 50 ++++--- Output/Console/g_core.bin | Bin 8040 -> 8008 bytes Output/Console/g_core_porta.bin | Bin 8040 -> 8008 bytes Output/Netplay/GALE01r2.ini | 173 +++++++++++-------------- Output/Netplay/GALJ01r2.ini | 173 +++++++++++-------------- 7 files changed, 188 insertions(+), 226 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index e679ea0f..6fb06a86 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -322,14 +322,14 @@ lwz \reg, -0x62A0(\reg) load r3, \address lwz r4, 0(r3) # Get branch instruction which contains offset -# Process 3rd byte and extend sign to handle negative branches -rlwinm r5, r4, 16, 0xFF -extsb r5, r5 -rlwinm r5, r5, 16, 0xFFFF0000 - -# Extract last 2 bytes, combine with top half, and then add to base address to get result -rlwinm r4, r4, 0, 0xFFFC # Use 0xFFFC because the last bit is used for link -or r4, r4, r5 +# This extracts the LI portion of the branch instruction and shifts it such +# that the sign bit is all the way left. Then it does a divide instruction to +# shift to the right 6 bits while preserving the sign. After that, add to +# branch instruction location to get result. +# Credit to taukhan for the divw improvement (saves 2 instructions) +rlwinm r5, r4, 6, 0xFFFFFF00 +li r4, 64 +divw r4, r5, r4 add \reg, r3, r4 .endm diff --git a/External/Debug Inputs/LogFetchTime.asm b/External/Debug Inputs/LogFetchTime.asm index 9e736e61..8583bde2 100644 --- a/External/Debug Inputs/LogFetchTime.asm +++ b/External/Debug Inputs/LogFetchTime.asm @@ -15,7 +15,7 @@ lwz r3, 0x0(r3) # 0x80479d64 - Believed to be some loading state cmpwi r3, 0 # Loading state should be zero when game starts bne EXIT -.set CONST_BACKUP_BYTES, 0xB0 # Maybe add this to Common.s +.set CONST_BACKUP_BYTES, 0xE0 # Maybe add this to Common.s .set P1_PAD_OFFSET, CONST_BACKUP_BYTES + 0x2C .set REG_DIB, 31 diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index b458de8b..4dcd582c 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -853,20 +853,19 @@ C03F0018 C05F001C 800100E4 382100E0 7C0803A6 C022A8C8 60000000 00000000 -C21A4DEC 00000028 #External/Debug Inputs/LogEngineTime.asm +C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm 3C608048 80639D30 5463443E 2C030202 -40820124 3C608048 +4082011C 3C608048 80639D60 2C030000 -40810114 7C0802A6 +4081010C 7C0802A6 90010004 9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7E1B78 3C608016 6063E774 -80830000 5485863E -7CA50774 54A5801E -5484043A 7C842B78 +80830000 5485302E +38800040 7C8523D6 7C632214 83E30008 887F0000 2C030000 41820098 3C80804C @@ -894,25 +893,24 @@ BE8100B0 3D808034 800100E4 382100E0 7C0803A6 800D9368 60000000 00000000 -C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm +C2376A88 0000002C #External/Debug Inputs/LogFetchTime.asm 3C608048 80639D30 5463443E 2C030202 -40820150 3C608047 +40820148 3C608047 60639D64 80630000 -2C030000 4082013C +2C030000 40820134 7C0802A6 90010004 9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7E1B78 3C608016 6063E774 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 -83E30008 806100DC +5485302E 38800040 +7C8523D6 7C632214 +83E30008 8061010C 54638036 889F0001 7C632378 5463803E -906100DC 807F000A +9061010C 807F000A 889F0001 1C840004 38840016 7C7F212E 887F0001 38630001 @@ -940,21 +938,20 @@ C2376A88 0000002D #External/Debug Inputs/LogFetchTime.asm BA8100B0 800100E4 382100E0 7C0803A6 881F0002 00000000 -C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm +C2349A28 00000024 #External/Debug Inputs/LogPollTime.asm 3C608048 80639D30 5463443E 2C030202 -4082010C 3C608047 +40820104 3C608047 60639D64 80630000 -2C030000 408200F8 +2C030000 408200F0 7C0802A6 90010004 9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7E1B78 3C608016 6063E774 80830000 -5485863E 7CA50774 -54A5801E 5484043A -7C842B78 7C632214 +5485302E 38800040 +7C8523D6 7C632214 83E30008 807F006E 38630001 907F006E 3D808034 618CC408 @@ -978,7 +975,7 @@ C2349A28 00000025 #External/Debug Inputs/LogPollTime.asm 800100E4 382100E0 7C0803A6 80B80000 60000000 00000000 -C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm +C2375C14 0000002B #External/Debug Inputs/LogScanoutTime.asm 48000034 5464C63E 5463463E 7C032000 4182000C 3860FFFF @@ -987,18 +984,17 @@ C2375C14 0000002C #External/Debug Inputs/LogScanoutTime.asm 7C632396 5463E73E 4E800020 3C608048 80639D30 5463443E -2C030202 40820110 +2C030202 40820108 3C608047 60639D64 80630000 2C030000 -408200FC 7C0802A6 +408200F4 7C0802A6 90010004 9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 7C7E1B78 3C608016 6063E774 -80830000 5485863E -7CA50774 54A5801E -5484043A 7C842B78 +80830000 5485302E +38800040 7C8523D6 7C632214 83E30008 887F0000 2C030000 41820080 3C60804A @@ -1006,7 +1002,7 @@ BE8100B0 3D808034 38800000 7C0323AC 7C0004AC 4C00012C 83430000 7F43D378 -4BFFFF2D 2C030000 +4BFFFF35 2C030000 41800050 7C7C1B78 3D808034 618CC408 7D8903A6 4E800421 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 1a1e9fea60562aa73ae5839346637f045e54af09..ba15a8a97f6a57515543456eb1c06ff15b533d01 100644 GIT binary patch delta 271 zcmaE1cfxLiyp*cCO+tf5L-JgMkYpD-9cCsbhbBfDs91syGXsM|BO}k`3DQPf26`3^ z3=TD|%GV}$NZr@e!J^RvDCVA!JU68wnSlYUxrxyPq*)80xh7djr1>!eM?)ebPe^iu zS;u?^#+qd13Lx8V0#I!77wN~EDp(9>!8DxV1G>vxWDhfHPv($w7v;dB{0qAB6>`>$ Krjwt@wEzHdU{W^# delta 303 zcmX?M_rh+2yp*bjO+tf5L-JgMkYpD-9cCsbhbBf9s91syGXsM|BcsUV4>CqVZFV(F z*-Ju}Hpqpvuvpc!Xje>bkh-s_i^YHdpqP6?^4ye$WCjMXAx(@nAVZ8W4XH_15@~+S zz|oM%a3>_W!K`CG17l6Has`lWHvuR%`HA#nO;s$G@L*cP@B^1ibz~1S>P-G1>n!eM?)ebPe^iu zS;u?^#+qd13Lx8V0#I!77wN~EDp(9>!8DxV1G>vxWDhfHPv($w7v;dB{0qAB6>`>$ Krjwt@wEzHdU{W^# delta 303 zcmX?M_rh+2yp*bjO+tf5L-JgMkYpD-9cCsbhbBf9s91syGXsM|BcsUV4>CqVZFV(F z*-Ju}Hpqpvuvpc!Xje>bkh-s_i^YHdpqP6?^4ye$WCjMXAx(@nAVZ8W4XH_15@~+S zz|oM%a3>_W!K`CG17l6Has`lWHvuR%`HA#nO;s$G@L*cP@B^1ibz~1S>P-G1>n Date: Thu, 14 Sep 2023 15:24:42 -0400 Subject: [PATCH 204/217] revert changes --- Binary/LagReduction/PD+VB.bin | Bin 416 -> 112 bytes Common/EXILogging/AllocLoggingBuffer.asm | 14 - Online/Core/ForceEngineOnRollback.asm | 2 +- Online/Core/Hacks/ForceNoVideoAssert.asm | 2 +- Online/Core/Sound/PreventDuplicateSounds.asm | 6 +- Online/Menus/CSS/Teams/AnimateCursorPort.asm | 2 +- .../Menus/CSS/Teams/InitTeamToggleButton.asm | 2 +- Online/Slippi Online Scene/boot.asm | 2 +- Output/Console/GALE01r2.ini | 317 -------------- Output/Console/g_core.bin | Bin 8008 -> 5496 bytes Output/Console/g_core_porta.bin | Bin 8008 -> 5496 bytes Output/Netplay/GALE01r2.ini | 405 +----------------- Output/Netplay/GALJ01r2.ini | 405 +----------------- console_core.json | 17 - netplay.json | 76 +--- 15 files changed, 43 insertions(+), 1207 deletions(-) delete mode 100644 Common/EXILogging/AllocLoggingBuffer.asm diff --git a/Binary/LagReduction/PD+VB.bin b/Binary/LagReduction/PD+VB.bin index 7425eb1dc277d2ec8d536af5e6e6ee944fda2a61..10a2c67350251fbc38c79f503d5adb83a298ce87 100644 GIT binary patch literal 112 zcmZRP@=-b9G^>V%aYl?yLW2*GPMD}HA9Kh&i2(?hb!7klcWh$d@L*uzn7rsnH}s2Bw1nIt>5+TL1+n0NJ(;4N{3c0Ts2K%*%Y6SQLQ53@nPh87Gt) F7yz$g9zy^C literal 416 zcmX>kIu=Hi40WWs2heA0T%%G%fpJ(Zawu0Z8kxfZZ+vbSqbIKci@sL5bj2GRRs z3QVs}LW2iTy_5xu+ZT%lgnL;;n=(!)H7qz}@;U+NZcw;_!jjRU0T`A*5s-aAz0MX5 eKs#GP|7>X1a)OF~0Qm`|2?SUyD=It~n0NpwYk`IU diff --git a/Common/EXILogging/AllocLoggingBuffer.asm b/Common/EXILogging/AllocLoggingBuffer.asm deleted file mode 100644 index f64d2ff9..00000000 --- a/Common/EXILogging/AllocLoggingBuffer.asm +++ /dev/null @@ -1,14 +0,0 @@ -################################################################################ -# Address: 0x801a4cb8 -################################################################################ - -.include "Common/Common.s" - -# Alloc buffer -li r3, 128 -branchl r12, HSD_MemAlloc -stw r3, OFST_R13_LOG_BUF(r13) - -# Original -li r0, 0 -stw r0, -0x4F78(r13) diff --git a/Online/Core/ForceEngineOnRollback.asm b/Online/Core/ForceEngineOnRollback.asm index f1815fcb..4a782535 100644 --- a/Online/Core/ForceEngineOnRollback.asm +++ b/Online/Core/ForceEngineOnRollback.asm @@ -64,7 +64,7 @@ beq RESTORE_AND_EXIT li r4, 0 stb r4, ODB_SHOULD_FORCE_PAD_RENEW(r5) branchl r12, RenewInputs_Prefunction -#exilogf LOG_LEVEL_NOTICE, "Forced a pad renew..." +#logf LOG_LEVEL_NOTICE, "Forced a pad renew..." RESTORE_AND_EXIT: mr r3, r26 # We will set r26 to 0 later so it's fine to use here diff --git a/Online/Core/Hacks/ForceNoVideoAssert.asm b/Online/Core/Hacks/ForceNoVideoAssert.asm index 356f0af8..86090136 100644 --- a/Online/Core/Hacks/ForceNoVideoAssert.asm +++ b/Online/Core/Hacks/ForceNoVideoAssert.asm @@ -5,7 +5,7 @@ .include "Common/Common.s" .include "Online/Online.s" -#exilogf LOG_LEVEL_NOTICE, "XFB Status is not 4. Value: %d", "mr r5, 0" +#logf LOG_LEVEL_NOTICE, "XFB Status is not 4. Value: %d", "mr r5, 0" # Log XFB status value bl STRING diff --git a/Online/Core/Sound/PreventDuplicateSounds.asm b/Online/Core/Sound/PreventDuplicateSounds.asm index f74d23de..a01b949d 100644 --- a/Online/Core/Sound/PreventDuplicateSounds.asm +++ b/Online/Core/Sound/PreventDuplicateSounds.asm @@ -36,7 +36,7 @@ li REG_IS_SOUND_ACTIVE, 0 li REG_SOUND_INSTANCE_ID, 0 rlwinm REG_SOUND_ID, r23, 0, 0xFFFF # Extract half word from sound ID input -#exilogf LOG_LEVEL_WARN, "Play SFX %x, Frame: %d, Rollback: %d", "mr r5, REG_SOUND_ID", "loadGlobalFrame r6", "lbz r7, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS)" +#logf LOG_LEVEL_WARN, "Play SFX %x, Frame: %d, Rollback: %d", "mr r5, REG_SOUND_ID", "loadGlobalFrame r6", "lbz r7, ODB_STABLE_ROLLBACK_IS_ACTIVE(REG_ODB_ADDRESS)" lbz REG_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS) loadGlobalFrame r3 @@ -84,11 +84,11 @@ lbz r3, SFXS_LOG_INDEX(r6) cmpw r8, r3 blt FIND_SOUND_LOOP_START -#exilogf LOG_LEVEL_ERROR, "SFX %x NOT found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +#logf LOG_LEVEL_ERROR, "SFX %x NOT found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" b STORE_SOUND SOUND_ALREADY_PLAYED: -#exilogf LOG_LEVEL_WARN, "SFX %x found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" +#logf LOG_LEVEL_WARN, "SFX %x found. End frame: %d", "mr r5, REG_SOUND_ID", "lwz r6, ODB_STABLE_ROLLBACK_END_FRAME(REG_ODB_ADDRESS)" lwz REG_SOUND_INSTANCE_ID, SFXS_ENTRY_INSTANCE_ID(r5) li REG_IS_SOUND_ACTIVE, 1 diff --git a/Online/Menus/CSS/Teams/AnimateCursorPort.asm b/Online/Menus/CSS/Teams/AnimateCursorPort.asm index a42cc145..2a11612f 100644 --- a/Online/Menus/CSS/Teams/AnimateCursorPort.asm +++ b/Online/Menus/CSS/Teams/AnimateCursorPort.asm @@ -37,7 +37,7 @@ mulli r6, r6, 0x4 add REG_TEAM_IDX, REG_TEAM_IDX, r6 mr r3, REG_TEAM_IDX -#exilogf LOG_LEVEL_NOTICE, "CURSOR COLOR r3: %d", "mr r5, 3", "mr r6, 6" +#logf LOG_LEVEL_NOTICE, "CURSOR COLOR r3: %d", "mr r5, 3", "mr r6, 6" branchl r12, FN_IntToFloat b EXIT diff --git a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm index 986d042e..244c11b6 100644 --- a/Online/Menus/CSS/Teams/InitTeamToggleButton.asm +++ b/Online/Menus/CSS/Teams/InitTeamToggleButton.asm @@ -354,7 +354,7 @@ lbz r3, 0x70(REG_PORT_SELECTIONS_ADDR) mr REG_INTERNAL_CHAR_ID, r3 lbz REG_TEAM_IDX, CSSDT_TEAM_IDX(REG_CSSDT_ADDR) -# exilogf LOG_LEVEL_NOTICE, "TEAM INDEX %d", "mr r5, 25" +# logf LOG_LEVEL_NOTICE, "TEAM INDEX %d", "mr r5, 25" # Animate the team icon based on team index cmpwi REG_TEAM_IDX, 3 diff --git a/Online/Slippi Online Scene/boot.asm b/Online/Slippi Online Scene/boot.asm index f15fe867..3d394b5f 100644 --- a/Online/Slippi Online Scene/boot.asm +++ b/Online/Slippi Online Scene/boot.asm @@ -56,4 +56,4 @@ branch r12, 0x801b136c # Code end ################################################################################ EXIT: -li r3, 0x2 # Load menu first +li r3, 0x1 # Load menu first diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 4dcd582c..98d69bac 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -702,320 +702,3 @@ C03D000C FC020840 BA8100B0 800100E4 382100E0 7C0803A6 60000000 00000000 - -$Optional: Debug Game-Side Latency [Fizzi] -*Shows latency information on screen while in-game -C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm -48000410 4E800021 -00000000 43480000 -41C80000 000000FF -000000B4 E2E2E2FF -41200000 41880000 -546F7461 6C204761 -6D65204C 61673A20 -25752075 730A0A00 -506F6C6C 20436F75 -6E743A20 25750A00 -4D696E20 506F6C6C -20446966 663A2025 -75207573 0A004D61 -7820506F 6C6C2044 -6966663A 20257520 -75730A00 46657463 -682D4665 7463683A -20257520 75730A00 -506F6C6C 2D466574 -63683A20 25752075 -730A0050 6F6C6C2D -456E6769 6E653A20 -25752075 730A0000 -4E800021 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFF31 -7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 40820128 -7FA3EB78 3D808030 -618C2BB0 7D8903A6 -4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C -7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE0056 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0038 80BE006E -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F0048 -80BE005A 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F005E 80BE005E -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F0074 -80BE0062 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0088 80BE0066 -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F009B -80BE006A 3D808030 -618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E0012 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -4BFFFDCD 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FF2E -38A0FFD8 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 -7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFD11 -7FE802A6 386003E8 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001D 38E00009 -3D808030 618C2834 -7D8903A6 4E800421 -7C7E1B78 806DB77C -7FC4F378 3D808030 -618C2810 7D8903A6 -4E800421 38600000 -987E0026 7FC3F378 -389F0010 3D808030 -618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFCE1 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600072 3D808037 -618CF1E4 7D8903A6 -4E800421 4BFFFBD1 -7C8802A6 90640000 -7C7E1B78 38800072 -3D808000 618CC160 -7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFC59 7C6802A6 -907E0012 3D808034 -618C9BF0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 C022A8C8 -60000000 00000000 -C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm -3C608048 80639D30 -5463443E 2C030202 -4082011C 3C608048 -80639D60 2C030000 -4081010C 7C0802A6 -90010004 9421FF20 -BE8100B0 3D808034 -618C7364 7D8903A6 -4E800421 7C7E1B78 -3C608016 6063E774 -80830000 5485302E -38800040 7C8523D6 -7C632214 83E30008 -887F0000 2C030000 -41820098 3C80804C -60841FAC 80640000 -547C073E 54630036 -90640000 3D808034 -618CC408 7D8903A6 -4E800421 1C9C0004 -38840016 7C9F202E -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -93BF006A 807F0002 -9B810008 9B810009 -9B81000A 80810008 -54842026 608400FF -90810008 38810008 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 800D9368 -60000000 00000000 -C2376A88 0000002C #External/Debug Inputs/LogFetchTime.asm -3C608048 80639D30 -5463443E 2C030202 -40820148 3C608047 -60639D64 80630000 -2C030000 40820134 -7C0802A6 90010004 -9421FF20 BE8100B0 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485302E 38800040 -7C8523D6 7C632214 -83E30008 8061010C -54638036 889F0001 -7C632378 5463803E -9061010C 807F000A -889F0001 1C840004 -38840016 7C7F212E -887F0001 38630001 -2C030010 41800008 -38600000 987F0001 -887F0000 2C030000 -4082000C 38600001 -987F0000 3D808034 -618CC408 7D8903A6 -4E800421 7C7D1B78 -809F000E 93BF000E -7C64E850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 907F0062 -807F000A 7C63E850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -907F0066 7FC3F378 -3D808034 618C738C -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -881F0002 00000000 -C2349A28 00000024 #External/Debug Inputs/LogPollTime.asm -3C608048 80639D30 -5463443E 2C030202 -40820104 3C608047 -60639D64 80630000 -2C030000 408200F0 -7C0802A6 90010004 -9421FF20 BE8100B0 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485302E 38800040 -7C8523D6 7C632214 -83E30008 807F006E -38630001 907F006E -3D808034 618CC408 -7D8903A6 4E800421 -809F000A 907F000A -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -807F006E 5463063F -41820028 807F005A -7C1D1800 40800008 -93BF005A 807F005E -7C1D1800 40810008 -93BF005E 4800000C -93BF005A 93BF005E -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 80B80000 -60000000 00000000 -C2375C14 0000002B #External/Debug Inputs/LogScanoutTime.asm -48000034 5464C63E -5463463E 7C032000 -4182000C 3860FFFF -48000018 3863FFF1 -1C630006 38800005 -7C632396 5463E73E -4E800020 3C608048 -80639D30 5463443E -2C030202 40820108 -3C608047 60639D64 -80630000 2C030000 -408200F4 7C0802A6 -90010004 9421FF20 -BE8100B0 3D808034 -618C7364 7D8903A6 -4E800421 7C7E1B78 -3C608016 6063E774 -80830000 5485302E -38800040 7C8523D6 -7C632214 83E30008 -887F0000 2C030000 -41820080 3C60804A -60638B10 80630000 -38800000 7C0323AC -7C0004AC 4C00012C -83430000 7F43D378 -4BFFFF35 2C030000 -41800050 7C7C1B78 -3D808034 618CC408 -7D8903A6 4E800421 -1C9C0004 38840016 -7C9F202E 7C641850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -7C7D1B78 93BF0056 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 80010024 -60000000 00000000 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index ba15a8a97f6a57515543456eb1c06ff15b533d01..b01d8c0a3c01dd7db538c562c82fe0dcef90c322 100644 GIT binary patch delta 7 OcmX?M_d{z#g(v_Ihy!K- delta 2335 zcmb_dQA}G^82)eDv975L4kSc6xgB#NFoFq=tHBOrvT9-Bp_!2wymz-SAgmZyl0KYq z56~rD>_d|pLS#!xOvoO1;K8U5h9O%FFD5P~#y1sBAkhbw`CuaR`knUP4mxVgT$9s# z?)U%yIp6>N|2g;1hV{U5{261dYBNSenIO5!&vEi&PF+Ew&UG;(6XVm3jSaI?29_iW zkH@qz`K)$nQ0~z#zA8UIAx~WPc&KlDY)tMNpNPf;=Aqt^sGP&jj0_FgZq%#A_o8o# zXzCt}>BA>;{{>eOydU&N^x{Z#u;505G=`j6^;8-m(|pO;axBjLNHnuTWywjRCMQW9 z(^9?h$#3!3IB(HXjmuZAITz1ymtSBCCsG!O^0tQdJ+>^#e1*>EZ6|w*Yzl1AT{h$4 zqFD;U*uTrT+cp5(KnYt6whJX}N!W%;*yj1l>oi(yY*%@=s(-eS)X5DcsB;<_P0|tg zwQ8yBU)mWdDmmt$R_1-k$lQ*_v_!6t{HDAzMav=c!8bxyILQcX(^B_-wFB93O&s`h z3OAdT1@i}Gl_cdSlJZ3ATMK@ZHF19Fb7tJRZKnJmaqNN^$Girq| zQd~r=@&O$76fb1{byozZBSZ`Z!Y;yxwA5Fs%>u>08#4dC7BY9B(hPzf>}uWjOg~mR^9#9?1{vani@u&~=e$Qv)Gl#k6J`ekVVzEi%<>E0 zaoZXBu9HhiP!-F{%`8&g=hMlHSW*+T!xQ2*aBi_g<7{r|b+hbBO+0gpMo|yP{1mw{ z4qeatJ}!T0gGG zK3jR@~pt1azN7p{N9GkqQ>K~SirUxlv&blQ= xuB9Hd;7k{h(e+&%-}aYtC!JFtV>RNov{diRf6O2ASf964^m2)gt2qsc{sAAe2`2ym diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index db7c17c7b6edeea67bd1317eaf809c21cd0cc8c3..b9b03399eb1ef21c420a91fdc356925cfffa2831 100644 GIT binary patch delta 7 OcmX?M_d{z#g(v_Ihy!K- delta 2335 zcmb_dQA}G^82)eDv975L4kSc6xgB#NFoFq=tHBOrvT9-Bp_!2wymz-SAgmZyl0KYq z56~rD>_d|pLS#!xOvoO1;K8U5h9O%FFD5P~#y1sBAkhbw`CuaR`knUP4mxVgT$9s# z?)U%yIp6>N|2g;1hV{U5{261dYBNSenIO5!&vEi&PF+Ew&UG;(6XVm3jSaI?29_iW zkH@qz`K)$nQ0~z#zA8UIAx~WPc&KlDY)tMNpNPf;=Aqt^sGP&jj0_FgZq%#A_o8o# zXzCt}>BA>;{{>eOydU&N^x{Z#u;505G=`j6^;8-m(|pO;axBjLNHnuTWywjRCMQW9 z(^9?h$#3!3IB(HXjmuZAITz1ymtSBCCsG!O^0tQdJ+>^#e1*>EZ6|w*Yzl1AT{h$4 zqFD;U*uTrT+cp5(KnYt6whJX}N!W%;*yj1l>oi(yY*%@=s(-eS)X5DcsB;<_P0|tg zwQ8yBU)mWdDmmt$R_1-k$lQ*_v_!6t{HDAzMav=c!8bxyILQcX(^B_-wFB93O&s`h z3OAdT1@i}Gl_cdSlJZ3ATMK@ZHF19Fb7tJRZKnJmaqNN^$Girq| zQd~r=@&O$76fb1{byozZBSZ`Z!Y;yxwA5Fs%>u>08#4dC7BY9B(hPzf>}uWjOg~mR^9#9?1{vani@u&~=e$Qv)Gl#k6J`ekVVzEi%<>E0 zaoZXBu9HhiP!-F{%`8&g=hMlHSW*+T!xQ2*aBi_g<7{r|b+hbBO+0gpMo|yP{1mw{ z4qeatJ}!T0gGG zK3jR@~pt1azN7p{N9GkqQ>K~SirUxlv&blQ= xuB9Hd;7k{h(e+&%-}aYtC!JFtV>RNov{diRf6O2ASf964^m2)gt2qsc{sAAe2`2ym diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 49a512b2..6e2cf55c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4653,7 +4653,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 60631360 906400A0 3D80801B 618C136C 7D8903A6 4E800420 -38600002 00000000 +38600001 00000000 C21A45B8 000001FF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 @@ -5610,6 +5610,20 @@ BE8100B0 4BFFFCA9 7C0803A6 4E800020 60000000 00000000 043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm +041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] +0401985C 3C60804C +04019860 91231F5C +C2376200 00000003 +2C1DFFFF 41820008 +48000008 93A2C150 +60000000 00000000 +C21A5018 00000005 +3B5A0001 8002C150 +2C00FFFF 38000000 +9002C150 3D80801A +618C5078 7D8903A6 +4D820420 00000000 +04218D68 C8228000 C209E090 00000011 #Common/FastForward/DynamicsFix.asm 807E0000 80630028 48000009 48000074 @@ -6926,392 +6940,3 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 - -$Optional: Debug Game-Side Latency [Fizzi] -*Shows latency information on screen while in-game -C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm -48000410 4E800021 -00000000 43480000 -41C80000 000000FF -000000B4 E2E2E2FF -41200000 41880000 -546F7461 6C204761 -6D65204C 61673A20 -25752075 730A0A00 -506F6C6C 20436F75 -6E743A20 25750A00 -4D696E20 506F6C6C -20446966 663A2025 -75207573 0A004D61 -7820506F 6C6C2044 -6966663A 20257520 -75730A00 46657463 -682D4665 7463683A -20257520 75730A00 -506F6C6C 2D466574 -63683A20 25752075 -730A0050 6F6C6C2D -456E6769 6E653A20 -25752075 730A0000 -4E800021 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFF31 -7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 40820128 -7FA3EB78 3D808030 -618C2BB0 7D8903A6 -4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C -7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE0056 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0038 80BE006E -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F0048 -80BE005A 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F005E 80BE005E -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F0074 -80BE0062 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0088 80BE0066 -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F009B -80BE006A 3D808030 -618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E0012 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -4BFFFDCD 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FF2E -38A0FFD8 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 -7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFD11 -7FE802A6 386003E8 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001D 38E00009 -3D808030 618C2834 -7D8903A6 4E800421 -7C7E1B78 806DB77C -7FC4F378 3D808030 -618C2810 7D8903A6 -4E800421 38600000 -987E0026 7FC3F378 -389F0010 3D808030 -618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFCE1 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600072 3D808037 -618CF1E4 7D8903A6 -4E800421 4BFFFBD1 -7C8802A6 90640000 -7C7E1B78 38800072 -3D808000 618CC160 -7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFC59 7C6802A6 -907E0012 3D808034 -618C9BF0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 C022A8C8 -60000000 00000000 -C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm -3C608048 80639D30 -5463443E 2C030202 -4082011C 3C608048 -80639D60 2C030000 -4081010C 7C0802A6 -90010004 9421FF20 -BE8100B0 3D808034 -618C7364 7D8903A6 -4E800421 7C7E1B78 -3C608016 6063E774 -80830000 5485302E -38800040 7C8523D6 -7C632214 83E30008 -887F0000 2C030000 -41820098 3C80804C -60841FAC 80640000 -547C073E 54630036 -90640000 3D808034 -618CC408 7D8903A6 -4E800421 1C9C0004 -38840016 7C9F202E -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -93BF006A 807F0002 -9B810008 9B810009 -9B81000A 80810008 -54842026 608400FF -90810008 38810008 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 800D9368 -60000000 00000000 -C2376A88 0000002C #External/Debug Inputs/LogFetchTime.asm -3C608048 80639D30 -5463443E 2C030202 -40820148 3C608047 -60639D64 80630000 -2C030000 40820134 -7C0802A6 90010004 -9421FF20 BE8100B0 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485302E 38800040 -7C8523D6 7C632214 -83E30008 8061010C -54638036 889F0001 -7C632378 5463803E -9061010C 807F000A -889F0001 1C840004 -38840016 7C7F212E -887F0001 38630001 -2C030010 41800008 -38600000 987F0001 -887F0000 2C030000 -4082000C 38600001 -987F0000 3D808034 -618CC408 7D8903A6 -4E800421 7C7D1B78 -809F000E 93BF000E -7C64E850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 907F0062 -807F000A 7C63E850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -907F0066 7FC3F378 -3D808034 618C738C -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -881F0002 00000000 -C2349A28 00000024 #External/Debug Inputs/LogPollTime.asm -3C608048 80639D30 -5463443E 2C030202 -40820104 3C608047 -60639D64 80630000 -2C030000 408200F0 -7C0802A6 90010004 -9421FF20 BE8100B0 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485302E 38800040 -7C8523D6 7C632214 -83E30008 807F006E -38630001 907F006E -3D808034 618CC408 -7D8903A6 4E800421 -809F000A 907F000A -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -807F006E 5463063F -41820028 807F005A -7C1D1800 40800008 -93BF005A 807F005E -7C1D1800 40810008 -93BF005E 4800000C -93BF005A 93BF005E -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 80B80000 -60000000 00000000 -C2375C14 0000002B #External/Debug Inputs/LogScanoutTime.asm -48000034 5464C63E -5463463E 7C032000 -4182000C 3860FFFF -48000018 3863FFF1 -1C630006 38800005 -7C632396 5463E73E -4E800020 3C608048 -80639D30 5463443E -2C030202 40820108 -3C608047 60639D64 -80630000 2C030000 -408200F4 7C0802A6 -90010004 9421FF20 -BE8100B0 3D808034 -618C7364 7D8903A6 -4E800421 7C7E1B78 -3C608016 6063E774 -80830000 5485302E -38800040 7C8523D6 -7C632214 83E30008 -887F0000 2C030000 -41820080 3C60804A -60638B10 80630000 -38800000 7C0323AC -7C0004AC 4C00012C -83430000 7F43D378 -4BFFFF35 2C030000 -41800050 7C7C1B78 -3D808034 618CC408 -7D8903A6 4E800421 -1C9C0004 38840016 -7C9F202E 7C641850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -7C7D1B78 93BF0056 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 80010024 -60000000 00000000 -041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm - -$Optional: PD+VB [taukhan] -*PD+VB -C21A4D98 00000007 #Polling Drift Fix + VB [tauKhan] -8062A6F4 2C030001 -40820028 8062A6F0 -2C030002 4182001C -386DBD88 3D808034 -618CBA14 7D8803A6 -4E800021 4BFFFFD4 -60000000 00000000 -C21A5050 0000000B -8062A6F4 2C030001 -40820044 8062A6F0 -2C030002 40820038 -4800001C 8062A6F0 -2C030002 41820028 -8062A6F4 2C030001 -4082001C 386DBD88 -3D808034 618CBA14 -7D8803A6 4E800021 -4BFFFFD4 38600000 -60000000 00000000 -C21A4BEC 00000015 -4800007D 7C0802A6 -90010004 9421FFF8 -386DBD88 8082A6F0 -38840001 9082A6F0 -2C040001 40820014 -3D808001 618C95FC -7D8803A6 4E800021 -8082A6F0 2C040002 -40820014 3D808034 -618CBB00 7D8803A6 -4E800021 38600001 -9062A6F4 38604000 -38635624 3C808043 -B0642A42 8001000C -38210008 7C0803A6 -4E800020 7C6802A6 -3D808034 618CE894 -7D8803A6 4E800021 -3C608048 3C80801A -380446F4 38800000 -60000000 00000000 -04158268 C82280A0 -C234EB60 00000007 -8062A6F0 2C030001 -4080001C 38600000 -9062A6F4 3C608043 -38804000 388455FC -B0832A42 38600000 -9062A6F0 386DBD88 -60000000 00000000 -04397878 4800020C - -$Optional: PD [Dan Salvato] -*PD -C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] -901C0000 3D808001 -618C95FC 7D8903A6 -4E800421 00000000 -041A4DB4 60000000 -04019860 4BFFFD9D - -$Optional: 59.94Hz Engine [Fizzi] -*Attempts to fix polling drift -044DA2A8 3C88AB85 #External/59.94Hz Engine/InGameSpeed.asm -044DA9E8 3C88AB85 #External/59.94Hz Engine/MenuSpeed.asm -044D7CA0 3C88AB85 #External/59.94Hz Engine/SetSpeedOnBoot.asm -044DA5F8 3C88AB85 #External/59.94Hz Engine/TrainingModeSpeed.asm diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index e2fc8ae8..5aeebdb0 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4652,7 +4652,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 60631360 906400A0 3D80801B 618C136C 7D8903A6 4E800420 -38600002 00000000 +38600001 00000000 C21A45B8 000001FF #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 @@ -5609,6 +5609,20 @@ BE8100B0 4BFFFCA9 7C0803A6 4E800020 60000000 00000000 043775B0 7C600775 #Online/Debugging/LogInputOnCopy.asm +041A4C24 C0429A7C #Polling Drift Fix + VB [tauKhan] +0401985C 3C60804C +04019860 91231F5C +C2376200 00000003 +2C1DFFFF 41820008 +48000008 93A2C150 +60000000 00000000 +C21A5018 00000005 +3B5A0001 8002C150 +2C00FFFF 38000000 +9002C150 3D80801A +618C5078 7D8903A6 +4D820420 00000000 +04218D68 C8228000 C209E090 00000011 #Common/FastForward/DynamicsFix.asm 807E0000 80630028 48000009 48000074 @@ -6925,392 +6939,3 @@ C0230064 BA810008 BA810008 800100B4 382100B0 7C0803A6 60000000 00000000 - -$Optional: Debug Game-Side Latency [Fizzi] -*Shows latency information on screen while in-game -C216E774 00000093 #External/Debug Inputs/InitOnGameStart.asm -48000410 4E800021 -00000000 43480000 -41C80000 000000FF -000000B4 E2E2E2FF -41200000 41880000 -546F7461 6C204761 -6D65204C 61673A20 -25752075 730A0A00 -506F6C6C 20436F75 -6E743A20 25750A00 -4D696E20 506F6C6C -20446966 663A2025 -75207573 0A004D61 -7820506F 6C6C2044 -6966663A 20257520 -75730A00 46657463 -682D4665 7463683A -20257520 75730A00 -506F6C6C 2D466574 -63683A20 25752075 -730A0050 6F6C6C2D -456E6769 6E653A20 -25752075 730A0000 -4E800021 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFF31 -7FE802A6 83DF0000 -83BE0006 887E0000 -2C030001 40820128 -7FA3EB78 3D808030 -618C2BB0 7D8903A6 -4E800421 7FA3EB78 -38800000 38A00000 -3D808030 618C2A3C -7D8903A6 4E800421 -7FA3EB78 389F0020 -80BE0056 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0038 80BE006E -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F0048 -80BE005A 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F005E 80BE005E -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F0074 -80BE0062 3D808030 -618C2D4C 7D8903A6 -4E800421 7FA3EB78 -389F0088 80BE0066 -3D808030 618C2D4C -7D8903A6 4E800421 -7FA3EB78 389F009B -80BE006A 3D808030 -618C2D4C 7D8903A6 -4E800421 3C608046 -6063B6A0 88630008 -2C030000 41820020 -807E0012 3D808034 -618C9CBC 7D8903A6 -4E800421 38600002 -987E0000 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -4BFFFDCD 7FE802A6 -38600020 3D808037 -618CF1E4 7D8903A6 -4E800421 7C681B78 -3860001E 3880FF2E -38A0FFD8 38C00001 -38E00001 3D808030 -618C2834 7D8903A6 -4E800421 7C7E1B78 -806DB77C 7FC4F378 -3D808030 618C2810 -7D8903A6 4E800421 -38600000 987E0026 -7FC3F378 389F000C -3D808030 618C2B90 -7D8903A6 4E800421 -C03F0004 D03E0008 -C03F0008 D03E000C -807F0000 93C30002 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 4BFFFD11 -7FE802A6 386003E8 -3D808037 618CF1E4 -7D8903A6 4E800421 -7C681B78 3860001F -38800000 38A00000 -38C0001D 38E00009 -3D808030 618C2834 -7D8903A6 4E800421 -7C7E1B78 806DB77C -7FC4F378 3D808030 -618C2810 7D8903A6 -4E800421 38600000 -987E0026 7FC3F378 -389F0010 3D808030 -618C2B90 7D8903A6 -4E800421 7FC3F378 -C03F0018 C05F001C -3D808030 618C2B10 -7D8903A6 4E800421 -7FC3F378 389F0014 -3D808030 618C2B64 -7D8903A6 4E800421 -7FC3F378 3D808030 -618C2AF0 7D8903A6 -4E800421 807F0000 -93C30006 38600013 -38800014 38A00000 -3D808039 618C01F0 -7D8903A6 4E800421 -4BFFFCE1 7C8802A6 -38A00007 3D808038 -618CFD54 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600072 3D808037 -618CF1E4 7D8903A6 -4E800421 4BFFFBD1 -7C8802A6 90640000 -7C7E1B78 38800072 -3D808000 618CC160 -7D8903A6 4E800421 -4BFFFDD1 4BFFFE89 -4BFFFC59 7C6802A6 -907E0012 3D808034 -618C9BF0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 C022A8C8 -60000000 00000000 -C21A4DEC 00000027 #External/Debug Inputs/LogEngineTime.asm -3C608048 80639D30 -5463443E 2C030202 -4082011C 3C608048 -80639D60 2C030000 -4081010C 7C0802A6 -90010004 9421FF20 -BE8100B0 3D808034 -618C7364 7D8903A6 -4E800421 7C7E1B78 -3C608016 6063E774 -80830000 5485302E -38800040 7C8523D6 -7C632214 83E30008 -887F0000 2C030000 -41820098 3C80804C -60841FAC 80640000 -547C073E 54630036 -90640000 3D808034 -618CC408 7D8903A6 -4E800421 1C9C0004 -38840016 7C9F202E -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -93BF006A 807F0002 -9B810008 9B810009 -9B81000A 80810008 -54842026 608400FF -90810008 38810008 -3D808030 618C2B90 -7D8903A6 4E800421 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 800D9368 -60000000 00000000 -C2376A88 0000002C #External/Debug Inputs/LogFetchTime.asm -3C608048 80639D30 -5463443E 2C030202 -40820148 3C608047 -60639D64 80630000 -2C030000 40820134 -7C0802A6 90010004 -9421FF20 BE8100B0 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485302E 38800040 -7C8523D6 7C632214 -83E30008 8061010C -54638036 889F0001 -7C632378 5463803E -9061010C 807F000A -889F0001 1C840004 -38840016 7C7F212E -887F0001 38630001 -2C030010 41800008 -38600000 987F0001 -887F0000 2C030000 -4082000C 38600001 -987F0000 3D808034 -618CC408 7D8903A6 -4E800421 7C7D1B78 -809F000E 93BF000E -7C64E850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 907F0062 -807F000A 7C63E850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -907F0066 7FC3F378 -3D808034 618C738C -7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -881F0002 00000000 -C2349A28 00000024 #External/Debug Inputs/LogPollTime.asm -3C608048 80639D30 -5463443E 2C030202 -40820104 3C608047 -60639D64 80630000 -2C030000 408200F0 -7C0802A6 90010004 -9421FF20 BE8100B0 -3D808034 618C7364 -7D8903A6 4E800421 -7C7E1B78 3C608016 -6063E774 80830000 -5485302E 38800040 -7C8523D6 7C632214 -83E30008 807F006E -38630001 907F006E -3D808034 618CC408 -7D8903A6 4E800421 -809F000A 907F000A -7C641850 1C63000C -3C808000 608400FC -80840000 38A003E8 -7C842B96 7C842B96 -7C632396 7C7D1B78 -807F006E 5463063F -41820028 807F005A -7C1D1800 40800008 -93BF005A 807F005E -7C1D1800 40810008 -93BF005E 4800000C -93BF005A 93BF005E -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 80B80000 -60000000 00000000 -C2375C14 0000002B #External/Debug Inputs/LogScanoutTime.asm -48000034 5464C63E -5463463E 7C032000 -4182000C 3860FFFF -48000018 3863FFF1 -1C630006 38800005 -7C632396 5463E73E -4E800020 3C608048 -80639D30 5463443E -2C030202 40820108 -3C608047 60639D64 -80630000 2C030000 -408200F4 7C0802A6 -90010004 9421FF20 -BE8100B0 3D808034 -618C7364 7D8903A6 -4E800421 7C7E1B78 -3C608016 6063E774 -80830000 5485302E -38800040 7C8523D6 -7C632214 83E30008 -887F0000 2C030000 -41820080 3C60804A -60638B10 80630000 -38800000 7C0323AC -7C0004AC 4C00012C -83430000 7F43D378 -4BFFFF35 2C030000 -41800050 7C7C1B78 -3D808034 618CC408 -7D8903A6 4E800421 -1C9C0004 38840016 -7C9F202E 7C641850 -1C63000C 3C808000 -608400FC 80840000 -38A003E8 7C842B96 -7C842B96 7C632396 -7C7D1B78 93BF0056 -7FC3F378 3D808034 -618C738C 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 80010024 -60000000 00000000 -041BFA20 38600002 #External/Boot to CSS/Boot To CSS.asm - -$Optional: PD+VB [taukhan] -*PD+VB -C21A4D98 00000007 #Polling Drift Fix + VB [tauKhan] -8062A6F4 2C030001 -40820028 8062A6F0 -2C030002 4182001C -386DBD88 3D808034 -618CBA14 7D8803A6 -4E800021 4BFFFFD4 -60000000 00000000 -C21A5050 0000000B -8062A6F4 2C030001 -40820044 8062A6F0 -2C030002 40820038 -4800001C 8062A6F0 -2C030002 41820028 -8062A6F4 2C030001 -4082001C 386DBD88 -3D808034 618CBA14 -7D8803A6 4E800021 -4BFFFFD4 38600000 -60000000 00000000 -C21A4BEC 00000015 -4800007D 7C0802A6 -90010004 9421FFF8 -386DBD88 8082A6F0 -38840001 9082A6F0 -2C040001 40820014 -3D808001 618C95FC -7D8803A6 4E800021 -8082A6F0 2C040002 -40820014 3D808034 -618CBB00 7D8803A6 -4E800021 38600001 -9062A6F4 38604000 -38635624 3C808043 -B0642A42 8001000C -38210008 7C0803A6 -4E800020 7C6802A6 -3D808034 618CE894 -7D8803A6 4E800021 -3C608048 3C80801A -380446F4 38800000 -60000000 00000000 -04158268 C82280A0 -C234EB60 00000007 -8062A6F0 2C030001 -4080001C 38600000 -9062A6F4 3C608043 -38804000 388455FC -B0832A42 38600000 -9062A6F0 386DBD88 -60000000 00000000 -04397878 4800020C - -$Optional: PD [Dan Salvato] -*PD -C21A4DA0 00000003 #Polling Drift Fix [Dan Salvato] -901C0000 3D808001 -618C95FC 7D8903A6 -4E800421 00000000 -041A4DB4 60000000 -04019860 4BFFFD9D - -$Optional: 59.94Hz Engine [Fizzi] -*Attempts to fix polling drift -044DA2A8 3C88AB85 #External/59.94Hz Engine/InGameSpeed.asm -044DA9E8 3C88AB85 #External/59.94Hz Engine/MenuSpeed.asm -044D7CA0 3C88AB85 #External/59.94Hz Engine/SetSpeedOnBoot.asm -044DA5F8 3C88AB85 #External/59.94Hz Engine/TrainingModeSpeed.asm diff --git a/console_core.json b/console_core.json index 4447c9f4..98b0e2f9 100644 --- a/console_core.json +++ b/console_core.json @@ -189,23 +189,6 @@ "annotation": "Avoids PS + Widescreen desyncs [Fizzi]" } ] - }, - { - "name": "Optional: Debug Game-Side Latency", - "authors": [ - "Fizzi" - ], - "description": [ - "Shows latency information on screen while in-game" - ], - "build": [ - { - "type": "injectFolder", - "sourceFolder": "External/Debug Inputs", - "isRecursive": true, - "annotation": "Shows latency information on screen while in-game" - } - ] } ] } \ No newline at end of file diff --git a/netplay.json b/netplay.json index bb209bd4..de99eee0 100644 --- a/netplay.json +++ b/netplay.json @@ -327,6 +327,11 @@ "isRecursive": true, "annotation": "Log injections [Fizzi]" }, + { + "type": "binary", + "sourceFile": "Binary/LagReduction/PD+VB.bin", + "annotation": "Polling Drift Fix + VB [tauKhan]" + }, { "type": "injectFolder", "sourceFolder": "Common/FastForward", @@ -516,77 +521,6 @@ "isRecursive": true } ] - }, - { - "name": "Optional: Debug Game-Side Latency", - "authors": [ - "Fizzi" - ], - "description": [ - "Shows latency information on screen while in-game" - ], - "build": [ - { - "type": "injectFolder", - "sourceFolder": "External/Debug Inputs", - "isRecursive": true, - "annotation": "Shows latency information on screen while in-game" - }, - { - "type": "injectFolder", - "sourceFolder": "External/Boot to CSS", - "isRecursive": true - } - ] - }, - { - "name": "Optional: PD+VB", - "authors": [ - "taukhan" - ], - "description": [ - "PD+VB" - ], - "build": [ - { - "type": "binary", - "sourceFile": "Binary/LagReduction/PD+VB.bin", - "annotation": "Polling Drift Fix + VB [tauKhan]" - } - ] - }, - { - "name": "Optional: PD", - "authors": [ - "Dan Salvato" - ], - "description": [ - "PD" - ], - "build": [ - { - "type": "binary", - "sourceFile": "Binary/LagReduction/PD.bin", - "annotation": "Polling Drift Fix [Dan Salvato]" - } - ] - }, - { - "name": "Optional: 59.94Hz Engine", - "authors": [ - "Fizzi" - ], - "description": [ - "Attempts to fix polling drift" - ], - "build": [ - { - "type": "injectFolder", - "sourceFolder": "External/59.94Hz Engine", - "isRecursive": true, - "annotation": "59.94Hz Engine" - } - ] } ] } \ No newline at end of file From 07ee80de77ca29c0881214696c4d7005cb08964a Mon Sep 17 00:00:00 2001 From: Nick Condron Date: Sat, 18 Feb 2023 09:01:33 -0500 Subject: [PATCH 205/217] Record instance info for Fighters/Items --- Recording/Recording.s | 8 ++++---- Recording/SendGamePostFrame.asm | 6 ++++++ Recording/SendItemInfo.s | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Recording/Recording.s b/Recording/Recording.s index 45007d2b..494aa713 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -31,8 +31,8 @@ .set GAME_INFO_PAYLOAD_LENGTH, 760 # byte count .set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count .set GAME_PRE_FRAME_PAYLOAD_LENGTH, 64 # byte count -.set GAME_POST_FRAME_PAYLOAD_LENGTH, 80 # byte count -.set GAME_ITEM_INFO_PAYLOAD_LENGTH, 42 # byte count +.set GAME_POST_FRAME_PAYLOAD_LENGTH, 84 # byte count +.set GAME_ITEM_INFO_PAYLOAD_LENGTH, 44 # byte count .set GAME_FRAME_BOOKEND_PAYLOAD_LENGTH, 8 # byte count .set GAME_END_PAYLOAD_LENGTH, GAME_END_TXB_SIZE - 1 # byte count .set SPLIT_MESSAGE_PAYLOAD_LENGTH, 516 # byte count @@ -65,8 +65,8 @@ # build version number. Each byte is one digit # any change in command data should result in a minor version change -# current version: 3.15.0 -.set CURRENT_VERSION,0x030F0000 +# current version: 3.16.0 +.set CURRENT_VERSION,0x03100000 ################################################################################ # Static Function Locations diff --git a/Recording/SendGamePostFrame.asm b/Recording/SendGamePostFrame.asm index 15cc5755..9accd4c9 100644 --- a/Recording/SendGamePostFrame.asm +++ b/Recording/SendGamePostFrame.asm @@ -154,6 +154,12 @@ backup lwz r3,0x14(REG_PlayerData) stw r3,0x4d(REG_Buffer) + # send instance information + lhz r3,0x18ec(REG_PlayerData) + sth r3,0x51(REG_Buffer) + lhz r3,0x2088(REG_PlayerData) + sth r3,0x53(REG_Buffer) + #------------- Increment Buffer Offset ------------ lwz REG_BufferOffset,bufferOffset(r13) addi REG_BufferOffset,REG_BufferOffset,(GAME_POST_FRAME_PAYLOAD_LENGTH+1) diff --git a/Recording/SendItemInfo.s b/Recording/SendItemInfo.s index 5a90c069..a3d92fa4 100644 --- a/Recording/SendItemInfo.s +++ b/Recording/SendItemInfo.s @@ -16,7 +16,8 @@ .set OFST_METADATA_3,OFST_METADATA_2+0x1 .set OFST_METADATA_4,OFST_METADATA_3+0x1 .set OFST_OWNER,OFST_METADATA_4+0x1 -.set ITEM_STRUCT_SIZE,OFST_OWNER+0x1 +.set OFST_INSTANCE,OFST_OWNER+0x1 +.set ITEM_STRUCT_SIZE,OFST_INSTANCE+0x2 .macro Macro_SendItemInfo @@ -137,6 +138,9 @@ DontFollowItemOwnerPtr: li r3, -1 SendItemOwner: stb r3, OFST_OWNER(REG_Buffer) +# store item instance + lhz r3,0xDA8(REG_ItemData) + sth r3,OFST_INSTANCE(REG_Buffer) #------------- Increment Buffer Offset ------------ lwz REG_BufferOffset,bufferOffset(r13) From 40bf52acb08e35b05192e221dbaff50a1d5e5efc Mon Sep 17 00:00:00 2001 From: Nick Condron Date: Fri, 15 Sep 2023 11:47:28 -0400 Subject: [PATCH 206/217] Build Codes --- Output/Console/GALE01r2.ini | 35 +++++++++++++++++--------------- Output/Console/g_core.bin | Bin 5496 -> 5520 bytes Output/Console/g_core_porta.bin | Bin 5496 -> 5520 bytes Output/Netplay/GALE01r2.ini | 35 +++++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 35 +++++++++++++++++--------------- 5 files changed, 57 insertions(+), 48 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 98d69bac..70d32915 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -132,19 +132,19 @@ C216D884 00000030 #Recording/SendGameEnd.asm BA8100B0 800100E4 382100E0 7C0803A6 819F2514 00000000 -C216E74C 00000109 #Recording/SendGameInfo.asm +C216E74C 0000010A #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182080C +2C030000 41820814 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600732 3D808037 +38600770 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -160,13 +160,13 @@ C216E74C 00000109 #Recording/SendGameInfo.asm B07E0003 38600037 987E0005 38600040 B07E0006 38600038 -987E0008 38600050 +987E0008 38600054 B07E0009 38600039 987E000B 38600006 B07E000C 3860003A 987E000E 3860000C B07E000F 3860003B -987E0011 3860002A +987E0011 3860002C B07E0012 3860003C 987E0014 38600008 B07E0015 3860003D @@ -174,7 +174,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030F 60630000 +3C600310 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -358,16 +358,16 @@ BA8100B0 800100E4 48000021 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 48000124 +4E800421 4800012C 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 806DB64C 83E30000 83CDB650 7FFFF214 3B600000 806DC18C 83A30024 -2C1D0000 418200D8 +2C1D0000 418200E0 3B7B0001 2C1B000F -418100CC 839D002C +418100D4 839D002C 3860003B 987F0000 806DB654 907F0001 807C0010 B07F0005 @@ -389,23 +389,24 @@ BE8100B0 806DB64C 2C030000 4182000C 8863000C 48000008 3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B +A07C0DA8 B07F002B +83CDB650 3BDE002D +93CDB650 3BFF002D 83BD0008 2C1D0000 -4082FF30 BA8100B0 +4082FF28 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 BA8100B0 800100E4 382100E0 7C0803A6 3C608017 00000000 -C206DA34 00000036 #Recording/SendGamePostFrame.asm +C206DA34 00000038 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820170 +2C030000 41820180 887F221F 546306F7 -40820164 8B7F000C +40820174 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -448,7 +449,9 @@ B07D0030 887F1968 807F00EC 907D0045 807F195C 907D0049 807F0014 907D004D -838DB650 3B9C0051 +A07F18EC B07D0051 +A07F2088 B07D0053 +838DB650 3B9C0055 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 8001001C diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index b01d8c0a3c01dd7db538c562c82fe0dcef90c322..f2324c990448ae828759314c8e7b918906a4fba6 100644 GIT binary patch delta 171 zcmeyNH9>pBdS*th$s3r}8AT@FU^Zqfn9Re{%os9x0*gMQ&g26u){Fw1|F9fp1#!5{ zc^_C;Gcf8%Gw?e$GF+L=!o5aiK@IPU4fPD#&1bg-Sl?sNoeZM?Gw3$&W#G_}Wnge< z`mZs$fJ+0|4d}I;a2u delta 148 zcmbQB{X=WRdS*t>$s3r}8F?n(U^Zqnn#{w}%os3v0*gMQ*5m^$){Oj{|F9fpWmK7b zfXkfshIKUqqmDEKzhfiAnaM2NYh;?wZVRx!$DlnKME_^dZr;nlp(D${;L!BnU~&PM z$mAE?@{DGaFYv1K7If4r$%iDfeRpVLOxbM16T-;R+zZq-haqsX0KdrQJ-k=g0lz;m A9smFU diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index b9b03399eb1ef21c420a91fdc356925cfffa2831..94a8c550050fe115353594dbf6aa30102dce04d6 100644 GIT binary patch delta 171 zcmeyNH9>pBdS*th$s3r}8AT@FU^Zqfn9Re{%os9x0*gMQ&g26u){Fw1|F9fp1#!5{ zc^_C;Gcf8%Gw?e$GF+L=!o5aiK@IPU4fPD#&1bg-Sl?sNoeZM?Gw3$&W#G_}Wnge< z`mZs$fJ+0|4d}I;a2u delta 148 zcmbQB{X=WRdS*t>$s3r}8F?n(U^Zqnn#{w}%os3v0*gMQ*5m^$){Oj{|F9fpWmK7b zfXkfshIKUqqmDEKzhfiAnaM2NYh;?wZVRx!$DlnKME_^dZr;nlp(D${;L!BnU~&PM z$mAE?@{DGaFYv1K7If4r$%iDfeRpVLOxbM16T-;R+zZq-haqsX0KdrQJ-k=g0lz;m A9smFU diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 6e2cf55c..62972ab1 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -635,19 +635,19 @@ C216D884 00000030 #Recording/SendGameEnd.asm BA8100B0 800100E4 382100E0 7C0803A6 819F2514 00000000 -C216E74C 00000109 #Recording/SendGameInfo.asm +C216E74C 0000010A #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182080C +2C030000 41820814 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600732 3D808037 +38600770 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -663,13 +663,13 @@ C216E74C 00000109 #Recording/SendGameInfo.asm B07E0003 38600037 987E0005 38600040 B07E0006 38600038 -987E0008 38600050 +987E0008 38600054 B07E0009 38600039 987E000B 38600006 B07E000C 3860003A 987E000E 3860000C B07E000F 3860003B -987E0011 3860002A +987E0011 3860002C B07E0012 3860003C 987E0014 38600008 B07E0015 3860003D @@ -677,7 +677,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030F 60630000 +3C600310 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -861,16 +861,16 @@ BA8100B0 800100E4 48000021 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 48000124 +4E800421 4800012C 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 806DB64C 83E30000 83CDB650 7FFFF214 3B600000 806DC18C 83A30024 -2C1D0000 418200D8 +2C1D0000 418200E0 3B7B0001 2C1B000F -418100CC 839D002C +418100D4 839D002C 3860003B 987F0000 806DB654 907F0001 807C0010 B07F0005 @@ -892,23 +892,24 @@ BE8100B0 806DB64C 2C030000 4182000C 8863000C 48000008 3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B +A07C0DA8 B07F002B +83CDB650 3BDE002D +93CDB650 3BFF002D 83BD0008 2C1D0000 -4082FF30 BA8100B0 +4082FF28 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 BA8100B0 800100E4 382100E0 7C0803A6 3C608017 00000000 -C206DA34 00000036 #Recording/SendGamePostFrame.asm +C206DA34 00000038 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820170 +2C030000 41820180 887F221F 546306F7 -40820164 8B7F000C +40820174 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -951,7 +952,9 @@ B07D0030 887F1968 807F00EC 907D0045 807F195C 907D0049 807F0014 907D004D -838DB650 3B9C0051 +A07F18EC B07D0051 +A07F2088 B07D0053 +838DB650 3B9C0055 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 8001001C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 5aeebdb0..d4f4dfa2 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -634,19 +634,19 @@ C216D884 00000030 #Recording/SendGameEnd.asm BA8100B0 800100E4 382100E0 7C0803A6 819F2514 00000000 -C216E74C 00000109 #Recording/SendGameInfo.asm +C216E74C 0000010A #Recording/SendGameInfo.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 4182080C +2C030000 41820814 38600005 3D808037 618CF1E4 7D8903A6 4E800421 7C7B1B78 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600732 3D808037 +38600770 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -662,13 +662,13 @@ C216E74C 00000109 #Recording/SendGameInfo.asm B07E0003 38600037 987E0005 38600040 B07E0006 38600038 -987E0008 38600050 +987E0008 38600054 B07E0009 38600039 987E000B 38600006 B07E000C 3860003A 987E000E 3860000C B07E000F 3860003B -987E0011 3860002A +987E0011 3860002C B07E0012 3860003C 987E0014 38600008 B07E0015 3860003D @@ -676,7 +676,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C60030F 60630000 +3C600310 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -860,16 +860,16 @@ BA8100B0 800100E4 48000021 7C8802A6 38A0000F 3D808038 618CFD54 7D8903A6 -4E800421 48000124 +4E800421 4800012C 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 806DB64C 83E30000 83CDB650 7FFFF214 3B600000 806DC18C 83A30024 -2C1D0000 418200D8 +2C1D0000 418200E0 3B7B0001 2C1B000F -418100CC 839D002C +418100D4 839D002C 3860003B 987F0000 806DB654 907F0001 807C0010 B07F0005 @@ -891,23 +891,24 @@ BE8100B0 806DB64C 2C030000 4182000C 8863000C 48000008 3860FFFF 987F002A -83CDB650 3BDE002B -93CDB650 3BFF002B +A07C0DA8 B07F002B +83CDB650 3BDE002D +93CDB650 3BFF002D 83BD0008 2C1D0000 -4082FF30 BA8100B0 +4082FF28 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 BA8100B0 800100E4 382100E0 7C0803A6 3C608017 00000000 -C206DA34 00000036 #Recording/SendGamePostFrame.asm +C206DA34 00000038 #Recording/SendGamePostFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820170 +2C030000 41820180 887F221F 546306F7 -40820164 8B7F000C +40820174 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600038 987D0000 @@ -950,7 +951,9 @@ B07D0030 887F1968 807F00EC 907D0045 807F195C 907D0049 807F0014 907D004D -838DB650 3B9C0051 +A07F18EC B07D0051 +A07F2088 B07D0053 +838DB650 3B9C0055 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 8001001C From 708531b2beafa79c8223ee1e6ecc53b1b144e7d3 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 12 Nov 2023 19:03:49 -0500 Subject: [PATCH 207/217] modify playback/recording to work simultaneously --- Common/Common.s | 3 +- Output/Console/GALE01r2.ini | 15 +- Output/Console/g_core.bin | Bin 5520 -> 5528 bytes Output/Console/g_core_porta.bin | Bin 5520 -> 5528 bytes Output/InjectionLists/list_console_core.json | 2 +- Output/InjectionLists/list_netplay.json | 2 +- Output/Netplay/GALE01r2.ini | 15 +- Output/Netplay/GALJ01r2.ini | 15 +- Output/Playback/GALE01r2.ini | 519 +++++++++++++++++- Output/Playback/GALJ01r2.ini | 519 +++++++++++++++++- Playback/Core/CleanDynamicGeckos.asm | 2 +- Playback/Core/FastForward/FastForward.asm | 4 +- .../FastForward/SkipCameraAdjustmentOnFFW.s | 2 +- .../FastForward/SkipCameraAdjustmentOnFFW2.s | 2 +- Playback/Core/FetchGameFrame.asm | 2 +- Playback/Core/RestoreGameFrame.asm | 2 +- Playback/Core/RestoreGameInfo.asm | 13 +- Playback/Core/RestoreInitialRNG.s | 2 +- Playback/Core/RestoreLRAStart.asm | 2 +- Playback/Core/RestoreStockSteal.asm | 6 +- .../Core/Sounds/AssignSoundInstanceId.asm | 2 +- Playback/Core/Sounds/HandleFrameSoundLog.asm | 2 +- Playback/Core/Sounds/NoDestroyVoice.asm | 2 +- Playback/Core/Sounds/NoDestroyVoice2.asm | 2 +- .../Core/Sounds/PreventDuplicateSounds.asm | 2 +- Playback/Show Player Names/InitInGame.asm | 2 +- Recording/SendGamePreFrame.asm | 5 +- Recording/ShouldRecord.asm | 2 + playback.json | 23 + 29 files changed, 1075 insertions(+), 94 deletions(-) diff --git a/Common/Common.s b/Common/Common.s index 6fb06a86..d139db29 100644 --- a/Common/Common.s +++ b/Common/Common.s @@ -313,7 +313,7 @@ lbz \reg, -0x62D0(\reg) # Load byte from 0x80479D30 (major ID) .macro loadGlobalFrame reg lis \reg, 0x8048 -lwz \reg, -0x62A0(\reg) +lwz \reg, -0x62A0(\reg) # 80479D60 .endm # This macro takes in an address that is expected to have a branch instruction. It will set @@ -603,6 +603,7 @@ add \reg, r3, r4 # Offsets from r13 ################################################################################ .set primaryDataBuffer,-0x49b4 +.set playbackDataBuffer,-0x5040 # From tournament mode line 8019b9d4, seems to be only used in one place .set secondaryDmaBuffer,-0x49b0 .set archiveDataBuffer, -0x4AE8 .set bufferOffset,-0x49b0 diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 70d32915..56e4c8d6 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -456,7 +456,7 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0DC 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002C #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 @@ -500,14 +500,15 @@ B07D0031 80640030 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 -60000000 00000000 -C2005604 0000000A #Recording/ShouldRecord.asm +807F065C 00000000 +C2005604 0000000B #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182002C 2C030302 -41820024 2C030208 -4182001C 2C03010F -41820014 2C030120 +41820034 2C030302 +4182002C 2C030208 +41820024 2C03010F +4182001C 2C030120 +41820014 2C03010E 4182000C 38600000 4800000C 38600001 48000004 4E800020 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index f2324c990448ae828759314c8e7b918906a4fba6..009f9852812d57ea5725665b558aa74e96e9f983 100644 GIT binary patch delta 92 zcmbQBJwtoLXj3#2Kw3qInUNnz%K&KwAT0u<`8H?pYp?+TU27CJ delta 84 zcmbQCJwbcJXb3Y!b~HP`@o91;5f diff --git a/Output/Console/g_core_porta.bin b/Output/Console/g_core_porta.bin index 94a8c550050fe115353594dbf6aa30102dce04d6..0550435ff207335d7be4bc3f72aa7bcf12a07b79 100644 GIT binary patch delta 92 zcmbQBJwtoLXj3#2Kw3qInUNnz%K&KwAT0u<`8H?pYp?+TU27CJ delta 84 zcmbQCJwbcJXb3Y!b~HP`@o91;5f diff --git a/Output/InjectionLists/list_console_core.json b/Output/InjectionLists/list_console_core.json index 63bc27d9..ab58b33e 100644 --- a/Output/InjectionLists/list_console_core.json +++ b/Output/InjectionLists/list_console_core.json @@ -239,7 +239,7 @@ "Tags": "" }, { - "InjectionAddress": "8006B0DC", + "InjectionAddress": "8006B0E0", "Name": "Slippi Recording", "Codetype": "Auto", "Annotation": "Recording/SendGamePreFrame.asm", diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 47651a01..16ecdd7f 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -435,7 +435,7 @@ "Tags": "" }, { - "InjectionAddress": "8006B0DC", + "InjectionAddress": "8006B0E0", "Name": "Required: Slippi Recording", "Codetype": "Auto", "Annotation": "Recording/SendGamePreFrame.asm", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 62972ab1..c8980cf2 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -959,7 +959,7 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0DC 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002C #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 @@ -1003,14 +1003,15 @@ B07D0031 80640030 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 -60000000 00000000 -C2005604 0000000A #Recording/ShouldRecord.asm +807F065C 00000000 +C2005604 0000000B #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182002C 2C030302 -41820024 2C030208 -4182001C 2C03010F -41820014 2C030120 +41820034 2C030302 +4182002C 2C030208 +41820024 2C03010F +4182001C 2C030120 +41820014 2C03010E 4182000C 38600000 4800000C 38600001 48000004 4E800020 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index d4f4dfa2..f2cd8795 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -958,7 +958,7 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0DC 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002C #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 @@ -1002,14 +1002,15 @@ B07D0031 80640030 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 -60000000 00000000 -C2005604 0000000A #Recording/ShouldRecord.asm +807F065C 00000000 +C2005604 0000000B #Recording/ShouldRecord.asm 3C608048 80639D30 5463443E 2C030202 -4182002C 2C030302 -41820024 2C030208 -4182001C 2C03010F -41820014 2C030120 +41820034 2C030302 +4182002C 2C030208 +41820024 2C03010F +4182001C 2C030120 +41820014 2C03010E 4182000C 38600000 4800000C 38600001 48000004 4E800020 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index bad30343..9d284da6 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -126,7 +126,7 @@ $Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos] C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm 3BC30000 7C0802A6 90010004 9421FF20 -BE8100B0 83CDB64C +BE8100B0 83CDAFC0 83BE0010 3B800000 807D0000 2C030000 41820018 3B9C0001 @@ -157,7 +157,7 @@ C216D298 00000016 #Playback/Core/FetchGameFrame.asm 881F0008 2C000000 408200A0 7C0802A6 90010004 9421FF20 -BE8100B0 806DB64C +BE8100B0 806DAFC0 83630000 38600076 987B0000 806DB654 907B0001 7F63DB78 @@ -182,7 +182,7 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm 8BBF000C 7FA3EB78 3D808003 618C1724 7D8903A6 4E800421 -7C7C1B78 832DB64C +7C7C1B78 832DAFC0 83790000 7FE3FB78 3D808000 618C55F8 7D8903A6 4E800421 @@ -250,13 +250,15 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm +C216E748 0000009F #Playback/Core/RestoreGameInfo.asm +3D808022 618C54B8 +7D8903A6 4E800421 7C0802A6 90010004 9421FF20 BE8100B0 386005EC 3D808037 618CF1E4 7D8903A6 4E800421 7C7C1B78 -938DB64C 388005EC +938DAFC0 388005EC 3D808000 618CC160 7D8903A6 4E800421 38600221 3D808037 @@ -347,7 +349,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 7D8903A6 4E800421 4800013C 4E800021 2C050000 41820018 -80CDB64C 8066000C +80CDAFC0 8066000C 38630008 7C632A14 9066000C 4E800020 4E800021 2C050000 @@ -356,7 +358,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm BE8100B0 7C9E2378 7CBB2B78 80BE0000 54A501FE 64BD8000 -834DB64C 833A0014 +834DAFC0 833A0014 2C030004 41820014 2C030006 41820014 2C0300C2 41820014 @@ -399,7 +401,7 @@ BA8100B0 800100E4 4800004C 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 -806DB64C 83A30000 +806DAFC0 83A30000 887D0002 2C030000 41820010 807D0003 3C80804D 90645F90 @@ -407,10 +409,9 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 BA8100B0 800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +7C0803A6 00000000 C216D304 00000009 #Playback/Core/RestoreLRAStart.asm -806DB64C 80630000 +806DAFC0 80630000 88630000 2C030002 4082002C 3860FFFF 38800007 3D808016 @@ -420,18 +421,18 @@ C216D304 00000009 #Playback/Core/RestoreLRAStart.asm 4E800420 7FE3FB78 60000000 00000000 C216B9C0 00000012 #Playback/Core/RestoreStockSteal.asm -80ADB64C 80A50004 +80ADAFC0 80A50004 38800089 98850000 808DB654 90850001 98650005 7CA32B78 38800006 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -806DB64C 80630004 +806DAFC0 80630004 38800001 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -806DB64C 80630004 +806DAFC0 80630004 88630000 2C030000 41820014 3D808016 618CBA1C 7D8903A6 @@ -446,13 +447,13 @@ C21A501C 0000002A #Playback/Core/FastForward/FastForward.asm 3D80801A 618C45E8 7D8903A6 4E800421 2C030002 41820018 -806DB64C 80630000 +806DAFC0 80630000 88630000 2C030003 41820024 38600001 38800002 3D808002 618C5064 7D8903A6 4E800421 7C1AD800 -480000E0 806DB64C +480000E0 806DAFC0 80630000 88630001 2C030001 4182001C 38600000 38800000 @@ -673,7 +674,7 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm 2C03010E 40820090 7C0802A6 90010004 9421FF20 BE8100B0 -83EDB64C 3BDF001C +83EDAFC0 3BDF001C 8B9E0000 3C608048 80639D60 809F056B 7C032000 41810028 @@ -699,7 +700,7 @@ C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm 9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 -7C7D1B78 83EDB64C +7C7D1B78 83EDAFC0 3BDF001C 8B9E0000 3F008048 83189D60 3B18FFFF 82FF056B @@ -745,7 +746,7 @@ C2088224 0000001D #Playback/Core/Sounds/NoDestroyVoice.asm 5463443E 2C03010E 408200CC 7C0802A6 90010004 9421FF20 -BE8100B0 83EDB64C +BE8100B0 83EDAFC0 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -775,7 +776,7 @@ C20882B0 0000001D #Playback/Core/Sounds/NoDestroyVoice2.asm 5463443E 2C03010E 408200CC 7C0802A6 90010004 9421FF20 -BE8100B0 83EDB64C +BE8100B0 83EDAFC0 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -805,7 +806,7 @@ C238D0B0 00000027 #Playback/Core/Sounds/PreventDuplicateSounds.asm 5463443E 2C03010E 40820120 7C0802A6 90010004 9421FF20 -BE8100B0 83EDB64C +BE8100B0 83EDAFC0 3BDF001C 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 @@ -922,6 +923,480 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 7C83612E 4E800020 60000000 00000000 +$Optional: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] +*Allows for outputting new replay data during playback. +*Useful for spectator service or upgrading replay versions. +040679BC 38802600 #Recording/ExtendPlayerBlock.asm +C23219EC 0000001D #Recording/FlushFrameBuffer.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 418200A8 +806DB64C 83C30000 +83ADB650 7F9EEA14 +2C1D0000 41820090 +3860003C 987C0000 +806DB654 907C0001 +3C608048 80639D30 +5463443E 2C030208 +806DB654 4082003C +80ADB61C 88850010 +2C040000 4082002C +8885000F 2C040000 +40820020 80850909 +3884FF85 80E50916 +7C872050 7C041800 +40800008 7C832378 +907C0005 3BBD0009 +7FC3F378 7FA4EB78 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600000 +906DB650 BA8100B0 +800100E4 382100E0 +7C0803A6 8001001C +60000000 00000000 +C216D884 00000030 #Recording/SendGameEnd.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820144 +3F208046 6339B6A0 +8B590008 2C1A0000 +41820130 830DB64C +88780004 2C030000 +40820120 3C608048 +80639D30 5463443E +2C030208 4082001C +2C1A0002 40820014 +806DB61C 8863000F +2C030000 418200F4 +83B80000 38600039 +987D0000 9B5D0001 +2C1A0007 4082000C +88790001 48000008 +3860FFFF 987D0002 +3E808047 62949DA4 +7E83A378 3C808046 +6084B8EC 38A02278 +3D808000 618C31F4 +7D8903A6 4E800421 +3C808046 6084B6A0 +7E83A378 880424D0 +98030006 88040008 +98030004 3D808016 +618C6378 7D8903A6 +4E800421 3AA00000 +7EA3AB78 48000041 +38950003 7C64E9AE +3AB50001 2C150003 +4081FFE8 7FA3EB78 +38800007 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38600001 98780004 +48000030 3D808047 +618C9DA4 1D6300A8 +7D6B6214 886B0058 +2C030003 4182000C +886B005E 48000008 +3860FFFF 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +819F2514 00000000 +C216E74C 0000010A #Recording/SendGameInfo.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820814 +38600005 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7B1B78 +936DB64C 38800005 +3D808000 618CC160 +7D8903A6 4E800421 +38600770 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +93DB0000 38600000 +906DB650 3C608000 +60635600 80630000 +38630008 38800000 +3D808000 618C55FC +7D8903A6 4E800421 +7C7C1B78 38600035 +987E0000 3860001C +987E0001 38600036 +987E0002 386002F8 +B07E0003 38600037 +987E0005 38600040 +B07E0006 38600038 +987E0008 38600054 +B07E0009 38600039 +987E000B 38600006 +B07E000C 3860003A +987E000E 3860000C +B07E000F 3860003B +987E0011 3860002C +B07E0012 3860003C +987E0014 38600008 +B07E0015 3860003D +987E0017 B39E0018 +38600010 987E001A +38600204 B07E001B +38600036 987E001D +3C600310 60630000 +907E001E 387E0022 +7FE4FB78 38A00138 +3D808000 618C31F4 +7D8903A6 4E800421 +387E0062 3880001C +3D808000 618CC160 +7D8903A6 4E800421 +387E0022 3AA30060 +3A800000 1ED40024 +7ED6AA14 88760001 +2C030000 40820034 +88760000 2C030012 +40820028 3C60804C +606320BC 1C940044 +7C632214 80630000 +546005EF 4182000C +38600013 98760000 +3A940001 2C140004 +4180FFB4 387E0022 +3AA30060 3A800000 +1ED40024 7ED6AA14 +88760001 2C030000 +4082002C 88760000 +3D808016 618C9238 +7D8903A6 4E800421 +88960003 7C041800 +4081000C 38600000 +98760003 3A940001 +2C140004 4180FFBC +3C60804D 80635F90 +907E015A 3A82F228 +3AA00000 3ADE015E +1EF50008 38600001 +7C76B92E 3AF70004 +7C76B92E 3AB50001 +2C150004 4180FFE4 +3A800000 3ABF0060 +3AFE017E 1F140010 +7F18BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820040 +8876000A 2C030078 +41820034 3D808023 +618C754C 7D8903A6 +4E800421 7C641B78 +7F03C378 38A00010 +3D808000 618C31F4 +7D8903A6 4E800421 +4800001C 7F03C378 +38800010 3D808000 +618CC160 7D8903A6 +4E800421 3A940001 +2C140004 4180FF88 +8862F234 987E01BE +8862F23C 987E01BF +3C608048 80639D30 +5463443E B07E01C0 +3B200000 3C608048 +80639D30 5463443E +2C030208 4082017C +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C791B78 +3A800000 3ABF0060 +3AFE01C2 3B590034 +1C74001F 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001F +7C83D214 7F03C378 +38A0001F 3D808000 +618C31F4 7D8903A6 +4E800421 4800001C +7F03C378 3880001F +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 3A800000 +3ABF0060 3AFE023E +3B5900CF 1C74000A +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74000A 7C83D214 +7F03C378 38A0000A +3D808000 618C31F4 +7D8903A6 4E800421 +4800001C 7F03C378 +3880000A 3D808000 +618CC160 7D8903A6 +4E800421 3A940001 +2C140004 4180FFA0 +3A800000 3ABF0060 +3AFE0266 3B5900F7 +1C74001D 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001D +7C83D214 7F03C378 +38A0001D 3D808000 +618C31F4 7D8903A6 +4E800421 4800001C +7F03C378 3880001D +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 4800001C +387E01C2 38800118 +3D808000 618CC160 +7D8903A6 4E800421 +3D808000 618CADF4 +7D8903A6 4E800421 +987E02DA 2C190000 +41820044 387E02DB +38990394 38A00033 +3D808000 618C31F4 +7D8903A6 4E800421 +3C60803D 6063AD40 +80630000 81830088 +A06C0001 907E030E +886C0006 907E0312 +4800001C 387E02DB +3880003B 3D808000 +618CC160 7D8903A6 +4E800421 2C190000 +41820018 7F23CB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +7FC3F378 38800316 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 +7D8903A6 4E800421 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 4800012C +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200E0 +3B7B0001 2C1B000F +418100D4 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +A07C0DA8 B07F002B +83CDB650 3BDE002D +93CDB650 3BFF002D +83BD0008 2C1D0000 +4082FF28 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +3C608017 00000000 +C206DA34 00000038 #Recording/SendGamePostFrame.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820180 +887F221F 546306F7 +40820174 8B7F000C +806DB64C 83A30000 +838DB650 7FBDE214 +38600038 987D0000 +806DB654 907D0001 +9B7D0005 7FE3FB78 +3D808000 618C55F8 +7D8903A6 4E800421 +987D0006 807F0004 +987D0007 807F0010 +B07D0008 807F00B0 +907D000A 807F00B4 +907D000E 807F002C +907D0012 807F1830 +907D0016 807F1998 +907D001A 807F208C +987D001E A07F2090 +987D001F 807F18C4 +987D0020 7F63DB78 +3D808003 618C3BD8 +7D8903A6 4E800421 +987D0021 807F0894 +907D0022 887F2218 +987D0026 887F221A +987D0027 887F221B +987D0028 887F221C +987D0029 887F221F +987D002A 807F2340 +907D002B 807F00E0 +987D002F 807F083C +B07D0030 887F1968 +809F0168 7C632050 +987D0032 887F25FF +987D0033 807F1988 +2C030000 40820008 +807F198C 987D0034 +807F0080 907D0035 +807F0084 907D0039 +807F008C 907D003D +807F0090 907D0041 +807F00EC 907D0045 +807F195C 907D0049 +807F0014 907D004D +A07F18EC B07D0051 +A07F2088 B07D0053 +838DB650 3B9C0055 +938DB650 BA8100B0 +800100E4 382100E0 +7C0803A6 8001001C +60000000 00000000 +C206B0E0 0000002C #Recording/SendGamePreFrame.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820120 +8B7F000C 806DB64C +83A30000 838DB650 +7FBDE214 38600037 +987D0000 806DB654 +907D0001 9B7D0005 +7FE3FB78 3D808000 +618C55F8 7D8903A6 +4E800421 987D0006 +3C60804D 80635F90 +907D0007 807F0010 +B07D000B 807F00B0 +907D000D 807F00B4 +907D0011 807F002C +907D0015 807F0620 +907D0019 807F0624 +907D001D 807F0638 +907D0021 807F063C +907D0025 807F0650 +907D0029 807F065C +907D002D 3C60804C +60631FAC 1C9B0044 +7C832214 A0640002 +B07D0031 80640030 +907D0033 80640034 +907D0037 3C608046 +6063B108 3C80804C +60841F78 88840001 +3884FFFF 2C040000 +40A00008 38840005 +1C840030 7C632214 +1C9B000C 7C832214 +88640002 987D003B +88640003 987D0040 +807F1830 907D003C +838DB650 3B9C0041 +938DB650 BA8100B0 +800100E4 382100E0 +7C0803A6 881F2219 +807F065C 00000000 +C2005604 0000000B #Recording/ShouldRecord.asm +3C608048 80639D30 +5463443E 2C030202 +41820034 2C030302 +4182002C 2C030208 +41820024 2C03010F +4182001C 2C030120 +41820014 2C03010E +4182000C 38600000 +4800000C 38600001 +48000004 4E800020 +60000000 00000000 +C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm +7C050000 4080000C +38E00001 48000008 +38E00002 8103002C +98E825FF 7C050000 +60000000 00000000 +C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm +38600000 987E25FF +807E00B0 00000000 + $Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337] *Show players' Slippi Online display names as HUD elements when available C216E9B4 0000009A #Playback/Show Player Names/InitInGame.asm @@ -972,7 +1447,7 @@ C1C07AE1 3C6F34D7 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 4BFFFE91 -7F8802A6 834DB64C +7F8802A6 834DAFC0 3A800000 3EA0804A 62B50FF0 7E83A378 3D808003 618C241C diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index d3d3f783..73f888aa 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -125,7 +125,7 @@ $Required: Slippi Playback [Fizzi, UnclePunch, Achilles, tauKhan, Krohnos] C216E9E4 0000001D #Playback/Core/CleanDynamicGeckos.asm 3BC30000 7C0802A6 90010004 9421FF20 -BE8100B0 83CDB64C +BE8100B0 83CDAFC0 83BE0010 3B800000 807D0000 2C030000 41820018 3B9C0001 @@ -156,7 +156,7 @@ C216D298 00000016 #Playback/Core/FetchGameFrame.asm 881F0008 2C000000 408200A0 7C0802A6 90010004 9421FF20 -BE8100B0 806DB64C +BE8100B0 806DAFC0 83630000 38600076 987B0000 806DB654 907B0001 7F63DB78 @@ -181,7 +181,7 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm 8BBF000C 7FA3EB78 3D808003 618C1724 7D8903A6 4E800421 -7C7C1B78 832DB64C +7C7C1B78 832DAFC0 83790000 7FE3FB78 3D808000 618C55F8 7D8903A6 4E800421 @@ -249,13 +249,15 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm +C216E748 0000009F #Playback/Core/RestoreGameInfo.asm +3D808022 618C54B8 +7D8903A6 4E800421 7C0802A6 90010004 9421FF20 BE8100B0 386005EC 3D808037 618CF1E4 7D8903A6 4E800421 7C7C1B78 -938DB64C 388005EC +938DAFC0 388005EC 3D808000 618CC160 7D8903A6 4E800421 38600221 3D808037 @@ -346,7 +348,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm 7D8903A6 4E800421 4800013C 4E800021 2C050000 41820018 -80CDB64C 8066000C +80CDAFC0 8066000C 38630008 7C632A14 9066000C 4E800020 4E800021 2C050000 @@ -355,7 +357,7 @@ C216E74C 0000009E #Playback/Core/RestoreGameInfo.asm BE8100B0 7C9E2378 7CBB2B78 80BE0000 54A501FE 64BD8000 -834DB64C 833A0014 +834DAFC0 833A0014 2C030004 41820014 2C030006 41820014 2C0300C2 41820014 @@ -398,7 +400,7 @@ BA8100B0 800100E4 4800004C 4E800021 7C0802A6 90010004 9421FF20 BE8100B0 -806DB64C 83A30000 +806DAFC0 83A30000 887D0002 2C030000 41820010 807D0003 3C80804D 90645F90 @@ -406,10 +408,9 @@ BA8100B0 800100E4 382100E0 7C0803A6 4E800020 BA8100B0 800100E4 382100E0 -7C0803A6 3C608017 -60000000 00000000 +7C0803A6 00000000 C216D304 00000009 #Playback/Core/RestoreLRAStart.asm -806DB64C 80630000 +806DAFC0 80630000 88630000 2C030002 4082002C 3860FFFF 38800007 3D808016 @@ -419,18 +420,18 @@ C216D304 00000009 #Playback/Core/RestoreLRAStart.asm 4E800420 7FE3FB78 60000000 00000000 C216B9C0 00000012 #Playback/Core/RestoreStockSteal.asm -80ADB64C 80A50004 +80ADAFC0 80A50004 38800089 98850000 808DB654 90850001 98650005 7CA32B78 38800006 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -806DB64C 80630004 +806DAFC0 80630004 38800001 38A00000 3D808000 618C55F0 7D8903A6 4E800421 -806DB64C 80630004 +806DAFC0 80630004 88630000 2C030000 41820014 3D808016 618CBA1C 7D8903A6 @@ -445,13 +446,13 @@ C21A501C 0000002A #Playback/Core/FastForward/FastForward.asm 3D80801A 618C45E8 7D8903A6 4E800421 2C030002 41820018 -806DB64C 80630000 +806DAFC0 80630000 88630000 2C030003 41820024 38600001 38800002 3D808002 618C5064 7D8903A6 4E800421 7C1AD800 -480000E0 806DB64C +480000E0 806DAFC0 80630000 88630001 2C030001 4182001C 38600000 38800000 @@ -672,7 +673,7 @@ C238D224 00000015 #Playback/Core/Sounds/AssignSoundInstanceId.asm 2C03010E 40820090 7C0802A6 90010004 9421FF20 BE8100B0 -83EDB64C 3BDF001C +83EDAFC0 3BDF001C 8B9E0000 3C608048 80639D60 809F056B 7C032000 41810028 @@ -698,7 +699,7 @@ C21A5014 00000032 #Playback/Core/Sounds/HandleFrameSoundLog.asm 9421FF20 BE8100B0 3D808034 618C7364 7D8903A6 4E800421 -7C7D1B78 83EDB64C +7C7D1B78 83EDAFC0 3BDF001C 8B9E0000 3F008048 83189D60 3B18FFFF 82FF056B @@ -744,7 +745,7 @@ C2088224 0000001D #Playback/Core/Sounds/NoDestroyVoice.asm 5463443E 2C03010E 408200CC 7C0802A6 90010004 9421FF20 -BE8100B0 83EDB64C +BE8100B0 83EDAFC0 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -774,7 +775,7 @@ C20882B0 0000001D #Playback/Core/Sounds/NoDestroyVoice2.asm 5463443E 2C03010E 408200CC 7C0802A6 90010004 9421FF20 -BE8100B0 83EDB64C +BE8100B0 83EDAFC0 3BBF001C 57DE043E 8B9D0000 3C608048 80639D60 809F056B @@ -804,7 +805,7 @@ C238D0B0 00000027 #Playback/Core/Sounds/PreventDuplicateSounds.asm 5463443E 2C03010E 40820120 7C0802A6 90010004 9421FF20 -BE8100B0 83EDB64C +BE8100B0 83EDAFC0 3BDF001C 3BA00000 3B400000 56FB043E 8B9E0000 3C608048 @@ -921,6 +922,480 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 7C83612E 4E800020 60000000 00000000 +$Optional: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] +*Allows for outputting new replay data during playback. +*Useful for spectator service or upgrading replay versions. +040679BC 38802600 #Recording/ExtendPlayerBlock.asm +C23219EC 0000001D #Recording/FlushFrameBuffer.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 418200A8 +806DB64C 83C30000 +83ADB650 7F9EEA14 +2C1D0000 41820090 +3860003C 987C0000 +806DB654 907C0001 +3C608048 80639D30 +5463443E 2C030208 +806DB654 4082003C +80ADB61C 88850010 +2C040000 4082002C +8885000F 2C040000 +40820020 80850909 +3884FF85 80E50916 +7C872050 7C041800 +40800008 7C832378 +907C0005 3BBD0009 +7FC3F378 7FA4EB78 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600000 +906DB650 BA8100B0 +800100E4 382100E0 +7C0803A6 8001001C +60000000 00000000 +C216D884 00000030 #Recording/SendGameEnd.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820144 +3F208046 6339B6A0 +8B590008 2C1A0000 +41820130 830DB64C +88780004 2C030000 +40820120 3C608048 +80639D30 5463443E +2C030208 4082001C +2C1A0002 40820014 +806DB61C 8863000F +2C030000 418200F4 +83B80000 38600039 +987D0000 9B5D0001 +2C1A0007 4082000C +88790001 48000008 +3860FFFF 987D0002 +3E808047 62949DA4 +7E83A378 3C808046 +6084B8EC 38A02278 +3D808000 618C31F4 +7D8903A6 4E800421 +3C808046 6084B6A0 +7E83A378 880424D0 +98030006 88040008 +98030004 3D808016 +618C6378 7D8903A6 +4E800421 3AA00000 +7EA3AB78 48000041 +38950003 7C64E9AE +3AB50001 2C150003 +4081FFE8 7FA3EB78 +38800007 38A00001 +3D808000 618C55F0 +7D8903A6 4E800421 +38600001 98780004 +48000030 3D808047 +618C9DA4 1D6300A8 +7D6B6214 886B0058 +2C030003 4182000C +886B005E 48000008 +3860FFFF 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +819F2514 00000000 +C216E74C 0000010A #Recording/SendGameInfo.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820814 +38600005 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7B1B78 +936DB64C 38800005 +3D808000 618CC160 +7D8903A6 4E800421 +38600770 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +93DB0000 38600000 +906DB650 3C608000 +60635600 80630000 +38630008 38800000 +3D808000 618C55FC +7D8903A6 4E800421 +7C7C1B78 38600035 +987E0000 3860001C +987E0001 38600036 +987E0002 386002F8 +B07E0003 38600037 +987E0005 38600040 +B07E0006 38600038 +987E0008 38600054 +B07E0009 38600039 +987E000B 38600006 +B07E000C 3860003A +987E000E 3860000C +B07E000F 3860003B +987E0011 3860002C +B07E0012 3860003C +987E0014 38600008 +B07E0015 3860003D +987E0017 B39E0018 +38600010 987E001A +38600204 B07E001B +38600036 987E001D +3C600310 60630000 +907E001E 387E0022 +7FE4FB78 38A00138 +3D808000 618C31F4 +7D8903A6 4E800421 +387E0062 3880001C +3D808000 618CC160 +7D8903A6 4E800421 +387E0022 3AA30060 +3A800000 1ED40024 +7ED6AA14 88760001 +2C030000 40820034 +88760000 2C030012 +40820028 3C60804C +606320BC 1C940044 +7C632214 80630000 +546005EF 4182000C +38600013 98760000 +3A940001 2C140004 +4180FFB4 387E0022 +3AA30060 3A800000 +1ED40024 7ED6AA14 +88760001 2C030000 +4082002C 88760000 +3D808016 618C9238 +7D8903A6 4E800421 +88960003 7C041800 +4081000C 38600000 +98760003 3A940001 +2C140004 4180FFBC +3C60804D 80635F90 +907E015A 3A82F228 +3AA00000 3ADE015E +1EF50008 38600001 +7C76B92E 3AF70004 +7C76B92E 3AB50001 +2C150004 4180FFE4 +3A800000 3ABF0060 +3AFE017E 1F140010 +7F18BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820040 +8876000A 2C030078 +41820034 3D808023 +618C754C 7D8903A6 +4E800421 7C641B78 +7F03C378 38A00010 +3D808000 618C31F4 +7D8903A6 4E800421 +4800001C 7F03C378 +38800010 3D808000 +618CC160 7D8903A6 +4E800421 3A940001 +2C140004 4180FF88 +8862F234 987E01BE +8862F23C 987E01BF +3C608048 80639D30 +5463443E B07E01C0 +3B200000 3C608048 +80639D30 5463443E +2C030208 4082017C +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C791B78 +3A800000 3ABF0060 +3AFE01C2 3B590034 +1C74001F 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001F +7C83D214 7F03C378 +38A0001F 3D808000 +618C31F4 7D8903A6 +4E800421 4800001C +7F03C378 3880001F +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 3A800000 +3ABF0060 3AFE023E +3B5900CF 1C74000A +7F03BA14 1ED40024 +7ED6AA14 88760001 +2C030000 40820028 +1C74000A 7C83D214 +7F03C378 38A0000A +3D808000 618C31F4 +7D8903A6 4E800421 +4800001C 7F03C378 +3880000A 3D808000 +618CC160 7D8903A6 +4E800421 3A940001 +2C140004 4180FFA0 +3A800000 3ABF0060 +3AFE0266 3B5900F7 +1C74001D 7F03BA14 +1ED40024 7ED6AA14 +88760001 2C030000 +40820028 1C74001D +7C83D214 7F03C378 +38A0001D 3D808000 +618C31F4 7D8903A6 +4E800421 4800001C +7F03C378 3880001D +3D808000 618CC160 +7D8903A6 4E800421 +3A940001 2C140004 +4180FFA0 4800001C +387E01C2 38800118 +3D808000 618CC160 +7D8903A6 4E800421 +3D808000 618CADF4 +7D8903A6 4E800421 +987E02DA 2C190000 +41820044 387E02DB +38990394 38A00033 +3D808000 618C31F4 +7D8903A6 4E800421 +3C60803D 6063AD40 +80630000 81830088 +A06C0001 907E030E +886C0006 907E0312 +4800001C 387E02DB +3880003B 3D808000 +618CC160 7D8903A6 +4E800421 2C190000 +41820018 7F23CB78 +3D808037 618CF1B0 +7D8903A6 4E800421 +7FC3F378 38800316 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 38600205 +3D808037 618CF1E4 +7D8903A6 4E800421 +7C751B78 3C608000 +60635600 80630000 +3AE30008 38600010 +98750000 3860003D +98750203 38600200 +B0750201 38600000 +98750204 3AC00000 +7C76E050 2C030200 +41810010 B0750201 +38600001 98750204 +38750001 7EE4BB78 +7C84B214 A0B50201 +3D808000 618C31F4 +7D8903A6 4E800421 +7EA3AB78 38800205 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 3AD60200 +7C16E000 4180FFA4 +7EA3AB78 3D808037 +618CF1B0 7D8903A6 +4E800421 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A00000 3D808038 +618CFD54 7D8903A6 +4E800421 48000070 +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83A30000 838DB650 +7FBDE214 3860003A +987D0000 806DB654 +907D0001 3C60804D +80635F90 907D0005 +3C608048 80639D60 +907D0009 838DB650 +3B9C000D 938DB650 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 38600004 +38800007 38A00000 +3D808039 618C01F0 +7D8903A6 4E800421 +48000021 7C8802A6 +38A0000F 3D808038 +618CFD54 7D8903A6 +4E800421 4800012C +4E800021 7C0802A6 +90010004 9421FF20 +BE8100B0 806DB64C +83E30000 83CDB650 +7FFFF214 3B600000 +806DC18C 83A30024 +2C1D0000 418200E0 +3B7B0001 2C1B000F +418100D4 839D002C +3860003B 987F0000 +806DB654 907F0001 +807C0010 B07F0005 +807C0024 987F0007 +807C002C 907F0008 +807C0040 907F000C +807C0044 907F0010 +807C004C 907F0014 +807C0050 907F0018 +807C0C9C B07F001C +807C0D44 907F001E +807C001C 907F0022 +887C0DD7 987F0026 +887C0DDB 987F0027 +887C0DEB 987F0028 +887C0DEF 987F0029 +807C0518 2C030000 +41820018 8063002C +2C030000 4182000C +8863000C 48000008 +3860FFFF 987F002A +A07C0DA8 B07F002B +83CDB650 3BDE002D +93CDB650 3BFF002D +83BD0008 2C1D0000 +4082FF28 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +BA8100B0 800100E4 +382100E0 7C0803A6 +3C608017 00000000 +C206DA34 00000038 #Recording/SendGamePostFrame.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820180 +887F221F 546306F7 +40820174 8B7F000C +806DB64C 83A30000 +838DB650 7FBDE214 +38600038 987D0000 +806DB654 907D0001 +9B7D0005 7FE3FB78 +3D808000 618C55F8 +7D8903A6 4E800421 +987D0006 807F0004 +987D0007 807F0010 +B07D0008 807F00B0 +907D000A 807F00B4 +907D000E 807F002C +907D0012 807F1830 +907D0016 807F1998 +907D001A 807F208C +987D001E A07F2090 +987D001F 807F18C4 +987D0020 7F63DB78 +3D808003 618C3BD8 +7D8903A6 4E800421 +987D0021 807F0894 +907D0022 887F2218 +987D0026 887F221A +987D0027 887F221B +987D0028 887F221C +987D0029 887F221F +987D002A 807F2340 +907D002B 807F00E0 +987D002F 807F083C +B07D0030 887F1968 +809F0168 7C632050 +987D0032 887F25FF +987D0033 807F1988 +2C030000 40820008 +807F198C 987D0034 +807F0080 907D0035 +807F0084 907D0039 +807F008C 907D003D +807F0090 907D0041 +807F00EC 907D0045 +807F195C 907D0049 +807F0014 907D004D +A07F18EC B07D0051 +A07F2088 B07D0053 +838DB650 3B9C0055 +938DB650 BA8100B0 +800100E4 382100E0 +7C0803A6 8001001C +60000000 00000000 +C206B0E0 0000002C #Recording/SendGamePreFrame.asm +7C0802A6 90010004 +9421FF20 BE8100B0 +3D808000 618C5604 +7D8903A6 4E800421 +2C030000 41820120 +8B7F000C 806DB64C +83A30000 838DB650 +7FBDE214 38600037 +987D0000 806DB654 +907D0001 9B7D0005 +7FE3FB78 3D808000 +618C55F8 7D8903A6 +4E800421 987D0006 +3C60804D 80635F90 +907D0007 807F0010 +B07D000B 807F00B0 +907D000D 807F00B4 +907D0011 807F002C +907D0015 807F0620 +907D0019 807F0624 +907D001D 807F0638 +907D0021 807F063C +907D0025 807F0650 +907D0029 807F065C +907D002D 3C60804C +60631FAC 1C9B0044 +7C832214 A0640002 +B07D0031 80640030 +907D0033 80640034 +907D0037 3C608046 +6063B108 3C80804C +60841F78 88840001 +3884FFFF 2C040000 +40A00008 38840005 +1C840030 7C632214 +1C9B000C 7C832214 +88640002 987D003B +88640003 987D0040 +807F1830 907D003C +838DB650 3B9C0041 +938DB650 BA8100B0 +800100E4 382100E0 +7C0803A6 881F2219 +807F065C 00000000 +C2005604 0000000B #Recording/ShouldRecord.asm +3C608048 80639D30 +5463443E 2C030202 +41820034 2C030302 +4182002C 2C030208 +41820024 2C03010F +4182001C 2C030120 +41820014 2C03010E +4182000C 38600000 +4800000C 38600001 +48000004 4E800020 +60000000 00000000 +C208D698 00000005 #Recording/GetLCancelStatus/GetLCancelStatus.asm +7C050000 4080000C +38E00001 48000008 +38E00002 8103002C +98E825FF 7C050000 +60000000 00000000 +C206C324 00000002 #Recording/GetLCancelStatus/ResetLCancelStatus.asm +38600000 987E25FF +807E00B0 00000000 + $Optional: Show Player Names [Fizzi, UnclePunch, Enzyme, jmlee337] *Show players' Slippi Online display names as HUD elements when available C216E9B4 0000009A #Playback/Show Player Names/InitInGame.asm @@ -971,7 +1446,7 @@ C1C07AE1 3C6F34D7 3D80803A 618C611C 7D8903A6 4E800421 7C7F1B78 4BFFFE91 -7F8802A6 834DB64C +7F8802A6 834DAFC0 3A800000 3EA0804A 62B50FF0 7E83A378 3D808003 618C241C diff --git a/Playback/Core/CleanDynamicGeckos.asm b/Playback/Core/CleanDynamicGeckos.asm index 7000ce9b..739af7e4 100644 --- a/Playback/Core/CleanDynamicGeckos.asm +++ b/Playback/Core/CleanDynamicGeckos.asm @@ -16,7 +16,7 @@ addi r30, r3, 0 backup -lwz REG_DirectoryBuffer, primaryDataBuffer(r13) +lwz REG_DirectoryBuffer, playbackDataBuffer(r13) #################################################################################################### # Step 1: First we need to count how many items there are so we can allocate a buffer diff --git a/Playback/Core/FastForward/FastForward.asm b/Playback/Core/FastForward/FastForward.asm index 467de7bd..c088421f 100644 --- a/Playback/Core/FastForward/FastForward.asm +++ b/Playback/Core/FastForward/FastForward.asm @@ -29,7 +29,7 @@ beq PreviousCodeLine # check status for fast forward - lwz r3,primaryDataBuffer(r13) # directory address + lwz r3,playbackDataBuffer(r13) # directory address lwz r3,PDB_EXI_BUF_ADDR(r3) # EXI buf address lbz r3,(BufferStatus_Start)+(BufferStatus_Status)(r3) cmpwi r3, CONST_FrameFetchResult_FastForward @@ -49,7 +49,7 @@ FastForward: #li r3,1 #branchl r12,VISetBlack # mute music and SFX - lwz r3,primaryDataBuffer(r13) # directory address + lwz r3,playbackDataBuffer(r13) # directory address lwz r3,PDB_EXI_BUF_ADDR(r3) # EXI buf address lbz r3,(RBStatus_Start)+(RBStatus_Status)(r3) cmpwi r3, 1 diff --git a/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW.s b/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW.s index 365ac8b4..c8f20771 100644 --- a/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW.s +++ b/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW.s @@ -9,7 +9,7 @@ .include "Playback/Playback.s" # check status for fast forward -lwz r11,primaryDataBuffer(r13) # directory address +lwz r11,playbackDataBuffer(r13) # directory address lwz r11,PDB_EXI_BUF_ADDR(r11) # EXI buf address lbz r11,(RBStatus_Start)+(RBStatus_Status)(r11) cmpwi r11, 0 diff --git a/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW2.s b/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW2.s index aed217d6..0453b764 100644 --- a/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW2.s +++ b/Playback/Core/FastForward/SkipCameraAdjustmentOnFFW2.s @@ -9,7 +9,7 @@ .include "Playback/Playback.s" # check status for fast forward -lwz r11,primaryDataBuffer(r13) # directory address +lwz r11,playbackDataBuffer(r13) # directory address lwz r11,PDB_EXI_BUF_ADDR(r11) # EXI buf address lbz r11,(RBStatus_Start)+(RBStatus_Status)(r11) cmpwi r11, 0 diff --git a/Playback/Core/FetchGameFrame.asm b/Playback/Core/FetchGameFrame.asm index d0e741fb..8948e6bd 100644 --- a/Playback/Core/FetchGameFrame.asm +++ b/Playback/Core/FetchGameFrame.asm @@ -40,7 +40,7 @@ FetchGameFrame: backup -lwz r3,primaryDataBuffer(r13) +lwz r3,playbackDataBuffer(r13) lwz BufferPointer,PDB_EXI_BUF_ADDR(r3) FetchFrameInfo_REQUEST_DATA: diff --git a/Playback/Core/RestoreGameFrame.asm b/Playback/Core/RestoreGameFrame.asm index 9320ea27..07544da7 100644 --- a/Playback/Core/RestoreGameFrame.asm +++ b/Playback/Core/RestoreGameFrame.asm @@ -32,7 +32,7 @@ mr PlayerDataStatic,r3 # get buffer pointer - lwz REG_PDB_ADDR,primaryDataBuffer(r13) + lwz REG_PDB_ADDR,playbackDataBuffer(r13) lwz BufferPointer,PDB_EXI_BUF_ADDR(REG_PDB_ADDR) #Check if this player is a follower diff --git a/Playback/Core/RestoreGameInfo.asm b/Playback/Core/RestoreGameInfo.asm index b2552f6e..3d9899f5 100644 --- a/Playback/Core/RestoreGameInfo.asm +++ b/Playback/Core/RestoreGameInfo.asm @@ -1,9 +1,9 @@ ################################################################################ -# Address: 8016e74c +# Address: 8016e748 ################################################################################ ################################################################################ -# Inject at address 8016e74c +# Inject at address 8016e748 # Function is StartMelee and we are loading game information right before # it gets read to initialize the match ################################################################################ @@ -16,6 +16,8 @@ .set REG_GeckoBuffer,29 .set REG_DirectoryBuffer,28 +branchl r12, 0x802254b8 # Replaced codeline, call function + ################################################################################ # subroutine: gameInfoLoad # description: reads game info from slippi and loads those into memory @@ -28,7 +30,7 @@ li r3, PDB_SIZE branchl r12, HSD_MemAlloc mr REG_DirectoryBuffer, r3 - stw REG_DirectoryBuffer, primaryDataBuffer(r13) # Store directory buffer location + stw REG_DirectoryBuffer, playbackDataBuffer(r13) # Store directory buffer location li r4, PDB_SIZE branchl r12, Zero_AreaLength @@ -265,7 +267,7 @@ blrl cmpwi r5, 0 # If size is 0, either we don't support this codetype or theres nothing to replace beq Callback_CalculateSize_End - lwz r6, primaryDataBuffer(r13) + lwz r6, playbackDataBuffer(r13) lwz r3, PDB_RESTORE_BUF_SIZE(r6) addi r3, r3, 8 # For each new code, we need a target address and length add r3, r3, r5 # Add size of the replacement to the total length @@ -298,7 +300,7 @@ blrl rlwinm r5, r5, 0, 0x01FFFFFF oris REG_TargetDataPtr, r5, 0x8000 # Injection Address - lwz REG_DirectoryBuffer2, primaryDataBuffer(r13) + lwz REG_DirectoryBuffer2, playbackDataBuffer(r13) lwz REG_RestoreBufPos, PDB_RESTORE_BUF_WRITE_POS(REG_DirectoryBuffer2) # r3 contains the codetype, do a switch statement on it to prepare for memcpys @@ -391,4 +393,3 @@ GECKO_CLEANUP: Injection_Exit: restore -lis r3, 0x8017 #execute replaced code line diff --git a/Playback/Core/RestoreInitialRNG.s b/Playback/Core/RestoreInitialRNG.s index b54b2eb9..403ceddd 100644 --- a/Playback/Core/RestoreInitialRNG.s +++ b/Playback/Core/RestoreInitialRNG.s @@ -37,7 +37,7 @@ blrl backup # check status of initial RNG - lwz r3,primaryDataBuffer(r13) + lwz r3,playbackDataBuffer(r13) lwz REG_Buffer,PDB_EXI_BUF_ADDR(r3) lbz r3,(InitialRNG_Start)+(InitialRNG_Status)(REG_Buffer) cmpwi r3,0 diff --git a/Playback/Core/RestoreLRAStart.asm b/Playback/Core/RestoreLRAStart.asm index 75c5bfad..deae4af2 100644 --- a/Playback/Core/RestoreLRAStart.asm +++ b/Playback/Core/RestoreLRAStart.asm @@ -12,7 +12,7 @@ # Check status of frame received. If a terminate result is received, that means # we need to end the game immediately - lwz r3,primaryDataBuffer(r13) + lwz r3,playbackDataBuffer(r13) lwz r3,PDB_EXI_BUF_ADDR(r3) lbz r3,(BufferStatus_Start)+(BufferStatus_Status)(r3) cmpwi r3, CONST_FrameFetchResult_Terminate diff --git a/Playback/Core/RestoreStockSteal.asm b/Playback/Core/RestoreStockSteal.asm index 06a5315a..c424fef5 100644 --- a/Playback/Core/RestoreStockSteal.asm +++ b/Playback/Core/RestoreStockSteal.asm @@ -11,7 +11,7 @@ .include "Playback/Playback.s" # Setup buffer - lwz r5,primaryDataBuffer(r13) + lwz r5,playbackDataBuffer(r13) lwz r5,PDB_SECONDARY_EXI_BUF_ADDR(r5) #Get secondary DMA buffer alloc li r4,CMD_IS_STOCK_STEAL stb r4,0x0(r5) #Store stock steal cmd ID @@ -24,14 +24,14 @@ li r5,CONST_ExiWrite branchl r12,FN_EXITransferBuffer # Receive buffer over DMA - lwz r3,primaryDataBuffer(r13) + lwz r3,playbackDataBuffer(r13) lwz r3,PDB_SECONDARY_EXI_BUF_ADDR(r3) #Get secondary DMA buffer alloc li r4,0x1 li r5,CONST_ExiRead branchl r12,FN_EXITransferBuffer # Check if this player requested a stock steal on this frame - lwz r3,primaryDataBuffer(r13) + lwz r3,playbackDataBuffer(r13) lwz r3,PDB_SECONDARY_EXI_BUF_ADDR(r3) #Get secondary DMA buffer alloc lbz r3,0x0(r3) cmpwi r3,0x0 diff --git a/Playback/Core/Sounds/AssignSoundInstanceId.asm b/Playback/Core/Sounds/AssignSoundInstanceId.asm index 58286fae..cf9a0a18 100644 --- a/Playback/Core/Sounds/AssignSoundInstanceId.asm +++ b/Playback/Core/Sounds/AssignSoundInstanceId.asm @@ -20,7 +20,7 @@ bne EXIT backup -lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address +lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START lbz REG_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS) diff --git a/Playback/Core/Sounds/HandleFrameSoundLog.asm b/Playback/Core/Sounds/HandleFrameSoundLog.asm index 1e918d26..90ac52bd 100644 --- a/Playback/Core/Sounds/HandleFrameSoundLog.asm +++ b/Playback/Core/Sounds/HandleFrameSoundLog.asm @@ -33,7 +33,7 @@ backup branchl r12, OSDisableInterrupts # Not backing up r3 output, don't use r3 in body mr REG_INTERRUPT_IDX, r3 -lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address +lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START lbz REG_SOUND_WRITE_INDEX, SFXDB_WRITE_INDEX(REG_SFXDB_ADDRESS) diff --git a/Playback/Core/Sounds/NoDestroyVoice.asm b/Playback/Core/Sounds/NoDestroyVoice.asm index 2c947926..be8236cc 100644 --- a/Playback/Core/Sounds/NoDestroyVoice.asm +++ b/Playback/Core/Sounds/NoDestroyVoice.asm @@ -17,7 +17,7 @@ bne EXIT backup -lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address +lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START rlwinm REG_SOUND_ID, REG_SOUND_ID, 0, 0xFFFF # extract half word ID diff --git a/Playback/Core/Sounds/NoDestroyVoice2.asm b/Playback/Core/Sounds/NoDestroyVoice2.asm index f3b71fed..6963c36c 100644 --- a/Playback/Core/Sounds/NoDestroyVoice2.asm +++ b/Playback/Core/Sounds/NoDestroyVoice2.asm @@ -23,7 +23,7 @@ bne EXIT backup -lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address +lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START rlwinm REG_SOUND_ID, REG_SOUND_ID, 0, 0xFFFF # extract half word ID diff --git a/Playback/Core/Sounds/PreventDuplicateSounds.asm b/Playback/Core/Sounds/PreventDuplicateSounds.asm index c75fe816..13f4bffb 100644 --- a/Playback/Core/Sounds/PreventDuplicateSounds.asm +++ b/Playback/Core/Sounds/PreventDuplicateSounds.asm @@ -22,7 +22,7 @@ bne EXIT backup -lwz REG_PDB_ADDRESS, primaryDataBuffer(r13) # data buffer address +lwz REG_PDB_ADDRESS, playbackDataBuffer(r13) # data buffer address addi REG_SFXDB_ADDRESS, REG_PDB_ADDRESS, PDB_SFXDB_START li REG_IS_SOUND_ACTIVE, 0 li REG_SOUND_INSTANCE_ID, 0 diff --git a/Playback/Show Player Names/InitInGame.asm b/Playback/Show Player Names/InitInGame.asm index 26c4481b..f54849de 100644 --- a/Playback/Show Player Names/InitInGame.asm +++ b/Playback/Show Player Names/InitInGame.asm @@ -134,7 +134,7 @@ bl DATA_BLRL mflr REG_DATA_ADDR # get PDB -lwz REG_PDB_ADDR, primaryDataBuffer(r13) +lwz REG_PDB_ADDR, playbackDataBuffer(r13) ########################## ## Display Player Names ## diff --git a/Recording/SendGamePreFrame.asm b/Recording/SendGamePreFrame.asm index cdc4ae67..12585f73 100644 --- a/Recording/SendGamePreFrame.asm +++ b/Recording/SendGamePreFrame.asm @@ -1,5 +1,5 @@ ################################################################################ -# Address: 8006b0dc +# Address: 8006b0e0 ################################################################################ .include "Common/Common.s" .include "Recording/Recording.s" @@ -125,4 +125,5 @@ CONTINUE_RAW_X: Injection_Exit: restore - lbz r0, 0x2219(r31) #execute replaced code line + lbz r0, 0x2219(r31) # reload r0 from previous line + lwz r3, 0x065C(r31) # replaced code line \ No newline at end of file diff --git a/Recording/ShouldRecord.asm b/Recording/ShouldRecord.asm index 1d043ca6..2d36eb1a 100644 --- a/Recording/ShouldRecord.asm +++ b/Recording/ShouldRecord.asm @@ -16,6 +16,8 @@ beq ReturnTrue cmpwi r3, SCENE_HOMERUN_IN_GAME beq ReturnTrue + cmpwi r3, SCENE_PLAYBACK_IN_GAME + beq ReturnTrue ReturnFalse: li r3,0 diff --git a/playback.json b/playback.json index 0adf8a71..96f9e9c1 100644 --- a/playback.json +++ b/playback.json @@ -133,6 +133,29 @@ } ] }, + { + "name": "Optional: Slippi Recording", + "authors": [ + "Fizzi", + "Achilles", + "UnclePunch", + "Nikki", + "jmlee337", + "Krohnos" + ], + "description": [ + "Allows for outputting new replay data during playback.", + "Useful for spectator service or upgrading replay versions." + ], + "build": [ + { + "type": "injectFolder", + "sourceFolder": "Recording", + "isRecursive": true, + "annotation": "Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337]" + } + ] + }, { "name": "Optional: Show Player Names", "authors": [ From 99b3b7af91b6d9bf26541f1cb0818353d3099737 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Tue, 14 Nov 2023 11:57:57 -0500 Subject: [PATCH 208/217] playback: change recording to recommended --- Output/Playback/GALE01r2.ini | 5 +++-- Output/Playback/GALJ01r2.ini | 5 +++-- playback.json | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 9d284da6..99a33310 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -10,6 +10,7 @@ FastDiscSpeed = True [Gecko_Enabled] $Required: General Codes $Required: Slippi Playback +$Recommended: Slippi Recording $Optional: Show Player Names [Gecko] @@ -923,9 +924,9 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 7C83612E 4E800020 60000000 00000000 -$Optional: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] +$Recommended: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Allows for outputting new replay data during playback. -*Useful for spectator service or upgrading replay versions. +*Used to power spectator service and upgrading replay versions. 040679BC 38802600 #Recording/ExtendPlayerBlock.asm C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 73f888aa..99f39ae2 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -9,6 +9,7 @@ FastDiscSpeed = True [Gecko_Enabled] $Required: General Codes $Required: Slippi Playback +$Recommended: Slippi Recording $Optional: Show Player Names [Gecko] @@ -922,9 +923,9 @@ C20056A8 00000005 #Common/CompatibilityHooks/RequestSSMLoad.asm 7C83612E 4E800020 60000000 00000000 -$Optional: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] +$Recommended: Slippi Recording [Fizzi, Achilles, UnclePunch, Nikki, jmlee337, Krohnos] *Allows for outputting new replay data during playback. -*Useful for spectator service or upgrading replay versions. +*Used to power spectator service and upgrading replay versions. 040679BC 38802600 #Recording/ExtendPlayerBlock.asm C23219EC 0000001D #Recording/FlushFrameBuffer.asm 7C0802A6 90010004 diff --git a/playback.json b/playback.json index 96f9e9c1..ee9d0bcf 100644 --- a/playback.json +++ b/playback.json @@ -15,6 +15,7 @@ "[Gecko_Enabled]", "$Required: General Codes", "$Required: Slippi Playback", + "$Recommended: Slippi Recording", "$Optional: Show Player Names", "", "[Gecko]" @@ -34,6 +35,7 @@ "[Gecko_Enabled]", "$Required: General Codes", "$Required: Slippi Playback", + "$Recommended: Slippi Recording", "$Optional: Show Player Names", "", "[Gecko]" @@ -134,7 +136,7 @@ ] }, { - "name": "Optional: Slippi Recording", + "name": "Recommended: Slippi Recording", "authors": [ "Fizzi", "Achilles", @@ -145,7 +147,7 @@ ], "description": [ "Allows for outputting new replay data during playback.", - "Useful for spectator service or upgrading replay versions." + "Used to power spectator service and upgrading replay versions." ], "build": [ { From 6d3e1402075b7fb54b2ac1e4b0c56f2f968b10a5 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 18 Dec 2023 14:26:03 -0500 Subject: [PATCH 209/217] upgrade netplay ucf to 0.84 --- Output/InjectionLists/list_netplay.json | 43 ++- Output/Netplay/GALE01r2.ini | 355 ++++++++++++++++-------- Output/Netplay/GALJ01r2.ini | 355 ++++++++++++++++-------- netplay.json | 6 +- 4 files changed, 534 insertions(+), 225 deletions(-) diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 16ecdd7f..71b9f580 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -252,32 +252,67 @@ "Annotation": "", "Tags": "" }, + { + "InjectionAddress": "800D65EC", + "Name": "Required: General Codes", + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm", + "Tags": "[affects-gameplay]" + }, { "InjectionAddress": "800C9A44", "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "External/UCF 0.8/Logic/UCF DB.asm", + "Annotation": "External/UCF 0.84/UCF/UCF Dashback.asm", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8006B460", + "Name": "Required: General Codes", + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8008E54C", + "Name": "Required: General Codes", + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF SDI.asm", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "8009A0B8", + "Name": "Required: General Codes", + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield Drop Extended.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800998A4", "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "External/UCF 0.8/Logic/UCF SD.asm", + "Annotation": "External/UCF 0.84/UCF/UCF Shield Drop.asm", + "Tags": "[affects-gameplay]" + }, + { + "InjectionAddress": "80093294", + "Name": "Required: General Codes", + "Codetype": "Auto", + "Annotation": "External/UCF 0.84/UCF/UCF Shield SDI.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "800908F4", "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "External/UCF 0.8/Logic/UCF Tumble.asm", + "Annotation": "External/UCF 0.84/UCF/UCF Tumble.asm", "Tags": "[affects-gameplay]" }, { "InjectionAddress": "802662D0", "Name": "Required: General Codes", "Codetype": "Auto", - "Annotation": "External/UCF 0.8/Indicator/UCF Text.asm", + "Annotation": "External/UCF 0.84/Indicator/UCF Text.asm", "Tags": "" }, { diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index c8980cf2..b366df71 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -233,114 +233,250 @@ FC0F0840 4081000C FC0F8840 41800010 C21F0318 FE0F802A D21F0318 00000000 -C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm -D01F002C 7C0802A6 -90010004 9421FF20 -BE8100B0 48000121 -7FC802A6 C03F0894 -C05E0000 FC011040 -40820118 808DAEB4 -C03F0620 FC200A10 -C044003C FC011040 -41800100 887F0670 -2C030002 408000F4 -887F221F 54600739 -408200E8 3C60804C -60631F78 8BA30001 -387DFFFE 889F0618 -4800008D 7C7C1B78 -7FA3EB78 889F0618 -4800007D 7C7C1850 -7C6319D6 2C0315F9 -408100B0 38000001 -901F2358 901F2340 -809F0004 2C04000A -40A20098 887F000C -38800001 3D808003 -618C418C 7D8903A6 +C20D65EC 00000010 #External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm +4800003D 3F170A3D +42A00000 38D1B717 +00000000 00000000 +FC200A10 C0440004 +C0640008 EC2118B8 +FC20081E D824000C +80C40010 38C60002 +4E800020 C0040094 +7C8802A6 88C50670 +2C060001 4080002C +C0250620 4BFFFFC5 +7C0631D6 C0250624 +4BFFFFB9 7CC631D6 +7C003214 2C001900 +40810008 C0040000 +60000000 00000000 +C20C9A44 00000020 #External/UCF 0.84/UCF/UCF Dashback.asm +893F221F D01F002C +71290008 408200F0 +815F0894 3D204000 +7C0A4800 408200E0 +C19F0620 812DAEB4 +EC000332 C189003C +FC006000 418000C8 +893F0670 28090001 +418100BC 3D008007 +895F0618 3908AD10 +85280750 55293032 +7D293670 39290004 +7D294214 1D0A000C +1D4A0006 7D094214 +89080008 7CEA4214 +3908FFFE 550807BE +54E7083C 7D4A4214 +7CE938AE 554A083C +7D2950AE 7CE70774 +7D290774 7D293850 +7D2949D6 2C0915F9 +40810054 9421FFF8 +39200001 38800001 +913F2340 913F2358 +3D208003 3929418C +887F000C 7D2903A6 4E800421 2C030000 -41820078 8083002C -80841ECC C03F002C -D0240018 C05E0004 -FC011040 4181000C -38600080 48000008 -3860007F 98640006 -48000048 7C852378 -3863FFFF 2C030000 -40800008 38630005 -3C808046 6084B108 -1C630030 7C841A14 -1C65000C 7C841A14 -88640002 7C630774 -4E800020 4E800021 -40000000 00000000 -BA8100B0 800100E4 -382100E0 7C0803A6 +41820020 8123002C +81491ECC 813F002C +912A0018 55290FFE +3929007F 992A0006 +38210008 00000000 +C206B460 00000054 #External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm +480000B1 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 BF1C0000 +38D1B717 42A00000 +3923004F 5529063E +2809009E 4081002C +38840006 5484063E +2804000C 4D810020 +54630000 39200000 +6C633F80 91250004 +90650000 4E800020 +3924004F 5529063E +2809009E 4C810020 +38630006 5463063E +2803000C 4D810020 +54840000 39200000 +6C843F80 91250000 +90850004 4E800020 +9421FFC0 BF210024 +93810014 7F8802A6 +3D20800A 7FE3FB78 +39292040 7D2903A6 +4E800421 2C030000 +408201A0 3D20804C +8BDF0618 39291F78 +7FFAFB78 89090001 +2C080000 3948FFFF +40A20008 39400004 +1D4A0030 81290008 +1F7E000C 3BBC0000 +7D295214 1FDE0006 +7D09DA14 7D49D82E +81280008 80E80004 +7D1DDA14 91210010 +89280008 91410008 +39290001 90E1000C +552907BE 99280008 +5539063E 7D3E4A14 +5529083C 7D5D4B2E +813A0004 2C090013 +40A20010 813A0010 +2C09015D 41A20034 +8881000B 38BA0620 +8861000A 7C840774 +7C630774 4BFFFEBD +8881000D 8861000C +38BA0638 7C840774 +7C630774 4BFFFEA5 +C01A0624 39400000 +C19C0030 FC006000 +418100C0 C19A0620 +FC000210 C15C0038 +39210018 FD806210 +C17C0034 EC005AB8 +ED8C5AB8 FC00001E +FD80601E 7D804FAE +3921001C 81010018 +7C004FAE 39080002 +8121001C 7D0841D6 +39290002 7D2949D6 +7D294214 2C091900 +40810068 7D3DDA14 +89490009 5549063E +2C090000 40820050 +893A0671 28090001 +41A10048 3939FFFE +7D1ECA14 552907BE +5508083C 7FDE4A14 +7D1D4214 57DE083C +89080001 7FDDF214 +893E0001 7D080774 +7D290774 7D294050 +7D2949D6 2C090790 +40810008 394A0001 +7FBDDA14 995D0009 +887F0678 83810014 +83210024 83410028 +8361002C 83A10034 +83C10038 38210040 60000000 00000000 -C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm -7C0802A6 90010004 -9421FF20 BE8100B0 -7C7E1B78 83FE002C -480000DD 7FA802A6 -C03F063C 806DAEB4 -C0030314 FC010040 -408100E4 C03F0620 -48000071 D0210090 -C03F0624 48000065 -C0410090 EC4200B2 -EC210072 EC21102A -C05D000C FC011040 -418000B4 889F0670 -2C040003 408100A8 -C01D0010 C03F0624 -FC000840 40800098 -BA8100B0 800100E4 -382100E0 7C0803A6 -8061001C 83E10014 -38210018 38630008 -7C6803A6 4E800020 -FC000A10 C03D0000 -EC000072 C03D0004 -EC000828 FC00001E -D8010080 80610084 -38630002 3C004330 -C85D0014 6C638000 -90010080 90610084 -C8210080 EC011028 -C03D0000 EC200824 -4E800020 4E800021 -42A00000 37270000 -43300000 3F800000 -BF4CCCCD 43300000 -80000000 7FC3F378 -7FE4FB78 BA8100B0 -800100E4 382100E0 -7C0803A6 00000000 -C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm -7C0802A6 90010004 -9421FF20 BE8100B0 +C208E54C 0000001D #External/UCF 0.84/UCF/UCF SDI.asm +7C002800 418000DC +89230673 28090001 +40810014 89230674 +3D406000 28090001 +418100BC C183062C +3D406000 C0030628 +ED8C0332 EC00603A +C18404B0 ED8C0332 +FC0C0000 40810098 +3D008007 89430618 +3908AD10 85280750 +55293032 7D293670 +39290004 7D294214 +1D0A000C 1D4A0006 +7D094214 89080008 +38E8FFFE 7D0A4214 +54E707BE 5508083C +7D4A3A14 7CC94214 +554A083C 7D0940AE +7CE95214 7D2950AE +7D080774 89470001 +7D290774 7D294050 +89060001 7D4A0774 +7D2949D6 7D080774 +7D4A4050 7D4A51D6 +7D295214 3D406000 +2C090F04 40810008 +3D408000 7D580120 +60000000 00000000 +C209A0B8 0000000A #External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +4C401382 4182003C +3D208007 89040618 +3929AD10 81490750 +1D08000C 39290754 +554A3032 7D4A3670 +7D295214 7D294214 +89290009 28090001 +4081000C 4C421242 +4800000C 4C421182 +60000000 00000000 +C20998A4 00000019 #External/UCF 0.84/UCF/UCF Shield Drop.asm +4800003D BF4CCCCD +42A00000 38D1B717 +00000000 00000000 +FC200A10 C0460004 +C0660008 EC2118B8 +FC20081E D826000C +80E60010 38E70002 +4E800020 8083002C +7CC802A6 80ADAEB4 +C004063C C0250314 +FC000840 40810070 +88040670 80E50320 +7C003800 41800060 +C0240624 C0060000 +FC010040 40810050 +8004083C 2C00FFFF +41820044 80040840 +540005EF 41820038 +4BFFFF89 7C0739D6 +C0240620 4BFFFF7D +7CE739D6 7C003A14 +2C001900 40810018 +80E1001C 38210018 +38E70008 7CE803A6 +4E800020 00000000 +C2093294 00000014 #External/UCF 0.84/UCF/UCF Shield SDI.asm +7C030000 41800094 +89240673 3CC06000 +28090001 41810080 +C1840628 C00504B0 +FC0C0000 40800070 +3D008007 89440618 +3908AD10 85280750 +55293032 7D293670 +39290004 7D294214 +1D0A000C 1D4A0006 +7D094214 89080008 +7CEA4214 3908FFFE +550807BE 54E7083C +7D4A4214 7CE938AE +554A083C 7D2950AE +7CE70774 7D290774 +7D293850 7D2949D6 +2C090F04 40810008 +3CC08000 7CD80120 +60000000 00000000 +C20908F4 00000013 #External/UCF 0.84/UCF/UCF Tumble.asm 2C030001 4082008C -C03F0628 FC200A10 -806DAEB4 C0430210 -FC011040 40800074 -3F80804C 639C1F78 -8BDC0001 387EFFFE -889F0618 48000029 -7C7D1B78 7FC3F378 -889F0618 48000019 -7C7D1850 7C6319D6 -388015F9 7C041800 -48000038 7C852378 -3863FFFF 2C030000 -40800008 38630005 -809C0008 1C630030 -7C841A14 1C65000C -7C841A14 88640002 -7C630774 4E800020 -BA8100B0 800100E4 -382100E0 7C0803A6 +C19F0628 3D406000 +FD806210 FC0C0000 +40800074 3D008007 +895F0618 3908AD10 +85280750 55293032 +7D293670 39290004 +7D294214 1D0A000C +1D4A0006 7D094214 +89080008 7CEA4214 +3908FFFE 550807BE +54E7083C 7D4A4214 +7CE938AE 554A083C +7D2950AE 7CE70774 +3D406000 7D290774 +7D293850 7D2949D6 +2C0915F9 40810008 +3D408000 7D580120 60000000 00000000 -C22662D0 0000001A #External/UCF 0.8/Indicator/UCF Text.asm +C22662D0 0000001B #External/UCF 0.84/Indicator/UCF Text.asm 7C0802A6 90010004 9421FF20 BE8100B0 48000089 7FC802A6 @@ -359,14 +495,15 @@ C05E0004 3D80803A 7FE3FB78 C03E0008 C05E0008 3D80803A 618C7548 7D8903A6 -4E800421 48000024 +4E800421 48000028 4E800021 42180000 C3898000 3EE66666 3DCCCCCD 4E800021 -55434620 302E3800 -BA8100B0 800100E4 -382100E0 7C0803A6 -38980000 00000000 +55434620 302E3834 +00000000 BA8100B0 +800100E4 382100E0 +7C0803A6 38980000 +60000000 00000000 C226325C 00000008 #External/DPad Down at CSS for Random Stage/DPad Down at CSS for Random Stage.asm 3C808045 6084BF17 54E0077B 4182001C diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index f2cd8795..a306c554 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -232,114 +232,250 @@ FC0F0840 4081000C FC0F8840 41800010 C21F0318 FE0F802A D21F0318 00000000 -C20C9A44 0000002B #External/UCF 0.8/Logic/UCF DB.asm -D01F002C 7C0802A6 -90010004 9421FF20 -BE8100B0 48000121 -7FC802A6 C03F0894 -C05E0000 FC011040 -40820118 808DAEB4 -C03F0620 FC200A10 -C044003C FC011040 -41800100 887F0670 -2C030002 408000F4 -887F221F 54600739 -408200E8 3C60804C -60631F78 8BA30001 -387DFFFE 889F0618 -4800008D 7C7C1B78 -7FA3EB78 889F0618 -4800007D 7C7C1850 -7C6319D6 2C0315F9 -408100B0 38000001 -901F2358 901F2340 -809F0004 2C04000A -40A20098 887F000C -38800001 3D808003 -618C418C 7D8903A6 +C20D65EC 00000010 #External/UCF 0.84/UCF/UCF DBOOC SquatRv Fix.asm +4800003D 3F170A3D +42A00000 38D1B717 +00000000 00000000 +FC200A10 C0440004 +C0640008 EC2118B8 +FC20081E D824000C +80C40010 38C60002 +4E800020 C0040094 +7C8802A6 88C50670 +2C060001 4080002C +C0250620 4BFFFFC5 +7C0631D6 C0250624 +4BFFFFB9 7CC631D6 +7C003214 2C001900 +40810008 C0040000 +60000000 00000000 +C20C9A44 00000020 #External/UCF 0.84/UCF/UCF Dashback.asm +893F221F D01F002C +71290008 408200F0 +815F0894 3D204000 +7C0A4800 408200E0 +C19F0620 812DAEB4 +EC000332 C189003C +FC006000 418000C8 +893F0670 28090001 +418100BC 3D008007 +895F0618 3908AD10 +85280750 55293032 +7D293670 39290004 +7D294214 1D0A000C +1D4A0006 7D094214 +89080008 7CEA4214 +3908FFFE 550807BE +54E7083C 7D4A4214 +7CE938AE 554A083C +7D2950AE 7CE70774 +7D290774 7D293850 +7D2949D6 2C0915F9 +40810054 9421FFF8 +39200001 38800001 +913F2340 913F2358 +3D208003 3929418C +887F000C 7D2903A6 4E800421 2C030000 -41820078 8083002C -80841ECC C03F002C -D0240018 C05E0004 -FC011040 4181000C -38600080 48000008 -3860007F 98640006 -48000048 7C852378 -3863FFFF 2C030000 -40800008 38630005 -3C808046 6084B108 -1C630030 7C841A14 -1C65000C 7C841A14 -88640002 7C630774 -4E800020 4E800021 -40000000 00000000 -BA8100B0 800100E4 -382100E0 7C0803A6 +41820020 8123002C +81491ECC 813F002C +912A0018 55290FFE +3929007F 992A0006 +38210008 00000000 +C206B460 00000054 #External/UCF 0.84/UCF/UCF Pad Buffer + 1.0 Cardinals.asm +480000B1 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 00000000 +00000000 BF1C0000 +38D1B717 42A00000 +3923004F 5529063E +2809009E 4081002C +38840006 5484063E +2804000C 4D810020 +54630000 39200000 +6C633F80 91250004 +90650000 4E800020 +3924004F 5529063E +2809009E 4C810020 +38630006 5463063E +2803000C 4D810020 +54840000 39200000 +6C843F80 91250000 +90850004 4E800020 +9421FFC0 BF210024 +93810014 7F8802A6 +3D20800A 7FE3FB78 +39292040 7D2903A6 +4E800421 2C030000 +408201A0 3D20804C +8BDF0618 39291F78 +7FFAFB78 89090001 +2C080000 3948FFFF +40A20008 39400004 +1D4A0030 81290008 +1F7E000C 3BBC0000 +7D295214 1FDE0006 +7D09DA14 7D49D82E +81280008 80E80004 +7D1DDA14 91210010 +89280008 91410008 +39290001 90E1000C +552907BE 99280008 +5539063E 7D3E4A14 +5529083C 7D5D4B2E +813A0004 2C090013 +40A20010 813A0010 +2C09015D 41A20034 +8881000B 38BA0620 +8861000A 7C840774 +7C630774 4BFFFEBD +8881000D 8861000C +38BA0638 7C840774 +7C630774 4BFFFEA5 +C01A0624 39400000 +C19C0030 FC006000 +418100C0 C19A0620 +FC000210 C15C0038 +39210018 FD806210 +C17C0034 EC005AB8 +ED8C5AB8 FC00001E +FD80601E 7D804FAE +3921001C 81010018 +7C004FAE 39080002 +8121001C 7D0841D6 +39290002 7D2949D6 +7D294214 2C091900 +40810068 7D3DDA14 +89490009 5549063E +2C090000 40820050 +893A0671 28090001 +41A10048 3939FFFE +7D1ECA14 552907BE +5508083C 7FDE4A14 +7D1D4214 57DE083C +89080001 7FDDF214 +893E0001 7D080774 +7D290774 7D294050 +7D2949D6 2C090790 +40810008 394A0001 +7FBDDA14 995D0009 +887F0678 83810014 +83210024 83410028 +8361002C 83A10034 +83C10038 38210040 60000000 00000000 -C20998A4 00000026 #External/UCF 0.8/Logic/UCF SD.asm -7C0802A6 90010004 -9421FF20 BE8100B0 -7C7E1B78 83FE002C -480000DD 7FA802A6 -C03F063C 806DAEB4 -C0030314 FC010040 -408100E4 C03F0620 -48000071 D0210090 -C03F0624 48000065 -C0410090 EC4200B2 -EC210072 EC21102A -C05D000C FC011040 -418000B4 889F0670 -2C040003 408100A8 -C01D0010 C03F0624 -FC000840 40800098 -BA8100B0 800100E4 -382100E0 7C0803A6 -8061001C 83E10014 -38210018 38630008 -7C6803A6 4E800020 -FC000A10 C03D0000 -EC000072 C03D0004 -EC000828 FC00001E -D8010080 80610084 -38630002 3C004330 -C85D0014 6C638000 -90010080 90610084 -C8210080 EC011028 -C03D0000 EC200824 -4E800020 4E800021 -42A00000 37270000 -43300000 3F800000 -BF4CCCCD 43300000 -80000000 7FC3F378 -7FE4FB78 BA8100B0 -800100E4 382100E0 -7C0803A6 00000000 -C20908F4 00000017 #External/UCF 0.8/Logic/UCF Tumble.asm -7C0802A6 90010004 -9421FF20 BE8100B0 +C208E54C 0000001D #External/UCF 0.84/UCF/UCF SDI.asm +7C002800 418000DC +89230673 28090001 +40810014 89230674 +3D406000 28090001 +418100BC C183062C +3D406000 C0030628 +ED8C0332 EC00603A +C18404B0 ED8C0332 +FC0C0000 40810098 +3D008007 89430618 +3908AD10 85280750 +55293032 7D293670 +39290004 7D294214 +1D0A000C 1D4A0006 +7D094214 89080008 +38E8FFFE 7D0A4214 +54E707BE 5508083C +7D4A3A14 7CC94214 +554A083C 7D0940AE +7CE95214 7D2950AE +7D080774 89470001 +7D290774 7D294050 +89060001 7D4A0774 +7D2949D6 7D080774 +7D4A4050 7D4A51D6 +7D295214 3D406000 +2C090F04 40810008 +3D408000 7D580120 +60000000 00000000 +C209A0B8 0000000A #External/UCF 0.84/UCF/UCF Shield Drop Extended.asm +4C401382 4182003C +3D208007 89040618 +3929AD10 81490750 +1D08000C 39290754 +554A3032 7D4A3670 +7D295214 7D294214 +89290009 28090001 +4081000C 4C421242 +4800000C 4C421182 +60000000 00000000 +C20998A4 00000019 #External/UCF 0.84/UCF/UCF Shield Drop.asm +4800003D BF4CCCCD +42A00000 38D1B717 +00000000 00000000 +FC200A10 C0460004 +C0660008 EC2118B8 +FC20081E D826000C +80E60010 38E70002 +4E800020 8083002C +7CC802A6 80ADAEB4 +C004063C C0250314 +FC000840 40810070 +88040670 80E50320 +7C003800 41800060 +C0240624 C0060000 +FC010040 40810050 +8004083C 2C00FFFF +41820044 80040840 +540005EF 41820038 +4BFFFF89 7C0739D6 +C0240620 4BFFFF7D +7CE739D6 7C003A14 +2C001900 40810018 +80E1001C 38210018 +38E70008 7CE803A6 +4E800020 00000000 +C2093294 00000014 #External/UCF 0.84/UCF/UCF Shield SDI.asm +7C030000 41800094 +89240673 3CC06000 +28090001 41810080 +C1840628 C00504B0 +FC0C0000 40800070 +3D008007 89440618 +3908AD10 85280750 +55293032 7D293670 +39290004 7D294214 +1D0A000C 1D4A0006 +7D094214 89080008 +7CEA4214 3908FFFE +550807BE 54E7083C +7D4A4214 7CE938AE +554A083C 7D2950AE +7CE70774 7D290774 +7D293850 7D2949D6 +2C090F04 40810008 +3CC08000 7CD80120 +60000000 00000000 +C20908F4 00000013 #External/UCF 0.84/UCF/UCF Tumble.asm 2C030001 4082008C -C03F0628 FC200A10 -806DAEB4 C0430210 -FC011040 40800074 -3F80804C 639C1F78 -8BDC0001 387EFFFE -889F0618 48000029 -7C7D1B78 7FC3F378 -889F0618 48000019 -7C7D1850 7C6319D6 -388015F9 7C041800 -48000038 7C852378 -3863FFFF 2C030000 -40800008 38630005 -809C0008 1C630030 -7C841A14 1C65000C -7C841A14 88640002 -7C630774 4E800020 -BA8100B0 800100E4 -382100E0 7C0803A6 +C19F0628 3D406000 +FD806210 FC0C0000 +40800074 3D008007 +895F0618 3908AD10 +85280750 55293032 +7D293670 39290004 +7D294214 1D0A000C +1D4A0006 7D094214 +89080008 7CEA4214 +3908FFFE 550807BE +54E7083C 7D4A4214 +7CE938AE 554A083C +7D2950AE 7CE70774 +3D406000 7D290774 +7D293850 7D2949D6 +2C0915F9 40810008 +3D408000 7D580120 60000000 00000000 -C22662D0 0000001A #External/UCF 0.8/Indicator/UCF Text.asm +C22662D0 0000001B #External/UCF 0.84/Indicator/UCF Text.asm 7C0802A6 90010004 9421FF20 BE8100B0 48000089 7FC802A6 @@ -358,14 +494,15 @@ C05E0004 3D80803A 7FE3FB78 C03E0008 C05E0008 3D80803A 618C7548 7D8903A6 -4E800421 48000024 +4E800421 48000028 4E800021 42180000 C3898000 3EE66666 3DCCCCCD 4E800021 -55434620 302E3800 -BA8100B0 800100E4 -382100E0 7C0803A6 -38980000 00000000 +55434620 302E3834 +00000000 BA8100B0 +800100E4 382100E0 +7C0803A6 38980000 +60000000 00000000 C226325C 00000008 #External/DPad Down at CSS for Random Stage/DPad Down at CSS for Random Stage.asm 3C808045 6084BF17 54E0077B 4182001C diff --git a/netplay.json b/netplay.json index de99eee0..4eb35eb3 100644 --- a/netplay.json +++ b/netplay.json @@ -163,13 +163,13 @@ }, { "type": "injectFolder", - "sourceFolder": "External/UCF 0.8/Logic", + "sourceFolder": "External/UCF 0.84/UCF", "isRecursive": true, - "annotation": "UCF v0.8" + "annotation": "UCF v0.84" }, { "type": "injectFolder", - "sourceFolder": "External/UCF 0.8/Indicator", + "sourceFolder": "External/UCF 0.84/Indicator", "isRecursive": true, "annotation": "UCF CSS Indicator" }, From 7cd7e77626883520ef73fa878f077e359c95a9f4 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 2 Feb 2024 12:29:49 -0500 Subject: [PATCH 210/217] correctly forward gameplay codes during playback gets picked up by the recording code and extracts the codes that actually matter instead of the playback codes --- Output/Playback/GALE01r2.ini | 6 ++++-- Output/Playback/GALJ01r2.ini | 6 ++++-- Playback/Core/RestoreGameInfo.asm | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 99a33310..4a09634c 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -251,7 +251,7 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E748 0000009F #Playback/Core/RestoreGameInfo.asm +C216E748 000000A1 #Playback/Core/RestoreGameInfo.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 @@ -328,7 +328,9 @@ C216E748 0000009F #Playback/Core/RestoreGameInfo.asm 807E021D 3D808037 618CF1E4 7D8903A6 4E800421 7C7D1B78 -93BC0008 3860008A +93BC0008 3C808000 +60845600 387DFFF8 +90640000 3860008A 987D0000 7FA3EB78 38800001 38A00001 3D808000 618C55F0 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 99f39ae2..0d9f05c8 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -250,7 +250,7 @@ C0230044 D0230030 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 00000000 -C216E748 0000009F #Playback/Core/RestoreGameInfo.asm +C216E748 000000A1 #Playback/Core/RestoreGameInfo.asm 3D808022 618C54B8 7D8903A6 4E800421 7C0802A6 90010004 @@ -327,7 +327,9 @@ C216E748 0000009F #Playback/Core/RestoreGameInfo.asm 807E021D 3D808037 618CF1E4 7D8903A6 4E800421 7C7D1B78 -93BC0008 3860008A +93BC0008 3C808000 +60845600 387DFFF8 +90640000 3860008A 987D0000 7FA3EB78 38800001 38A00001 3D808000 618C55F0 diff --git a/Playback/Core/RestoreGameInfo.asm b/Playback/Core/RestoreGameInfo.asm index 3d9899f5..4724bd42 100644 --- a/Playback/Core/RestoreGameInfo.asm +++ b/Playback/Core/RestoreGameInfo.asm @@ -219,6 +219,11 @@ RESTORE_GAME_INFO_NAMETAG_INC_LOOP: mr REG_GeckoBuffer, r3 stw REG_GeckoBuffer, PDB_DYNAMIC_GECKO_ADDR(REG_DirectoryBuffer) + # Overwrite the gecko heap location for simultaneous recording + playback + load r4, GeckoHeapPtr + subi r3, REG_GeckoBuffer, 0x8 # Recording expects d0c0de d0c0de but we dont have that here + stw r3, 0(r4) + # Step 2: Ask dolphin for the code list li r3, CMD_GET_GECKO_CODES stb r3, 0(REG_GeckoBuffer) From c852afae8e5ff069c51d2e4641f09720b55ae0f5 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 30 Jun 2024 13:50:39 -0400 Subject: [PATCH 211/217] save and restore raw cstick values fixes playback bug with UCF 0.84 1.0 cardinals on cstick --- Output/Netplay/GALE01r2.ini | 14 ++++++++------ Output/Netplay/GALJ01r2.ini | 14 ++++++++------ Output/Playback/GALE01r2.ini | 26 +++++++++++++++----------- Output/Playback/GALJ01r2.ini | 26 +++++++++++++++----------- Playback/Core/RestoreGameFrame.asm | 4 ++++ Playback/Playback.s | 4 +++- Recording/Recording.s | 6 +++--- Recording/SendGamePreFrame.asm | 4 ++++ 8 files changed, 60 insertions(+), 38 deletions(-) diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index b366df71..3f4a8b91 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -784,7 +784,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -798,7 +798,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -814,7 +814,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -1096,12 +1096,12 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0E0 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002E #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820120 +2C030000 41820130 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600037 @@ -1135,8 +1135,10 @@ B07D0031 80640030 1C9B000C 7C832214 88640002 987D003B 88640003 987D0040 +88640004 987D0041 +88640005 987D0042 807F1830 907D003C -838DB650 3B9C0041 +838DB650 3B9C0043 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index a306c554..9d6f5552 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -783,7 +783,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -797,7 +797,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -813,7 +813,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -1095,12 +1095,12 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0E0 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002E #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820120 +2C030000 41820130 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600037 @@ -1134,8 +1134,10 @@ B07D0031 80640030 1C9B000C 7C832214 88640002 987D003B 88640003 987D0040 +88640004 987D0041 +88640005 987D0042 807F1830 907D003C -838DB650 3B9C0041 +838DB650 3B9C0043 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 diff --git a/Output/Playback/GALE01r2.ini b/Output/Playback/GALE01r2.ini index 4a09634c..94f05bdb 100644 --- a/Output/Playback/GALE01r2.ini +++ b/Output/Playback/GALE01r2.ini @@ -165,7 +165,7 @@ BE8100B0 806DAFC0 38800005 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -7F63DB78 38800197 +7F63DB78 388001A7 38A00000 3D808000 618C55F0 7D8903A6 4E800421 887B0000 @@ -177,7 +177,7 @@ BE8100B0 806DAFC0 BA8100B0 800100E4 382100E0 7C0803A6 881F0008 00000000 -C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm +C206B0DC 0000004B #Playback/Core/RestoreGameFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 8BBF000C 7FA3EB78 @@ -189,10 +189,10 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm 7D8903A6 4E800421 7C741B78 2C140000 41820010 8879056F -2C030000 418201D4 +2C030000 418201E4 389B0007 88BF000C -1CA50064 7C842A14 -1CB40032 7F442A14 +1CA50068 7C842A14 +1CB40034 7F442A14 807A0004 907F0620 807A0008 907F0624 807A000C 907F0638 @@ -215,6 +215,8 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm 1C84000C 7E832214 887A002C 98740002 887A002D 98740003 +887A0032 98740004 +887A0033 98740005 8879056F 2C030000 4182004C 807A002E 2C03FFFF 41820040 @@ -1021,7 +1023,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -1035,7 +1037,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -1051,7 +1053,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -1333,12 +1335,12 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0E0 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002E #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820120 +2C030000 41820130 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600037 @@ -1372,8 +1374,10 @@ B07D0031 80640030 1C9B000C 7C832214 88640002 987D003B 88640003 987D0040 +88640004 987D0041 +88640005 987D0042 807F1830 907D003C -838DB650 3B9C0041 +838DB650 3B9C0043 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 diff --git a/Output/Playback/GALJ01r2.ini b/Output/Playback/GALJ01r2.ini index 0d9f05c8..8b3f3910 100644 --- a/Output/Playback/GALJ01r2.ini +++ b/Output/Playback/GALJ01r2.ini @@ -164,7 +164,7 @@ BE8100B0 806DAFC0 38800005 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -7F63DB78 38800197 +7F63DB78 388001A7 38A00000 3D808000 618C55F0 7D8903A6 4E800421 887B0000 @@ -176,7 +176,7 @@ BE8100B0 806DAFC0 BA8100B0 800100E4 382100E0 7C0803A6 881F0008 00000000 -C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm +C206B0DC 0000004B #Playback/Core/RestoreGameFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 8BBF000C 7FA3EB78 @@ -188,10 +188,10 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm 7D8903A6 4E800421 7C741B78 2C140000 41820010 8879056F -2C030000 418201D4 +2C030000 418201E4 389B0007 88BF000C -1CA50064 7C842A14 -1CB40032 7F442A14 +1CA50068 7C842A14 +1CB40034 7F442A14 807A0004 907F0620 807A0008 907F0624 807A000C 907F0638 @@ -214,6 +214,8 @@ C206B0DC 00000049 #Playback/Core/RestoreGameFrame.asm 1C84000C 7E832214 887A002C 98740002 887A002D 98740003 +887A0032 98740004 +887A0033 98740005 8879056F 2C030000 4182004C 807A002E 2C03FFFF 41820040 @@ -1020,7 +1022,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -1034,7 +1036,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -1050,7 +1052,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -1332,12 +1334,12 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0E0 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002E #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820120 +2C030000 41820130 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600037 @@ -1371,8 +1373,10 @@ B07D0031 80640030 1C9B000C 7C832214 88640002 987D003B 88640003 987D0040 +88640004 987D0041 +88640005 987D0042 807F1830 907D003C -838DB650 3B9C0041 +838DB650 3B9C0043 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 diff --git a/Playback/Core/RestoreGameFrame.asm b/Playback/Core/RestoreGameFrame.asm index 07544da7..268a4679 100644 --- a/Playback/Core/RestoreGameFrame.asm +++ b/Playback/Core/RestoreGameFrame.asm @@ -162,6 +162,10 @@ SKIP_RESYNC: stb r3, 0x2(r20) #store raw x analog lbz r3, AnalogRawInputY(PlayerBackup) stb r3, 0x3(r20) #store raw y analog + lbz r3, CStickRawInputX(PlayerBackup) + stb r3, 0x4(r20) #store raw x cstick + lbz r3, CStickRawInputY(PlayerBackup) + stb r3, 0x5(r20) #store raw y cstick # If we do not have resync logic enabled, don't try to restore percentage lbz r3, PDB_SHOULD_RESYNC(REG_PDB_ADDR) diff --git a/Playback/Playback.s b/Playback/Playback.s index f404e9fa..b2daaf58 100644 --- a/Playback/Playback.s +++ b/Playback/Playback.s @@ -86,7 +86,7 @@ # gameframe .set GameFrame_Start, InitialRNG_Start + InitialRNG_Length # per player offsets - .set PlayerDataLength,0x32 + .set PlayerDataLength,0x34 .set RNGSeed,0x00 .set AnalogX,0x04 .set AnalogY,0x08 @@ -101,6 +101,8 @@ .set AnalogRawInputX,0x2C .set AnalogRawInputY,0x2D .set Percentage,0x2E + .set CStickRawInputX,0x32 + .set CStickRawInputY,0x33 .set GameFrame_Length, PlayerDataLength * 8 diff --git a/Recording/Recording.s b/Recording/Recording.s index 494aa713..eb541b09 100644 --- a/Recording/Recording.s +++ b/Recording/Recording.s @@ -30,7 +30,7 @@ .set MESSAGE_DESCRIPTIONS_PAYLOAD_LENGTH, 3 * (COMMAND_COUNT - 1) + 1 # byte count .set GAME_INFO_PAYLOAD_LENGTH, 760 # byte count .set GAME_FRAME_START_PAYLOAD_LENGTH, 12 #byte count -.set GAME_PRE_FRAME_PAYLOAD_LENGTH, 64 # byte count +.set GAME_PRE_FRAME_PAYLOAD_LENGTH, 66 # byte count .set GAME_POST_FRAME_PAYLOAD_LENGTH, 84 # byte count .set GAME_ITEM_INFO_PAYLOAD_LENGTH, 44 # byte count .set GAME_FRAME_BOOKEND_PAYLOAD_LENGTH, 8 # byte count @@ -65,8 +65,8 @@ # build version number. Each byte is one digit # any change in command data should result in a minor version change -# current version: 3.16.0 -.set CURRENT_VERSION,0x03100000 +# current version: 3.17.0 +.set CURRENT_VERSION,0x03110000 ################################################################################ # Static Function Locations diff --git a/Recording/SendGamePreFrame.asm b/Recording/SendGamePreFrame.asm index 12585f73..282d1fd0 100644 --- a/Recording/SendGamePreFrame.asm +++ b/Recording/SendGamePreFrame.asm @@ -111,6 +111,10 @@ CONTINUE_RAW_X: stb r3, 0x3B(REG_Buffer) lbz r3, 0x3(r4) #load raw y analog stb r3, 0x40(REG_Buffer) + lbz r3, 0x4(r4) #load raw x c-stick + stb r3, 0x41(REG_Buffer) + lbz r3, 0x5(r4) #load raw y c-stick + stb r3, 0x42(REG_Buffer) # Send player's percent lwz r3,0x1830(r31) From 2ff76fb1c8e80801cc01dd62a0319d91d403044a Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Sun, 30 Jun 2024 23:56:37 -0400 Subject: [PATCH 212/217] add LGL 45 condition to online results --- Online/Online.s | 1 + Online/Slippi Online Scene/main.asm | 17 +++ Output/Netplay/GALE01r2.ini | 163 +++++++++++++++------------- Output/Netplay/GALJ01r2.ini | 163 +++++++++++++++------------- 4 files changed, 190 insertions(+), 154 deletions(-) diff --git a/Online/Online.s b/Online/Online.s index 185ab50a..adab30cf 100644 --- a/Online/Online.s +++ b/Online/Online.s @@ -41,6 +41,7 @@ .set MIN_DELAY_FRAMES, 1 .set MAX_DELAY_FRAMES, 15 .set ROLLBACK_MAX_FRAME_COUNT, 7 +.set LGL_LIMIT, 45 # Ledge grabs that exceed this number will result in a loss on timeout # I don't know exactly how long the local input buffer has to be but in very rare cases with a length # of ROLLBACK_MAX_FRAME_COUNT we could overflow into the negative indices: diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index a7e613be..aa2587e7 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -1226,6 +1226,23 @@ beq SinglesDetermineWinner_HANDLE_COMPLETION b SinglesDetermineWinner_TIE SinglesDetermineWinner_HANDLE_TIMEOUT: +# Handle ledge grab limit +li r3, 0 +branchl r12, 0x80040af0 # PlayerBlock_GetCliffhangerStat +mr REG_TEMP_VAR, r3 +li r3, 1 +branchl r12, 0x80040af0 # PlayerBlock_GetCliffhangerStat +cmpwi REG_TEMP_VAR, LGL_LIMIT +ble SinglesDetermineWinner_CHECK_LGL_LOSS +cmpwi r3, LGL_LIMIT +bgt SinglesDetermineWinner_LGL_EXIT # If we branch here both players have more than 45 so ignore LGL +SinglesDetermineWinner_CHECK_LGL_LOSS: +cmpwi REG_TEMP_VAR, LGL_LIMIT +bgt SinglesDetermineWinner_P2_WIN # If P1 has more than 45 ledge grabs, P2 wins +cmpwi r3, LGL_LIMIT +bgt SinglesDetermineWinner_P1_WIN # If P2 has more than 45 ledge grabs, P1 wins +SinglesDetermineWinner_LGL_EXIT: + li r3, 0 branchl r12, 0x80033bd8 # PlayerBlock_LoadStocksLeft mr REG_TEMP_VAR, r3 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 3f4a8b91..04a444ea 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4797,7 +4797,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001FF #Online/Slippi Online Scene/main.asm +C21A45B8 00000208 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4808,7 +4808,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F88 80830000 +48000FD4 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4878,8 +4878,8 @@ BA8100B0 800100E4 04030000 4800062D 48000969 20000000 80490880 804D68D0 -05030000 48000C7D -48000CBD 50000000 +05030000 48000CC9 +48000D09 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5025,7 +5025,7 @@ B07B0001 38600000 7D8903A6 4E800421 3C808047 60849D30 38600001 98640005 -887F0003 480006E9 +887F0003 48000735 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -5033,14 +5033,14 @@ B07B0001 38600000 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -480006AD 2C030000 +480006F9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -48000675 2C030000 +480006C1 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5218,97 +5218,106 @@ BE8100B0 38600000 BE8100B0 3FE08047 63FF9DA4 887F0004 2C030001 41820010 -2C030002 4182007C -480000C4 38600000 -3D808003 618C3BD8 +2C030002 418200C8 +48000110 38600000 +3D808004 618C0AF0 7D8903A6 4E800421 7C7B1B78 38600001 -3D808003 618C3BD8 -7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 +3D808004 618C0AF0 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 -7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 +2C1B002D 4081000C +2C03002D 41810014 +2C1B002D 418100C4 +2C03002D 418100B4 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA8100B0 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -83E30010 887F0006 -2C030000 40820014 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0000 2C030004 -41820018 3C808047 -60849D30 38600001 -98640005 48000038 887F0006 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFC5D 3C808047 -60849D30 38600005 -98640005 BA8100B0 +40820014 3D808001 +618C74BC 7D8903A6 +4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +83E30010 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0000 +2C030004 41820018 +3C808047 60849D30 +38600001 98640005 +48000038 887F0006 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFC11 +3C808047 60849D30 +38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA8100B0 +800100E4 382100E0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 9d6f5552..be62b088 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4796,7 +4796,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 000001FF #Online/Slippi Online Scene/main.asm +C21A45B8 00000208 #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4807,7 +4807,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000F88 80830000 +48000FD4 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4877,8 +4877,8 @@ BA8100B0 800100E4 04030000 4800062D 48000969 20000000 80490880 804D68D0 -05030000 48000C7D -48000CBD 50000000 +05030000 48000CC9 +48000D09 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -5024,7 +5024,7 @@ B07B0001 38600000 7D8903A6 4E800421 3C808047 60849D30 38600001 98640005 -887F0003 480006E9 +887F0003 48000735 986DAFC9 886DAFA0 2C030003 40820020 887F0003 38800001 @@ -5032,14 +5032,14 @@ B07B0001 38600000 38800000 988DAFC9 4800003C 3A800000 3AA00000 7E83A378 -480006AD 2C030000 +480006F9 2C030000 41820008 3AB50001 3A940001 2C140004 4180FFE4 2C150001 4182000C 38600000 986DAFC9 3E808047 62949DA4 887F0003 -48000675 2C030000 +480006C1 2C030000 41820018 38600001 98740000 38600000 9874005D 48000014 @@ -5217,97 +5217,106 @@ BE8100B0 38600000 BE8100B0 3FE08047 63FF9DA4 887F0004 2C030001 41820010 -2C030002 4182007C -480000C4 38600000 -3D808003 618C3BD8 +2C030002 418200C8 +48000110 38600000 +3D808004 618C0AF0 7D8903A6 4E800421 7C7B1B78 38600001 -3D808003 618C3BD8 -7D8903A6 4E800421 -7C1B1800 41810080 -41800084 38600000 -3D808003 618C42B4 +3D808004 618C0AF0 7D8903A6 4E800421 -7C7B1B78 38600001 -3D808003 618C42B4 -7D8903A6 4E800421 -7C1B1800 41800048 -4181004C 48000050 +2C1B002D 4081000C +2C03002D 41810014 +2C1B002D 418100C4 +2C03002D 418100B4 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 2C030000 -40820024 38600001 +4E800421 7C7B1B78 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 7C1B1800 +41810080 41800084 +38600000 3D808003 +618C42B4 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808003 +618C42B4 7D8903A6 +4E800421 7C1B1800 +41800048 4181004C +48000050 38600000 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820010 -48000014 38600000 -48000010 38600001 -48000008 3860FFFF -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 7C7D1B78 -3FE08047 63FF9DA4 -1FDD00A8 7FDEFA14 -887F0004 2C030000 -418200B0 3C608046 -6063B6A0 886324D0 -889F0006 7C032000 -40820098 887E0058 -2C030003 4182008C -887F0004 2C030007 -40820040 887F0006 -2C030001 40820024 -887F0000 1C6300A8 -7C63FA14 8863005F -889E005F 7C032000 -41820058 4800005C -887F0000 7C03E800 -41820048 4800004C -887F0006 2C030001 -40820028 7FE3FB78 -3D808016 618C54A0 -7D8903A6 4E800421 -889E005F 7C032000 -41820020 48000014 -887E005D 2C030000 -41820010 48000004 -38600000 48000008 -38600001 BA8100B0 +2C030000 40820024 +38600001 3D808003 +618C3BD8 7D8903A6 +4E800421 2C030000 +40820010 48000014 +38600000 48000010 +38600001 48000008 +3860FFFF BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -83E30010 887F0006 -2C030000 40820014 -3D808001 618C74BC -7D8903A6 4E800421 +7C7D1B78 3FE08047 +63FF9DA4 1FDD00A8 +7FDEFA14 887F0004 +2C030000 418200B0 +3C608046 6063B6A0 +886324D0 889F0006 +7C032000 40820098 +887E0058 2C030003 +4182008C 887F0004 +2C030007 40820040 +887F0006 2C030001 +40820024 887F0000 +1C6300A8 7C63FA14 +8863005F 889E005F +7C032000 41820058 +4800005C 887F0000 +7C03E800 41820048 +4800004C 887F0006 +2C030001 40820028 +7FE3FB78 3D808016 +618C54A0 7D8903A6 +4E800421 889E005F +7C032000 41820020 +48000014 887E005D +2C030000 41820010 +48000004 38600000 +48000008 38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -887E0000 2C030004 -41820018 3C808047 -60849D30 38600001 -98640005 48000038 887F0006 2C030000 -41820018 3C808047 -60849D30 38600003 -98640005 48000018 -4BFFFC5D 3C808047 -60849D30 38600005 -98640005 BA8100B0 +40820014 3D808001 +618C74BC 7D8903A6 +4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 +7C0802A6 90010004 +9421FF20 BE8100B0 +83E30010 38600000 +3D808000 618C5610 +7D8903A6 4E800421 +7C7E1B78 887E0000 +2C030004 41820018 +3C808047 60849D30 +38600001 98640005 +48000038 887F0006 +2C030000 41820018 +3C808047 60849D30 +38600003 98640005 +48000018 4BFFFC11 +3C808047 60849D30 +38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -38600028 987E0000 -60000000 00000000 +4E800020 BA8100B0 +800100E4 382100E0 +7C0803A6 38600028 +987E0000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 From ccb59238b750cdf4cac701832753be119489f7e6 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 5 Jul 2024 13:13:51 -0400 Subject: [PATCH 213/217] add success / failure game end on LGL --- Online/Core/CustomizeMessageLRAS.asm | 3 + Online/Core/LGLExceededGameEnd.asm | 140 ++++++++++++++++++++++++ Online/Static/SubtextFunctions.asm | 11 +- Output/InjectionLists/list_netplay.json | 7 ++ Output/Netplay/GALE01r2.ini | 54 +++++++++ Output/Netplay/GALJ01r2.ini | 54 +++++++++ 6 files changed, 263 insertions(+), 6 deletions(-) create mode 100644 Online/Core/LGLExceededGameEnd.asm diff --git a/Online/Core/CustomizeMessageLRAS.asm b/Online/Core/CustomizeMessageLRAS.asm index 8a9b9508..9ea5c6eb 100644 --- a/Online/Core/CustomizeMessageLRAS.asm +++ b/Online/Core/CustomizeMessageLRAS.asm @@ -50,6 +50,9 @@ PLAY_SOUND: branchl r12, SFX_Menu_CommonSound SKIP_PLAY_SOUND: +# 0: Time, 1: Sudden Death, 2: Success, 3: Ready, 4: GO!, 5: Game!, 6: Failure, 7: Complete, 8: Nothing, 9: Crash +# branch r12, 0x802f70c0 # Time +# branch r12, 0x802f70e8 # Complete # branch r12, 0x802f70fc # Failure # branch r12, 0x802f7110 # Game! branch r12, 0x802f7120 # Exit function, shows nothing and plays no sound diff --git a/Online/Core/LGLExceededGameEnd.asm b/Online/Core/LGLExceededGameEnd.asm new file mode 100644 index 00000000..2f8c45fb --- /dev/null +++ b/Online/Core/LGLExceededGameEnd.asm @@ -0,0 +1,140 @@ +################################################################################ +# Address: 0x802f70c4 # HUD_DisplayEndingExclaimationGraphic +################################################################################ + +.include "Common/Common.s" +.include "Online/Online.s" + +.set REG_P1_LEDGE_GRABS, 28 +.set REG_P2_LEDGE_GRABS, 27 +.set REG_LGL_LOSER, 26 +.set REG_DISPLAY_MESSAGE_ID, 25 +.set REG_DO, 24 +.set REG_LGL_LOSER_GRAB_COUNT, 23 +.set REG_FILL_COLOR, 22 +.set REG_FIRST_STRING, 21 + +# This function's main goal is to overwrite the message displayed on an LGL timeout. Here are the options: +# 0: Time, 1: Sudden Death, 2: Success, 3: Ready, 4: GO!, 5: Game!, 6: Failure, 7: Complete, 8: Nothing, 9: Crash + +b CODE_START + +DATA_BLRL: +blrl +.set DO_SCALE, 0 +.float 0.7 +.set DO_POS_X, DO_SCALE + 4 +.float 0 +.set DO_POS_Y, DO_POS_X + 4 +.float 70 +.set DO_STROKE_OFFSET, DO_POS_Y + 4 +.float 1 +.set DO_COLOR_OUTLINE, DO_STROKE_OFFSET + 4 +.byte 0,0,0,255 +.set DO_COLOR_FILL_LOSS, DO_COLOR_OUTLINE + 4 +.byte 215,165,255,255 +.set DO_COLOR_FILL_WIN, DO_COLOR_FILL_LOSS + 4 +.byte 250,250,120,255 +.set DO_STRING_YOU, DO_COLOR_FILL_WIN + 4 +.string "You" +.set DO_STRING_OPP, DO_STRING_YOU + 4 +.string "Opp" +.set DO_STRING, DO_STRING_OPP + 4 +.string "%s Exceeded Ledge Grab Limit of %d: %d" +.align 2 + + +CODE_START: +backup + +# Store values of r4-r6 so we can restore on exit. They are args to the function that will be called. +# The other args, r3, r7, and r8 are about to be set so we don't need to worry about those +mr r31, r4 +mr r30, r5 +mr r29, r6 +li REG_DISPLAY_MESSAGE_ID, 0 + +# Grab data address +bl DATA_BLRL +mflr REG_DO + +# Ensure that this is an online match +getMinorMajor r3 +cmpwi r3, SCENE_ONLINE_IN_GAME +bne EXIT + +# Don't run this code for teams +lbz r3, OFST_R13_ONLINE_MODE(r13) +cmpwi r3, ONLINE_MODE_TEAMS +beq EXIT + +# Check to see if this is an LGL victory + +# Fetch ledge grab amounts +li r3, 0 +branchl r12, 0x80040af0 # PlayerBlock_GetCliffhangerStat +mr REG_P1_LEDGE_GRABS, r3 +li r3, 1 +branchl r12, 0x80040af0 # PlayerBlock_GetCliffhangerStat +mr REG_P2_LEDGE_GRABS, r3 + +# First handle condition where both players are over LGL +cmpwi REG_P1_LEDGE_GRABS, LGL_LIMIT +ble CHECK_LGL_LOSS +cmpwi REG_P2_LEDGE_GRABS, LGL_LIMIT +bgt EXIT # If we branch here both players have more than 45 so ignore LGL + +CHECK_LGL_LOSS: +cmpwi REG_P1_LEDGE_GRABS, LGL_LIMIT +li REG_LGL_LOSER, 0 +mr REG_LGL_LOSER_GRAB_COUNT, REG_P1_LEDGE_GRABS +bgt SET_MODIFIED_MESSAGE # If P1 has more than 45 ledge grabs, P2 wins +cmpwi REG_P2_LEDGE_GRABS, LGL_LIMIT +li REG_LGL_LOSER, 1 +mr REG_LGL_LOSER_GRAB_COUNT, REG_P2_LEDGE_GRABS +bgt SET_MODIFIED_MESSAGE # If P2 has more than 45 ledge grabs, P1 wins +b EXIT # If neither player has more than 45 ledge grabs, exit + +SET_MODIFIED_MESSAGE: +# Check if we won or lost via LGL +lwz r3, OFST_R13_ODB_ADDR(r13) # data buffer address +lbz r3, ODB_LOCAL_PLAYER_INDEX(r3) +cmpw r3, REG_LGL_LOSER # Compare local player index of winner +li REG_DISPLAY_MESSAGE_ID, 2 # Set message to "Success" if we won +addi REG_FILL_COLOR, REG_DO, DO_COLOR_FILL_WIN +addi REG_FIRST_STRING, REG_DO, DO_STRING_OPP +bne DISPLAY_LGL_MESSAGE +li REG_DISPLAY_MESSAGE_ID, 6 # Set message to "Failure" if we lost +addi REG_FILL_COLOR, REG_DO, DO_COLOR_FILL_LOSS +addi REG_FIRST_STRING, REG_DO, DO_STRING_YOU + +# Make game exit transition longer +load r3, 0x8046b6a0 # Some static match state struct +li r4, 0xFD # Default value for this is 0x6e +stb r4, 0x24D5(r3) # Overwrite the GAME! think max time to make it longer + +DISPLAY_LGL_MESSAGE: + +lwz r3, OFST_R13_ODB_ADDR(r13) # data buffer address +lwz r3, ODB_HUD_TEXT_STRUCT(r3) +mr r4, REG_FILL_COLOR +li r5, 1 +addi r6, REG_DO, DO_COLOR_OUTLINE # Outline Color +addi r7, REG_DO, DO_STRING # String +mr r8, REG_FIRST_STRING +li r9, LGL_LIMIT # LGL Limit +mr r10, REG_LGL_LOSER_GRAB_COUNT # Grab Count +lfs f1, DO_SCALE(REG_DO) +lfs f2, DO_POS_X(REG_DO) +lfs f3, DO_POS_Y(REG_DO) +lfs f6, DO_STROKE_OFFSET(REG_DO) +branchl r12, FG_CreateSubtext + +EXIT: +# Restore r4-r6 +mr r4, r31 +mr r5, r30 +mr r6, r29 +mr r3, REG_DISPLAY_MESSAGE_ID # Use the message ID we set earlier. 0 if no LGL which is replaced codeline +restore +addi r7, r31, 0 # Line 802f70c0 may have been clobbered, set it again \ No newline at end of file diff --git a/Online/Static/SubtextFunctions.asm b/Online/Static/SubtextFunctions.asm index 0764c737..7d46212f 100644 --- a/Online/Static/SubtextFunctions.asm +++ b/Online/Static/SubtextFunctions.asm @@ -11,11 +11,10 @@ # r6 = outline color pointer # r7... = string pointers -# f1 = scale size x -# f2 = scale size y -# f3 = x pos -# f4 = y pos -# f5 = inner text y-scale +# f1 = scale size +# f2 = x pos +# f3 = y pos +# f5 = inner text y-scale (unused?) # f6 = outline offset/size ################################################################################ # Output: @@ -42,7 +41,7 @@ .set REG_X, REG_SCALE-1 .set REG_Y, REG_X-1 .set REG_Z, REG_Y-1 -.set REG_OUTLINE_SIZE, REG_Z-1 +.set REG_OUTLINE_SIZE, REG_Z-1 # looks unused? .set REG_OUTLINE_OFFSET, REG_OUTLINE_SIZE-1 # outlines offsets to create size .set REG_LOOP_INDEX, 15 diff --git a/Output/InjectionLists/list_netplay.json b/Output/InjectionLists/list_netplay.json index 71b9f580..a914113e 100644 --- a/Output/InjectionLists/list_netplay.json +++ b/Output/InjectionLists/list_netplay.json @@ -637,6 +637,13 @@ "Annotation": "Online/Core/InitPause.asm", "Tags": "" }, + { + "InjectionAddress": "802F70C4", + "Name": "Required: Slippi Online", + "Codetype": "Auto", + "Annotation": "Online/Core/LGLExceededGameEnd.asm", + "Tags": "" + }, { "InjectionAddress": "801A5014", "Name": "Required: Slippi Online", diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 04a444ea..b560a92f 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1598,6 +1598,60 @@ C216E904 0000004C #Online/Core/InitPause.asm 800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 +C22F70C4 00000035 #Online/Core/LGLExceededGameEnd.asm +48000054 4E800021 +3F333333 00000000 +428C0000 3F800000 +000000FF D7A5FFFF +FAFA78FF 596F7500 +4F707000 25732045 +78636565 64656420 +4C656467 65204772 +6162204C 696D6974 +206F6620 25643A20 +25640000 7C0802A6 +90010004 9421FF20 +BE8100B0 7C9F2378 +7CBE2B78 7CDD3378 +3B200000 4BFFFF91 +7F0802A6 3C608048 +80639D30 5463443E +2C030208 408200F0 +886DAFA0 2C030003 +418200E4 38600000 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C7C1B78 38600001 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C7B1B78 2C1C002D +4081000C 2C1B002D +418100A4 2C1C002D +3B400000 7F97E378 +41810018 2C1B002D +3B400001 7F77DB78 +41810008 48000080 +806DB61C 88630000 +7C03D000 3B200002 +3AD80018 3AB80020 +40820020 3B200006 +3AD80014 3AB8001C +3C608046 6063B6A0 +388000FD 988324D5 +806DB61C 80630912 +7EC4B378 38A00001 +38D80010 38F80024 +7EA8AB78 3920002D +7EEABB78 C0380000 +C0580004 C0780008 +C0D8000C 3D808000 +618C56B4 7D8903A6 +4E800421 7FE4FB78 +7FC5F378 7FA6EB78 +7F23CB78 BA8100B0 +800100E4 382100E0 +7C0803A6 38FF0000 +60000000 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index be62b088..8096bcc1 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1597,6 +1597,60 @@ C216E904 0000004C #Online/Core/InitPause.asm 800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 +C22F70C4 00000035 #Online/Core/LGLExceededGameEnd.asm +48000054 4E800021 +3F333333 00000000 +428C0000 3F800000 +000000FF D7A5FFFF +FAFA78FF 596F7500 +4F707000 25732045 +78636565 64656420 +4C656467 65204772 +6162204C 696D6974 +206F6620 25643A20 +25640000 7C0802A6 +90010004 9421FF20 +BE8100B0 7C9F2378 +7CBE2B78 7CDD3378 +3B200000 4BFFFF91 +7F0802A6 3C608048 +80639D30 5463443E +2C030208 408200F0 +886DAFA0 2C030003 +418200E4 38600000 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C7C1B78 38600001 +3D808004 618C0AF0 +7D8903A6 4E800421 +7C7B1B78 2C1C002D +4081000C 2C1B002D +418100A4 2C1C002D +3B400000 7F97E378 +41810018 2C1B002D +3B400001 7F77DB78 +41810008 48000080 +806DB61C 88630000 +7C03D000 3B200002 +3AD80018 3AB80020 +40820020 3B200006 +3AD80014 3AB8001C +3C608046 6063B6A0 +388000FD 988324D5 +806DB61C 80630912 +7EC4B378 38A00001 +38D80010 38F80024 +7EA8AB78 3920002D +7EEABB78 C0380000 +C0580004 C0780008 +C0D8000C 3D808000 +618C56B4 7D8903A6 +4E800421 7FE4FB78 +7FC5F378 7FA6EB78 +7F23CB78 BA8100B0 +800100E4 382100E0 +7C0803A6 38FF0000 +60000000 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 From 3cd9fb354e6c43d7cbc86203d03bc18d383b040d Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 5 Jul 2024 15:12:00 -0400 Subject: [PATCH 214/217] clean up lgl display ui --- Online/Core/LGLExceededGameEnd.asm | 23 +++---- Output/Netplay/GALE01r2.ini | 103 ++++++++++++++--------------- Output/Netplay/GALJ01r2.ini | 103 ++++++++++++++--------------- 3 files changed, 113 insertions(+), 116 deletions(-) diff --git a/Online/Core/LGLExceededGameEnd.asm b/Online/Core/LGLExceededGameEnd.asm index 2f8c45fb..bef9b90f 100644 --- a/Online/Core/LGLExceededGameEnd.asm +++ b/Online/Core/LGLExceededGameEnd.asm @@ -10,9 +10,8 @@ .set REG_LGL_LOSER, 26 .set REG_DISPLAY_MESSAGE_ID, 25 .set REG_DO, 24 -.set REG_LGL_LOSER_GRAB_COUNT, 23 -.set REG_FILL_COLOR, 22 -.set REG_FIRST_STRING, 21 +.set REG_FILL_COLOR, 23 +.set REG_FIRST_STRING, 22 # This function's main goal is to overwrite the message displayed on an LGL timeout. Here are the options: # 0: Time, 1: Sudden Death, 2: Success, 3: Ready, 4: GO!, 5: Game!, 6: Failure, 7: Complete, 8: Nothing, 9: Crash @@ -25,9 +24,11 @@ blrl .float 0.7 .set DO_POS_X, DO_SCALE + 4 .float 0 -.set DO_POS_Y, DO_POS_X + 4 +.set DO_POS_Y_WIN, DO_POS_X + 4 .float 70 -.set DO_STROKE_OFFSET, DO_POS_Y + 4 +.set DO_POS_Y_LOSS, DO_POS_Y_WIN + 4 +.float 60 +.set DO_STROKE_OFFSET, DO_POS_Y_LOSS + 4 .float 1 .set DO_COLOR_OUTLINE, DO_STROKE_OFFSET + 4 .byte 0,0,0,255 @@ -38,9 +39,9 @@ blrl .set DO_STRING_YOU, DO_COLOR_FILL_WIN + 4 .string "You" .set DO_STRING_OPP, DO_STRING_YOU + 4 -.string "Opp" -.set DO_STRING, DO_STRING_OPP + 4 -.string "%s Exceeded Ledge Grab Limit of %d: %d" +.string "Opponent" +.set DO_STRING, DO_STRING_OPP + 9 +.string "%s Exceeded Ledge Grab Limit of %d" .align 2 @@ -87,11 +88,9 @@ bgt EXIT # If we branch here both players have more than 45 so ignore LGL CHECK_LGL_LOSS: cmpwi REG_P1_LEDGE_GRABS, LGL_LIMIT li REG_LGL_LOSER, 0 -mr REG_LGL_LOSER_GRAB_COUNT, REG_P1_LEDGE_GRABS bgt SET_MODIFIED_MESSAGE # If P1 has more than 45 ledge grabs, P2 wins cmpwi REG_P2_LEDGE_GRABS, LGL_LIMIT li REG_LGL_LOSER, 1 -mr REG_LGL_LOSER_GRAB_COUNT, REG_P2_LEDGE_GRABS bgt SET_MODIFIED_MESSAGE # If P2 has more than 45 ledge grabs, P1 wins b EXIT # If neither player has more than 45 ledge grabs, exit @@ -103,10 +102,12 @@ cmpw r3, REG_LGL_LOSER # Compare local player index of winner li REG_DISPLAY_MESSAGE_ID, 2 # Set message to "Success" if we won addi REG_FILL_COLOR, REG_DO, DO_COLOR_FILL_WIN addi REG_FIRST_STRING, REG_DO, DO_STRING_OPP +lfs f3, DO_POS_Y_WIN(REG_DO) bne DISPLAY_LGL_MESSAGE li REG_DISPLAY_MESSAGE_ID, 6 # Set message to "Failure" if we lost addi REG_FILL_COLOR, REG_DO, DO_COLOR_FILL_LOSS addi REG_FIRST_STRING, REG_DO, DO_STRING_YOU +lfs f3, DO_POS_Y_LOSS(REG_DO) # Make game exit transition longer load r3, 0x8046b6a0 # Some static match state struct @@ -123,10 +124,8 @@ addi r6, REG_DO, DO_COLOR_OUTLINE # Outline Color addi r7, REG_DO, DO_STRING # String mr r8, REG_FIRST_STRING li r9, LGL_LIMIT # LGL Limit -mr r10, REG_LGL_LOSER_GRAB_COUNT # Grab Count lfs f1, DO_SCALE(REG_DO) lfs f2, DO_POS_X(REG_DO) -lfs f3, DO_POS_Y(REG_DO) lfs f6, DO_STROKE_OFFSET(REG_DO) branchl r12, FG_CreateSubtext diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index b560a92f..037daf82 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1598,60 +1598,59 @@ C216E904 0000004C #Online/Core/InitPause.asm 800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 -C22F70C4 00000035 #Online/Core/LGLExceededGameEnd.asm -48000054 4E800021 +C22F70C4 00000034 #Online/Core/LGLExceededGameEnd.asm +48000058 4E800021 3F333333 00000000 -428C0000 3F800000 -000000FF D7A5FFFF -FAFA78FF 596F7500 -4F707000 25732045 -78636565 64656420 -4C656467 65204772 -6162204C 696D6974 -206F6620 25643A20 -25640000 7C0802A6 -90010004 9421FF20 -BE8100B0 7C9F2378 -7CBE2B78 7CDD3378 -3B200000 4BFFFF91 -7F0802A6 3C608048 -80639D30 5463443E -2C030208 408200F0 -886DAFA0 2C030003 -418200E4 38600000 -3D808004 618C0AF0 -7D8903A6 4E800421 -7C7C1B78 38600001 -3D808004 618C0AF0 +428C0000 42700000 +3F800000 000000FF +D7A5FFFF FAFA78FF +596F7500 4F70706F +6E656E74 00257320 +45786365 65646564 +204C6564 67652047 +72616220 4C696D69 +74206F66 20256400 +7C0802A6 90010004 +9421FF20 BE8100B0 +7C9F2378 7CBE2B78 +7CDD3378 3B200000 +4BFFFF8D 7F0802A6 +3C608048 80639D30 +5463443E 2C030208 +408200E8 886DAFA0 +2C030003 418200DC +38600000 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7C1B78 +38600001 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7B1B78 +2C1C002D 4081000C +2C1B002D 4181009C +2C1C002D 3B400000 +41810014 2C1B002D +3B400001 41810008 +48000080 806DB61C +88630000 7C03D000 +3B200002 3AF8001C +3AD80024 C0780008 +40820024 3B200006 +3AF80018 3AD80020 +C078000C 3C608046 +6063B6A0 388000FD +988324D5 806DB61C +80630912 7EE4BB78 +38A00001 38D80014 +38F8002D 7EC8B378 +3920002D C0380000 +C0580004 C0D80010 +3D808000 618C56B4 7D8903A6 4E800421 -7C7B1B78 2C1C002D -4081000C 2C1B002D -418100A4 2C1C002D -3B400000 7F97E378 -41810018 2C1B002D -3B400001 7F77DB78 -41810008 48000080 -806DB61C 88630000 -7C03D000 3B200002 -3AD80018 3AB80020 -40820020 3B200006 -3AD80014 3AB8001C -3C608046 6063B6A0 -388000FD 988324D5 -806DB61C 80630912 -7EC4B378 38A00001 -38D80010 38F80024 -7EA8AB78 3920002D -7EEABB78 C0380000 -C0580004 C0780008 -C0D8000C 3D808000 -618C56B4 7D8903A6 -4E800421 7FE4FB78 -7FC5F378 7FA6EB78 -7F23CB78 BA8100B0 -800100E4 382100E0 -7C0803A6 38FF0000 -60000000 00000000 +7FE4FB78 7FC5F378 +7FA6EB78 7F23CB78 +BA8100B0 800100E4 +382100E0 7C0803A6 +38FF0000 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 8096bcc1..41204409 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1597,60 +1597,59 @@ C216E904 0000004C #Online/Core/InitPause.asm 800100E4 382100E0 7C0803A6 4E800020 881F0001 00000000 -C22F70C4 00000035 #Online/Core/LGLExceededGameEnd.asm -48000054 4E800021 +C22F70C4 00000034 #Online/Core/LGLExceededGameEnd.asm +48000058 4E800021 3F333333 00000000 -428C0000 3F800000 -000000FF D7A5FFFF -FAFA78FF 596F7500 -4F707000 25732045 -78636565 64656420 -4C656467 65204772 -6162204C 696D6974 -206F6620 25643A20 -25640000 7C0802A6 -90010004 9421FF20 -BE8100B0 7C9F2378 -7CBE2B78 7CDD3378 -3B200000 4BFFFF91 -7F0802A6 3C608048 -80639D30 5463443E -2C030208 408200F0 -886DAFA0 2C030003 -418200E4 38600000 -3D808004 618C0AF0 -7D8903A6 4E800421 -7C7C1B78 38600001 -3D808004 618C0AF0 +428C0000 42700000 +3F800000 000000FF +D7A5FFFF FAFA78FF +596F7500 4F70706F +6E656E74 00257320 +45786365 65646564 +204C6564 67652047 +72616220 4C696D69 +74206F66 20256400 +7C0802A6 90010004 +9421FF20 BE8100B0 +7C9F2378 7CBE2B78 +7CDD3378 3B200000 +4BFFFF8D 7F0802A6 +3C608048 80639D30 +5463443E 2C030208 +408200E8 886DAFA0 +2C030003 418200DC +38600000 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7C1B78 +38600001 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7B1B78 +2C1C002D 4081000C +2C1B002D 4181009C +2C1C002D 3B400000 +41810014 2C1B002D +3B400001 41810008 +48000080 806DB61C +88630000 7C03D000 +3B200002 3AF8001C +3AD80024 C0780008 +40820024 3B200006 +3AF80018 3AD80020 +C078000C 3C608046 +6063B6A0 388000FD +988324D5 806DB61C +80630912 7EE4BB78 +38A00001 38D80014 +38F8002D 7EC8B378 +3920002D C0380000 +C0580004 C0D80010 +3D808000 618C56B4 7D8903A6 4E800421 -7C7B1B78 2C1C002D -4081000C 2C1B002D -418100A4 2C1C002D -3B400000 7F97E378 -41810018 2C1B002D -3B400001 7F77DB78 -41810008 48000080 -806DB61C 88630000 -7C03D000 3B200002 -3AD80018 3AB80020 -40820020 3B200006 -3AD80014 3AB8001C -3C608046 6063B6A0 -388000FD 988324D5 -806DB61C 80630912 -7EC4B378 38A00001 -38D80010 38F80024 -7EA8AB78 3920002D -7EEABB78 C0380000 -C0580004 C0780008 -C0D8000C 3D808000 -618C56B4 7D8903A6 -4E800421 7FE4FB78 -7FC5F378 7FA6EB78 -7F23CB78 BA8100B0 -800100E4 382100E0 -7C0803A6 38FF0000 -60000000 00000000 +7FE4FB78 7FC5F378 +7FA6EB78 7F23CB78 +BA8100B0 800100E4 +382100E0 7C0803A6 +38FF0000 00000000 C21A5014 0000005C #Online/Core/LoopEngineForRollback.asm 41A20014 3D80801A 618C5024 7D8903A6 From b525be6ca1037c1fe0368c0c01f1ca466ea81224 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Fri, 5 Jul 2024 15:31:55 -0400 Subject: [PATCH 215/217] fix bug where success / failure had diff timers --- Online/Core/LGLExceededGameEnd.asm | 4 ++-- Output/Netplay/GALE01r2.ini | 2 +- Output/Netplay/GALJ01r2.ini | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Online/Core/LGLExceededGameEnd.asm b/Online/Core/LGLExceededGameEnd.asm index bef9b90f..dbbcc8a0 100644 --- a/Online/Core/LGLExceededGameEnd.asm +++ b/Online/Core/LGLExceededGameEnd.asm @@ -109,13 +109,13 @@ addi REG_FILL_COLOR, REG_DO, DO_COLOR_FILL_LOSS addi REG_FIRST_STRING, REG_DO, DO_STRING_YOU lfs f3, DO_POS_Y_LOSS(REG_DO) +DISPLAY_LGL_MESSAGE: # Make game exit transition longer load r3, 0x8046b6a0 # Some static match state struct li r4, 0xFD # Default value for this is 0x6e stb r4, 0x24D5(r3) # Overwrite the GAME! think max time to make it longer -DISPLAY_LGL_MESSAGE: - +# Print text on screen indicating what happened lwz r3, OFST_R13_ODB_ADDR(r13) # data buffer address lwz r3, ODB_HUD_TEXT_STRUCT(r3) mr r4, REG_FILL_COLOR diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index 037daf82..e68cabc5 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -1634,7 +1634,7 @@ D7A5FFFF FAFA78FF 88630000 7C03D000 3B200002 3AF8001C 3AD80024 C0780008 -40820024 3B200006 +40820014 3B200006 3AF80018 3AD80020 C078000C 3C608046 6063B6A0 388000FD diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index 41204409..afe26c6d 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -1633,7 +1633,7 @@ D7A5FFFF FAFA78FF 88630000 7C03D000 3B200002 3AF8001C 3AD80024 C0780008 -40820024 3B200006 +40820014 3B200006 3AF80018 3AD80020 C078000C 3C608046 6063B6A0 388000FD From 572e3f3340a07e92f2bc110e0899048af372c429 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Jul 2024 18:05:57 -0400 Subject: [PATCH 216/217] improve game end message send coverage --- Online/Slippi Online Scene/main.asm | 28 +- Output/Netplay/GALE01r2.ini | 590 ++++++++++++++-------------- Output/Netplay/GALJ01r2.ini | 590 ++++++++++++++-------------- 3 files changed, 616 insertions(+), 592 deletions(-) diff --git a/Online/Slippi Online Scene/main.asm b/Online/Slippi Online Scene/main.asm index aa2587e7..0199dd72 100644 --- a/Online/Slippi Online Scene/main.asm +++ b/Online/Slippi Online Scene/main.asm @@ -607,13 +607,26 @@ bne VSSceneDecide_SkipRankedHandler # If connection is not active, just go back to CSS lbz r3, MSRB_CONNECTION_STATE(REG_MSRB_ADDR) cmpwi r3, MM_STATE_IDLE -bne VSSceneDecide_ConnectionActive +beq VSSceneDecide_Disconnected + +# I think I can access ODB values here since we are still in the VS scene +# If last match ended in a disconnect, return to CSS +lwz r4, OFST_R13_ODB_ADDR(r13) # ODB address +lbz r3, ODB_IS_DISCONNECT_STATE_DISPLAYED(r4) +cmpwi r3, 1 +beq VSSceneDecide_Disconnected + +b VSSceneDecide_ConnectionActive + +VSSceneDecide_Disconnected: # Report disconnect li r3, 1 bl FN_ReportSetCompletion -b VSSceneDecide_SkipRankedHandler -VSSceneDecide_ConnectionActive: +# We still trigger disconnection calls here because the previous game can end with disconnected message +# while the connection is still technically active +b VSSceneDecide_DisconnectAndReturnToCSS +VSSceneDecide_ConnectionActive: bl GamePrepData_BLRL mflr REG_GPD @@ -683,6 +696,7 @@ VSSceneDecide_RankedSetOver: li r3, 0 bl FN_ReportSetCompletion +VSSceneDecide_DisconnectAndReturnToCSS: # Disconnect from opponent # Prepare buffer for EXI transfer li r3, 1 @@ -1424,9 +1438,11 @@ beq GamePrepSceneDecide_ExecNormal # Here we have disconnected from opponent, go back to CSS -# I commented the below because the game setup scene itself already sends the communication -# li r3, 1 -# bl FN_ReportSetCompletion +# In theory this should have already been sent by the game setup scene but there's +# no harm in sending a duplicate and this covers our bases in the case of a poorly timed +# disconnect, such as maybe right before the game tries to load +li r3, 1 +bl FN_ReportSetCompletion # Go back to CSS load r4, 0x80479d30 diff --git a/Output/Netplay/GALE01r2.ini b/Output/Netplay/GALE01r2.ini index e68cabc5..04d1892c 100644 --- a/Output/Netplay/GALE01r2.ini +++ b/Output/Netplay/GALE01r2.ini @@ -4850,7 +4850,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000208 #Online/Slippi Online Scene/main.asm +C21A45B8 0000020C #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4861,7 +4861,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000FD4 80830000 +48000FF0 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4893,7 +4893,7 @@ BE8100B0 3C80803E BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000BA5 +7C8802A6 48000BB9 7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 @@ -4928,11 +4928,11 @@ BA8100B0 800100E4 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 4800062D -48000969 20000000 +04030000 48000641 +4800097D 20000000 80490880 804D68D0 -05030000 48000CC9 -48000D09 50000000 +05030000 48000CDD +48000D1D 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4970,7 +4970,7 @@ BE8100B0 7C7E1B78 7F6802A6 7F63DB78 3880001C 3D808000 618CC160 7D8903A6 -4E800421 4800093D +4E800421 48000951 7C6802A6 907B0018 38600003 987B0000 38600001 B07B0001 @@ -4984,7 +4984,7 @@ BE8100B0 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -480007E5 3C808047 +480007F9 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -5012,7 +5012,7 @@ BE8100B0 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000705 3C808047 +48000719 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -5040,337 +5040,341 @@ BE8100B0 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 4082011C +2C030000 40820130 887F0000 2C030000 -40820010 38600001 -4BFFFF4D 48000104 -4BFFFC9D 7F6802A6 -3C808046 6084B6A0 -88640008 987B0017 -480006DD 7C7C1B78 -2C1C0000 40800014 -887B0006 38630001 -987B0006 48000060 -9B9B0005 A09B0001 -38840006 7F9B21AE -387C0003 7C9B18AE -38A40001 7CBB19AE -1C9C0002 38840010 -A07F026A 7C7B232E -889B0000 38840001 -38600002 7C841B96 -7C052000 4080002C -A07B0001 38630001 -B07B0001 38600000 -987B0006 3C808047 -60849D30 38600006 -98640005 4800006C -38600000 4BFFFE99 -38600001 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BA 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 +41820018 808DB61C +88640011 2C030001 +41820008 48000010 +38600001 4BFFFF39 +480000B4 4BFFFC89 +7F6802A6 3C808046 +6084B6A0 88640008 +987B0017 480006DD +7C7C1B78 2C1C0000 +40800014 887B0006 +38630001 987B0006 +48000060 9B9B0005 +A09B0001 38840006 +7F9B21AE 387C0003 +7C9B18AE 38A40001 +7CBB19AE 1C9C0002 +38840010 A07F026A +7C7B232E 889B0000 +38840001 38600002 +7C841B96 7C052000 +4080002C A07B0001 +38630001 B07B0001 +38600000 987B0006 3C808047 60849D30 -38600001 98640005 -887F0003 48000735 -986DAFC9 886DAFA0 -2C030003 40820020 -887F0003 38800001 -2C030000 40820008 -38800000 988DAFC9 -4800003C 3A800000 -3AA00000 7E83A378 -480006F9 2C030000 -41820008 3AB50001 -3A940001 2C140004 -4180FFE4 2C150001 -4182000C 38600000 -986DAFC9 3E808047 -62949DA4 887F0003 -480006C1 2C030000 -41820018 38600001 -98740000 38600000 -9874005D 48000014 -38600000 98740000 -38600001 9874005D -886DAFA0 2C030003 -4182000C 2C030000 -4082000C 38600000 -98740004 38600000 -986DAFCA 38600004 +38600006 98640005 +4800006C 38600000 +4BFFFE85 38600001 3D808037 618CF1E4 7D8903A6 4E800421 -7C7E1B78 386000BC +7C7E1B78 386000BA 987E0000 7FC3F378 38800001 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -7FC3F378 38800004 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C80804D -807E0000 90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 7FE3FB78 +4E800421 3C808047 +60849D30 38600001 +98640005 887F0003 +48000735 986DAFC9 +886DAFA0 2C030003 +40820020 887F0003 +38800001 2C030000 +40820008 38800000 +988DAFC9 4800003C +3A800000 3AA00000 +7E83A378 480006F9 +2C030000 41820008 +3AB50001 3A940001 +2C140004 4180FFE4 +2C150001 4182000C +38600000 986DAFC9 +3E808047 62949DA4 +887F0003 480006C1 +2C030000 41820018 +38600001 98740000 +38600000 9874005D +48000014 38600000 +98740000 38600001 +9874005D 886DAFA0 +2C030003 4182000C +2C030000 4082000C +38600000 98740004 +38600000 986DAFCA +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BC 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +38800004 38A00000 +3D808000 618C55F0 +7D8903A6 4E800421 +3C80804D 807E0000 +90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -01780101 01FF2121 -FF2121EE 0000EE00 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -83ED8840 3BFF0598 -886DAFA0 2C030003 -40820048 3BA00000 -1CBD0024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +4E800021 01780101 +01FF2121 FF2121EE +0000EE00 7C0802A6 +90010004 9421FF20 +BE8100B0 38600000 +3D808000 618C5610 7D8903A6 4E800421 -1C9D0024 38840063 -7C7F21AE 3BBD0001 -2C1D0004 4180FFC4 -3C608049 60630888 -4BFFFF65 7C8802A6 -38A00010 3D808000 -618C31F4 7D8903A6 -4E800421 3C808049 -60840888 887F0060 -98640005 887F0063 -9864000B 887F0084 -98640008 887F0087 -9864000E 38600000 -9864FFFF 9864FFFB -887E0264 2C030000 -418200F4 887E0003 -1C630024 386302C5 -7F7E18AE 38600002 -98640002 38600001 -9864FFFB 98640006 -98640007 98640009 -9864000A 9864000C -9864000D 9864000F -98640010 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 40820030 -1CBD0024 38A50060 -7CBF28AE 38DC0005 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000B 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840003 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 41820030 -1CBD0024 38A50060 -7CBF28AE 38DC0008 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000E 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840004 3C808043 -60842078 887F0060 -90640014 887F0063 -98640018 887F0084 -9064001C 887F0087 -98640020 887E0264 -2C030000 41820024 -887F00A8 90640024 -887F00AB 98640028 -887F00CC 9064002C -887F00CF 98640030 -A07F000E 9064000C -3D808001 618C8254 -7D8903A6 4E800421 -386000C7 3D808001 -618C8C2C 7D8903A6 -4E800421 38600004 -3D808001 618C7700 +7C7E1B78 83ED8840 +3BFF0598 886DAFA0 +2C030003 40820048 +3BA00000 1CBD0024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C9D0024 +38840063 7C7F21AE +3BBD0001 2C1D0004 +4180FFC4 3C608049 +60630888 4BFFFF65 +7C8802A6 38A00010 +3D808000 618C31F4 7D8903A6 4E800421 -3860001C 3D808002 -618C6F2C 7D8903A6 -4E800421 3A800000 -1C140024 7FF5FB78 -7EB50214 3D808000 -618C569C 7D8903A6 -4E800421 88950060 -7C840774 7C041800 -41820028 38600000 -3D808000 618C56A0 +3C808049 60840888 +887F0060 98640005 +887F0063 9864000B +887F0084 98640008 +887F0087 9864000E +38600000 9864FFFF +9864FFFB 887E0264 +2C030000 418200F4 +887E0003 1C630024 +386302C5 7F7E18AE +38600002 98640002 +38600001 9864FFFB +98640006 98640007 +98640009 9864000A +9864000C 9864000D +9864000F 98640010 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +40820030 1CBD0024 +38A50060 7CBF28AE +38DC0005 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000B +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840003 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +41820030 1CBD0024 +38A50060 7CBF28AE +38DC0008 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000E +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840004 +3C808043 60842078 +887F0060 90640014 +887F0063 98640018 +887F0084 9064001C +887F0087 98640020 +887E0264 2C030000 +41820024 887F00A8 +90640024 887F00AB +98640028 887F00CC +9064002C 887F00CF +98640030 A07F000E +9064000C 3D808001 +618C8254 7D8903A6 +4E800421 386000C7 +3D808001 618C8C2C +7D8903A6 4E800421 +38600004 3D808001 +618C7700 7D8903A6 +4E800421 3860001C +3D808002 618C6F2C 7D8903A6 4E800421 -3D808000 618C56A8 +3A800000 1C140024 +7FF5FB78 7EB50214 +3D808000 618C569C 7D8903A6 4E800421 -3A940001 2C140006 -3AB50024 4180FFB0 -A07F000E 3D808022 -618C519C 7D8903A6 -4E800421 7C641B78 -38600001 3D808000 +88950060 7C840774 +7C041800 41820028 +38600000 3D808000 618C56A0 7D8903A6 4E800421 3D808000 618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 -4E800421 BA8100B0 +4E800421 3A940001 +2C140006 3AB50024 +4180FFB0 A07F000E +3D808022 618C519C +7D8903A6 4E800421 +7C641B78 38600001 +3D808000 618C56A0 +7D8903A6 4E800421 +3D808000 618C56A8 +7D8903A6 4E800421 +3D808002 618C7168 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 3C808047 +60849D30 38600003 +98640005 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -3C808047 60849D30 -38600003 98640005 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7F1B78 +83CD8840 3BDE0598 +7FC3F378 389F025C +38A00138 3D808000 +618C31F4 7D8903A6 +4E800421 7FC3F378 +3D808000 618C5694 +7D8903A6 4E800421 +3D808017 618CEB30 +7D8903A6 4E800421 +889F02BC 98830000 +889F02BF 98830001 +38800000 98830002 +38800003 98830005 +38800078 98830004 +3C80803D 6084DEC8 +8084000C 887F02E0 +98640002 38602121 +B0640003 3C808049 +60840880 887F02E3 +98640016 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 38600000 -3D808000 618C5610 +4E800020 4E800021 +7C0802A6 90010004 +9421FF20 BE8100B0 +3FE08047 63FF9DA4 +887F0004 2C030001 +41820010 2C030002 +418200C8 48000110 +38600000 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808004 +618C0AF0 7D8903A6 +4E800421 2C1B002D +4081000C 2C03002D +41810014 2C1B002D +418100C4 2C03002D +418100B4 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -7C7F1B78 83CD8840 -3BDE0598 7FC3F378 -389F025C 38A00138 -3D808000 618C31F4 +7C7B1B78 38600001 +3D808003 618C3BD8 7D8903A6 4E800421 -7FC3F378 3D808000 -618C5694 7D8903A6 -4E800421 3D808017 -618CEB30 7D8903A6 -4E800421 889F02BC -98830000 889F02BF -98830001 38800000 -98830002 38800003 -98830005 38800078 -98830004 3C80803D -6084DEC8 8084000C -887F02E0 98640002 -38602121 B0640003 -3C808049 60840880 -887F02E3 98640016 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 3FE08047 -63FF9DA4 887F0004 -2C030001 41820010 -2C030002 418200C8 -48000110 38600000 -3D808004 618C0AF0 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 7D8903A6 4E800421 7C7B1B78 38600001 -3D808004 618C0AF0 +3D808003 618C42B4 7D8903A6 4E800421 -2C1B002D 4081000C -2C03002D 41810014 -2C1B002D 418100C4 -2C03002D 418100B4 +7C1B1800 41800048 +4181004C 48000050 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 +4E800421 2C030000 +40820024 38600001 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA8100B0 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +83E30010 887F0006 +2C030000 40820014 +3D808001 618C74BC +7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +887E0000 2C030004 +41820020 38600001 +4BFFF56D 3C808047 +60849D30 38600001 +98640005 48000038 887F0006 2C030000 -40820014 3D808001 -618C74BC 7D8903A6 -4E800421 BA8100B0 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFC09 3C808047 +60849D30 38600005 +98640005 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -83E30010 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0000 -2C030004 41820018 -3C808047 60849D30 -38600001 98640005 -48000038 887F0006 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFC11 -3C808047 60849D30 -38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 diff --git a/Output/Netplay/GALJ01r2.ini b/Output/Netplay/GALJ01r2.ini index afe26c6d..6ccc116a 100644 --- a/Output/Netplay/GALJ01r2.ini +++ b/Output/Netplay/GALJ01r2.ini @@ -4849,7 +4849,7 @@ C21BFA20 00000012 #Online/Slippi Online Scene/boot.asm 3D80801B 618C136C 7D8903A6 4E800420 38600001 00000000 -C21A45B8 00000208 #Online/Slippi Online Scene/main.asm +C21A45B8 0000020C #Online/Slippi Online Scene/main.asm 3BA30004 7C0802A6 90010004 9421FF20 BE8100B0 3C80803E @@ -4860,7 +4860,7 @@ BE8100B0 3C80803E 986DAFEC 986DAFE0 38600008 480001C1 7C8802A6 4800002D -48000FD4 80830000 +48000FF0 80830000 5485467A 2C050048 40820014 548401BA 7C840734 7C841A14 @@ -4892,7 +4892,7 @@ BE8100B0 3C80803E BE8100B0 3C808045 6084ABF0 886DAEF8 98640006 48000159 -7C8802A6 48000BA5 +7C8802A6 48000BB9 7C6802A6 90640018 3D808000 618C56B8 7D8903A6 4E800421 @@ -4927,11 +4927,11 @@ BA8100B0 800100E4 03030000 00000000 00000000 05000000 00000000 00000000 -04030000 4800062D -48000969 20000000 +04030000 48000641 +4800097D 20000000 80490880 804D68D0 -05030000 48000CC9 -48000D09 50000000 +05030000 48000CDD +48000D1D 50000000 48000019 48000015 FF000000 4E800021 81940000 4E800021 @@ -4969,7 +4969,7 @@ BE8100B0 7C7E1B78 7F6802A6 7F63DB78 3880001C 3D808000 618CC160 7D8903A6 -4E800421 4800093D +4E800421 48000951 7C6802A6 907B0018 38600003 987B0000 38600001 B07B0001 @@ -4983,7 +4983,7 @@ BE8100B0 7C7E1B78 2C030000 40820000 886DAFCA 2C030000 41820020 48000004 -480007E5 3C808047 +480007F9 3C808047 60849D30 38600005 98640005 48000018 3C808047 60849D30 @@ -5011,7 +5011,7 @@ BE8100B0 7C7F1B78 4E800421 7C7E1B78 887E0001 889E0002 7C032000 4082001C -48000705 3C808047 +48000719 3C808047 60849D30 38600005 98640005 4800001C 38600000 3D80801A @@ -5039,337 +5039,341 @@ BE8100B0 3D80801B 3D808000 618C5610 7D8903A6 4E800421 7C7F1B78 886DAFA0 -2C030000 4082011C +2C030000 40820130 887F0000 2C030000 -40820010 38600001 -4BFFFF4D 48000104 -4BFFFC9D 7F6802A6 -3C808046 6084B6A0 -88640008 987B0017 -480006DD 7C7C1B78 -2C1C0000 40800014 -887B0006 38630001 -987B0006 48000060 -9B9B0005 A09B0001 -38840006 7F9B21AE -387C0003 7C9B18AE -38A40001 7CBB19AE -1C9C0002 38840010 -A07F026A 7C7B232E -889B0000 38840001 -38600002 7C841B96 -7C052000 4080002C -A07B0001 38630001 -B07B0001 38600000 -987B0006 3C808047 -60849D30 38600006 -98640005 4800006C -38600000 4BFFFE99 -38600001 3D808037 -618CF1E4 7D8903A6 -4E800421 7C7E1B78 -386000BA 987E0000 -7FC3F378 38800001 -38A00001 3D808000 -618C55F0 7D8903A6 -4E800421 7FC3F378 -3D808037 618CF1B0 -7D8903A6 4E800421 +41820018 808DB61C +88640011 2C030001 +41820008 48000010 +38600001 4BFFFF39 +480000B4 4BFFFC89 +7F6802A6 3C808046 +6084B6A0 88640008 +987B0017 480006DD +7C7C1B78 2C1C0000 +40800014 887B0006 +38630001 987B0006 +48000060 9B9B0005 +A09B0001 38840006 +7F9B21AE 387C0003 +7C9B18AE 38A40001 +7CBB19AE 1C9C0002 +38840010 A07F026A +7C7B232E 889B0000 +38840001 38600002 +7C841B96 7C052000 +4080002C A07B0001 +38630001 B07B0001 +38600000 987B0006 3C808047 60849D30 -38600001 98640005 -887F0003 48000735 -986DAFC9 886DAFA0 -2C030003 40820020 -887F0003 38800001 -2C030000 40820008 -38800000 988DAFC9 -4800003C 3A800000 -3AA00000 7E83A378 -480006F9 2C030000 -41820008 3AB50001 -3A940001 2C140004 -4180FFE4 2C150001 -4182000C 38600000 -986DAFC9 3E808047 -62949DA4 887F0003 -480006C1 2C030000 -41820018 38600001 -98740000 38600000 -9874005D 48000014 -38600000 98740000 -38600001 9874005D -886DAFA0 2C030003 -4182000C 2C030000 -4082000C 38600000 -98740004 38600000 -986DAFCA 38600004 +38600006 98640005 +4800006C 38600000 +4BFFFE85 38600001 3D808037 618CF1E4 7D8903A6 4E800421 -7C7E1B78 386000BC +7C7E1B78 386000BA 987E0000 7FC3F378 38800001 38A00001 3D808000 618C55F0 7D8903A6 4E800421 -7FC3F378 38800004 -38A00000 3D808000 -618C55F0 7D8903A6 -4E800421 3C80804D -807E0000 90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 -4E800421 7FE3FB78 +4E800421 3C808047 +60849D30 38600001 +98640005 887F0003 +48000735 986DAFC9 +886DAFA0 2C030003 +40820020 887F0003 +38800001 2C030000 +40820008 38800000 +988DAFC9 4800003C +3A800000 3AA00000 +7E83A378 480006F9 +2C030000 41820008 +3AB50001 3A940001 +2C140004 4180FFE4 +2C150001 4182000C +38600000 986DAFC9 +3E808047 62949DA4 +887F0003 480006C1 +2C030000 41820018 +38600001 98740000 +38600000 9874005D +48000014 38600000 +98740000 38600001 +9874005D 886DAFA0 +2C030003 4182000C +2C030000 4082000C +38600000 98740004 +38600000 986DAFCA +38600004 3D808037 +618CF1E4 7D8903A6 +4E800421 7C7E1B78 +386000BC 987E0000 +7FC3F378 38800001 +38A00001 3D808000 +618C55F0 7D8903A6 +4E800421 7FC3F378 +38800004 38A00000 +3D808000 618C55F0 +7D8903A6 4E800421 +3C80804D 807E0000 +90645F90 7FC3F378 3D808037 618CF1B0 7D8903A6 4E800421 -BA8100B0 800100E4 -382100E0 7C0803A6 -4E800020 4E800021 -01780101 01FF2121 -FF2121EE 0000EE00 -7C0802A6 90010004 -9421FF20 BE8100B0 -38600000 3D808000 -618C5610 7D8903A6 -4E800421 7C7E1B78 -83ED8840 3BFF0598 -886DAFA0 2C030003 -40820048 3BA00000 -1CBD0024 38650069 -7C7F18AE 38630001 -38850060 7C9F20AE -3D808000 618C56B0 +7FE3FB78 3D808037 +618CF1B0 7D8903A6 +4E800421 BA8100B0 +800100E4 382100E0 +7C0803A6 4E800020 +4E800021 01780101 +01FF2121 FF2121EE +0000EE00 7C0802A6 +90010004 9421FF20 +BE8100B0 38600000 +3D808000 618C5610 7D8903A6 4E800421 -1C9D0024 38840063 -7C7F21AE 3BBD0001 -2C1D0004 4180FFC4 -3C608049 60630888 -4BFFFF65 7C8802A6 -38A00010 3D808000 -618C31F4 7D8903A6 -4E800421 3C808049 -60840888 887F0060 -98640005 887F0063 -9864000B 887F0084 -98640008 887F0087 -9864000E 38600000 -9864FFFF 9864FFFB -887E0264 2C030000 -418200F4 887E0003 -1C630024 386302C5 -7F7E18AE 38600002 -98640002 38600001 -9864FFFB 98640006 -98640007 98640009 -9864000A 9864000C -9864000D 9864000F -98640010 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 40820030 -1CBD0024 38A50060 -7CBF28AE 38DC0005 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000B 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840003 3BA00000 -3B800000 1C7D0024 -38630069 7C7F18AE -7C03D800 41820030 -1CBD0024 38A50060 -7CBF28AE 38DC0008 -7CA621AE 1CBD0024 -38A50063 7CBF28AE -38DC000E 7CA621AE -3B9C0001 3BBD0001 -2C1D0004 4180FFB8 -9B840004 3C808043 -60842078 887F0060 -90640014 887F0063 -98640018 887F0084 -9064001C 887F0087 -98640020 887E0264 -2C030000 41820024 -887F00A8 90640024 -887F00AB 98640028 -887F00CC 9064002C -887F00CF 98640030 -A07F000E 9064000C -3D808001 618C8254 -7D8903A6 4E800421 -386000C7 3D808001 -618C8C2C 7D8903A6 -4E800421 38600004 -3D808001 618C7700 +7C7E1B78 83ED8840 +3BFF0598 886DAFA0 +2C030003 40820048 +3BA00000 1CBD0024 +38650069 7C7F18AE +38630001 38850060 +7C9F20AE 3D808000 +618C56B0 7D8903A6 +4E800421 1C9D0024 +38840063 7C7F21AE +3BBD0001 2C1D0004 +4180FFC4 3C608049 +60630888 4BFFFF65 +7C8802A6 38A00010 +3D808000 618C31F4 7D8903A6 4E800421 -3860001C 3D808002 -618C6F2C 7D8903A6 -4E800421 3A800000 -1C140024 7FF5FB78 -7EB50214 3D808000 -618C569C 7D8903A6 -4E800421 88950060 -7C840774 7C041800 -41820028 38600000 -3D808000 618C56A0 +3C808049 60840888 +887F0060 98640005 +887F0063 9864000B +887F0084 98640008 +887F0087 9864000E +38600000 9864FFFF +9864FFFB 887E0264 +2C030000 418200F4 +887E0003 1C630024 +386302C5 7F7E18AE +38600002 98640002 +38600001 9864FFFB +98640006 98640007 +98640009 9864000A +9864000C 9864000D +9864000F 98640010 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +40820030 1CBD0024 +38A50060 7CBF28AE +38DC0005 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000B +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840003 +3BA00000 3B800000 +1C7D0024 38630069 +7C7F18AE 7C03D800 +41820030 1CBD0024 +38A50060 7CBF28AE +38DC0008 7CA621AE +1CBD0024 38A50063 +7CBF28AE 38DC000E +7CA621AE 3B9C0001 +3BBD0001 2C1D0004 +4180FFB8 9B840004 +3C808043 60842078 +887F0060 90640014 +887F0063 98640018 +887F0084 9064001C +887F0087 98640020 +887E0264 2C030000 +41820024 887F00A8 +90640024 887F00AB +98640028 887F00CC +9064002C 887F00CF +98640030 A07F000E +9064000C 3D808001 +618C8254 7D8903A6 +4E800421 386000C7 +3D808001 618C8C2C +7D8903A6 4E800421 +38600004 3D808001 +618C7700 7D8903A6 +4E800421 3860001C +3D808002 618C6F2C 7D8903A6 4E800421 -3D808000 618C56A8 +3A800000 1C140024 +7FF5FB78 7EB50214 +3D808000 618C569C 7D8903A6 4E800421 -3A940001 2C140006 -3AB50024 4180FFB0 -A07F000E 3D808022 -618C519C 7D8903A6 -4E800421 7C641B78 -38600001 3D808000 +88950060 7C840774 +7C041800 41820028 +38600000 3D808000 618C56A0 7D8903A6 4E800421 3D808000 618C56A8 7D8903A6 -4E800421 3D808002 -618C7168 7D8903A6 -4E800421 BA8100B0 +4E800421 3A940001 +2C140006 3AB50024 +4180FFB0 A07F000E +3D808022 618C519C +7D8903A6 4E800421 +7C641B78 38600001 +3D808000 618C56A0 +7D8903A6 4E800421 +3D808000 618C56A8 +7D8903A6 4E800421 +3D808002 618C7168 +7D8903A6 4E800421 +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 3C808047 +60849D30 38600003 +98640005 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -3C808047 60849D30 -38600003 98640005 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7F1B78 +83CD8840 3BDE0598 +7FC3F378 389F025C +38A00138 3D808000 +618C31F4 7D8903A6 +4E800421 7FC3F378 +3D808000 618C5694 +7D8903A6 4E800421 +3D808017 618CEB30 +7D8903A6 4E800421 +889F02BC 98830000 +889F02BF 98830001 +38800000 98830002 +38800003 98830005 +38800078 98830004 +3C80803D 6084DEC8 +8084000C 887F02E0 +98640002 38602121 +B0640003 3C808049 +60840880 887F02E3 +98640016 7FE3FB78 +3D808037 618CF1B0 +7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 7C0802A6 -90010004 9421FF20 -BE8100B0 38600000 -3D808000 618C5610 +4E800020 4E800021 +7C0802A6 90010004 +9421FF20 BE8100B0 +3FE08047 63FF9DA4 +887F0004 2C030001 +41820010 2C030002 +418200C8 48000110 +38600000 3D808004 +618C0AF0 7D8903A6 +4E800421 7C7B1B78 +38600001 3D808004 +618C0AF0 7D8903A6 +4E800421 2C1B002D +4081000C 2C03002D +41810014 2C1B002D +418100C4 2C03002D +418100B4 38600000 +3D808003 618C3BD8 7D8903A6 4E800421 -7C7F1B78 83CD8840 -3BDE0598 7FC3F378 -389F025C 38A00138 -3D808000 618C31F4 +7C7B1B78 38600001 +3D808003 618C3BD8 7D8903A6 4E800421 -7FC3F378 3D808000 -618C5694 7D8903A6 -4E800421 3D808017 -618CEB30 7D8903A6 -4E800421 889F02BC -98830000 889F02BF -98830001 38800000 -98830002 38800003 -98830005 38800078 -98830004 3C80803D -6084DEC8 8084000C -887F02E0 98640002 -38602121 B0640003 -3C808049 60840880 -887F02E3 98640016 -7FE3FB78 3D808037 -618CF1B0 7D8903A6 -4E800421 BA8100B0 -800100E4 382100E0 -7C0803A6 4E800020 -4E800021 7C0802A6 -90010004 9421FF20 -BE8100B0 3FE08047 -63FF9DA4 887F0004 -2C030001 41820010 -2C030002 418200C8 -48000110 38600000 -3D808004 618C0AF0 +7C1B1800 41810080 +41800084 38600000 +3D808003 618C42B4 7D8903A6 4E800421 7C7B1B78 38600001 -3D808004 618C0AF0 +3D808003 618C42B4 7D8903A6 4E800421 -2C1B002D 4081000C -2C03002D 41810014 -2C1B002D 418100C4 -2C03002D 418100B4 +7C1B1800 41800048 +4181004C 48000050 38600000 3D808003 618C3BD8 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 7C1B1800 -41810080 41800084 -38600000 3D808003 -618C42B4 7D8903A6 -4E800421 7C7B1B78 -38600001 3D808003 -618C42B4 7D8903A6 -4E800421 7C1B1800 -41800048 4181004C -48000050 38600000 +4E800421 2C030000 +40820024 38600001 3D808003 618C3BD8 7D8903A6 4E800421 -2C030000 40820024 -38600001 3D808003 -618C3BD8 7D8903A6 -4E800421 2C030000 -40820010 48000014 -38600000 48000010 -38600001 48000008 -3860FFFF BA8100B0 +2C030000 40820010 +48000014 38600000 +48000010 38600001 +48000008 3860FFFF +BA8100B0 800100E4 +382100E0 7C0803A6 +4E800020 7C0802A6 +90010004 9421FF20 +BE8100B0 7C7D1B78 +3FE08047 63FF9DA4 +1FDD00A8 7FDEFA14 +887F0004 2C030000 +418200B0 3C608046 +6063B6A0 886324D0 +889F0006 7C032000 +40820098 887E0058 +2C030003 4182008C +887F0004 2C030007 +40820040 887F0006 +2C030001 40820024 +887F0000 1C6300A8 +7C63FA14 8863005F +889E005F 7C032000 +41820058 4800005C +887F0000 7C03E800 +41820048 4800004C +887F0006 2C030001 +40820028 7FE3FB78 +3D808016 618C54A0 +7D8903A6 4E800421 +889E005F 7C032000 +41820020 48000014 +887E005D 2C030000 +41820010 48000004 +38600000 48000008 +38600001 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 -7C7D1B78 3FE08047 -63FF9DA4 1FDD00A8 -7FDEFA14 887F0004 -2C030000 418200B0 -3C608046 6063B6A0 -886324D0 889F0006 -7C032000 40820098 -887E0058 2C030003 -4182008C 887F0004 -2C030007 40820040 -887F0006 2C030001 -40820024 887F0000 -1C6300A8 7C63FA14 -8863005F 889E005F -7C032000 41820058 -4800005C 887F0000 -7C03E800 41820048 -4800004C 887F0006 -2C030001 40820028 -7FE3FB78 3D808016 -618C54A0 7D8903A6 -4E800421 889E005F -7C032000 41820020 -48000014 887E005D -2C030000 41820010 -48000004 38600000 -48000008 38600001 +83E30010 887F0006 +2C030000 40820014 +3D808001 618C74BC +7D8903A6 4E800421 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 7C0802A6 90010004 9421FF20 BE8100B0 83E30010 +38600000 3D808000 +618C5610 7D8903A6 +4E800421 7C7E1B78 +887E0000 2C030004 +41820020 38600001 +4BFFF56D 3C808047 +60849D30 38600001 +98640005 48000038 887F0006 2C030000 -40820014 3D808001 -618C74BC 7D8903A6 -4E800421 BA8100B0 +41820018 3C808047 +60849D30 38600003 +98640005 48000018 +4BFFFC09 3C808047 +60849D30 38600005 +98640005 BA8100B0 800100E4 382100E0 7C0803A6 4E800020 -7C0802A6 90010004 -9421FF20 BE8100B0 -83E30010 38600000 -3D808000 618C5610 -7D8903A6 4E800421 -7C7E1B78 887E0000 -2C030004 41820018 -3C808047 60849D30 -38600001 98640005 -48000038 887F0006 -2C030000 41820018 -3C808047 60849D30 -38600003 98640005 -48000018 4BFFFC11 -3C808047 60849D30 -38600005 98640005 BA8100B0 800100E4 382100E0 7C0803A6 -4E800020 BA8100B0 -800100E4 382100E0 -7C0803A6 38600028 -987E0000 00000000 +38600028 987E0000 +60000000 00000000 04005694 4E800020 #Online/Static/AdjustNullCharID.asm C20056BC 00000012 #Online/Static/CSSUpdateCSP.asm 7C0802A6 90010004 From 0ca890f4a0a6dfe2ce42570892218428327a3168 Mon Sep 17 00:00:00 2001 From: Jas Laferriere Date: Mon, 29 Jul 2024 18:13:09 -0400 Subject: [PATCH 217/217] build console codesets --- Output/Console/GALE01r2.ini | 14 ++++++++------ Output/Console/g_core.bin | Bin 5528 -> 5544 bytes Output/Console/g_core_porta.bin | Bin 5528 -> 5544 bytes 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Output/Console/GALE01r2.ini b/Output/Console/GALE01r2.ini index 56e4c8d6..ddd19d17 100644 --- a/Output/Console/GALE01r2.ini +++ b/Output/Console/GALE01r2.ini @@ -144,7 +144,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 936DB64C 38800005 3D808000 618CC160 7D8903A6 4E800421 -38600770 3D808037 +38600780 3D808037 618CF1E4 7D8903A6 4E800421 7C7E1B78 93DB0000 38600000 @@ -158,7 +158,7 @@ C216E74C 0000010A #Recording/SendGameInfo.asm 987E0001 38600036 987E0002 386002F8 B07E0003 38600037 -987E0005 38600040 +987E0005 38600042 B07E0006 38600038 987E0008 38600054 B07E0009 38600039 @@ -174,7 +174,7 @@ B07E0015 3860003D 38600010 987E001A 38600204 B07E001B 38600036 987E001D -3C600310 60630000 +3C600311 60630000 907E001E 387E0022 7FE4FB78 38A00138 3D808000 618C31F4 @@ -456,12 +456,12 @@ A07F2088 B07D0053 800100E4 382100E0 7C0803A6 8001001C 60000000 00000000 -C206B0E0 0000002C #Recording/SendGamePreFrame.asm +C206B0E0 0000002E #Recording/SendGamePreFrame.asm 7C0802A6 90010004 9421FF20 BE8100B0 3D808000 618C5604 7D8903A6 4E800421 -2C030000 41820120 +2C030000 41820130 8B7F000C 806DB64C 83A30000 838DB650 7FBDE214 38600037 @@ -495,8 +495,10 @@ B07D0031 80640030 1C9B000C 7C832214 88640002 987D003B 88640003 987D0040 +88640004 987D0041 +88640005 987D0042 807F1830 907D003C -838DB650 3B9C0041 +838DB650 3B9C0043 938DB650 BA8100B0 800100E4 382100E0 7C0803A6 881F2219 diff --git a/Output/Console/g_core.bin b/Output/Console/g_core.bin index 009f9852812d57ea5725665b558aa74e96e9f983..0181fa60b624a1be8831060957b1e888abeed9b9 100644 GIT binary patch delta 77 zcmbQCy+V5fHw$CKWFD4cMyJUQEY*yHoByy}=3vyDe1TV;(O~lrUJgcujuZx#8MO?K fK$;auJ2lix7)+>Tuxaky7GOPx!FjU)e+L@?qRkiR delta 61 zcmV-D0K)&ME0`;=3j_ghlMDoN0YH<01bYDxv-||p2mvgU&3 TeE>XzjkZuboB%Tuxaky7GOPx!FjU)e+L@?qRkiR delta 61 zcmV-D0K)&ME0`;=3j_ghlMDoN0YH<01bYDxv-||p2mvgU&3 TeE>XzjkZuboB%