From dd7efbf4093d730bfb76cbd6aaae0589637f63d4 Mon Sep 17 00:00:00 2001 From: Retnuhytnuob Date: Thu, 21 May 2026 04:25:05 -0500 Subject: [PATCH] Add collision view/edit tool --- Makefile | 2 +- .../collision/dusclops/angledata.bin | Bin 0 -> 45440 bytes .../collision/dusclops/tiledata.bin | Bin 0 -> 8192 bytes .../collision/dusclops/typedata.bin | Bin 0 -> 22720 bytes .../collision/kecleon/angledata.bin | Bin 0 -> 66176 bytes .../board_data/collision/kecleon/tiledata.bin | Bin 0 -> 8192 bytes .../board_data/collision/kecleon/typedata.bin | Bin 0 -> 33088 bytes .../board_data/collision/kyogre/angledata.bin | Bin 0 -> 21888 bytes data/board_data/collision/kyogre/tiledata.bin | Bin 0 -> 8192 bytes data/board_data/collision/kyogre/typedata.bin | Bin 0 -> 10944 bytes .../collision/rayquaza/angledata.bin | Bin 0 -> 20352 bytes .../collision/rayquaza/tiledata.bin | Bin 0 -> 8192 bytes .../collision/rayquaza/typedata.bin | Bin 0 -> 10176 bytes .../collision/ruby/boardbottom_angledata.bin | Bin 0 -> 81024 bytes .../collision/ruby/boardbottom_tiledata.bin | Bin 0 -> 8192 bytes .../collision/ruby/boardbottom_typedata.bin | Bin 0 -> 40512 bytes .../ruby/boardtop_launch_angledata.bin | Bin 0 -> 100224 bytes .../ruby/boardtop_launch_tiledata.bin | Bin 0 -> 8192 bytes .../ruby/boardtop_launch_typedata.bin | Bin 0 -> 50112 bytes .../ruby/boardtop_normal_angledata.bin | Bin 0 -> 99200 bytes .../ruby/boardtop_normal_tiledata.bin | Bin 0 -> 8192 bytes .../ruby/boardtop_normal_typedata.bin | Bin 0 -> 49600 bytes .../collision/ruby/topramps_angledata.bin | Bin 0 -> 73344 bytes .../collision/ruby/topramps_tiledata.bin | Bin 0 -> 8192 bytes .../collision/ruby/topramps_typedata.bin | Bin 0 -> 36672 bytes .../sapphire/boardbottom_angledata.bin | Bin 0 -> 74880 bytes .../sapphire/boardbottom_tiledata.bin | Bin 0 -> 8192 bytes .../sapphire/boardbottom_typedata.bin | Bin 0 -> 37440 bytes .../collision/sapphire/boardtop_angledata.bin | Bin 0 -> 84992 bytes .../collision/sapphire/boardtop_tiledata.bin | Bin 0 -> 8192 bytes .../collision/sapphire/boardtop_typedata.bin | Bin 0 -> 42496 bytes .../sapphire/hatchexitramp_angledata.bin | Bin 0 -> 33536 bytes .../sapphire/hatchexitramp_tiledata.bin | Bin 0 -> 8192 bytes .../sapphire/hatchexitramp_typedata.bin | Bin 0 -> 16768 bytes .../collision/sapphire/topramp_angledata.bin | Bin 0 -> 53504 bytes .../collision/sapphire/topramp_tiledata.bin | Bin 0 -> 8192 bytes .../collision/sapphire/topramp_typedata.bin | Bin 0 -> 26752 bytes .../board_data/collision/spheal/angledata.bin | Bin 0 -> 46976 bytes data/board_data/collision/spheal/tiledata.bin | Bin 0 -> 8192 bytes data/board_data/collision/spheal/typedata.bin | Bin 0 -> 23488 bytes data/board_data/dusclops_board.inc | 6 +- data/board_data/kecleon_board.inc | 6 +- data/board_data/kyogre_board.inc | 6 +- data/board_data/rayquaza_board.inc | 6 +- data/board_data/ruby_board.inc | 24 +- data/board_data/sapphire_board.inc | 24 +- data/board_data/spheal_board.inc | 6 +- .../collision_viewer_editor.html | 900 ++++++++++++++++++ 48 files changed, 940 insertions(+), 40 deletions(-) create mode 100644 data/board_data/collision/dusclops/angledata.bin create mode 100644 data/board_data/collision/dusclops/tiledata.bin create mode 100644 data/board_data/collision/dusclops/typedata.bin create mode 100644 data/board_data/collision/kecleon/angledata.bin create mode 100644 data/board_data/collision/kecleon/tiledata.bin create mode 100644 data/board_data/collision/kecleon/typedata.bin create mode 100644 data/board_data/collision/kyogre/angledata.bin create mode 100644 data/board_data/collision/kyogre/tiledata.bin create mode 100644 data/board_data/collision/kyogre/typedata.bin create mode 100644 data/board_data/collision/rayquaza/angledata.bin create mode 100644 data/board_data/collision/rayquaza/tiledata.bin create mode 100644 data/board_data/collision/rayquaza/typedata.bin create mode 100644 data/board_data/collision/ruby/boardbottom_angledata.bin create mode 100644 data/board_data/collision/ruby/boardbottom_tiledata.bin create mode 100644 data/board_data/collision/ruby/boardbottom_typedata.bin create mode 100644 data/board_data/collision/ruby/boardtop_launch_angledata.bin create mode 100644 data/board_data/collision/ruby/boardtop_launch_tiledata.bin create mode 100644 data/board_data/collision/ruby/boardtop_launch_typedata.bin create mode 100644 data/board_data/collision/ruby/boardtop_normal_angledata.bin create mode 100644 data/board_data/collision/ruby/boardtop_normal_tiledata.bin create mode 100644 data/board_data/collision/ruby/boardtop_normal_typedata.bin create mode 100644 data/board_data/collision/ruby/topramps_angledata.bin create mode 100644 data/board_data/collision/ruby/topramps_tiledata.bin create mode 100644 data/board_data/collision/ruby/topramps_typedata.bin create mode 100644 data/board_data/collision/sapphire/boardbottom_angledata.bin create mode 100644 data/board_data/collision/sapphire/boardbottom_tiledata.bin create mode 100644 data/board_data/collision/sapphire/boardbottom_typedata.bin create mode 100644 data/board_data/collision/sapphire/boardtop_angledata.bin create mode 100644 data/board_data/collision/sapphire/boardtop_tiledata.bin create mode 100644 data/board_data/collision/sapphire/boardtop_typedata.bin create mode 100644 data/board_data/collision/sapphire/hatchexitramp_angledata.bin create mode 100644 data/board_data/collision/sapphire/hatchexitramp_tiledata.bin create mode 100644 data/board_data/collision/sapphire/hatchexitramp_typedata.bin create mode 100644 data/board_data/collision/sapphire/topramp_angledata.bin create mode 100644 data/board_data/collision/sapphire/topramp_tiledata.bin create mode 100644 data/board_data/collision/sapphire/topramp_typedata.bin create mode 100644 data/board_data/collision/spheal/angledata.bin create mode 100644 data/board_data/collision/spheal/tiledata.bin create mode 100644 data/board_data/collision/spheal/typedata.bin create mode 100644 tools/collision_viewer/collision_viewer_editor.html diff --git a/Makefile b/Makefile index 62d5710a..be34b92b 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,7 @@ FIX := tools/gbafix/gbafix$(EXE) SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c TOOLS_DIR = tools -TOOLDIRS = $(filter-out $(TOOLS_DIR)/agbcc $(TOOLS_DIR)/m2ctx.py $(TOOLS_DIR)/scripts,$(wildcard $(TOOLS_DIR)/*)) +TOOLDIRS = $(filter-out $(TOOLS_DIR)/agbcc $(TOOLS_DIR)/m2ctx.py $(TOOLS_DIR)/scripts $(TOOLS_DIR)/collision_viewer,$(wildcard $(TOOLS_DIR)/*)) infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) diff --git a/data/board_data/collision/dusclops/angledata.bin b/data/board_data/collision/dusclops/angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..a788c9a09b9ca8dbbcedc2668585680cd7735901 GIT binary patch literal 45440 zcmeHQ4RBS(6<*`;?`TjdR$C`hLmtGT{vq-}Dy1;dp=ycA3s4*aQc_STrHn&J9popV zld7pAW-wwY!%qNX%miYJRltO2`kKa+KZ!C?qavd~VA23l>|0(=_ME-%-goci?tKWC z%&_~NJ$t_0y?b}}-govcV?We?yX*cD+Ep7V{icTE`aoU!zk7r@p1v<@Z&p3jYir|m zA45DGHiiEz{F|{muR5=~c-M71zki4S9SUB)`=gFH#}-W4QjM_c|8L8vg-rU)krWH2 zY^i$u#w}p0Q7vRLX7~EPg{HKn>b1Xd3)pH@3z>}Bz5Z{ZDQ&5G?Qh%ywi?w!CS!K5 z|66EETdH3B8@GV1MzxU1nBD9D7MjwQs@ML;EnurrEo3rg_xiturnIH%wZCx-*lJV@ znT*-J{%@fvZK-rFj~NQG8bAN*J~VB}s=;k{fRwR*Lw-AW#U1~;O-S5{4Z3yp zplD1VFV9(qH_}E z2p&Fh%lK{+APquaMoBuvx&Ee%s~;BnS)H~DClm!h&zDgYNbk_%GJobTIygYXIJ|6} z@1gMz80)x~y3zIf;o#5NpsZUC4#aglo|-vusqe-VEGrq9(ZA+qEMY9iHz%1&N>eFT zk8*sp>^lbp2V@SUvfzL_eR6%;leP76y0qT-&)5%T{7+bDZM=3`-|4>Rj=kNFVxFYw znZLt0Kj*t?0yoaMD@P#4vSzf*jNsx)Cnk!Ngvq@h5or396WIbW)|)Wml=F`#-aM@z zwbF7E#V(*E%8_{Es-IFx%MHVBppwl${`5L5>2iHuUyKECF=3&MpUlH0($;;E z^e*IX^6un~rzp-|+?J2+LEPWv&C4LpLqEA&!|w%S+^u=id%>DB*jo5mQnx~`{+)3VN*FV>tyz!n~xc&uffw9L| zY*>LMO)uxJ#F(+6tKOB~w5PQlBRzIW>zLCbPi@QAlL9gJzhi@rV;uPU)uRGu9w|H` zQ25?CeB+k_k7%xL7RbB*8M~DGKlFs6V)@sgscRt3t?=02DARju)7Ra;0n2`}e({Ek zlB1ij>_AE8=I^&0DE)h>kQTpw%Ny^P3G7a6ec2z&hgAqJ{`=^Q%{J- zcS2km<6qM>^vn9r##Ly))Pnu~Mx6W80~k3Iztrbn-iqG*!`QFhI_mm(_{#QQcZ`Jb z9gkpKbmopSZv}WGVc8DzIi1m*vMaIL`Z(wew`|2*|Hv(39ee8^<2IxB+xN=%56h(i zesBGQS|-lxA6^n~{`cm8es7{)=}HvFgGhMk&i|MC{pZ!+-S^#cd%JS88<5E5aT^;H z?IKF*H5MuZe&B$e47uMS_<@7pIrxFA@;is}gXcN;frH;U_yK~RTcMucxt<@mljZXK zKRy3X=uff6Q_#D#!r{p8(@f2&zTQ3n?so|L0O-C0#`N|bz&-%F?||!zeFtVrXisP3 zZF+wA_UzfuCHu*n_4_yLhiAWJ_HxSgal`K)O6vK)LQ9wpJ^xp;Ed_dJ@4Hy{L9F>n zbvo21o}u}D2)iG}`w;Bzdw{w|-FJ`#sgckrKS*k|_q7x|kEmBKW6th7@ceHbzhX($ zqEr2j_5BOEc>+97b<#<_~>&#d|J|c$ zw{FG{kLIj@j^fFM6rVq$e)o(~zk9}<@Vh_%QrfjJ;+z-0dw&0nVZVPUwVCTqufxT) z|ADtdtozgX^mox7$;4~u*ESeyPwwS|>k|ocd>Q?zR&YRjGSyL!%$3TTRy4mmv-<#O zjSrMi>^!3T4#Ho$(%E;Q=Lbhi)LKrl^N8*{U<~#hz&-%y8I3K%z60<(G1hiI6?h?Z zp25iCp&Zk*au*^??BfNF0>!^0l>b4&V2wK`wpy@ zHJX03aUhzWN}1VlhmHf@{v)&31jZd02h8SkN)PUP2%WNP)(-H(IAAuPJw0##k-c^^ zo2xA#G@G-wj2GXfYYTLn0AIV)Pl4RcStlNYIAc67AexskVHGr-3;7C@S_=-K*m*=( zwC2~n@(Ppxu1js@_!4i{ezDH^8W>xYzmUh*?DXq&5x-~Hhh%Kc`BWH>AatI=*dp*k zXsqpgYJ|6J$Az#D$=mcbCH+LLAP3_cTU=dNgT2`%4;m!$)e+yXd!{%G(d^Pd&f-ggS4?DVDzV;U> z@|Y)jsD26`|M1tbg*AxrytoewtDvDerA z{Kmhf(s-x-_YHXt($2eD@4WWp!_s$xf8Sr8&4S6%$4z>TFNEi7S|YVbe|;C>rRlsM zite9;g?X3i& zttw>8*0G)W5?JVaHvJhDr|`UDTm?&Z!{}Got~I;)?Djje{eYIs8~XInsw zPWWkqKkdrT1-u`KxsSg^5lDaLWi0$G-8u8}QjaBXaLm_(x02j)d_<%cE`;&IZhy`3 z$*V^G#82y|9>wq3H(K5B^GmdJxj&0OX{Eo4yMT{xc(unl+t9gGe7`5w)~*+$mC`v` z(DnXc_t~3|VYDx;Ni9u1cnfU{_2)s+GBC!^uA(wGPk+MwneYCD^UL^%E8g}*KmE-3 z{iW!Y^u)82^z?@(qw~*<-}ca}!;yGW(x$m9X}L*0eTOBhCcc-^kA%m?LgIc(y5OIqo< zBU?}6b4Pj|t!=@j3Vcn^9VtA5&mDQ+ynI1t+!%JbEG4RT0xE?RaRd8aPz@rypT@`UXUXZKc z#5RFPFT}bk;(ELwSHX#G0*_vZbydXmctNg$6WatHy%6iFi0ko!Tm>h#2|Ris)>RRY z@J4p4ovNt};&Sj^6V7oy{h`0(V@ zT~FbRFk!IY0MPCJl#5aT)f#)W&R__ut|^nC(_pQ{@l*@JO${ht~zex`0> z{nRz@t(~_HOZoYR&xg-5?D4vgM$R&tu^Fv#jL)Fl{k2lJ!G0;{>uVjnKD8jB5HVvrA(MvY}wbGgMnTwyg< z8obINA8ZyiHfIaAWGl928@6RTw)e?azJtX(8oZN1KG-?c*o9r$josP9Cpz*y*^9l| zhke%e$&L=%a!im_h;(ew&~ZUl zA=2?dL#qvI4QpA)2}TwUCvp-eb4qI9)S$uB($?vm!I?#L7H4x#Iu9$(MSQcB zx$%}%d}~(wwyeY-+-|k*i1Wdi|aIXUTWq{#PHaHb*q;yNvzms&Z~xVuCA*3L_9oN36u zxK3N=rFPCV?(Y14dv$PL>gY`K?}JY2tS;)RZtAWc>ZxAptv>3je(J9Q8mK`UtRWhz zVH&Ox8tJ(+%9H2&1)~d`v-ghC*n&2VD`?8TzMjWxf+lK`CTohOYMQ2NhGuG(W^0b- rYM$n6ffj0!7Hf%?YMGX6g;r|SM!WC&O-Yu#K=J~~3nVYF>At}K_#Tqi literal 0 HcmV?d00001 diff --git a/data/board_data/collision/dusclops/typedata.bin b/data/board_data/collision/dusclops/typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..b80436285eb5ccd6218ab6bcf017e8784e69f061 GIT binary patch literal 22720 zcmeHM+mb6Q2+dUG|G#;IuvActl1$~C8v7wAa$SOL&paN#_&lFavi^Mj{QMB%A11}2 zk}~dpNTocaQl5ToXMFW9evH7apW8o-z|NV`%iQzho*(!8xaa46fBen&2i^sA29zP8 zprZ$kbafo)ioM+8j%&HN0Si5TK_Ng((`Mq7kR<2>14mt!Ha&{+)w)e&JuC0?vL)pQ z!LOCds#G&?raT)eMuhd5!P+|HaT@pjX5s*ifDZVGAxlk~FD4STwnS}=2ek$(TE1k3 zra=>V2ZW(#W#(xkyqn_Cj5G#d`bgWKT5lc?b1l}W{7MZTLC5vW4=I)B&@t_;WWvfi z{0sH3JLNjmOm$+(VZnT$&W4KB(1-JPWbD_1)PU`C)}HYNklX))t~p&?|C@4RH1)LE zqo|!M9sC7u12)C$Jr4{B#0vt_`1>dNFG6;Y4{)<|&&yCHwMu!@vc5&nMc}4z6tE}W z!*GIy$nqZlz1&A!k?%lbhR-Vq$+301m*p5I^gh1-L!R(7r!Fgx#mhOz56cg{G?{ty z;DT5$#rl#YBjwUnjN#&RWLbpi+65D4m@rjT_#Vg4|4g6b<*@l4i!13Yg_0M`usFlc zzbq)fy^7Y4B?pCo+5xS_1P17^P#L~PgOYY^Osg3t2NR7 zs{Sgx%{A=ULD@OWXykkTIADS)A0qq&%MtrOc>c7v7pmxtX8Rs`4Aocr@7w1`R4d#3 zv;Fe>jeW>cZ|`)T^$WdIe_kGTveera2IL`20L!e%;6`f$UCyrOtQKJsanJZD&`43iFdIGe*vmQGVb@Q#j= zc@7G~)2SC?`lts61mXpcmk&wj0s8|nM3(pXNH9wo**#BlxvXF4z2lo>=LfcO^t}jj zK3mKjzmK5)9me$!%dQ{aH<*teu(G!IVwH@z{M{7Go{hw2xoc!$$XKYb!3n5$rgO)} zw3>n4Lt5>015Gb~xdA@il`mi++L{IpfM8pDv5&(ts-s+vd6hmoa987@Dj=poKVo#D zkvYsF>6l-Xzo!rPoB5YKNvB{~KHu;SCmCwx2q~WcMVJ+xeVrqQjKAHaWQ{?Py)O zZBGT81s(P6tTMH)W8JXxVjJkF9lRTcRHuLSQs#Q; zm?EUDjSgSkPk!ZGI>U7X0xJSIE%$il%}j8fUu=M@Tdj3@7|CjTmZsJ)YdYNqFO5wW z0Z{K}usYFmEK!j{)xxdi>kd$Daa+_Ou4&-<06);@FxT)B&R`l0P$*ieW>96WnR~Wd zI>!TnWGUbLCHNf8`i0*0pTixv0mm$boh;4zgmSXi^IY6+ie=Bn zImO=Is~;OL|8bU|?B9h%`|4l(1OZ!JuV=S@1c6&Ww|*Fb*BwI=<@=x<+U5UbthA|F z%zyIzq4DaC(!aIlbMHTVp$!Z8yO(-BAoiX;k85~0<7M2@`W3`qMPih8t$o=agj7WD l`FGDhMnF!#lP;D@yY+MH=hn~dpR@C$z5n$5fcne($3M(6D-Qqw literal 0 HcmV?d00001 diff --git a/data/board_data/collision/kecleon/angledata.bin b/data/board_data/collision/kecleon/angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..b27e0962d9ba9df9f99969d2e7d2e9cb183c568d GIT binary patch literal 66176 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 B+sXg{ literal 0 HcmV?d00001 diff --git a/data/board_data/collision/kecleon/tiledata.bin b/data/board_data/collision/kecleon/tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..1751ad568008e700637b58b9e6ced2d8a062ff8a GIT binary patch literal 8192 zcmeI0Ww=yj6oub)2|>DB5a|Z#knZm84gu-zR9cko?(Pt!LkVe>l(K>I`HI zMlz9^EPP2;vXPw}!8BJ*PI8f(JPvYR^6?eeGORMz0@iL}QxJ z)TM3}npvBFscudSTGGl^T5DS_&rEIjnzppFHPoJO=s-t0(b<;YZ0bT+y3w5;^rRQP z=|f-onXL}AKLZ%ZAOUlo#TO)6M+?+F|#a0}} zRXoMFI0DlAo(YstiS(HgyU?v(NTSb`R9{%U$&_3vl+r>Vl~OB>(kh+OD}ypBlQIX> zgEF(|OJ!9yWmgUtjv%jJl~cKtTY3Dwd6iFJDZdIh%obE36;=@yRWTKJ(5!hSR8pl> zT4hvL<=ps!X3DFADyotytBR_snyRaYYO0oDwzldRXiyT=RXx>L12t45HCB_4xC17e zs+pRrg<7hWTC0t|R$H~RIUA7S_iV3k)IlB9NuAY2T|G+Zrta#Yp6cb%ly!S=^-*8- zQ-2N6z!0Pi(qIkI&=5?1c#B~gu5b07MrdS+Ge&82h-b%Wtj6j45YK=37UT7Uehg8@ z1WnYW5KUTtMZbEorg)q)Rnt74aoii!PuC31w4FCgvo*)IJ7|mhYOdzF&77|VTBt=@ ztR-%J?zgy8mui`oyUbppm0G3MTI15;F58~AR_nChMg9hD)Fy3qq1wy0RGZq_ip2+Jw|FT(KFXxRGZq_kQE114e2u(KFXURGZK_pkcRxaqKt82QIDkLs9y*KwWDNuAPZozYqS zp+EJP&gr}^=%Oy^vi{Z;UDY*Rce&+;Zt9k9>yGZ~p6=^`9_o=E>xrJ~nV#!~Uh0)z n>y6&(o$sHF^6~Kr@W;K^hANd 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 G^#201MQ@G( literal 0 HcmV?d00001 diff --git a/data/board_data/collision/kyogre/tiledata.bin b/data/board_data/collision/kyogre/tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..b7c906383a3fe7168bc4aecb0b62a0c90c932ffd GIT binary patch literal 8192 zcmeIuRdWC@#Le+VAvp zdbb+FCtM(0AY33^AY33^AY33^;D5eA0~*qZ#x$WR&1g;wTGEQv|LiZfF@LG8nPw5@ znM?D{G>fpExwO5RrXO~oqq(#boy|PmunS!y7Zy+$IZHC=Mt6G9lV0?u4@LB)AN?7? zKn5{5cF_=qGK}GjU?ig$%^1cqj`2)jB9mg9HN(kFsd=RMZ7S2GZPO*?K{KS%Oi6jr zEU7eGQXVu%Diur0gXT)5d6M#=`BG_tq&#S$R4S2_2bD^tMUwKM#ZqaBq&#S;R9Yq} z4_YpjR!GW&R!XH+lJcO{QfZB(JZP;{S|=$FS}&D0NXmmYN~KMb@}SL9X^W&hXscA( zCMgfvE|qq$Q*uesE_RERJ?v$lXf?K<102-oUscATL_Q85=1AN)Vph&kjz!G$_&6sx zsq-9piqknsvgaAjCM(p^=Qz)WTB#CT+ryqVY zSAI6rEW$75(ywNkMOa}jtu)gt!f)o%?`E1s_`_WK(@e7nf0;|G%ruMex4HC>nJQs5 Df2%mi literal 0 HcmV?d00001 diff --git a/data/board_data/collision/kyogre/typedata.bin b/data/board_data/collision/kyogre/typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..7897fee99a395d3a39443b7874bd35cd5468fc83 GIT binary patch literal 10944 zcmeHL+mhuV2s~3Y|NqSkkyas^26wjhVUmaA1!$y&=*j2v^Ut?Dg8Ka>k2cN2uJ!)a zRv)$1$4mLBS-M!cQ{-60}{6s#hV}{SR;WK%}tBx5ylUMyk zeTL8E5wALC_)K2)7xfuFlSjPjnBg;d)nC+S_)H%0s$+)FvdYIZGHXHkt+itRMpoVt* zx5lLMKWdA)5DW?y!pEr*l&R$cF0F1}!0?COEKT9G0apAao#rgC~uCET4 z_VpE_^$^=n?2BP7(cx#i+NR)B&XFXRBGu^af0hwa;$>Rfb|pkGDi$$4CnAB{if`y! z%}0Ubb!b`?i_F{AwXyzr^Y8!U-^d5s#Zj_DWW6cPyKL-zuGbCG$(cnhvqqKr_uukF z@$~k5`}_RMRc;I*J5Hffuzg*sse3)TfqYG&*rG7Ksxs;;9i+nq^*Ci1spZZ72IxFn z?#KKCK$~|Qx&czN^J>!KeFyHOT@q&UMJ-R3sqT%h*&l=)$??@Xj-r^h=k8p8^hfl=A5cV~(I3(C?L8d}oylG!GKmPsYmC)2 z!bJOF$a*X!TyDujMO!PWl(|Q&Awq$gA@Zmdgl!^k^=!4n+uiwo&wcOuzGvs|SX>9* z@8_KF`Tn|}`#tyEDP#ZDKmCJW44nKn7k&4c#OcUj=)1WC95?(B{XTly&g2Y{3n!BN!71E zufQ+IH+4vI0x_9ypu zeQ*GdF!uAlRUhM#v5v70Jc7T?u1-U|_t&9ILOc9>=WhZrw()Z3Wq}_a{$yAn#-6zH z=?KItuV$`H;EQnFwCt#d=K;wc$2yL-W2XxfoA%(5$opOIz>&zV_FWJ&R7y7f)u41Ma(hiVVTVnU|It6Seh&d{gse5m$dEGA@X zyt?&G!H>duF1560rP{Ma0) z2Wq@i*Z=xe5k<-TdnyIuQZ{(Ag-2pmcnQ`@Rb_)%$9q&XXe~eFFX}vbN3{#7_-7oE~TT;N?{(#>=t}oQ9DvAo&v_8 z3~k#od}jEV{mj_&-e1pFW`k`O<{^I)oZQKGFL8Wlr7ntRbs(8L#l@Zt%CYmO1Lv#~ zofQ_V($UvI-&#=%@9ge%f+6F*4l#sV$gQoKV4u7ea!BT^y+*{LDsdjjU1j?Fh1|t> zzi>vSrj@Lo{(R)vQ&kUGGKW>~7=0bwudVQ4#J$__y;t~!~XC6FJ{U8PtQJFeE$>oHUGZLd#BAtbN#PPdO!01{a)UKocnG`#iqrW z`Ptx*H1hlsc{fW1^Y=|`=|*_J#SwXn3cugw{Nj1eLlIA+ZlqSAJL{w!eNvNmv_~f2 zGvQkRUu|>Tw#0c4`=79CYj}Olf3B7Htzxyjj#jp>_9l?;twOd;$13}!?FFB63-73K zhOZTU)wZO1&3}hgt*Ne4qj^S z#{Q_TS&GMaXOX)te}?7nt2$zXe73^f;oB#^z3`4JSjNvag2}dD_wSd2!&Vsf?#fVT z&3f>K$Ng)M?Mqz6NlA>Ek%kw^=WJHqem9Qg#9bJBkCsaw;|nj9L9bm4HZOpfu>9z`DEj6OL&uXh%-)-$JcCd7Zv+BgH^Wit=ogfT?p|9=2!GuDT+ zv966)ZQb^YE%WPe(`xYhX~sI@bGO3zr<+qv5C>Xh+#JXAE1NOK|K1+XnUJUc`+S@a w)t-r*p-*bOy7gf!CS=|DQ08TzEgt6Lw&VnWuP57nNDoS{!@yt?%N1%_l@FaQ7m literal 0 HcmV?d00001 diff --git a/data/board_data/collision/rayquaza/tiledata.bin b/data/board_data/collision/rayquaza/tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..2c65ae4e087d99f4255538bfd36f17a8aae4d5d1 GIT binary patch literal 8192 zcmeIu*;|ca7{%eAC_{)y$`mR?$&fjOq9n?ksUj7kk})$yQ9>c9{H;zp+WXzR^*!}n zPTqa?t@mEfb?pWI=NIq`_yzm|egVILU%)Tm7w`-C1^&+hGe}@2vq&U~+00=s^GIes z3s^`Bi&#u5OIS)8%SdNA8Dz48m8@blYsg|P>sU`VIpnf|jcj5wdE|?KW(x(P492#y zO)6}clm+dON`;cLpq)}_m!vFcw^Z6ADGS;wmG()>g7! zjJF1E(HP@RkDF-bw$3Bu9qvXX!9H8K7pxGa@6$?KRH_8+JfK5?lbVM-n$$#s$2^IQ zrttlgXLQQ_=e*#htX24m*AjihTge4S?|4sF+*&su_!w7A?XibmKE*uonLheszE0P} z7Y3ZCzVgkPPk;E`d2-O1h7k@qkN$9`VT3=OM}IlfFv4Ny(cjKAjBvzx^p7(QBOG-e R9do8(gyYVmf1Rlk{sRp)F%kd( literal 0 HcmV?d00001 diff --git a/data/board_data/collision/rayquaza/typedata.bin b/data/board_data/collision/rayquaza/typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..37d69e29963b6a301fbed144797479ba8fd660fc GIT binary patch literal 10176 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/>dmb(TqzmJ8fT@gpc z+qZ%T#4sODXeOUIAm8D4#1Ef2(6!+^icdNGW!IHUAN!Y&u8qt8vs&0E4f1jv)+_G~ zv5+<@7M6EmY$+&xLcX2w^{W)S_ZV3I4Ps#F6C#)QA=FMmY3_%$&VImLsjol$l?6b^ ViZK4_2*K}NDGxW#nvi|{{~uG|OC|sS literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardbottom_tiledata.bin b/data/board_data/collision/ruby/boardbottom_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..5d8779080b69605c0fc11e697ec874a461de2aba GIT binary patch literal 8192 zcmeH~Ww0Do5QWd_xVyW%ySux)ySot}ipB#GhzBPE5u5~<2u>0t3K29x0t5|rW@jgJ z@9xfIDR@7qH&r`*`h2Hv-Xy zttK7P+g^qUk}<*wHZmbIvLGw6A-f9aKu&EW7jkQTsL5lOyvS#;{3u{J!EHelvO|UK zcM)TtD2f@5)fPty+bxMw1}%*;h7;VDMLCp51r@A_N=Cdgsu)hFt?Ibd3|bvE3@4tp zW<(WjLDL8?WHdu_TeLt+H_-~MT^+AzgSJsd z+M#_EH)M5iNJn(CRcCZT*O=)b&@F19J983Vz@z{kj3@gz=QFvK9SpSyAQR{9RWNT-{})sgvCA-Sc0X#{CeOrERPvmft4}XUAP;ousQ~f z&t8MIxCi$}8Cr++QCwgHHewStV~b6<;y&Du2cjlpnGfP2Jd8(d{3y0zJ9c1aMEEg0 z9^nDIup4`@SCJ?1q%XE*stC%;6=QImyP%Y)z^a)i@IyziV;dEGf>KS~7&z=6Ps^?sG9v564OMHPZUG$YwUpw75_!bvk z5)zm2o#9yR_xJ%nI{sz+grD8aFSz3BSmIaw=Az&62mW-rzi<@@{d41TQVhpJNtBn= z@slw*Q+P5dnab0-2e~3O(|CAVrek`i&!B2X53@!xF|*-VZWiTbb^L71&K%6?N#*ir zE3H4dJv0yVG9U9hP61U5dZ;y5h=mQua*HUhsOuMFah707w=c!guC~(Nrwq%wtQ^a; z0xP}hz{CcUbcO7&(R_SMq; z*q;M9Q1iS~VLgb0IfO&C+%OL32<42_-0*~1N7<>-9K*3jejLYhg5l}Y6FG^Kjl>jA zQ zL&pX2$M%sl6x_ZRpD zzvNeH)7Sil-}0hTm-rpO=MM?6J$&yU)vn9@i9hofrLH94=Fkm(RU3b^xBjl)ez=PW%FiUm)=d zBz}Sa(-&wa&83C3lvdJO`}@#F+DbcVFCC<#bdt`}MY>8i=`KB_r}UEE(ntDAKYOCT z43L2`NCw;85E&}NWVnowkupj~%NQA}oojx(aV{M%6I=~U^k{P?+)q-O$uh-BPE~c9 MOplnGAu}ECZ$lp)UH||9 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardbottom_typedata.bin b/data/board_data/collision/ruby/boardbottom_typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..0f2d24c38860a3a4509743456cd9fdc7b65a94a2 GIT binary patch literal 40512 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 Xpab6n77%r5FS`kV{U65QIivpv)$8pR literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardtop_launch_angledata.bin b/data/board_data/collision/ruby/boardtop_launch_angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..2ca04907ef9007e4e3865e425f2ec384ec202372 GIT binary patch literal 100224 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 DoTVvYQq5$$9197+i>6n653hz1Fb zc|)U6rVGL8ko7tj*a?g)%973`<=!x(({&v$6fgoaI+eB`c0G*|V%YWE0ywWNo^^V= z^~`Ir%#@Z$?_xBjdO_h0#6qmR3TyrBsv#{fMpB{q?ltS-vfQbz31F?Nc|l1Voa|Pm z!zrukXo#n&k61Yt$K)=!!^GK>GW8f^)kjd=B_;pG`uSiDy-_)(W8)wqMO0K9AIc5vm%*NV=vlFLR)TX#xiD$Sw!`1c8gD?h_6FGNW! zo^vgUUB;v^_ib`0W*Fosi7kr3HAWnLgD+JRX|6lHUnfLr2o;V+EhU=9VIB5VJ)5gvFn%%gkDfG;nxv+H zZ>uu#_iT5^^saIE3tY%re2BHk@hs&g^5JjO`csZx-55HC;aUVx$x|^3B~RTLGnM9{ zZAUVkQgao^x{T_(fL>5dy*p-9;~lmIRn*IGk7~ThVL}ypiY%z2bo6?oKV|1n9#>*-%|;LOgL1hC`Ym%YNB?>K<|5}w^H9UP_t}}}bIghRO*5Le zIPPI4pXS7-IwNMkZ?P8`b3;y5R{8I?5)&c<24t;eTPF0DS}@b2~IGtf4^C>t%~ z4TDwsrNoe+T^{JQ^q z9abF2*I^~GI0u)+I?vj=ei`WVp#oG`ojJh+F4kj=j(FUaDRMvu;&+&1Vji`DKj8+@Vlz zzo#6wS}%+LJFMP?7?{9yw3@HI&+4!Y4a!B@d#akXz|ZDAvH))qKfLJa#mGh1yv6w# zb9PDkQjFQQY{Dzkz;@5PR}(Giu#7*{`gLB`d+H;o?V^6*wbh(yrAMvif;lCiTLCLQ z9UY+%x1S4NU*J|>jabgRZX<#Xy!()T9=oa5BjtTwwHN%8>+e>N$Ffompj^BuPKcP?2LNXzE#NuYKgVq8hqncXUtj1o{9r7#jjk9)ZO?=_IGWD<`~+Fu7^+=< zY0NHTUekX+%b=-3d_M#CTXjySkduA@{p&2Rq^tQZRj55MHN$~*2$8z~&Fr_^eP|rT eU9f9i&&GW9c>4Y>Zh_|X2E0ypJ70U9|NjF|LQ+xy literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardtop_launch_tiledata.bin b/data/board_data/collision/ruby/boardtop_launch_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..456bbbee628b490cf60afaf32aae6f8223bc9a1f GIT binary patch literal 8192 zcmeI1bCg_J7sdBE9ox2T+qP}nwl%SB+nLz5ZQD-f)~nkm_r0q5@+C9>P1jmockkcc z=iJxtpI%u3{62nf!0!$Cy@CJc8z3-z;1B*0009vQfe{2j5e&f*0wEC!p%DgQ5f0%I z0TB@ikr4$^5e?B112GW`u@MJx5fAZ^011%@iID_JkqpU^0x6LSsgVY0kq+sR0U41A znUMuqkqz0A138iFzxmSrervxs;P(dn-oS6Yf!xT0yvT?AD1d?}gu*EDTYG+Ws3?k| zI7*--N;yVLqYTQT9Ll4DBl)*%MN~rNpDe3_s;GwQsPU8Duf{b|3$=}*I;e|!sIN!^ zG(;mbwz4K@syofl94(CgKanlb3ayO=ZO|6&EZ-g-(9u$z&>3CO72VJsJ#@DxdZD*5 z_dBu=`l6pP*dGHhQ2Zba7Ci(*wH~IKBQO%9r1Ps{G{)FQ#$ue!kH-Y@6ER8a z$(Vwvn1<=v&%jJ+{fd}{*_ea5n5T#4V}WCQAr=W)j3rtx#WG7R#|o^p)GDmT8fpH2 zVlCETJvONFMr=~we`2%8;1+BZwhi00-hrJ$cVV~Id$3pN&&59M#{nGF#Y5^mj3XXn zM{!Kpah%ZlBu)thPUDPrXK~Kp|4W|71zf}>UAc@axQc6D2Cm}r5KID)5>s|l~NP#G@*Qp?0se5lw3MOfA3L!cqg%a)k2|}wpjC8^(6^_D-H)kSv zrM``b6p141Mih!F-DnhDv~Tyv8G~X{EQ&3SI7-D87mwnL1`-(h#|Bd+ltv;^Kw?9i zZI@1>vZO|yOzGs}Q&39LKq^B!_qcs(X{4dFN~fdrlz}o*CgIMx%qqzuX;#XnbawGM zC@19-ms^x`i`(a+yhbCR()ra-0V+s^sIZazm@Yy^sTdWPtOS*$QdC;|GE`Qna*~!8 z^<#snD%kRhREa8EqzYA~YPQUGs=A^zjHIU0wWzixb*QdV^(3z^%6Hy=HgMz(sgWj) zsR=c8q^{X!iZwTQ3#D69D@|HkXB)}ein8D9cI~LWBkw>RsguPzQy1#$NL^Fi6zgvA z9!mG5UYhi#KGc``N#0+SxBCasKu11^2GbDDhSD%cs{U%za2i1)4L-`!qcs^rV`&_X zmwWF0rL%Qe}V$F(~_CxyEwPbq)e#?H`L<(mksCp1XqMzrE8*r>q_6y{wCcr64&Hya{|^pSNwwsoG^oNLch zdZyWPdO3YcShoxd$0Tl2m7e}C;F`E7y3%y=)1kcu37U#%$oVIKlX3r z0XQHB(mpT;F%s8&Q00R;Sa8dS&@?26QYtiu;jkQz!*c|V$dMcqkvWQxs2okS`w63S z3{7HkERJnU<0uzblXx88QVFc@gqkMOr)yVYPQpnI@7@n2(VkQj=?O zZLY(0xt^`#d80|{a|3BNq!^gE()r`-wcs>Q3ezV4Dr8O{{ z=ZJRgnQOUuHa4FZ@Io80-{^FUcrh>GrM!%n>!}sIl2=)JHLp?UTG_Ua*Nb-T*}xl> z-(+LzU!J_#L7aDb^IP=HR^Gji|(_P?;*2E>g%vboTp1!8e>&B)V zeA95Q9k-Of&37CWxa&cjH`@I@zHd!DP~Q*r>?3~6Pxz^^=@~yaoNL1ie#x)+HNSE2 zxBSjQ?Dsj{d;Y*5`4fNUFZ@+cepBan*MBt0hkV#@ZtPiMF5|GK7rIs TU_BSaC#X`vY+Hi+gs}WyA$x)* literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardtop_launch_typedata.bin b/data/board_data/collision/ruby/boardtop_launch_typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac63886ca515e2b44d5b7eaacb9acf0aa9830e66 GIT binary patch literal 50112 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 Ho#MX%1ddn+ literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardtop_normal_angledata.bin b/data/board_data/collision/ruby/boardtop_normal_angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..17f02542dd3ffcd3f069df02c9236b571f10244b GIT binary patch literal 99200 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 DyGZ$z literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/boardtop_normal_tiledata.bin b/data/board_data/collision/ruby/boardtop_normal_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..bce490a93e2efc7172c9dc15a5a77a5fbd5edf65 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/ruby/topramps_angledata.bin b/data/board_data/collision/ruby/topramps_angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..dcd3619e6780fbd2c26c6f14440b6976bb7733ca GIT binary patch literal 73344 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 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/boardbottom_angledata.bin b/data/board_data/collision/sapphire/boardbottom_angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..7379e0b03c148845a33fa11001e37cf328961849 GIT binary patch literal 74880 zcmeG_3v?AlmPMHG2{9i~5Tb1S5TYU<`5HdTI4}=nkcjypG8+O+AYcHIVF-Z}g+v7e zqB4-t5Y|Nq0Y!#I07AN~?UMub5-7KH2wfiNM7A<5wovmoTNPzdi0X^$ijGBOOy%nSR6 zj-vf-Ovc*Dg;Sxl{!?cFcx4*S?K}nM5>h@n22ih^ym~T}^>35M0k}LB=Tgd|CSw{x zj?0by+5o~afe<2O9-<~>H=@S0W>9{{pc#;6*qo*_AsmpoHyy)sGBDhC4u%6V?ZA*W zFD$ABgbC@=9K+Kk80V^hc#Gh&^cG=?>CK%}a9#Rmc`C+zISIn$sh>Uz;V&n>3Seuw zUrvIplMpPC5GWDqx>3>rnfBVNYI<6aD%y}!8NRd~-UgiTav62?RQ*2f%7f)LdWSHd zwiFDjhj8yki1Xgfs8q5RZ{_eu|A%|HoBf}E`$PKX^(`d!R@_3SH;=ELsqvN)d+UW( zJk6f*w;jJ7Vq$O2&{1Hiv9}i1NR|7rjT51)^{KFx+%g{KMy9MsqjWaPElZqHv-Tq27JuY?ltr(7#V4SN0!YxAI-}$E{@{*YKcew4SXq6SHofCpJaJz2Yr|R}> zS01Zb*b^~Kua>xF#@=e)11@icd%%7zDc3Eq=)dsdP zZ$+|{EfKPmu(r3~iR=7Q1c?-w$dvH00wN@Q?8H9^c-lDLRwz!i917_<9|w}YPyTT< zrDA^pNlif>$JX6b_4~9d50_kiXE@gl=uN3jR7A-Aliaex+R9eyTUJ=_+bxA4>^pQP_?2NPvPPXjHylEBd$ubNR%k_p+#9cN4fFkxmV5sUX--{u z+vJ)x17^?K7IJwpZ2kv@VO9grgn4%Z>1UU`(L< z`+*hdcpor71MdS4n9IBbgH)Hpt~~#h z^roiTYQXM$Q%zr+ZEohNE{9!tZkFw)Z0j{(_r0m6w{EFgO4a4CD^G1{Zc6jD2JF5! z)%3pF?UYY-Iqb@FYQHLeyLPLlS5*$Xa#WYYt~@LD_P&m(GOl5`_=*eS;#>^(%7XCwFJO4|+{$d2ADXr0WeC?*+PvHWnb0=X^ia0@ z>2b%Aj$`B)h38!ucv;{tp84RMfCy=Jy5m_0C;YJDw1DTG%sC|>LS}s1_B#mgJ^>-` z>7wlP`8e0Ju*njLIk5O#4uq3(*1Qg3LY`fkz6@fHEq^H&!h}5hCWhUIa`Ui`>-pF7 zF{W-I)$Q4?Jb#sb&;Acfcb0s;m+GVGg{7@OX}@n%BWmsFttyrtOK@ zJ#E+DcctwaQT%mr*lsnN681BDsfJZ06HEVD$~0Xneqt{xP4Z6Pbge7mlw)Vf^~@ z8;)#%xV-ls*#u!X(rY$ism(XNvFYi}ky|3SaQtt!9{ym%mPT85Z(C9%u!Q_(>*;N8 zZRb>OJ*g!ZJ`mD7eYoI5W=Z6h-kW=GW;xWB$gS^eT~Z_{{ga|rJhrK4O)b*e`sTl$ z+XQj`vBX%5-Tq27y|GmsJGkmM$e|C)Z~uy?wP*F{U5!D|pc8ClXL-5bp9JH6+&|ZV z5&PwX&wuuh1BnN?+~tSGZ=K_Al;@b(9Yc6oqT>pO2M_Bxl*8(t+XpruF!r%c{Tn>` zM86e%W)I%xxiWC(V_P-Y)9;g*Ni`Oz(+DM2Uf|qGok)ao`;1&LLcjq@d7}hmH^pn2kTJ0bpLl%8?7+A%(l53}@?-bT?gGU$l34Yk9j+=F)b&REDMPpb!B)`)cQN{OSE#vMs_q)LyzC$

Y@H! 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 ZBsB$`DanvC{P#jb-KFZ{)CCsx{{JMBT|fW; literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/boardbottom_tiledata.bin b/data/board_data/collision/sapphire/boardbottom_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..4087b502c72b134aff2d20b60ca6b5cd026ba181 GIT binary patch literal 8192 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 D4#My4 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/boardtop_tiledata.bin b/data/board_data/collision/sapphire/boardtop_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..407e9ef6b2050cc99a28fe6dd9d41a01921b4138 GIT binary patch literal 8192 zcmeI0RkRdG7=){S+}+*X-QC^Y-QC^YEs!8lh$|X*L!uCY1Oo9u1c^YTdv>;WdUlu1 zO>$0Nb{}@CzN)Uicb@LKK>QPb1OML}AOwk!7)g*6$&ef=kP@ko8flOg>5v{7kP(@X z8Cj4O*^nJMkQ2F(8+niy`H&w4P!NSs7)4MN#ZVk2P!gq38f8!xQ6P;0-iDLo`BTG(l4|Lvyr1 z%LJVM=haqdjW%eDc4%*nbU;URLT7YASBw9brW?AWN6f*V=!M=fTL~@nL0|MUhx%iH zqX%LT24je$hhi9pV}zqeViZQ3_P-TlFc#y?$aqY^L`=eDOuJ{Fi$|5Pl*A}n?eFTqkQQ);<8wE`>6=qju>T8lMUi*@R`9viUHN)l!^VY72! z3$|jLQnz3`cDNI_;x;q3)2NWxh27Yr?CrQC1QVq0#9dDRZro$e?ZrM<-;4VUz27KX zJb(ukcnA;M_;0yK@Tk*!43B&IPhh|64&b2Shj7?vTO7fY3Ot3UZ5-1*gJ+%2b9mnB zzJM29{}Ns{$t!r(Xuo(3uPgKh-t-4I@kepYNsr@%uk{w*cF8+<7w_SHoWv=7fDiEz zKE`RB!6*3Ccjhe4De@W4`*?JF0iUbz3w#+?`3hg-8+?oJa8YHK@I8LOkG|GVxa=cW za240^vyVozzu;FD{f6ri3O6FKaP+$m{eeFLl0rL3ut8JWpPBHgT6W@d@d%&J&6X19_YmJ96VR4f;Bhb4KK zH;hI83Gzkk3i%02|P`sp-m9m^(D$O!1%W`2{ zXXPVOorFFWSTSm=5-YO`t9tTk9v#@Iu1JkA8pvw0R+J==*Jd5oy=kMKO6z+X4cO4* z^hzV;8~a#bU4J);nlxoIHjkPH7h13-TX|Zo*~a5^t1a8Hy^jS?10C2gO4f;;qa>lz zT6JMpPp=!hdmPY%J=x15_GzFu`$Ww9Mx_4JKtJ~90Mi}FK}PHDU=HC>iwxs%j_{C? z9OZGL{m~I=C=aSJ9LsU0JDwAa){TkEO|r;jPT^Ee^RVfh;c>y;nVc1Y2Gh`UHs^4z zY0l$(qjhHi7jltBfW^u$vDi|}1-F-RIahF{FI&acKC*^u4Oz$aM(dpo+{jH90X8eY zg>j_0C@Iv%F^a@;=4xxA+5= z)2-0wK|W;ChxrH}+ChYZh6hr-%fl}(W5-($&Pz;pcVW+!MEJ(ZN9^I`JS)& zK2I8QiXRxQ&wt2|EFawbn5TJ$pYT&RJcD_~6#h{Kc?e`J2%?zs?($51#p*f4KZl z{jd6)eCVbkiIhq#Ny6GmC7EH#C56#?G^M1neCVRoQFy2kP-)y=TIZQA!m0F|f`vP%w+^WW+9Ih|fE$*rDwB(LN0Nq%#>fE1KM#ub(#M(dTLQq1+m zrG%7pbtx%rwY>NFbr~ru<)pmRui$)FluA13t;n_~IS z(nY#TH|Z`t+?}4%OR3&wwU6{QTCeq!{xZNN1Fa<1UD5JEGFXPVOG9Ot43`ly(kzdX z(MIcqF)~)h$#{oNu##x|vH3)qOG1S)L}-jSei$P=2PvX8DrXH$`jAc9!PI zT<1B@vpZiFc$_}JQ29l&SeD3AUlMISHeV*oWreJC_f~m!SIZiY(@Se*osY!cPe^0E cZ1C)FluaHN*x4LL60#qwyTw}HD%%|Y7o21+6aWAK literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/boardtop_typedata.bin b/data/board_data/collision/sapphire/boardtop_typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..d48dd5613de4779daac201c8e1fac6b10fb24dc5 GIT binary patch literal 42496 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 IgwWyt0I%JX0RR91 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/hatchexitramp_angledata.bin b/data/board_data/collision/sapphire/hatchexitramp_angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..255995a77561b803cbf9b19863fa457dd6088328 GIT binary patch literal 33536 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 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/hatchexitramp_tiledata.bin b/data/board_data/collision/sapphire/hatchexitramp_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..00a13feda6fd45dee604341b0361ab6627968ed6 GIT binary patch literal 8192 zcmeI0Wl&U67>1uq*jGUh9t};}2{qUYrA=W6p$12xv?&}-s3E#g+7yl<)DTlBZ3@RC zHgSkcJmQmpgd`#{Nk~dEoJfu{DR3brsYp#4(vpt!WFRA%$V?Wpl1+F&yKuw5R*-|7 zrl%y1;DMMMxQJxA^q!N{>LRG3!JrZA0 zgPPRBliJjwF7>ES0~*qZ#xzk`X-YGi<3$UVo3&C)TG5&|w51*G=|D#d3%uz>XS&eU zLch7K8{O%F4?XEcZ~D;J+!BG(4`2F6;88yhU?79=V=zM)s&27J^(TN~7CFOA!x_Oy zMlqT(VWQ37#xl;z?06lttY}Y6XNLCCfXhr~8L*-?F`GHe z)jArW&ttv;D+^f2B9)!REMcjN9@)||0$I)qR)#BH#cI}sQ}p|>mUXOW0~j1def>6P)A}r#Zt} z&T*a#T;vj$xx!Vh5kxT8xxr0tahp5bhk>U0t7wQlGfkhj z`C>MD`)Rt&W}&a|^-I0szmIqFMjm^6+Uf7>H9UK}c&j7JD?{HH82lLnNiDs<-c%$?EUU*?MrI=x!2x5re?m%ES98w^+-#m-M*j7#1q=W%+Kua zy|jAV(=Y4dSYwU&Yx*BL{!m@(4>msIZJJD<`~J7~FU0X)@9z1T@_8O!K`u*WVNblk z_p&TkaJdHzYZ|OPjQoF7skctLB1C@OicU@=DS=WBnkc1`^{y(DZ(lgs80mocKqe?R=EgO z&+WU7Vn>LDqj6DHP0Pex71a-gNhmCC6szgU$PJvk_Y!YGF|kEi0&5)7*jY8;K@(B} zO^14m;N_}cu7bZx`x2cmG|^-qjRfWBV!AqY{~ZGZy{9bgaOnJp+y(y(y8pJzlC zHx`OH}o-a6g&dh2u-Srf;Nd`4Z2puCne&&0w!n^wCmSCqeiyN#8# zKVp}mMPtcG7GoL9$g^iyKFvFt*shR)#8j|Z7*Mn|Q=0>iEyJdx=4v>T3rOKwB!=Es zalDwO`F%XxXgCe{b;!r|*Z9Kh3r*z5y@)@AIDO*MNp$p_3Rusn5oM<}!BmE4aTWE?#HXEW zwwj$jgcVD<>|QXl5TrkBcmUH4+UabsCI3e`vTYd|et3B=3sIHVN8g0Skr3d@;& ziY|;pAsG3|^^}>;1ZIwo*hh;lsS676oE25;&kfkR)f}F;n>}y0wEp(itxB_}R`30O ze`G5qfdJw0{(vWWNOX)`;WBr%U{}zJ6m;#3d5)jfPrjj)un%QL0ef5E&a%(17p`o3 zM;iZ=?vF5|9C#`$7vfNjoR|*YDdHBfio97QW4k zX3zF*+qd;D-+@*zp+0K$vraljcT^`_-^96|=3(jjM(op#6v!Bk+4cEGT$!56`pK6% zqb2i5K`5fAZ7+~dyoN~oF*@x16kNEz^Ex(Of&Egdq5aPOsy`(tOb`jWd%FlHQ9O4RNGLdOBtIM$98p;fcglLyBU#nQ`*4vT8#AV#UW& z+}*R$(=PG;naDqTyhV;5pkH5q9rV78RINc7Ei9ZFbSOgwZW?`QT%vQZ9~Qsyn?8|e zNXV_&CeUQE9)R^h8#=Xv5vF2Y<#up+t5?qkfEmQ9q-8z`*WdDJ+ijGtLhf8287x bKgRtr?$5$c#I9)kevIFb@%!=r`ThI{jTx^C literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/topramp_angledata.bin b/data/board_data/collision/sapphire/topramp_angledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..70f516ef93292e1a5e5833f0ea157c13fad9815f GIT binary patch literal 53504 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 G$N4{*0@9fP literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/topramp_tiledata.bin b/data/board_data/collision/sapphire/topramp_tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..9670e1fe2555d2293f00e833dfadc4c7a6a78f34 GIT binary patch literal 8192 zcmeH@Q#Kh8@&@>9T3 zT#!N(rig>2+*p)i6!)nwK}kya@aU*CWhhHI%2R=gRHAZpd&0H~RRcWLs2;HK!!@W$ zEoxK8v8+oy>eGOR4(1*k(U>M~6j4oS#(5DHZD>vlTGEQvw4p8SXio<^(uvM=p)1|! zP7iwe7WAUGFFynO&^OBV%&HNfgWF*wjWgrN*$xX*qBBYkKh8pY_uG2nj;V;RSI zCIsx0@I)ptIZ2+KrZCmRlE5^kCkdZv1~Zw(Y@dxEn!{Y?8H@QWFo;twWRX)E^J12; zlw}5uCYQ5_qd%MZV*vB*~RXN z3N!3sugkuV{Vwek2RP`Ij`}~GOY2o!?c=OzBNdA`5oU|hJN5j!}$|G8zd#=FZ^oM|HkhI zNlEz!e;W0F@wY)zQvL&S_e*IE;@-zsrByoPT6$$LNPI84+cGMXaV@j57{r~3uga=y z#p<>P*FN&Zqo7mkOw$4~^f|#HK zzqm@Mr0<*MLxM12ss4 zH6&Cf=mkSHOv6JrjnGJq(rAs*SdG(oO$glp6B9C%G+9$LHFSEKrYB@(Xr^Xqw&rMV z=mwal`C5>WTc|}bq!&jrOSDwWA}Z)Rd--y$IGtJj_J5g=%h}?kPZ5# H|4;repyaa@ literal 0 HcmV?d00001 diff --git a/data/board_data/collision/sapphire/topramp_typedata.bin b/data/board_data/collision/sapphire/topramp_typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..ff82fb6e952c527363da82a0f2fbb18afbcb1c69 GIT binary patch literal 26752 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 G@Baa_rs917 literal 0 HcmV?d00001 diff --git a/data/board_data/collision/spheal/tiledata.bin b/data/board_data/collision/spheal/tiledata.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fff1bc8784487faa2f37eadd1a748ce7ad5400c GIT binary patch literal 8192 zcmeH^Q?w*m5Jh*iZQHhO+qONn(LMGw$F}Y19^1BUd-CP0s;rwC$(pt1r{2$vv(JeW zwems!FaHJdUm*Vl@?RkT1@d3u|Na6(5sFfb;*_8yr4s*~(v+br z?djmb9qB}84-Eoc=t?(FpgTQ0%mh8@MQ;W})-Uoi(TkU*rl~v)r!#|@X<@vxm~H4F zF^9RTJ&*Y;P@Obf$RZY}h4C(7Da#DvCzi8g2LIW7iq&*#XxnL=&KaB;nu{CQ%oet?EyCJ%E3+d) zE?(p;D}HvQm2<4rxtte}J)aA>kc+sOOSqKFxST7vlB)tXuI3ucy*41>Sl4mAC2nwl zXS&ft3cyV&Erd5)&n?^)752_R%;$h2qghzdR4L@eX$9Y0Cc~YfMsq|@{vH7#A>j$6XdE0t{7nR6M3WJvw z`UH7?cGyK4hcKj!PPObgIub~CM@p~%s2Y=erU;G`qr3d~2DR4xJ z*l$rOX1{v6kQSE`cBZ71vft8DCUnQYuWV|!oRpUeQZZ6fC8;b`q-rW#Ez*wPFQ_gx za@wycwQ|~r+Bxml$!QzvO1+#K>Pv$}`wgX$G?pgPG|_hUf3ul1mlo1eTE%K=Ep1}u zvoC6MTWJ@wuYJtCcGY1WVz+gaPO*2Kd*;+xx+Li8D&3@ef<5zg59ukr61Vi0K8be= zen(&Fm(xDsdJ)Cij)h!rn!@4icAgco+i^}Mqongjm~DuESc@wKS$=uJYP5ZmEh!jS)krn zD2r4c+?K>$tln9o(j@(1J4@9|%TyZHmBe4JURt5jB>iDKE7eP@R2tTm#9ysmTBFh= Z{b4(6)l2JC8rGG>U$0);pwcM){{l>nm&pJC literal 0 HcmV?d00001 diff --git a/data/board_data/collision/spheal/typedata.bin b/data/board_data/collision/spheal/typedata.bin new file mode 100644 index 0000000000000000000000000000000000000000..278fa1b4b443eff9d6f7340d18a52551a25f6bab GIT binary patch literal 23488 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 literal 0 HcmV?d00001 diff --git a/data/board_data/dusclops_board.inc b/data/board_data/dusclops_board.inc index 772de855..c6b5517c 100644 --- a/data/board_data/dusclops_board.inc +++ b/data/board_data/dusclops_board.inc @@ -8,13 +8,13 @@ gDusclopsBoardBG0Tilemap:: @ 0x082EE4C0 .incbin "baserom.gba", 0x2EE4C0, 0x800 gDusclopsBoardCollisionTileDataAllLayers:: @ 0x082EECC0 - .incbin "baserom.gba", 0x2EECC0, 0x2000 +.incbin "data/board_data/collision/dusclops/tiledata.bin" gDusclopsBoardCollisionAngleDataAllLayers:: @ 0x082F0CC0 - .incbin "baserom.gba", 0x2F0CC0, 0xB180 +.incbin "data/board_data/collision/dusclops/angledata.bin" gDusclopsBoardCollisionTypeDataAllLayers:: @ 0x082FBE40 - .incbin "baserom.gba", 0x2FBE40, 0x58C0 +.incbin "data/board_data/collision/dusclops/typedata.bin" gDusclopsBoardBG1Tilemap:: @ 0x08301700 .incbin "baserom.gba", 0x301700, 0x800 diff --git a/data/board_data/kecleon_board.inc b/data/board_data/kecleon_board.inc index 5a019842..15dce5c4 100644 --- a/data/board_data/kecleon_board.inc +++ b/data/board_data/kecleon_board.inc @@ -5,13 +5,13 @@ gKecleonBoardBG1Tilemap:: @ 0x0830CDD4 .incbin "baserom.gba", 0x30CDD4, 0x800 gKecleonBoardCollisionTileDataAllLayers:: @ 0x0830D5D4 - .incbin "baserom.gba", 0x30D5D4, 0x2000 +.incbin "data/board_data/collision/kecleon/tiledata.bin" gKecleonBoardCollisionAngleDataAllLayers:: @ 0x0830F5D4 - .incbin "baserom.gba", 0x30F5D4, 0x10280 +.incbin "data/board_data/collision/kecleon/angledata.bin" gKecleonBoardCollisionTypeDataAllLayers:: @ 0x0831F854 - .incbin "baserom.gba", 0x31F854, 0x8140 +.incbin "data/board_data/collision/kecleon/typedata.bin" gKecleonBerryOverlayTilemap:: @ 0x08327994 .incbin "baserom.gba", 0x327994, 0x800 diff --git a/data/board_data/kyogre_board.inc b/data/board_data/kyogre_board.inc index 89370163..61e056be 100644 --- a/data/board_data/kyogre_board.inc +++ b/data/board_data/kyogre_board.inc @@ -9,13 +9,13 @@ gKyogreWaterBackgroundTilemap:: @ 0x08333004 .incbin "baserom.gba", 0x333004, 0x800 gKyrGrouBoardCollisionTileDataAllLayers:: @ 0x08333804 - .incbin "baserom.gba", 0x333804, 0x2000 +.incbin "data/board_data/collision/kyogre/tiledata.bin" gKyrGrouBoardCollisionAngleDataAllLayers:: @ 0x08335804 - .incbin "baserom.gba", 0x335804, 0x5580 +.incbin "data/board_data/collision/kyogre/angledata.bin" gKyrGrouBoardCollisionTypeDataAllLayers:: @ 0x0833AD84 - .incbin "baserom.gba", 0x33AD84, 0x2AC0 +.incbin "data/board_data/collision/kyogre/typedata.bin" gKyogreBoardBG1Tilemap:: @ 0x0833D844 .incbin "baserom.gba", 0x33D844, 0x800 diff --git a/data/board_data/rayquaza_board.inc b/data/board_data/rayquaza_board.inc index cb0e09f3..0cc3f0b6 100644 --- a/data/board_data/rayquaza_board.inc +++ b/data/board_data/rayquaza_board.inc @@ -6,13 +6,13 @@ gRayquazaBoardBG0Tilemap:: @ 0x083640C8 .incbin "baserom.gba", 0x3640C8, 0x1000 gRayquazaBoardCollisionTileDataAllLayers:: @ 0x083650C8 - .incbin "baserom.gba", 0x3650C8, 0x2000 +.incbin "data/board_data/collision/rayquaza/tiledata.bin" gRayquazaBoardCollisionAngleDataAllLayers:: @ 0x083670C8 - .incbin "baserom.gba", 0x3670C8, 0x4F80 +.incbin "data/board_data/collision/rayquaza/angledata.bin" gRayquazaBoardCollisionTypeDataAllLayers:: @ 0x0836C048 - .incbin "baserom.gba", 0x36C048, 0x27C0 +.incbin "data/board_data/collision/rayquaza/typedata.bin" gRayquazaBoardBGScrollTilemap:: @ 0x0836E808 .incbin "baserom.gba", 0x36E808, 0x1000 diff --git a/data/board_data/ruby_board.inc b/data/board_data/ruby_board.inc index 92204d29..ade72c82 100644 --- a/data/board_data/ruby_board.inc +++ b/data/board_data/ruby_board.inc @@ -5,43 +5,43 @@ gRubyBoardBG0Tilemap:: @ 0x081C08E4 .incbin "baserom.gba", 0x1C08E4, 0x1000 gRubyBoardCollisionTileDataLayer0:: @ 0x081C18E4 - .incbin "baserom.gba", 0x1C18E4, 0x2000 +.incbin "data/board_data/collision/ruby/boardtop_launch_tiledata.bin" gRubyBoardCollisionAngleDataLayer0:: @ 0x081C38E4 - .incbin "baserom.gba", 0x1C38E4, 0x18780 +.incbin "data/board_data/collision/ruby/boardtop_launch_angledata.bin" gRubyBoardCollisionTypeDataLayer0:: @ 0x081DC064 - .incbin "baserom.gba", 0x1DC064, 0xC3C0 +.incbin "data/board_data/collision/ruby/boardtop_launch_typedata.bin" gRubyBoardCollisionTileDataLayer0Alt:: @ 0x081E8424 - .incbin "baserom.gba", 0x1E8424, 0x2000 +.incbin "data/board_data/collision/ruby/boardtop_normal_tiledata.bin" gRubyBoardCollisionAngleDataLayer0Alt:: @ 0x081EA424 - .incbin "baserom.gba", 0x1EA424, 0x18380 +.incbin "data/board_data/collision/ruby/boardtop_normal_angledata.bin" gRubyBoardCollisionTypeDataLayer0Alt:: @ 0x082027A4 - .incbin "baserom.gba", 0x2027A4, 0xC1C0 +.incbin "data/board_data/collision/ruby/boardtop_normal_typedata.bin" gRubyBoardCollisionTileDataLayer1:: @ 0x0820E964 - .incbin "baserom.gba", 0x20E964, 0x2000 +.incbin "data/board_data/collision/ruby/boardbottom_tiledata.bin" gRubyBoardCollisionAngleDataLayer1:: @ 0x08210964 - .incbin "baserom.gba", 0x210964, 0x13C80 +.incbin "data/board_data/collision/ruby/boardbottom_angledata.bin" gRubyBoardCollisionTypeDataLayer1:: @ 0x082245E4 - .incbin "baserom.gba", 0x2245E4, 0x9E40 +.incbin "data/board_data/collision/ruby/boardbottom_typedata.bin" gRubyBoardBG1Tilemap:: @ 0x0822E424 .incbin "baserom.gba", 0x22E424, 0x1000 gRubyBoardCollisionTileDataLayer2:: @ 0x0822F424 - .incbin "baserom.gba", 0x22F424, 0x2000 +.incbin "data/board_data/collision/ruby/topramps_tiledata.bin" gRubyBoardCollisionAngleDataLayer2:: @ 0x08231424 - .incbin "baserom.gba", 0x231424, 0x11E80 +.incbin "data/board_data/collision/ruby/topramps_angledata.bin" gRubyBoardCollisionTypeDataLayer2:: @ 0x082432A4 - .incbin "baserom.gba", 0x2432A4, 0x8F40 +.incbin "data/board_data/collision/ruby/topramps_typedata.bin" gRubyBoardCompressedTiles1:: @ 0x0824C1E4 .incbin "baserom.gba", 0x24C1E4, 0x1B7C diff --git a/data/board_data/sapphire_board.inc b/data/board_data/sapphire_board.inc index 3f8a7253..42022146 100644 --- a/data/board_data/sapphire_board.inc +++ b/data/board_data/sapphire_board.inc @@ -7,43 +7,43 @@ gSapphireBoardBG0Tilemap:: @ 0x0826EE10 .incbin "baserom.gba", 0x26EE10, 0x1000 gSapphireBoardCollisionTileDataLayer0:: @ 0x0826FE10 - .incbin "baserom.gba", 0x26FE10, 0x2000 +.incbin "data/board_data/collision/sapphire/boardtop_tiledata.bin" gSapphireBoardCollisionAngleDataLayer0:: @ 0x08271E10 - .incbin "baserom.gba", 0x271E10, 0x14C00 +.incbin "data/board_data/collision/sapphire/boardtop_angledata.bin" gSapphireBoardCollisionTypeDataLayer0:: @ 0x08286A10 - .incbin "baserom.gba", 0x286A10, 0xA600 +.incbin "data/board_data/collision/sapphire/boardtop_typedata.bin" gSapphireBoardCollisionTileDataLayer1:: @ 0x08291010 - .incbin "baserom.gba", 0x291010, 0x2000 +.incbin "data/board_data/collision/sapphire/boardbottom_tiledata.bin" gSapphireBoardCollisionAngleDataLayer1:: @ 0x08293010 - .incbin "baserom.gba", 0x293010, 0x12480 +.incbin "data/board_data/collision/sapphire/boardbottom_angledata.bin" gSapphireBoardCollisionTypeDataLayer1:: @ 0x082A5490 - .incbin "baserom.gba", 0x2A5490, 0x9240 +.incbin "data/board_data/collision/sapphire/boardbottom_typedata.bin" gSapphireBoardBG1Tilemap:: @ 0x082AE6D0 .incbin "baserom.gba", 0x2AE6D0, 0x1000 gSapphireBoardCollisionTileDataLayer2:: @ 0x082AF6D0 - .incbin "baserom.gba", 0x2AF6D0, 0x2000 +.incbin "data/board_data/collision/sapphire/topramp_tiledata.bin" gSapphireBoardCollisionAngleDataLayer2:: @ 0x082B16D0 - .incbin "baserom.gba", 0x2B16D0, 0xD100 +.incbin "data/board_data/collision/sapphire/topramp_angledata.bin" gSapphireBoardCollisionTypeDataLayer2:: @ 0x082BE7D0 - .incbin "baserom.gba", 0x2BE7D0, 0x6880 +.incbin "data/board_data/collision/sapphire/topramp_typedata.bin" gSapphireBoardCollisionTileDataLayer3:: @ 0x082C5050 - .incbin "baserom.gba", 0x2C5050, 0x2000 +.incbin "data/board_data/collision/sapphire/hatchexitramp_tiledata.bin" gSapphireBoardCollisionAngleDataLayer3:: @ 0x082C7050 - .incbin "baserom.gba", 0x2C7050, 0x8300 +.incbin "data/board_data/collision/sapphire/hatchexitramp_angledata.bin" gSapphireBoardCollisionTypeDataLayer3:: @ 0x082CF350 - .incbin "baserom.gba", 0x2CF350, 0x4180 +.incbin "data/board_data/collision/sapphire/hatchexitramp_typedata.bin" gSapphireBoardCompressedTiles1:: @ 0x082D34D0 .incbin "baserom.gba", 0x2D34D0, 0x1D6C diff --git a/data/board_data/spheal_board.inc b/data/board_data/spheal_board.inc index 7914151f..f1ba1bc9 100644 --- a/data/board_data/spheal_board.inc +++ b/data/board_data/spheal_board.inc @@ -6,13 +6,13 @@ gSphealWaterBackgroundTilemap:: @ 0x0837A4E8 .incbin "baserom.gba", 0x37A4E8, 0x800 gSphealBoardCollisionTileDataAllLayers:: @ 0x0837ACE8 - .incbin "baserom.gba", 0x37ACE8, 0x2000 +.incbin "data/board_data/collision/spheal/tiledata.bin" gSphealBoardCollisionAngleDataAllLayers:: @ 0x0837CCE8 - .incbin "baserom.gba", 0x37CCE8, 0xB780 +.incbin "data/board_data/collision/spheal/angledata.bin" gSphealBoardCollisionTypeDataAllLayers:: @ 0x08388468 - .incbin "baserom.gba", 0x388468, 0x5BC0 +.incbin "data/board_data/collision/spheal/typedata.bin" gSphealBoardBG1Tilemap:: @ 0x0838E028 .incbin "baserom.gba", 0x38E028, 0x800 diff --git a/tools/collision_viewer/collision_viewer_editor.html b/tools/collision_viewer/collision_viewer_editor.html new file mode 100644 index 00000000..77aa5df7 --- /dev/null +++ b/tools/collision_viewer/collision_viewer_editor.html @@ -0,0 +1,900 @@ + + + + + + Pinball Collision Data Viewer + + + +

+

Pinball Collision Data Viewer

+
Single-layer first pass: visualize collision data as 4×4 sub-quads, edit the selected 4×4 source segment, save regenerated tile map.
+
+ +
+
+
+ + + + + +
+ +
+ + +
+ +
Load all three files to begin. tileData is used as a placement map/sanity check and is regenerated on save.
+ +
+ +
+
+ selected 8×8 board tile + selected 4×4 segment + type 1: wall inner edge + type 4: wall outer edge + Click any quarter of a board tile to inspect/edit that 4×4 segment. +
+
+ + +
+ + + + \ No newline at end of file