From e4d30babca251d1478c5c73b0af5e99c7085a8f5 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Sat, 25 Feb 2006 22:37:29 +0000 Subject: [PATCH] move end-user documentation into Manual/ --- stepmania/Docs/images/smchallenge.JPG | Bin 52 -> 0 bytes stepmania/Docs/images/smmainmenu.JPG | Bin 52 -> 0 bytes stepmania/Docs/images/smoptions.jpg | Bin 50481 -> 0 bytes stepmania/Docs/images/smpackage.JPG | Bin 52 -> 0 bytes stepmania/Docs/images/smselectdifficulty.JPG | Bin 76 -> 0 bytes stepmania/Docs/images/smselectstyle.JPG | Bin 52 -> 0 bytes stepmania/Docs/images/smsongoptions.jpg | Bin 94793 -> 0 bytes stepmania/Docs/images/smsongwheel.JPG | Bin 72 -> 0 bytes stepmania/Docs/images/smtitlescreen.JPG | Bin 52 -> 0 bytes stepmania/Docs/readme.html | 738 ----------- stepmania/FAQ.html | 231 ---- stepmania/Manual/index.html | 8 + stepmania/README-FIRST.html | 1210 ------------------ 13 files changed, 8 insertions(+), 2179 deletions(-) delete mode 100644 stepmania/Docs/images/smchallenge.JPG delete mode 100644 stepmania/Docs/images/smmainmenu.JPG delete mode 100644 stepmania/Docs/images/smoptions.jpg delete mode 100644 stepmania/Docs/images/smpackage.JPG delete mode 100644 stepmania/Docs/images/smselectdifficulty.JPG delete mode 100644 stepmania/Docs/images/smselectstyle.JPG delete mode 100644 stepmania/Docs/images/smsongoptions.jpg delete mode 100644 stepmania/Docs/images/smsongwheel.JPG delete mode 100644 stepmania/Docs/images/smtitlescreen.JPG delete mode 100644 stepmania/Docs/readme.html delete mode 100644 stepmania/FAQ.html create mode 100644 stepmania/Manual/index.html delete mode 100644 stepmania/README-FIRST.html diff --git a/stepmania/Docs/images/smchallenge.JPG b/stepmania/Docs/images/smchallenge.JPG deleted file mode 100644 index e20f81edbdc2c1cf89e312c1813617738c3e95e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52 zcmex=2&BP6-15 diff --git a/stepmania/Docs/images/smmainmenu.JPG b/stepmania/Docs/images/smmainmenu.JPG deleted file mode 100644 index e20f81edbdc2c1cf89e312c1813617738c3e95e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52 zcmex=2&BP6-15 diff --git a/stepmania/Docs/images/smoptions.jpg b/stepmania/Docs/images/smoptions.jpg deleted file mode 100644 index aeef37586efc503333d98885e6f053efdaaba576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50481 zcmeFZcUaTiwk{e(KoCI$q$eu9_ufRLOYdDoy7VSBf*{hROBbo3N(sG4F9AaDMSAZY zLUQ6--(KHZ``mS(z4qPDJ?D=Vo{%TW%rA4yGR8aJ@y?*8P`>~V6=fA<0T_2M0P^TR z0O}`z=pM$eJ0CDHhyZtpFffTQP_uv_0QOxhY^=N3*jU&&IN0~_i0J8O_@f`rbz{2>;4e-Ye;|?aeV>tJ4@$Nqa+`+)aymJ>53+wJ(bW1<6bFHa`Fm_np)aAx_bHs=5H-5t*mWqUESP0Jl}hHe+&x#6!JMVEH*AaAu;J|a?1DY zoZP(p0!U#+Wfio#rnauWt-YhOtGlPSZ)9|Ad}4BHdS+>PWp!c!==kLH?EK>L z>KX%p`B!t$|Nm;x-`Rs6evCVJ?_%D?`E3uz9Z&QfljttiQ*P`>QtCKn&cx4n0`8H# zh{-B%#iixdI3#`JGK}|_j&F(n=(kCKvFN{MP~d;dqQ4pRH+xVs0DMdg^s>Pu0!RXu zc6Or&?|i@mFaf^(`{DooA$Y(ps2F=p%j`_;^@OI55d|nwX9*Lb9xrD}g_goH52L}O zlSpY4U}wz7krq^n0(c$~Udpv>?VtcpQGm0}^98B1#eF0LSt!w|Tn*bNJqCK;#d^{P z%*hffFPSQy<4C*9RBihbTah4>F_W7;S|~wEZf`7mLfap!juMh;or0K~L;q9&Dk{mSYHL@!oaj=g9 z1nP`6s?9`3OeA@~BfMJ#4M}l5qjt|_u4Co1lV;aqVfj)pYGQh*Vml}Qqp-g<&6DPq zFbt9vo*4-o=q8;%q%e5DSghvEKB^g987m^rV**=Fd8n$?YKOhJ25ddBm2ar z|7lJ7q7Oy4Vz0LSUM}3gON&-&Y<)5jX=t>?$@o7?#Kpt8F1ngTVKo%s5f|-gUWyOJVA{7mdP^x!$kcT6Y*Eis$Nk0+lq$}Km5T3e z$4QqSBc+@n)2(LoJ4Uh-Jv_#G5B)-#2%Hr!?wJ)1e$UA+;&D?YZZEWbWJvBmD6k*V zv*LO(N=j7ZX_Yk{2D5mPl73KHZAe4(>+NZYD&GpfDdoL9x6yA3w9+5>N`f7~(KPMg z>i7}562_g-Z8u2tgsUDkRDIl=7`~!Ap~F`&{dty43HLC5mq340XSeRY2e$nFY*LLW zL7HI$(@FeZNnMg_rxr`Y45#YTa$5mSBl2er0qdZj6?ecaB+K)0xMtg3V#nc1L*0`I zZO7cf^P`uOg7=O7a6U)f3~)0P-UqZ9K6qapWif%mTh+bTF#5`VcyY>ZR|U1j$>Ej#Te zSSgB3`BfL?&%xFV7iJY0FLa(O^9wZ*GrTt#G8*})G?bzQ)609<>x`%9O)G?RoSn>Q z7emQU540e2d?AFMzVJ_h_iO2ry}$S1A__FaJzhbUw%f!;&{ouFy(R&uVLZnI{Ko?Z zeq2HvEQ*;vj$)Q_bxhG#G=+)PRUxObW6=`@c)kO_IS038&q~*}xT64)WD8X24YWz) zg#!4)FV*+5<|O||UvAi%1Yhi;0Kvc+@$Q?ltIOu2$6oW(kGi(fx$9n9v1TL}+nFDp zvhP`D`<0HgEO;zc^vf~}n=P*=9p|Bu+jJue@XdbX_F8hu2nCqcBfPpLMBsvx$B|{0 zpp$jeOZ=7|UUcW5&%$p`!EMod#W)CL2=Z=AzvTFCJJJ`10$?OvVLM80QvEhD`cnNC z`T^}4KATkMJr07)S*ve40<;`WpE#gzqdHWwz`HvI(`x!Nj z2k`J8rW>G!BU#83ekJvqkmfentM*emKZuXQZ;bBq`WazUG~pclrjYe|o=xN^ow?GepGJ8XJr)_OX}C z;6@R(`@pO8SgTjh5|$G?;SX#D)#eo4ju_L}S8aHLr2+Xkz;DZ+wUEZU=27jV@w(92 zWJ6QQW12i^D`yYc?DrE#JY>A)&K@g)D&EJo#q|xuChlg0^RoLl9@5!RXyVL4Z&O;M zIz^%+?VIL>jkqafRf^%qB6UTvVI7CbrkR#r;!Br>i4B7QP7bjzIb!DdUza|S@!K%c zB`5Oa%B#iYQ(YYE%$+tV3e%64W(O_nh9>yuI2-fms&w}a#YW2a88Sq33^}mxo+&9D zm^0i9B@kH6Y6YxJO|lv2IGXP`yKQL1XDe^Rfb`8(&EufWv`LxI|#9!uMa ziWJ-4oWJ94=6Qatp;PYclGIfXUD!e5n(Kz{9azliHI~!ulDklJ$sZ@41o zbt?tG{zMx2yE(*~DH3VhD*Ngxtyx?pI6Q;u?ctMQ+W^@|nO}KvZW3->Y3NuEC&;c1 zP|=;9ycFbtxt%C`2r53m`s(+KzSEXZ7C_|xK{lHkN%o-MC5b!x_Rs{){P z5M%EwZ@jdDLZhH)RKsrB5Llnjg1gUJby-teb?+Z>OXZS^JI%|CZw!*WM&u=fzN42~ zNO0DuF7t9Q+U-WXfUrHsgz!CJn2(9cy9`$ygDUL4%i(EcZpu+VCi)^IemyS4S30AIWHqh;RqWVH`~^9Ib`n!(itV3)_7j+I-J=9Ng=8oghcqLMa=zER?Nel~ zDThyAHmKHR@Ez}eSI|zOp#NM5s}b&AwVN$zzf4hcX*5(eX7nh7!Z{LMU*yDAD&$*E zM9ofx!MbL|=Q|taPs%cGXgxm%vu~x0v^+2`Xw$Tj(DsPat;r&(oTJy5Wp44BHnz4} zbY7;BcfN=}LT;7~UurM1=5C?@0{-e<>Pmc&W5gHTVGz?l_hmrG+guwIKpcEDiX11EF9kj&FEyFOriiZzad_T({+hS>z~a?eDpjC|ErCRN(h|(N^4-6bhoF-W?9j6 z?gjCxT+QtY3(>h=;w_cPK1#Kx9_OW2rV!FhRUihpftJuIG?pP!4q+!*G>X)agdVk= z9EBjBB0*?(9%@AGwu9vJGs%37oa{mY;9aiGT%&vsIOgq3_+XATgSeW3zPX#G2yxY+ z32mEE1A55TT5Xzzm+N5mnrU>>Ra!qc9XFeEWI;ASBSK3%W?NB3xp!Y8nE{Pq`Aqj% zq2nA$0#1V0BAHj#E0@TRP?BsohgHSY$;m6LA0ahrr}@L2%(7%9e!G>`Hbc}&Gh+r_BO-FVEad~=VX;)FKnxLC;>Dr4Fg_F8kZbF6c8 zpELq}KX}JQm+{3v^~p1SWx}qp8vib(x`WJHGNdd&=J$=o zOa$V!j2ve+W9O{B?-IJ&r6#dGvyyux1b1j8U@n!ng)%sjg~tY+j@-r=yV+xEj+L5K z+q_BPP14K6^K%kLI4i|In5JyBMSn$wFb1d$ z1*E+1H`i#29d|S3r?KZG5m*xE?BS>4faE0H*0It|e_P{;?^H^(N?Qg?Bi4iBa@a@f z#2-~z?b4Ps+xT|dh&YCPH?*sc+lX6_gol(kCBHiA_;~n=;>RVpeb}gruKrQw>l_!O zJ5-}lXTU)k{c$#b0dZ(Ny-`fYA1S<>y*#7*LQf102|86T-5-#8By1q3rPtmk@Oo^dzw{t9`V>RyxVp}NjquZV9I z(A%k1XqUAZ4cC>t;W6l%tj^cZMl*e_C1{)qy1hHu=3Lf}X6b5L&PPuj@muC?5iP=0 z35OwDOK7w%<1#|uSc32WE=xg+kt#}vVoz5=W`MbYb^C@$y;rKXsNtPcibq_TLSfTF znHfnXPrVFNErxwOWJ%5EqO780<#^LulqJAe-q&`y8#lGwvWbc;sh zDU$e5HOAhGqvC`r+~!rxPkL;AVR9jmV#G?QU(N>pGoy;g)av5m%4e%V^q~$%o{HDR z+n{6aZBuP@%#rcS#6_D@ngmAy6s(QcYnF_ZI_9@kXf_sf66pMRHpyeFK=L!#3O zR^roW3xd{jNK4B#9_F<455Gdk17zTbbG2QNZR!mg(ti_=7sdH&Vq;nq82IQ&|3s-gsUi!V!boCU z*`54IOtj$j*Q8;nOptADN}m(gO^McB#n@4w-%(19h`C zKY$rP`L%t-IC(%<^6*aQe9n=zC_awAyQ0E}ZO}6yDG{*pHW3Y66MB^7PkGaRjAa6f&uw8e}M(3nGWJ4r}&j;V1l6 z>CC%)$;E~|Y`GP`f}aqD)k5g)sNaW;*-mI{?b*3mx+i_Is{WEGt{CK|T+Zb96{v79 zk^90gDy4Rt*znBwnq;yy4vThAEM^*~Y$B;L)7&#f-4P5&M5a@{wC6e2kCD#qDj*IB zFUXIHsa+-$_hvu5#arl|aQaVJle=2kJBG)9DzFol9WfTJ`I%}w$<6VaFTX&^q z6qO`rx-aQlG$v}Lz7fl?9Qp7=SeUBvKy8V2*R7o^o1CepP-o}r?gFumyKEg#P5iM} zu+aRZ(0mFt-TW?5zm04Xqd;{v{FugW$*W|e=PUWAy=<5tnSpV-nPVm3{0zJV$u0QP0;$MD~<=PZz>$ShIp?>)KYxN#JYmME%|3y zMDn()n!8(x{IL8`{*H<2B+c_8FPrYbT;y_w-;BxCarKngbohW@+<-A^{!LJUzJV*LBCe~44~+QyfiO|(y+S(UeFW% z)E(ntz)f>H;nj{-d|h3!iwcxXN?jA$n30#C%!xQc0lGU)`5LJG|FV+Fy<*YG2ZZod zAK+-+Edayets(!>ih5-Cugm@ae52ScU7jhUIYsu1&<{Ne*xZ>%#VjN7*A&Y?##r09 z&l79n_|U!?ow8?w5Mh#S<=0hFoV$gf6SQ-p2d{%>E6_$pBV|BKa^pFmX)Vc(3#1|n z&@cJtN1}`5B`eVOA0QG?fUjT&bZRdlc|`&a2I+hOTc8QG%*88KG=YGePeS^FkD1WC zf<(y^WZ!R})pD$hG`nr!M4&55tLjJ+KLe@T1ZgA~yjq6ntM-nso{8L>oc8p~w}P!> z)L3^Lxta*Lw~zFX^TS~<|D>k9^#+h*yYL=$Y&-p~xWV&1+=+HC2M&?vO%%t3(SK+Np>9T{F4AYt@PZ5MhTPt`Vjvz%$U{m*3`quE^2m zY*V+Otw;OaSscVmO3=y95g36kVo9TW4_-Axl7I_b{$eaA3h)ke^w1g%FY81Bj-R3c zxcDt6ODI50$fY_m3-;T*mfIiya%arobR*kjg0j>UpG7?hxVTO25?)(;Xlo~cuIbkOn>E1Eo$!C}0{uU}X(&!6Gm-EeJs(xt(@gVqAoxbI z1UT9w9{m-~lYcKR?xPxqHMTBISyil`8ITVdA>&B76o6DLbH_ z%^4aZSR~3->m)`%{mrMqKVN0K?vz;Cdy0S^NUii@^&0`RS3Vd0~sLMSInNob@T+jFJ%nBOG zp2*)8%QNr2o;7AapLWJ&3vR5leBeH#7TfmCidyR=84iedNUk9XXS3bv;kTLl1yRvj z>+2rnUDd?`fdJ|HKMujRDYb*oHnq3}iQ9fh(woT;{fC#tp%D!UJiuNG{V z^j?s$d+;icwwA8UYG0x%z9B`seNit}+v?#Tm|0GJcppkXy3dy3a$aBjNP$w32;a6x zuSR)_;wRj-%MR9&x9vNe%Vr_+2!a=Cpp_E`ou9FxpV^;57dajsMrGM7@7!8mFJ7=<4smpNxN)o zt;Uwi19U`#u7gib4oz1k-WOPOne&q5dq zFy+y*kc7MjEg7J}u6_#w4TgHnk+O^1vP$Tw03X|clLNdcJKfoA(hEEAC%1jY!;8XU zkjdf$MxUm7=nx_#^oN#{ey))?mbL7JLDO=kvFFn=>%$lSEy>s&;WfQyHlS}gM$cAv zBNU*M3W}e#IJ`3zlSF|*TzKkDUFqKH3=^RMxCyu`%DMQCbG;P_^6_YjaqhlmniC93 z8eJ(j47PhC>=mnefCBK~iqTtl6cZ1|dYo{{f&t7Tc3C;D-r@Q=lQEeL2{a8=8d(dC zKs(;?NKd|8vTRtMG=yN~9byT3UsMql%$J{K558%r;iY z;n)$osU@|0+#P-QSR*^Xa?eHyoo}oideN{<0lg#_6a+y@N?tq1l9pv(2QwHGe3^5Q z;8hu{53zl$kTQ1r?}@7h`Dv?%SnulVEbD{TUQEph^=>$I(`-MDSo54 zMgcBea=#9%MT{>B^g6D~Iol?B#?5Y%ReLzzFMenB6`)`K0njUa7nnw%!YobSAu^gR z@O`CeA!W~TXUwI0L~BJT?_io(Igh`>R@KMV-VT`2Q&|<^bU!nR9H&%non>oPC|M8eZEuE!g6t!OX1kdM89$x{aiv}*JD8@sm_3_L2?M=5rtoZ(MC8X-Nc-Eb z5i%0*g%%B2xA$iA7traev`d-i>^AJ(PzuWEK^4cc2alC0RHxJR3v zd)BMk-;$@vFpYf-TW^YUxb_V#N!G{}#AVEF;%Ak)t7>lNNq?5!sB3#*zX7Wp#N+88 z{z)CBKqF%%P1m85yXTPYF`_)(;OKZMz>;UCNW40J&0eZxkq=!JaKt~qInbUN;XwiT ze@Z2?Mse}Zg>hX0S(-R)s8|M6vk(l1w()#(Dn=7SN5RT;|uBimhJX^1O8rm@&@Bbr-Exl?JMwX&EGq*U~ zG@oiT{em%tK51RA{NmaPr*K`luQ(?9$)E&(&<{TX7AYaB44ALTHS#*rx zVAYe+18P?$Cb^V7s2`EpX?NgwDW`+|yJf?&it-HQ2Gi?^H0Ml{Wd2~b5MrS|4O_9w zHBXO9=t1?&>DjEN!n)R*5na#7@fI{aTGE-R7&~SJ-Ro>B);YNcRM1=T0tEbI%)-g& zDx{VSb4f{6SNCY}_N{t@-Wp7`^Yd=J8uB@FuTz9$^hz&hS)80(%NUv{)C;y??z86A z=`tED@&+B1(PQ8hTkVSs$wfJ@yO<+23;q@pPY|CKfDOIc)cOK zI@}j95vOxEn6w7qx^Jy;w@6X3o4*X)BZCaA^KQ}H;mX`UJmuB9!zD*TgGm=kqgWBh zL}^cB?<3b83{d*hFI)7j3Adr+j=^gObcO9`U2=h+r2aa29d9%Y+!qdoYy>%+>ztUi+Q<*qIFN8W4WR7O*z0GnM0`cs!Goaedn$w}?0XYvb)3|S%QbXcQ9Ut|{o1fR z^V_zrfhmGkv{*-V*N5V}P$tl>w=yct+~y2Uq6W7fJr`7+OUvvtT3lyIc2_|2J2L){ z(IgO+a6ctMxSeNi`1I+HZUBj~m$hdQd&3&tuWzeFr^RL|W-KFG&fNC08n%Oz4UQ)D zruhho*w)FQ+gygy5f!9yc&r`SR*v3G;e06jM{sxK#q>DrHDX$a4l|7?icoQu0}fd_ z+z#5WGpy8^xZXhl0C3X8!4h2!0Z-_`+En!OuUp*D1IbrI%^vn*ruS^sU@3Id0vAJU zkDR=M4r|LC5)OPyw=#l#+3eKM9aR=|Xj>XnR#fXp-&Gx1Va;N=I@3?4Aaz{KpOd_% zejPW6yVE6Zy7!6z7(YRfsu4SXdW@_QYR>;$BvgN_{A?17WVa*N*U*DFnyywh2w-BTCc}vf67u(IMINBwS5pRWl6bW)bqBn zstR2TDS82%jj*?IY9q@1NAvTlc2haLXS@^64a#V1RyqTa8woEqjUh71DBNxCdyuA46YL)xF zZG1|ltFpIs%ZtNlw}SDYgYS{ya=Hy76J?Ok99eb^L2h9)r;PU>F%HB(t*knH-sLl? z2|qmURIF)?3!5%Yr?god>%I{v{0`aNMMw55Q+UR<%|6GIn(7lew#0K3z=Lj+OdL+Z zh#5E1?8;T9*!)bJsXIX;1QMJt;udeYKLqV?qxMIa$v_vNvmq2fTb*owmycLmpyWAxcP1suQSTfWLC--iv^@RVcg+!M!PNC^!p z=QgBD$ZGo|q8W{HP7DgiEG1kh)RN3b*kjfK6FPO`=Vs+sJC<^F6!NP1cHK!Dnm+M` zX+24Vt-$vS?P5 zbj$9F(grDRKbt>c7S&|K1$^;1TW^N0=_zU^)r7D_5PSE{&dNf)9Y=1g--C_IgvzW~ z7j(A#n%9tW+P0IC_QbZIX#LeF5ZMWf(W$`cvJoKcxKv*p#tck%&0> z#F5Z+dE0Mwu7Cn$WFKcI`VE5((98qt&EypjY`TSS&uvd#NhoC1Ppje;pXWP% z&?93yx>kom=ZnfT4cCJ4QafqZwl3XD|9t9~7Z+^%O7h)wDe)!W#Vtn+lCo+thLxD{ zMFUhd8JS>Gakf@Ac(sxS9C)$fcbY1fUwi=I3ei|&+(_8x#tUZg$CUvpp}RoSff{dz zLGBcjg{LKD=AKGpC40Lo0WbuukzR`2_2SeO!6M_-wyc}H?HP<8HSa$d zoN~D3J#HCAFl!d)X3rHn7>WQ-`J-3e-0RlnvDC`=rR9l&_akv&Oe6Du&hj%_6AE`Gwkr(~M|5Ela9&mlGxnSto}; zJpYQP`TMMdmP?zh8{m$X6`soa>^u&Cs@yLx^h@i6Huv>5)aM?5s_~7#-*gw3WLMN% zNyr!!E?7R~@GL^sqGmp$AKX@#AmEq&Y9gt#4^4%9y{bxX6BwmVbCd4PYE8gzi}RlM z{wiWQZle|pR?Z$|rjHVx&b>e3?doK3JqJk}^s;FmM>0XKOys4{nIbkF4mH< zFpqbK=D{U&Yvcln*Wx&juwCRx=2ploJ5>pFa*VPbk1X_j9>f|7_<-N1FT9P-i|Dj0 z>Q3+6GB4D(H#JkK;@@Zv_mf--_2eu-Y|qPgPFJR6P(oz}?g^9)b7MjP`$oXDv+Nn! z^X6}d(0JiFnuh7wnstt~m6+ac1K*<-_A}!4akcX(&ZMUF<|B%6S^W>d^&~N$=`P1F;~NTPkoHQTBX_Wo;|w-xC8Q|@n_9S8^;&U>N-_6d5hB7m`OUF zV-atP)6Xia!&Yc(71*=WRrlwm1K*Ss66M&Q$_6Cg|XL0KZ{m>q=r;JoZb6B;v!MljCI^D8H!AXthQ@fLl%^vOBS?Hi# zQ1Kd58;4PuAw#c=(5kD7W`x_ju)mx|!5-iH?r8Fp92f+=wRWeanbK^VD3}SNvh!j5 z_AL+t=gBzv?-=&xzkkR#xA+m;AfXOPax-Y2VGq<}pv6efhXD%Mh zp{6|&Sq!pbFkTBW`h_PfJzHv`6&y8JoCPDO`$@vIOSK9{$G;wHnsiWQe$m%e0Cw}9% zA$i#Q(I^1W{B}hhO}HjXE=OPLZkv>-U{rL)cJ)3BktJtoe==gbCac1+;~IR#7!)D3 z@78R-Jrvh-4canFur}1olnNa1D#4q*5IUkQIiPqQ!Gh)v3ftvAHmhY}eEQ~@wHv0YsCZLrZLoI+pjqv$Zw0NLi$ z?riVLH=_H(s&Wq)sj5%STUVF`Wz`F^$@9{D&rR2r?QxUZhn_Db`Bh}UcHybrGIodb zxg~LI_g^7eC{zg}Qz3`2WK-zEnh&INO3BW8v40`^DaA`$@<%GqPq*|1MMk3=-bQUo z6MkqP_a9dt(ATq=3lw$?l6afs!X^Jx=PAK>cg@}XQd@2Z?lpr&*XizYG}JRT2u~QT z;WTXiJ||6S%QOJ1u^BVCT)mbzjXkU4qRyr(+OvV%&WEt>oGTat3Ayt8;?8BCw51%xxzy%=Aw7HxO;XMaz~Qr zjMImQ@ht>DL$HL7t26e*Yn1(EGvcKxjbp@Y>Z(Hq<>4k?8ztU+jyoia73jPIz9N*o2{%$*_RpVNTipL~ z%Ecu5;=>;vfQE|Xbz7eEx(+a1Ny#b5^^0AsTFU1A2V_-~{iYI<2C1r7ddPy7bbrZJ z!@vpsCH*%q)K2+1G)yg$71M=a31g3M(2`&g8#H=eL&aG>FqwQXO``ziwJN)1#Hy*na;i zrFJyFT8{ml1*OtL%no!b^YQ;Sd{}m=OdPK3A+6hwW!3z@0qvO8gVJZlcC({9hC}Fu zs~U*A!bxmn3bfRNF~5<1*Acd0Wb~}ve*3oxk-;Zwd&?b&AKeuC#>EK-{F=r5UZ(-m z4AeVeZ9qfUqnus+^WOuk|E&jqCuIHS?-3cbRkjV+NH31W>GI`EC>V9cDW~fNtF@0& z4)iHyZOIJBwum>$-UhB9y)p-rM3FkC?3`DZEudrJ@@0FbG{5ZA;@kRNxZw?6i<^x5 za=HL{Z94joY5ytcbZzO(<9T?1+9#}rpC&R9ea zOY~*U2E&t(GT@`)+hB=q)AKyms}?MzjIxfnXuH6$k>OTMZ_|0KX~K%QiXV$*wt_M3 zJF%jboF$gT3S@P8WzKeDeQs^ycx(59bUWvm&X1IodLd_W+jx2ypGnbQ2<`tWq4Q@j z`bYlZzwitrl26fT=CNyd833)qav(g=wE;J-J(8|Zl;la8(#{wU`4A{)< zd{f!FNI?hsE3lK)pS*DDaPG!Af@~Pg)r`$fX`P!)EbQ%pxyNOn{`a_>|A!5)HMVM9 zLY~#iNRcy8AR}z+Qc3s8rH87_Xu@7JV_dlP#mK{)W`8X%ifvUA{W+4QUaKimx|3r} zEV%1Txah|;VYZ7Oq4)WMM2IQ2slLe2eO=RG5mYs$9c)y!Ax$jjQ^S{Q$Jk0)-=0i9 z7gCIcyx>jTqtK%H+p-}>3ld5YtSpPTyq8MueXhS9m?ox=9J#(5tE)NqxO;d1 z{F?(M!3Z0wIZvN0R;6H#uHx>Cj(5Qp22P)qVMxxO-l~o>lAWdI(&wQ7Rt_CQjTPab zX9^O7hx;DRi4J6dFYg(hh0ja-pdjAH5{vxglPNKJe%Vy5__;!Uc20Zn1I#^5V`)eF zN~{OGMIw>yuh|F1&!Y#^3j0)8G%DJunD$)Z44KdC{v<|1+NW*qeyQB*jeat(ygnLxMQGVy zdG0#bM73x56+oDo8OgwIY4nt?xfV+1zwMRhcPp`o@%Vv1qDwsV^ghXgZN#+|o+PC! zgi+{3abYVRpIu0;U{gcWwj|bef5O1GRA!^N#-me9Fv;ZzmqLop>zxYjR!{emMv;oj z!4+r+()0=&7;p4CPNmU*kI!%7n%k^C)s3AtkghIK%p5~o8m)GEjw5lpHCB*u(db|m z-ezVivw+9KKjt&#fTafh)t>$e%XtW>_VsF6+SLCYmBBch_0) zdv;$EE3~D|q`{33z4xjA-1~pHfdAG*b}?G%m5I2gVI>P%z9QFVeEoZ4a)~W=tx%q3 z?z1~fhF)j7CV}hQhg!ew;Q{_o+T zkP8Pcof$0lA(x)hy>-i;k*oDHC_66iiP*gZVVu&cFW-VF;p!ldEA|I&B_0P(t2bY0 z>MHX=x4ka6f26CrzAe@-A)rkhN0`zCk5%tj@ydr#xK@F@H!_~e%ygH9^jYZOIVkpT z@Dq}43o32~GQDxY3!Za6;}0r-WCf99&Q{LbpB~h~$rC22EG(dl`v6!SVi?i2s-7(N z{X>}dyU8N2BF6tAcl|tff@*yfgBgmqj z8(of4LB!fF!|d+<`202$UuoF+=e4)m%H!f8$RtF?=rHb;<5Wpwt(p|M{8zr$`1TUt zqvW^p+V#SUQWv}r)}Kwy6o>8LVQa_>ZDmv?2$cpaks2rts^%~K;EyaaEPil@JU*6; zhIdOk|8a>u#+xEphwpI>+l1z}=R25Epx74o=RZM;)X&CKNVxgU7=?QCdh$oVe=(FT zqMUuv@iowC?xE<>SjwQ*v-R9H^NI``19C5QV+)_N=EWG6sToN4JECZ&hhI%ToFT1F zN`z^rR;~vO`TNg2@0M3b_i=X=3|pDe=nBJ6_9BxECS>$r|>Ig<; zX;1D3(?;8P(D1l;1D&|_r17#PEcdi*N^q`Am(KX1D);Km>n_W_LcYF8;Kt zerwv47WQf;DBc1BZ&ZnpX1?pA<9oCXS5||tzbV@kv^kYb0FH=vpLw_R^>mbP0N;QY zwVHB7lg`BCjwNd?I_Dm5n%Jmod8Z^9;5yhVv3HCmu|zhh@*L3|+fo)+c3yCi_$=3r zFBIRfkR(t#=hf5lBp0aR6i!zA{zb>i5Jwqj$klt6o!|iyYe={J^li)O5ys7Y%MAa3 z25a)BmtIPown=d_shkYvCd(rw^9*fz_W91d=W5s!GjJHE;?z!C`X39& z{~T&#p#x(O<`|}8PcAe2S9{a_=)NfJsWLl>-7DBYoa7GZr1U=Rnce4O(c25l>$Ksw zm^L5&L}!G-g0(b-Rvg;S3e!gVdUDKaBmuM3lf*@=`!@HOU+n7mD%aQ&WqeTIqxWmo zR3T#sJ6{$gl4HHs`V-HI#Vfrh5tx?UKT%CrJ+|NRiz2zp=j26P9Y5DtJf|Ivc+P_F zeFiR7bzKT$pw6@CiiC!uIBjyE9eBB@y@Y?Dh%{J2CbXXP0tjtoIbN@qC`{B>nsQO~ z9NVp;@t@R*27VqzxPc{KCe4e=6BpV&Vj&(N{xUbW?x#OdGc zoiBo}I$vWqx#!5=0rAXbqCe&*msM)(ZX{0VNEVR)*38ru)kqQU}rw9Hm`&!P)GT}_0JwCfUCAoO{g zxQRsslF!ErXN-2;+S(v>e$ne~XJihd37pQX?J}HJ+sKlunryV`#G8gc1~i^}Z6!qU zjiVh?91Ft(fH8!JQ9ZCnixlg=>B`GA)ue7;LH}%s2ULi_v%`dD zSvN(WDpJ=Nckq7C*5@WZZAT1uC@DQ{7>HwS7oiR$+l^HFaGmU-D?oYP+JglZySfz1{UqjS1bd34IhrZpt9_PIdHQ4NfT<}JK&`vMK z-bhtZcszX{v_ja)imnd{_;$w*Dle(Mk;8&-xR8-Ck~| zX^6SXM_bi&*;}@o+{w{8I$a(mA2wEkHxVC39(NI7{G_>#9)z~*K(t*IterN<@dXG> z2GdfL(yMP;O6TPr86Vd)n=NxY(nSYM+Pnh!RXk4hca* z3b#NCr*L--?q0aNTX1K8mF#^^_vzEm>F(X<-tYe9VO71g)|%@bbF4APd|N2>g0A(N z!M^Aw2{EUbk0qa&&zNY?r&P2qUbWe&=uzi)VD%~1G0=Tz?h9Mz0ilf)Ch6OAf ziAR3LbocihVU(hz6!_Jl3mOuP4?!v^$*PjOw(A6N6+h+K6Oy4zPzv&NegY`3Fp*+W z=(ex{%c%6bVB!IC;JG$+?0uHG*=NC$J)_5cy>l+|Wu}1r73{2sphyvh0d)iNsR=n$ zy|j9x)ZPofwrSlPEVRj_MV#7QXRCAaog}z9K&!LBueXE%-aly5w!9O4E=ewl^0#rM zu#EtGqjzFrkV042`LOT+8oU;Z2TL5Z4)qF#%S%X`7|)-b;^_)um9sV7sk~(qmb4bZ zRTt!2GLy~iPDL3ud|rYF^9o! zO`3&=R8UtDqUxbhr{l#!YH1h-T+J19`gU8*xHpy63}Yf8tH>}g zEq7yq?g&ugMk^7J*Sw5ER#*f(w00=SpHks`1ExQ=3u)+>zC`MK;-8MhQ&nmd5@X`J zSvb?vLd_yN#V*wbF)#$mEQP&-(kV3H#xq)0URso~^UGsaDq|)Q2BOI9?~Hn#IbI=-f<5xsWrGd;OW=@H_mzPZeXB6*&(-Z3)*fzHN>X)d|yDR@iIg-2V{` zm;FS^j9>>RQi?ulXsq|)_v}m3IK$ezUAY|YYmF81^YC$N z3;j^jE??ib7MM=!CMgoZb3IvcSV{pe_*-Dv?TDIYaLIQx%Q8%K7Jf!xGxbZb?ESG&JXQP*+a4aS+t;F1xQT0RJ zcFPB{&Y&Ac>=eD_UP~V7ND=?R#?(Uha)Ju&q{=5;F{I*|B{!k(E>tytY9wxglUH=+ zTe6I%?nYaFL*ZFOmWfuGEcVM9-9@d<6xBTvf$P{Fd2AYicvD~asiuwGkY>$i$4nXA;s zsk4RITd)VsT-gvT9ozJW5p#6HW9Gz4E3%cqkT|0~R zz7E|;<^g(!2_AqN7NutK2PoAX$%l`!QdRk4?aiK`jwgVe+1fxMkF7J#q&2?dm4{&n zofX?oF9eg?L7ZJa(eu1O`d`Fgx0BnT+)cjoJGVZBg2Gxz^yNM;>*;5J7R@})q>DgeenAfG9JY;-m*c!K`wM+1rC{&N z!p)u^8()&hW2aMDpG$tr(J#u*-!f#*2<@|0gS!n6p9yU53ful~gxx<}T=b2Y_n$Mo zKStOhUCG#APw3JxP%71Idok$jx<75AmpUhL+IssoWiy1?cSX8{k4!c@iK$OD|DHNRU_Ku}f%IOBHKPrw_l?p2Z zBY~m@;@3fZ1Mb7d6w|mPqSnddP3lva49=`ab$2>uz5*L;y0gE^}E#$BEfZ%TyYv#t)XnSw)z_&r}>Vxr? zYYMhq?mQ)gpJ?fXa8$mNB)xi*z%TL?GJe$=D4w;y|4fnRGSH#Nyc(nTxpE98P_hI zadU}2%Oy=$lwLZ&ejdSOOI(KEC#q&J;Kk^+Z1mhTaqvw5Qb3@yLY>*Mes8r*cK=)qSZI#v{2NlJMItgXf z+li22)JZ5&I8Xrx)j#0*jz;C~TqM%s6X4&Z7^|fI(fTrIlOJg!=EO+YlaO7ZnCj3i zRHxdEQFK;)h8?$XMydTgVD$H;bQa~_|hs>sFKIG!A9 z+l*MX%Om3#zi0*smj_ta$!X@8R3cTCno9?a1HrgWmxH#;z2dA9c!E6giQum}I3l zQE~bk3Ts=LE^YY#oJs#A-2R!u2jy{*zg$y>x}{2awc&YJJd;lQS1Q8XCPJjRx4cF{ zR2RuPXEjLgGSk3Rf3eA5k4TR5L4&21!|v-O4x&5@8B+G&S_NFB(4k&eTt;y=bSh$a zCRAs8a}AfwkE-zf3OP6b9sm?yVli^_?tY-S4vRc`Z-!zFb-#zG_AXLkjKn)v%+##J z&X4hw6d09Tz1hWia7c~!Ks)d2P>!ipq8-d`55#~Etw}j88I)sh9nIRcWB1Gj0gpFt z8bt1+7qC94JYebc;m!;XTvBLB741}z7SZZ9Akz!mEq7KMTv8S`-`OMhE<5dge@0s; zpzQdSI)-5B_ZI>#HcjW(E#>gQXcJ=L;LbNZTyQOaEoH^|WRB~&%jc}mbkM3K!Jg5f?hZVrl zqu|XDj4E2%+LBdZKb;f-r4-BPT7Tj7Y|zYXMXord`fn%zJoaOU59?^ODF+c@aK*8V zQG!~Xg=@oT22i5FyfdUbrMjZV#6yEh=6yu3VA?wver!{x>XlOQ2!eU@EBxD1qnjSC zH^O4z3O+xdZdzIE!3=myzdl>?nCEQrIbUa`9l*dihtAoBMRV*qG{!>!X+D&G7r|7b z_j#sE?Xqz#y*ozVwt5G8nBW6SE?);~#ph38{z&SuP;stEOwa>QBZZz|klnGtKey-q zLF7Cne~)i=V(>?9q?Y*M*De*D>1ZQ&e@79-__?n8D%r{RODGA(8Jqbp{7852hdfPv zHxrYJB;Nz)lz2&imYhUx=j;tj|;4eo%S*nj%drU``ilJZI^%F@$6lJ+zYE z`WP5omsS2)CO49-YU~Q@pF48uAPU>kmYxRaZC>s=v@Y4Aw(^^UrVPD z*voHD^&O5<`Y<4Ttdxu4P!JkG8RluiWZ=k^cS0Qs}Kmg;p=Egk`^3$hZ{@4IkG zex^SmZ?^}+nMZ0)h@Ibr#PDS#dvD-D!q2}rYdNhQwinb#hAHvhY^P($85@CcW#c*- z$)6=J=5-Tm9hooc9OWJJTmTPS0sC$-WeLiNgqltDY0sg5_MG_#bN)Y{R#=W8@qCV~ z?2NG4I*MFC0 zQY7vyut761TI1xE!wrftFCecvk(mwzmB+LMyjRT5U6;lzb}}p+PCKxK`M6|(e+-(i z#?G4qFU7i=Pp^R7Yjho(C-yxAJ8E{>MJa>Wu1Q$$n0N#X>P`lc6qn);xI$@cn0-l& z<)+8bxJbnC_(tr%wRr#3YY6!b_mMWQeMnp)im-WW_PxZslwh{aFZ7`z2R{%y4^-@@ zS+P*HF$Xh3y)j>xxJs1MIimRya{OjkDAQ-b=0~B8>0pgpJ3-;{-P)b8>V>{i$P>zs zhL4;(Iz_SxV8j`mvUtuedYPp3K!&COvQOt0Kz?i z{*A=%e)@uV)yD--kHbhFdlAJQ9UEfO&2PGc-hv{U?G6eIin~bPGd`sJ?kz~_p@#7b zWnGpG75Rq2SG-!sQPB4@+EaQhtH>hWK;BMghX0gidYqjS3w&KRQ=b(b;Jfop7^rX^ z3HF%X={@SH?upDSU(=csshjBSj?mJ%O{r$@^0zyW@a4Pu(9a7*emIi?Eo&lu%Tvz* z+3oH-T`y;oaIsB@Bweqmy;{0Tf`XmJ?S$3ca(>lkT$rpnrYu>c>$F3t-7X|?d9i3t zfTEm(;n=oJr}Sf#7vc3~q}Bin^GY08euYxoPut^d8mwG!!asXkHj$>^x@Q%s7Jcyk zBzGND(U(Y{eLOXN)+l#&iaTRzIcv+=-ISfE(ZQlUx!JmyJ6=HYrYyGhZ2m5mm~7sv zR35#{2{Sd6mrE@-729r!O{L8cNG|YZVKMpg0S|8f{df8I`O%11P@vE;51BmOedFSa zjJ4ipmwJ^T8szs?sj`|0D|mQRRb1&;v>A#=rr?M2-ZGMXvOTV z`EGOpF*X74iWqhl=oYf+R^Skfmv zB>!wfGGr%Tr*jN3Io%qC5$M$DegjNKQSo;5tL8k|or1E(AWPC7jU0LLJo~KnN%vc^ zO3OrUO-^%#_vg}Q$(Dz&5xp;|IX;SZ3c}vwbil`Cb&#)}fXDXfd%&C7%Cd#tbZ_m* zRbxzOlAStnhql1iu~uM4kqVZ3rhnG}r+5xpno-iTdVG67fKB>N)jV+;Cp0mtI@cgi zMOOVK!fQkf`2Jr%OYX^OP;0^{^65D}MLLi8a{dTQHQu?Ta>neAaomDlx$5E$kH4Ff8>hrW@#A@%e;^ zX(C~$pwS@=k3U_C_#^w8Lvx{a(gK6^inOxmpmmYP#nb=L;N17+q)A|;XLLQ$nZzVcd4V>h!-;=a@qH};R} z+E6ppDv?BW8E#>))K(f>b&y)>E}iue+@r&stUtL2qq{ zy}_@Tus2+BEyS}cZ$-_Tt@*{?v&8E4kk|vPE;Kz4l8MJ7d9;Mawi|XZHZB7oDAM}i z;6~sHB@d{IU04fU8AF12?HoVZ(~8Vv)JsnXkuWDDI1rbhtY*Hne%q}IsHkWTGS|E><&kjq$P^Sy}n&`5i^7 zDhy~AzikMAE(;-P%vD}hmKPUosMH$(cQ zGR&KR+swUzucd>ohgqVbv9G~mcmwYS_>lJzH;>SkbaCOmV(m6YU3nqu4s_$+hULAw zqm9D(XLf;eLapppfdYhyf!k;lr!Cp?8FfW%S8k?`1n}2mV{aSx#zz|ANCW@a0PfiN zrTW%dKxIgwdrdP6cJ(d2ENoU~ZBw1hl!Oq@qYADoQis=F&PMWtP>ztS1296d+C`0G z?}^b;#0z;@WEAm%y`Ha{$m)Exc#{yUPJOEqHH^(#ix|)@dqrRE_J+->&2vo(Ev5N} zzI=r@hw-{`{q5^qgYBLW$pWg^0m*hT+f?o6;(J|!}i`_*bSv1sZ z{T7E{>%Gi{pmA6K{GiZ&`Ude?+(?rL_mY-GZ}NCE*3f50w+r~g)AfpkM#{oW&hO|V zp9NW<;>sMya~`1~X)J9)TM@yNf=zMd920WEK_0Fmg-XKiQJsNl$;#yJT`Qy=s_nmy zq#u%-{TGjdmYiS72>pi*3LfMUcKjPkbw%6Hs)GUDyB!>f`+nuW2qESz5CS|=GTZ*K zca&lUkzgf|jwy*gk-0T!>f$`lG-3kff*y)Ey(&Mu9X>AWvRIglEJ0G&SNbo|OhOUQ?7vgk)G)9cC~E=CDxPdxCu3a(JDaE#vowMzL*D`X%bqZJg%wtFAHN#~>^ zg~$>bt`LSeJ*lz$SLi@ChtSOOPj2dAJcRl)qw5uMisD*jUza_V^B@Uct=YKkmYwJJ zuQsS=lTN#VaG6G`g(d^rm~^iNHT&l-=PppK^<_7!+p=)to;|s_g}J&ZX-=qh+mk|N8wM7 zInin{86oE5IZ~b{bIB2e6|iT0dw7WlA$_r0LO33BO*w>cd?c>HvRc}k6CQJ~qc$XNkrv^dY! ze@wx7|K*EpvKJj?F}#4e0)+(Lo|E@W3i7l=N#%SWkv9@S&BQhM;hsbO_hxPH@d-Na ziZH~W=QwDqn(1ZaotxZoyYWh(u(@jAZWU z@;_v1|BfQ;KI2!QtJa%Mk1G|6_2`Xm#;*u)S>DrJB6mN{8i1n^T`dP_qbhr$SjT6O z^AfS))6=_#JS{|?uiQz$5tN7Hhn0KBBvxf%6$Bc!b%(jaI9DgC|Wxlr!8#{XUT>w)7dQ~4w26X<~?!$A+=DB`%vNLTG7 zSQwx0{ID#VTgz%Q^fOJ!0Nz`p-KMeGqgm=&9Hb8Cp@*N90MakPdZ31#hdK-{S2mo` ztQLG0ff#gPx&R@;c{1w_(v)gN^ZKz@Xye{H&@s}}D>xzF-6g;(t-5N2D#~Mzx{cs+@ycO9|6G`;iG(H0bJ)2^Bh=xKOV$!#ni$=R*8_jW{%a3I!e;c~u5W!cpDUBn#>WXnZ`9fz%BkzbU(k4ule#naK0dhD@O zzUNe!%Q(hKt-A`~u|Htik1f?NnW!p_@_SUW!V*s2M zM`D}J^~%-X3OB2uh=dOBJYqZ7fENkkU^QD(+y>`u2gg?`rWCj^eG!SY zH>{C4^5fGFuk<;{yvdUR#pKio=dTvUDt%`lNOkFbR$G4B@cm%KpbAf(rZOAt0MjFu zYZ_goP8I61nmkYzWuN+-_AInkZAqFVPazslA!g6I*4qoDvf52oY77udHhlnPkL`RA zR^Yrma;6`D9FMt`Z(aK)nKjD8J3EyvP;q2tcis%vN9a=07m3F{Q6ywH!#&8Sx*k|M zzfmBb#H>=v4YM%%SRONQ8 zo+Ty!xZdX1j!)bO<>)btW?7Z*v>uub>m;NYM>a&_^M1qs>rtyy5 zTDT*sFrjq)%GJ#k)UK1=gf{Y{-<^xL|G~azsF~PsTMrgZk^Fc4asS}S#eXvkw1@gxe=txFAtiSfPY?N`11mt%**3l~Aj$LH_m_&d3*$(i zHE)DaYmd+VUAeuCP=*KerJvt;MsbR1R)9@Fa-KA24xJdV^S#HIluqHsGZC!QU>1yR zcS|0&cOO<_9w)mmOt;n?aW*Z#+Fk6tjQ9=3%ZFbmLm=W5nM!xvE$tj*7Ez6=o`vtz z2IMEgG*+dY@2N%YGU#fYjKV+V`M7DinBFBn5wpx*@W{!_Owc+Nym8V{$f_v?GK~k~ z_FCMrhPG^LJC(&}NI+|*aT**3pQh~@O|-6Y&BX^Zmd!xMh5xDt(Bt7rt#-CpUR+~L4L0(w z=353r-Ymz^&&zoVf~8TAn;?@BO7N@6hB!R%*uk=!sPvD<8dl#H7nY z3alO-s>8;lY5QtVX+ya}xkCsT=pGX|q9Sq_iE8)+8hQ>jv?O^F$?GAsrcXw;wp4Q3 z1v0Eu3AHkiOyV$^yX9*)(`uRZ2>3BUbjLgjY7w$nNyBvnIJ?uaUQwdzaA6&Tm@J{m z$5SX1ltE;_WG7oZyp^|DdbU5@PI5|xElCTR4Jp5ts?xwjH&l@=Bz0cG(jfi(IjvcBYt}T;6jr^5=9h@jyGA&x*%Phy zd|f9N6CMwZBy^*XG@%4)P)BtlLI8C>)QnI57%&%x#8Lk;Ci(9JK#jhGmR*e=d<5|o z7<9d=$*ze+0V?Qc`IjqWNeQVcTJ8En)+3uf49IO9wteao1I6o1KK=Z&On$Z~XW~x! z95ZPh{b_k=+J|imU2~Sq(b8Q>fOhPBRubg=vsVs)%f}(*Jm;fx-L{tyzXgoo`CBt} zBq5&giBiUi+1iKM2-5(TZuU9!*89vHNYbYw@zn&- z&!oq5(X*6wUTeT{bUX`4`dk%5!Q(oVV`YIFmekMV!<}Pg*^55`1>ZI4OoMMU0)!cLPad557>O zXmB5K&Yp7rnbG`3H1Kzj{$IWG|E>Rg@RA~h1Sm-luxz#X4aL!0&AzbRL-X8h@Xk1S z!DgVOR0L3mo8f#t(7A06cv(mKP7L`f)%Z?aWwHJyU|k(e3~}Mzr#DDIy{BVRvZYRR zEI?r@@N`qvK^kaTKpAB?Bi?VZsf4eQFoH{EcMo*vqM)BSO3DWn(fogWU_yqR7LsM zgYUufvTq*FwjAz{-yx#;){NqlRqF7=UmJ1`k$Dq-i>ldGZ9&-9NoXt8;#(chLQiJR z*Ih_jRc#xfW2I&Id)MT7m@7g4jN4B96>hA3d*tvH$!gn84=Hs+6I z) zjBKFg{~V&~yWuIh^v&xX*Z4)i!F7{o5mIA8(gG)B25w}1?8}mvi!Bj6+nzp;?}`4GnJ0FOmD^eazmi$9BVnYSrxCke0Cp0tzFt$D?yg%%J&z3G z*MNV>QXs3ZIrQwHWUnso6tWOW_O%7Z}X3 z^1O7D$z^6$Y%M&DvnAu40b6l|q4g+@H%EV7%YK$|)iD~m{h?dI8+pbdg?t65wvJ+ z(c44RZ7tmNjF-#;9GKhuaZw50P8~nR=Flz@=_Tw)rInj;u<$r#CrF2Cx~ITcttw8x z-?<>W4m=|l?HcbTGnJsU)pSLnZ??&_yBy0`2k3R17aA~yVaQ8N%U>hxfK?tW$*#I{ zQQ!@6|KJ{6sl|+{_+sedqS=X1&Okn#!9KKa5bHy#Y$!vbt_dk*4Y5%8U4o|OnG27< z`odbsCnF-J_UL<^Dx%%gr)L=@*c{P@753aYF(Y}hF@=ZwiV zJE$@KNOk5RH(n$}?Hz|FjkIir1vkcmhu%(_2L!Qm{K8DIY_BE&_W$Ty| z;ar#iceBJ3WvS<5PF0KJ&@x@L{~%@l-04K%lzf4tFhBg^>-Pi|DNYB>Al2yukIbJG zHw}u3>iVKM-uJaC^F4I!sGzM4?hrtlto{f+q1-eaOS~saSV+Us1=yOd3GM3W3jG+e z@JLr0lAi@@R*_`D*h(6+1q&(iaHlg=JEv7hXG{PNZA3Hwe^#uktRny#M1{u4WkzcH zc4d}p%syq&I?SXd8-m4t3f8B`JUg&>Uw(KWzk<6FiOOlb3JX^N?7S_GUL|nYRp-uA z)XqD3;(>}8!IRV`dCy;sj%aJ}j-TOoy?TpVfut5yOd)~^1X3Q=CK{X|ACQNZEZTW1@3>y^v$dUk8eyiCt@Zlo{ zwl!z#@kaf63C%$%pY17nt{?gSnM00&k(0=XjU>wd(5n z(Vo6|t}98IQLSPN{j=2@ge%<;kCL?`NSUM?S2{I_!elf=uzRiCU;4@IkbqOpRR*(- zK*Db*))O1+0GeKiV~HVzlX()>w}Kn3j^c@w^dFo{Yt<-yiHdVbNCE>1Qf0fdc_4WQ z)v?Y}7+TVaYld~AP3p=p*u91MLTVb9mN1u8pj8I%l^2T8zkV}v=jOB0c?0n=!S2x4 z%9|A_vl7{eyA$;3_}NtMG`C^!P0`D1Q6yKz&Fr)%JIxj`TOu~Z!&R_uBq&5**F)bZ zzU+!DQ-8q)yMD~Q-B9%F-CMcx)^Jso5#p1X*je9%tCb;^S{p*hI;`d7j0;dowN?4 z_IZ-*BcXF@PH#~qWcdut@Wx->=#nh{M<%kIM%d?)P^6=#!C#@X>^8^$&ZZgJ3CX&* zIU&09mbSM_-x5#B#p; zBs5T77cKJ79h?8G+~z-1sUC!;cAd3(hgTkt0@F?af4+Lvsf172USrJ_;!LiN^;*2h zP?9|-tcB5c#;i#wv9Z~1R6-$zE%($a^{YEdy#F1=omhPz%S_~-2Yfq7s%KY4*s1O+LVuUH_I+VGsXzcW5iBaZ9)S#_?jn2KBJVn#kjW4%FK)D25 z;ANOF{z%)mcN0c1GkYXB6EO|atfcJNV(q*c$djnM>l|4cNzv)VeNUpG$fU@7H6G!a z+Zh5)JLD#J6VkVlBVmISB0j|uqVg^$^YseeSFSakRbeX0OYKQ0-?vrE-0F=9%QUrr zKF=PypvjhDsLge$JCP%tK3xM3k_B#hIF<(Tll4!(+uF5x`MpYW&sdYndZlW-3K|_V zygCNwS6NFa<2wkli%M^OxgCY=#erq?S#R%VQ0{fyLBc+?2x-W%G-Z{Gcj%~D8*_CP zJP`Y8T4uLnO%{|${=(>cVe7{K!JO)^K04G5h@K$5N&g(ZMt};>$_b&8M))Kt3jrVK zOvSt(ZDW_E7Y(RL6Xl#pK1_!}P+->a;San`JFv0s#>=l-cb%$*^^9MAGMnUKblezE zXcO2DSTS+tj?R1P9=wH|j3HTOjCbKFI1EKkubWb^1DleM$X}dxH^RYk%Yv|-+nMz+ zu|Jwi*cf}J6;S8!Qqro4>^cEYi~$i@ zG7NrkxGtO-Bm6y!#o(~>moWy~!(|cldhJ3kIO_{wARpD%j*gS<**NX+`!aP_`^wt^ z8@bWKle}b(sUFx;_=$}nBf5f;I|ba6Tkx$Fm!tQ~iGtHGY=6bMS*BpUSKjqu%G#s3 zS*U%@i)I0BbK32L_eQR74~Dswz~}wsma389k?YHOwrE$V6g;IjF}^VImH7m--DT+`2D*^= zRYJ@cKj#St@G9@u)_AVDBIDDlS?9 zILvEnjtKzGx{o27YZmH48%x+JrU{}H6V6;lBwY|l`n`+weX>o=OQfwPjt+$nQ}8o} z#BaNN#;!4RlA6Z?=4X&Ei(y#E0ICNeoNbb z`Mmwx0skusd{7Ot{}3b{>qnz%VIk6K`|+znzo#iUthJw7>GkIF+Jx6RYG0+4rTsv* zO8PuyG}3Euaj2zw5k|`g`X$B({a+B{Zwq{KI5SsoWiu7F?u&rpcNT9=AgXEo6Jdt8 z<993DwwLoS61aCHuiq9po_NC{%)-l0x+wISeZkbus!-0e`$*Be<9c#LcW8fVaBHHRwP z1Le||GwdyS14J>mTQyiwZ9so7SG8>vwtQ(u3a)-ayq4s^|EiPvAv(@zB!IY++N(4_j4W)^ORAr5Ab9A@VmNmX3m}MN$CH{E$_H8!wbVt1>K^R-{bG~!&l zBT`ECyFGf!S{~T^j9^58$@{y$10TbFiff!5p9^+-1)-9!OQyHL}Xuqw1X7n|tjX$P^PP9Mb< z;m>YSnIal%Q-L4$bRr=s!;uuQK7seSVD3%-9bvsK!UKs&*P|UX3*8Bwlezx6Y5h-V z`R7&zRhMum4>M<*p4;0F?8Zg9IusE3eC-)*?%aQ>8xTTUto(@xHx!9yjdd4DG2tIeCiR z-BtTG4cLbKA}LE~!+=^$?)P#2P?FVL=Xzn}Cu-!_msJvxjKKE{%eg;1xQ{JXpum}Yn0Py%nAIv2 z{axEFReKGM3Tf$Kz}}F*|(KIGV(cznYM)`n**KclLd)Ko}F2!o~2zsBD{~@=-nkIvwig zs9S9>#x~(*YXkb*Md6#CoYE4sEU!!zO~Ty;bZ=KNCJ>D@k3%OcXhZF zyS?4+x7V21d}K#_J6f`Kq5GZ841^YyIqj8oj1l$CG@oTIjd_7+-!X2A`Nvg?hz29h zY9{2E3P6}U&3cH6g2D+>nkGP+ct(CA*?m#r4Wbvx+zPoWYhHzK*|=#XM?-&##~W`% zVs8OetmlF6PWOOW&&&9>4Yo%B1I+r6R59WXH>6g)(uGiqke(}7GVdJ7Fh4JCo@;FK zFcig5%KIxCcZiPory7+yA+l%6s`!dCva;;o4|4crLpg}u@4M}KjEUFNkj~F%^1{k+ z#k0!R))D7gc`j%XYS{LG4zvP3;3tDYFZ6WZB4BN5&uFsa#NbdqtB>3LuP_X+P_^Sx zqtL`HsnRImw(h%HIPa*#aP#!IPtwAxNfX}YU-LrWUiaF55C;fT%X${IJ%ZKB+ch{I zne%8jUj08EuSo;RLfsw4{Z*K!gd~}`&0D8sv7~=Gc3brQRd)90=oWg&gD;$ZWB#vg z0x#~QxtSgTo;*W&VG&4LHvT8JbC9*jc*1sTUHjFyG1+0CxwlR=K}u*(T(6mDuYwP8 zNk=kI48(5Mdp0PlxEZVaeu38m}|rs30og- z7-JHa{p{JLstXB!@T0#q^ca|{lbK*8k=4z@l@gEWz<040-nxZ!gkVgWdw9T2`V53p{Y_9&G!4V zz6b%|>nbwFaC@KWX}gnL$C}KBIlgzPA!i!kB6C1TBnKFT#(y z77wF_13_!~$-VNRWf2AN!>hLZRKmos=&RiWt~9j{ei!Nn^gWyt@|c``@+4n9B(vOf zH7k*HSoiZHSqVGxQQu@{P0$*(12pMgr{Z`;LJWUl8c3eZ6|CIxKHWb?5<{}#47{yu z3XZ&6!weT??qPzWQ{S`|liPCY#2B&YxiPPLeB~eY%1xC8t!A8Frv8Ya>FI=!eMEoy zh$){BlkJfkHOfMwWloQ*Gf*+LRnUY%rPV_=Smlcgr0n($y>?qrWe#4PX}nxz$GxxC z1NK7b89CiYQ`*w!aZI|r4D$$Cy&J6wM@_?_olq+y8~T%mkJT^3(&d%LkaLZ|L|eF7&>KS$b+S)*Pd0f+CIiNsRu&SNq&gkf-% z0&|C~=knU438o=70CPRLfC$@MG74-yAzrc#xGpcRdTD6f&YdZ5{yTOe9)_6bJgicu zM|Kbi`v%VC7Nh|8&jslpHS757T)R8~{ZsZU5m99SUxU_tRS0!InLL(dWje=a3^b9PF4 z_9X0b-G^W2;8N4Gym4ds#-}TFqjLuYMs@+>xk|fpq*Cy;>!%@!oPNWlp{48s+piBU zY@dwMjm|leYAH}w0LgY)nHv+_TYHPV^FS{8E*;T*v92A_5N*cPm*^XqB3hWVPb|Jf z6I0|MtID1+A&b4QNI|-+{x7g#Nd2wi+9j2JxnMDp5T{Ba+NU(nL|T6QY61Y}HdUjg z6E?5oB>OKSWDleW`QQ%`GP2nB^*3V&8!$;#o=MocgF1;F@_MZBO@n@@REW95Pm%h+ zwe$a#;fp)P=O2F$wLh4|`@SeLeB|c1?$a09PgtqO{peM{ca~ldjw?Q%EQRGPAe)d? zI3X^SFYoLNLK04HA{w+P{_jB7|CY+!Yo0JT_~Wk>>UxytAAT2mqE+7TA(?+3#otgW zldstG3gcSB200hbx06}B$!W~p{>|j*&kjdJ(+#Zu12VeBg@4biFER})J44`5ddXAt zqg95xJ=r!tGZ!lN>(W=1E)(0!pg=N@LJ2rlR8w~p+4|@j_lDel{vLBism|sNg^Q_1 z#cpy!&9(nFF@Hi?@+W>28M!mXkKdIP_tsC>lXd?1Z5}ULkv+8uEJc0>4KQNz!gA&I z$Ok#~Sjy}F4?OBh%wg8%(qCl3e*y7-XAbUdPwV;4(_FYMnUk+-L%;_V1|+dG60b+f zz1Dk+U+A^IMy8<=TT7)2)~UT&Z}zTcPUz(p_e4}Hu=1 z9(`-8l{b&MyY`7U)W&(FNR4liM5)4SZE`6}pUw}yWGy?w@#Enn8Id-|qH%gKhD zYEJp~5NIpZwOorF_`EJCO+Hz0O zYrVBE^WsS+T8XU$QJ1hB6dNnQk8*D~JyRa=?`Fy)kxE&cG(Nc7dP!yk3q$WbRBSDJ z>I!-1aecA7UJ+nmV?XXbnu6wPwA2~o3CLi9XSJJ=mlqz+c;)W% zYHbaf#J+5M_R?wZk_2VjMi_g3{=%k}XP(4>`z$@Hq3^5;WJet-^J&dMBEXWadnZf_ zWu5W@vP@sk{knn-XiBtuH$T1r3EO)$bLZivIafCC%d)MHexshX73WeW`F;yxT6H8r zzG`Yy77;}ompCKs5ZYOQLgh(ysOD}pwmLM~d8R8=!T80wK5Q`HY263c=GhErIQp(T z2})}I4bS20u%)wc)`EgITxxqA@i@AX8S3QiX^rOD4|T>$XrRS|fCT57MJrZKD&?fJ zt%JAWt#)MQd5^7uq~Ui|f@ke0h8F+$am;o^uxU=J$_ht^0m? zzdY+)d(T>S1}D+9U_A08LtSSDe^6NYi|sgGo-?}5h( zHERb3s^2?I?7-?|s^SNSl!nFn5^@IGisq*=?{HTdj-z{xCB1kc6k$~$NtgG1&OY?< zPS#8;udq|~fgciOpRC?;p;^--^T(+jCih}~D06F>Ay#eQ0@72qFF_%Xcw(Xe)`0|m zYRKVcpQv7zs9|&A(-j4tfKiQy1s@MMH5r4?@^CT6c5_a33<@ja@W9$#w4(6H^>qFX zH|Tknt?4|@7mNiTHchK2PeTmYok-bfWSp7u7m*K>|CU8`s7end?aoz`8~S}Ib8z4hQVv4m|9mBDdCSEeSGv3CZ(pNmC% zh6%`ixylRwogFXWrm63>IzZ>j;aqdjPiA*-8zfZOv4IEq3wS?vA1q5=@=vaO>b^O5YZ{9UbHLajb3XPL zV3UXM)Um#;_=jXymh3m<2`MJeF4YUL!iW|2K}+r+&UcT-aYtd8c%=EA`+bEh9fqfP z;?VI+FQU`+uDfPr&WF z{~hp8NB?ao`k%nn<$uTh=Xd^3r%52k?v)<+RzLPrGfxiqDA? zA?TJe4R&7U+K^zIy%~SKK*0Of$b^(-RK}BD>QiNliq6>XRXw5N2Jy3 z&=Rrbv(s}Hv}YY(q~ycP1Nx{?1H<(t!_9|0ahhgc)_-z`UWkI)w?iZQ?ktH^y|@+! z*zau)*ime`CEg}K`TOkrkgMT*cB${m{c}(+Y*v2OdvSgE;8)~Td7ZeOc$JO_V2JO! zXPvxdwW;*U0k%Y;uFo0yo^U%^>&81swA;$?_c4@i$;v~oD!P#A!R|bG2z}Z`>2TH| zV+P?uf>*;;gaHNWR>YPD;{9e*+ad>Zi};FlMSWzci86R$kUT8V-wOWM_QA#IZv}-~R|E z&AxN$9p6J6van~#@TQ9=zo!_uRGT8#)E@AZ(}zZS8p0$+pw~J%0*m#tDdVV}_J9!% zSZ+A#Pswp3gyapiMR~ozI;S{`p`BwmpvA%(cCiCG#o=T6{V)#vo0=q5`ZM|r z@dWx}C@PxAwVmF`&0sLu{^oRcKdoYl&u$Vy*=@6cC-A0%Zg@0Rcy>dbAk2tlo0sUZIg^BGfGR-#n{s$zH z#yAbJM|DzcJdoE@hunoB=KD7wtBV2M>`8T})#mHk38g->tvG8uDpW4%j@K&b-1|vC zae8CUAv)=7<}jnK;0`y~V0hD-Hx1^oAiYCTeBt@W(k%tv`cpkeci&0XtE*h%K_9T4 z?gm3NzmMff)hG&JN6kp8J9r&eyg43rF(tU6yRNoQOz^RJ4*-ad24Z0XzK5dz?7Z`S z)z|$=3Z6#G`okx_)DUs{Z6R7?LPS}1`3ut@%>5S*j7t0C^|{W34{M-m*T6uU4Qxj9 z$Z%SAJjfDU4LOZ(meU4|Nn)_M9>8%GirGQgLfll0G&S0za^Z4xX^!VQ09a(OG-g-L zJtSm&KjDt2h-T^ad?tb(Eva_UT9OBOZ0^TxzU~)6d~qXBoY4$OF~u6#qdbtxstMyZ zba`ccQLsZ8xIdJP6~F)OF`h&`i#W@9!4CfOslzE&o{*$%r}c5t5Y09DaeR?n_mUyi z4?B@H8k)l-=D+2~pT2Sa^qpFInBx6`>pU-i)`UC2{TjKD=iM<;07P{3^yLH^^9FrE zE{_Se&Q`XhJ1GY6%a0Q$t)P=;GKRn9ueo?X!(5NhYy)J>fqT3HEF&TyawdNv6E5XqZWign z!m`PzwTX7+P{^`tj#4j`tl8v2Q6y`Uy&7b2A;4Q2lZ&O2_3wzf_iH+vC3MZ;t)^rT zwux}RcI%sMZ6$5|&z~Z%64`d6ZG~AU@=k z(kVJ__MozD$Y&7=C7|oC_guMJlV`t`xmi^~(b0=0Hs1=!K9Y^mfAmZqz#8#wqBPaA z+U1;>RKCZr&3&rRn^k$PVE*OE`q99_f97fczpYcI4-3I zTHS#de;N#1dpjES(r8y#?H_@X48Kmpj73rpoVi$DO>M$0&tA3)qoUhXd$b%9 z9iOhu-^D50Qc-HjPBeOVS%H$|a846mJw`+J3_psPl}&W?&fa~Sh=8P;Ie5~5d@9X$ zNWDWYP40)MobA#i+<#0OqrqA`l@w7xEI?)K@6bxw#- zr2Ah0y_x#))_M=!M?PL2T0_eWvWZSNy$kMK(cyA$;Ipi`)TmCC90ye*x|7v_`iAp) zB*oK$t;^@=;;O1EKFyYNJv2{aN5pgK0k}BX=x!W@5b^>j`Z0OQ+5=XcOJYH8L!^^_ zerNB-t+t$NRRd2ypiCGxut=o1*cR&_>3!%J$22WuITDmrHO=9PHGa3(BJ$u4s zTiZ6VQE$@g`OXYqj?*>Cr~g_B216WIpub`KAuV%GNo>x%M5rYu`<~-?_b< zqe?RtUFZa5`cgFZK+zEc)YL4+pl!GJxVX(Oy%HLK_|p4#VcJC=5uFvv6}vecpOxX$ zN5aZ^IgIu3`_oE=k)6Qn;O2D(oKFk&is>JAmD!ILHTSlJTq$hlEJx0lmye>@rw-~2 z;n@=EQzM7@KEMa2(A16bZh)OR?p$A@ne=@dL%X@UFgCift;P_HGch6+EocL3^6 z*wjmYX3OXZK9pA>fOw)xkmtP$xcQOmA>7$x^w#YUTDP6DgK=+c%OSjSug`S&%V8Z> z{^H&x@_dQk%<*)0ywjm5I+Vr;8msyQ5~G;pukJ5R6@D!I68>A|GDYXQZqH4VN=v=h z-Dc4@)@jn2+<^+RXufA`h>Ju$YV8p9GZ`1KUJG8YCZRZOI@I|*gmzz}I#l&Nn=}8p z+dZ4A0&bglqu$z<*^P`V^hXgXOoI8DMbnN7*^WnX9}um+9HTfB67%JPDbE%!Mq&0A zgg{iE8VhXN_JwXwAAaP`)HiCV8mc4`dO+nJA(9l7Kw^AViAIvBPbEq) z2JtSV{CfX{laN?bj0NGc0Gy_GN|G)j#kShp4{ zbgYg;Ze#)b$5T9E-W`9uj}oGgIjA{H-EFUjFA>wmWvPMHxPf+2ocEEQSfd0#yUSyZ zPrnGKVpv&SMZy4obd6Se3E;ozpE)i8lPuc{I0mpYzLv0C(;Dh)<5Np&0a5#%#+~p3 zcD#5;D88`EM_Cd{$gb9G=eTx}RcMTDwTr8A$al`P4=;T#ppV2`m^@#9*n%#T4v}cP>_NHP4tW+8tc6tD?+k zN=6Oc{N~~kgXcT(9UVQd4N=Xyc7?~r4r4w1WfwgC%K)0VInjrjp=nW=^AzaOyKvc3 z6h-;l{snZUkH7Iik-(R$FaoxAzJ+Z+R=9qI9IF(C#w3p_4$Aw-Nrbxy?TmEoDT}n5 zmn^wVA#~jggj)4V9Ytt|<*WI);m)-omm(Kju92$iL`g4SDyq$mZWt00v+-D(LPtuL z+)LYGYjZlBoDJCV30@cf6cgv1`(1Bd4~(8b3Jqz4JVzh6($e?RoB)hz1AID52=4D%d#>H#XSyp^4-&W<%6Kas*ynqol#uc9Rq# zE@zhIDzKqL-Q$)xOUg$#)Y&cKn~$%|=W_;yn;zQOBBbS8XP#9B^|dU*hji^0Ib5sV z#}|5L$yMqN6qt1A!>u$nxH*@IB#TIitCc&ld6dD)^n=5%CoMhv@YIJvpXPeE&c08( z(l;7-FQO%O#Kp{fGZ!@`UA!+~Qm@tD&(r`U(PL0W6FfPU#5iL9j3x|&AO9>j3hLZO zrZ8>o2QT1Y5lVXO$FTCj73MSv63Mr4%!<{d z`HHLFhWkcA9X}tp9Xg_>N*%`FD8;mb01GXCBh-R}$jv_q%e*|r&LWdLtGfF9rF^n- zXU)2D9j2eXx}5jD(SA^J%2b`IDOVLen_14AS!!n7SG;V}V$=oXI06zjJ&Y?5xvh|X zT=iI`HnZ+JP-~0SIjxTd#24kkNOGlot6aSI!@E|YBTC7c@PU$D#Jd7HHae^sh6vZJ zzP=UVv&JPbp#mvX!hCJcv;GEY&NHg?`d#+E#~I_KNc|CPF>19Qf zI9c&0pi}hN6h_@Pj$b`Kfec>xc~EzyI{8389@Js-Ff{|($ z8Jjw#S{f^2;o(r>_w(@i>SIG`JFsP&$z)3yE2NTzslRg+(A=&uYIs{YxlBgeNqn36?p0s=_5y80oyEGIu&>;tU-v z*QG1uIHyu-0}~Tmoq?%(FVoUJ18qKcBP)Pu3E}`U8z1VhUmFh;sL|sj`F?NG$^3N2SKh=i2YbOW#N@al3 z9`h9l2CzEBSMH=G+=ZxX&(bw+wS15I)pbcqxWQ%Z_cP%qnSeo+Z>!ALwd474&cngk z4!b*h2+Bdj^-@jZ)C;m^8rYp-lN)(1cAm#vuO4WZ3Vl9mGR$ilwLw9jRdADhNg)=` zSAwsKG#~ndsd4xDO`unoKYg_&ekl3EgQ7_Ly=oXU#~k;(2Rrs0U~b!xP+mALT)71} zrd`BX>%gqee0R=Beif=CBAS-gz_x5jrL}L13=^dhK5%8TiRjUf*;UzF-GEp)48ACa z)K3kNOS64%J+4F4`BXdFuu;A3bmVylju*hV*06b-sb*Zb4gcor{J=t^av(2~cDZ`g zauee?UZ!2>Km|URh_ypBdsaP*F5T5uhSGsm=)Pd&$U6%Nm}Eo<1_gr?6jjzyF?~4E z-HP)g;x7Ui0^g`Ha3}pRHT$Iprs}L*1q_|ZFr%UKvp|_-a`7n4sZ8fcESY!K z%&z_TQ3~#JTYDF;mLNuPa%&LPg@S58@t5~<+Ax}Wg0(m_a>774n5Gx)RehI~z&%P` zb3fNMjXG5E#L9C$huEZc^QiiMN& z8v5qMp80@Qeew+L7NMkZcUYSoUc5^4Ir;KHRQ-BE0%uIt1x7GlSeN1}l=6a^+bfA! z>5waXU}Y1S!I~ti8>FE4+fkPCSBZAaNguOo@9j0hu7w8R*6QvR2l2-YZ_9JpjZpQXNSW_^jt852IOC0}rqBRzPJ$VXQSE9$U zkhJdkHpVM72b3W&yI%q#Q)Sz@)_fDSQfD{-jEt(CR?2luT9$a6Axt6aiJ6XxC=4a% zNa*UOZn}%L@F=T=+6s;en%vmmNSoEOq%LjUTGldfB9(Zyn_fDK7?6+?Gz}_3=<4xk zp6ljzwLN3#nd;tpQlW?B{0m4H>{ZN3)>?u>Z1`e@)h)N*`-6obzBKSDCu{z<=t?dB zo$1@|VPY3eF^m}ZRhm-?8*#y=>)hqo9~38MK?tMwz=OF{Z|tmrP?k^|w|`Zf&yHK!mssgDyfJS7M+ zui-~z-ihJu)tFb5^5VPM?l?Xz4MnxUQsUtC7kSKV(KW35!}6<3lc{ygM73g^a?d_k8vAD`Ea#x>nX&8Yf- zPyRvwWVc?+c!zJ1w?3q zYLgVnm&{eZpMI~ZV)9N?gi`YIeWiEL&UQR6Cw7pc(MLSI`}ad6pX>CMd6?V)z`+xK z{LX%i@YQ-Aqvrkh%?b4zJy4+eOq^!<%)L(eaa&BYV%V9#fDgr1Ej$XJ;gcXI4lqFP zI?g64f~~dujUC(l#iz5f#$NV$#8oU*xzavuLO3iVyND`r#KVH3FX?~M-^&G~aq^UE z%ydB*ba7uV*gKW7X8#o#YP#gDV}88#%?1^#E#>f5e*lKV@1O!nJ0(cBY{F4w=V;%! zJ2zt)+I_8kk+ou8a&GNY)1{Ye%wQgyx%}nxKd@_r20Q8>D5wnD*6VIzCylzJzH;)?E4NGgEL3V(4!Z2Ic51 zjtf{pz5U!%ZxBG)I9q+btX4VXu0~lf%U>_qk4+Eww&ueN+IdN{VjlJrA&`nRaB%j& zzsag|Ik(f=G5;}RJ9Fz??6_Ot_)2F4N@uD<_w^*Izq9Zk_KW_T{TnFmF`TG;DiwzT znXAC@Rvy}fh zEGP1AS*;|ZbZZ&jBJ9U=a@EpvI=|pZ*=$yTUP0Xx#qm;8q`q;INPism$vXHaECW?( zOGUP(9d>xGiCHNStiaQ7X-?t<)tYv-^VYQQCy%rwyhmL)im|voPc@ zcU6RNIe(D*6_<*p*eW{o>b1vU^`+9ljz5>Nhj#4OEYtqfFD}ZRm(})dPC6<*$2&BP6-15 diff --git a/stepmania/Docs/images/smselectdifficulty.JPG b/stepmania/Docs/images/smselectdifficulty.JPG deleted file mode 100644 index 3976a2a7c1247ec66787fbdc82cad1e6d410689a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmex=Hq-)3-T;9z58XJh4H YXJ_Z+2&BP6-15 diff --git a/stepmania/Docs/images/smsongoptions.jpg b/stepmania/Docs/images/smsongoptions.jpg deleted file mode 100644 index dbe4ff323b8e4268e1b8f6030ed2e57401ef8a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94793 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

J@p)DRP!UZy#J^id+ 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 diff --git a/stepmania/Docs/images/smsongwheel.JPG b/stepmania/Docs/images/smsongwheel.JPG deleted file mode 100644 index 705778eabf57d8e00bf4d7f3f1032e7baad11da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmex=2&BP6-15 diff --git a/stepmania/Docs/readme.html b/stepmania/Docs/readme.html deleted file mode 100644 index d48f242f62..0000000000 --- a/stepmania/Docs/readme.html +++ /dev/null @@ -1,738 +0,0 @@ - - - - -StepMania Readme - - - -

StepMania Documentation

-

Revision 1.1x10^-8 (May 3rd, 2005)

-

(TOC is broken and outdated, scroll down)

-

1. What is StepMania?

-

StepMania is a music/rhythm game. The player presses different buttons in time to the music and to note patterns that scroll across the screen. Features 3D graphics, visualizations, support for gamepads/dance pads, a step recording mode, and more!
- StepMania is capable of playing many game types. Currently, it supports games similar to Dance Dance Revolution, Pump It Up, EZ 2 Dancer, and Para Para Paradise. In the future, it will support games similar to BeatMania, Guitar Freaks, DrumMania, and more. - -The games played by StepMania are rhythm games. Notes scroll up from the bottom of the screen, and the player must hit the corresponding button on the controller in time to the. All games can be played using the keyboard, but the real fun comes when using specially designed controllers, like a dance pad or hand sensors.

- -

2. System Requirements

-

For Windows:

-
    -
  • CPU: 400mhz or faster
  • -
  • Graphics: OpenGL enabled DirectX 7 compatable graphics card (32MB of VRAM reccomended)
  • -
  • Sound: A DirectX 7 compatable sound card
  • -
  • Joystick: something that works (see http://www.stepmania.com/stepmania-old/adapter.php for details)
  • -
  • Hard Drive: 10mb available for base, additional as required for songs.
  • -
  • RAM: 128MB or higher
  • -
-

For Linux:

-
    -
  • CPU: 400mhz or faster
  • -
  • Graphics: OpenGL enabled X11 compatable graphics card (32MB of VRAM or higher reccomended) NOTE: You MUST have working OpenGL libraries to run StepMania!)
  • -
  • Sound: ALSA compatable sound card
  • -
  • Hard drive: 10MB for base, additional for songs.
  • -
  • RAM 128MB or higher
  • -
  • Additional Libraries: madlibs, libvorbis, SDL, Xlib, liblua
  • -
-

For Mac:

-

[Someone want to help a man out here? I have never owned a Mac.]

-

3. Installation

-

3a. Installing StepMania from a binary

-

To install StepMania on Windows 98/ME/2000/XP:

-
    -
  1. Point your web browser to the StepMania Sourceforge.net project files page at http://sourceforge.net/project/showfiles.php?group_id=37892
  2. -
  3. Download the file stepmania-X.Y-Z.exe where X, Y, and Z are version numbers, and save it to your hard drive.
  4. -
  5. Double click Stepmania-X.Y-Z.exe, and follow the instructions on screen.
  6. -
  7. After installation, add songs, themes, noteskins, etc to their appropriate directories (see section 5)
  8. -
  9. To run StepMania, click the Start button, select Programs or All Programs, select StepMania (or Stepmania CVS) and click Play Stepmania.
  10. -
-

To install on Linux/Unix:

-
    -
  1. Point your web browser to the StepMania Sourceforge.net project files page at http://sourceforge.net/project/showfiles.php?group_id=37892
  2. -
  3. Download stepmania-X.Y-Z-linux.tar.gz (where X.Y-Z are version numbers) to a folder on your hard drive.
  4. -
  5. Extract the archive using tar -zxvf stepmania-X.Y-Z-linux.tar.gz
  6. -
  7. Add songs/themes/noteskins/etc. to the appropriate folders (see Section 5)
  8. -
  9. To Start StepMania, run ./stepmania from the installation folder.
  10. -
-

3b. Compiling StepMania from source

-

There are two methods of compiling StepMania. You can use the source tarballs provided for each release, or you may obtain fresh source directly from our CVS server. NOTE: To compile SM on Windows, you will need M$ Visual C++ 6 or higher.

-

Source Tarballs

-

To compile/install StepMania from a source tarball on Windows:

-
    -
  1. Extract the source tarball using your preferred archiver into a locaton that you wish to build in.
  2. -
  3. Navigate to your source tree's src directory and double click on StepMania.vcproj. This will launch M$ VC++.
  4. -
  5. From the Build menu, select Build Solution (or Build StepMania, depending on version)
  6. -
-

To compile/install StepMania from a source tarball on Linux/Unix

-
    -
  1. Point your web browser to the StepMania Sourceforge.net project files page at http://sourceforge.net/project/showfiles.php?group_id=37892
  2. -
  3. Download stepmania-X.Y-Z-linux-src.tar.gz to a location in your hard drive
  4. -
  5. Extract the archive using tar -zxvf stepmania-X.Y-Z-linux-src.tar.gz
  6. -
  7. In the extracted folder, type ./configure
  8. -
  9. Finally, type make (or gmake) to build StepMania
  10. -
-

 

-

4. Using StepMania

-

Once you start Stepmania, you will be presented with the Stepmania Title Screen

-

-

Hit the Start or Back buttons (Enter or Esc by default) to go to the main menu. (Note that in Freeplay or Pay mode, the main menu is disabled)

-

-

4a. Starting the Game

-

From the Main Menu, select Game Start. After the warning screen appears, you will be presented with the Select Style screen.

-

-

Select one of the five styles to continue:

-
    -
  • Single: Standard 4 pannel mode for one player
  • -
  • Versus: Standard 4 pannel mode for two players
  • -
  • Couple: 4 pannel mode for two players with different steps for each player
  • -
  • Double: One player plays on both pads simultaneously
  • -
  • Solo: 6 pannel mode for one player
  • -
-

Once you select a style, you are presented with the Select Difficulty screen.

-

-

Select a difficulty to continue, or scroll right past Heavy to show the Challenge/Oni screen.

-

-

These modes are more difficult than the standard game modes.

-

Once you select a difficulty, you are presented with the song wheel.

-

-

Select a song with the Menu Left and Menu right keys (see Section 4c to define them)

-

Once you select a song, you are presented a variety of information about this song.

-
    -
  1. This is the currently selected song's banner.
  2. -
  3. This is the speed (in Beats Per Minute) of the currently selected song.
  4. -
  5. This is the Groove Radar. It shows how much Freeze, Chaos, Voltage, Air, and Stream a song has.
  6. -
  7. This is the feet rating. It shows how difficult overall a song is.
  8. -
  9. This is the song wheel. Rotate it to select a song with Menu Left and Menu Right, or Pad left and Pad right (see section 4c)
  10. -
  11. This shows how the songs on the song wheel are sorted. To change the sort press Up, down, up, and down on the pad or keyboard to display the list of choices for song sorting. Select one with Start.
  12. -
  13. This shows the current stage number. "Event" is displayed in Event mode.
  14. -
-

To Start a song, select it, and press start. Depending on your options, you may also press start within a second or two after that to enter the Song Options menu.

-

4b. Song options

-

The song options menu contains a variety of options to alter the way the game is played. These include

-

-
    -
  • Speed: This setting defines the speed that the notes move at, relative to the song's tempo.
  • -
  • Acceleration: These settings can make the speed of the notes change as they progress up the screen, making the game more difficult.
  • -
  • Effect: These settings enabled a variety of effects on the notes, such as a "drunk" effect, making the game harder.
  • -
  • Appearance: These options also affect the appearance of the notes, however these deal with their visibility.
  • -
  • Turn: These options enable a turn in the notes as the move up the screen.
  • -
  • Insert: These options insert random notes into the orignal step pattern.
  • -
  • Scroll: These settings affect the placement of the stationary arrows.
  • -
  • NoteSkins: Changes the noteskin.
  • -
  • Holds: Enables or disables hold notes in some songs
  • -
  • Mines: Enables mines in some songs, which when hit like regular notes, greatly decrease the player's lifebar.
  • -
  • Hide Chooses how to hide the notes.
  • -
  • Persp: Changes the perspeftive of the notes.
  • -
  • Steps: Chooses the step set or difficulty to use.
  • -
  • Character: Chooses from one of the installed dancing characters.
  • -
  • LifeType: Chooses from two different types of life bars: the standard lifebar, or a "Battery" which allows only a set number of misses until the player fails, controled by BatLives.
  • -
  • BarDrain: Affects how the bar drains when the player misses a note or hits a mine.
  • -
  • BatLives: Sets the number of lives in Battery mode.
  • -
  • Fail: Sets the type of fail. Immediate fails when the lifebar reaches zero, end of song waits until the end of the song to fail the player, and off disables fail.
  • -
  • Assist Tick: Enables a metronome-like tick.
  • -
  • Rate: Chages the rate the song is played.
  • -
  • Save Scores: Enables the saving of scores to the high score table.
  • -
-

Once you press Exit on the second screen, the game will start.

-

4c. Game Options

-

Select Options from the main menu to get to the Options menu.

-

-

Below are descriptions of available SM options.

-
    -
  • Apperance options -
      -
    • Language: Sets StepMania's Language (english by default)
    • -
    • Announcer: Sets the announcer from a list of currently installed announcer packs.
    • -
    • Theme: Sets the theme from a list of currently installed themes.
    • -
    • Note Skin: Chooses the Note Skin from a list of installed note skins.
    • -
    • Instructions: Chooses wheter or not to show the Instructions screen explaining Hold notes.
    • -
    • Caution: Chooses whether or not to show the Caution screen after Game Start is selected.
    • -
    • Oni Score Display: chooses whether to display Oni mode Score in Dance points or Percent.
    • -
    • Song Group: Chooses whether to present a list of song groups, or select the All Music group by default.
    • -
    • Wheel Sections: This chooses whether to use Wheel sections (folders) in all song sort modes, ABC sort only, or never.
    • -
    • Course Sort: This changes the way courses are sorted.
    • -
    • Random At End: This chooses whether to put random courses at the end of the sort.
    • -
    • Translations: This shows whether to romanize some song titles.
    • -
    • Lyrics: This chooses whether to show song lyrics.
    • -
    -
  • -
  • Background options -
      -
    • Mode: This chooses the background animation mode (See section 5)
    • -
    • Brightness: This changes the brightness of the background animation
    • -
    • Danger: This enables/disables the Danger screen
    • -
    • Dancing Characters: This setting enables Dancing Characters (See section 5)
    • -
    • Beginner helper: This setting enables the beginning helper when Beginner difficulty is selected.
    • -
    • Random Backgrounds: This chooses the number of random backgrounds
    • -
    -
  • -
  • Bookkeeping: This displays the Bookkeeping screen
  • -
  • Center Image: This option allows you to center the image on your monitor.
  • -
  • Coin Options -
      -
    • Coin Mode -
        -
      • Home: This option mimics the home versions of DDR, enabling the main menu, and not requiring coins.
      • -
      • Freeplay: This mimics DDR arcade machines on Freeplay mode, disabling the main menu and not requiring coins.
      • -
      • Pay: This requires the coin button to be pressed before the game can be played.
      • -
      -
    • -
    • Songs Per Play: Sets the number of songs the player gets per game.
    • -
    • Coins Per Credit: Sets the number of coins per credit
    • -
    • Joint Premium: Allows Versus and/or Doubles to cost the same as a one player game.
    • -
    • Event mode: Enables Event mode, allowing an unlimited number of stages.
    • -
    -
  • -
  • Config Key/Joy Mappings: Allows you to reconfigure the keyboard and joystick/gamepad/dancepad controls
  • -
  • Input Options -
      -
    • Auto map on Joy change: Attempts to guess the configuration of the joypad when it is connected/inserted
    • -
    • Menu Buttons: Enables/disables dedicated menu navagation buttons similar to those on the DDR arcade machines.
    • -
    • AutoPlay: Enables Auto Play. Note that you can not get high scores while this is enabled.
    • -
    • Back Delayed: Chooses whether the back button has a delay or is instant.
    • -
    • Options Navigation: Chooses the style of options navigation
    • -
    • Wheel Speed: Changes the speed of rotation of the song wheel
    • -
    • Solo singles: Enables/disables Solo-style for 4 pannel mode (centers the notes)
    • -
    • Hidden Songs: If enabled, hides songs that normally are only accessable through Oni mode or the roulette wheel.
    • -
    • Easter Eggs: Enables "Toasty" for a combo of 1337 (and more..?)
    • -
    • Marvelous timing: Enables the Marvelous timing setting for all songs, or just courses
    • -
    • Allow Extra Stage: Enables an Extra Stage if the last song in the game is AA'd
    • -
    • Pick Extra Stage: Chooses whether the player picks the Extra Stage song
    • -
    • Unlock System (More info...TODO)
    • -
    -
  • -
  • Graphic Options -
      -
    • Display Mode: Chooses to display StepMania in a window or fullscreen
    • -
    • Display Resolution: Chooses form a list of possible resolutions
    • -
    • Color Depth: Changes the color depth between 16 and 32 bits
    • -
    • Texture resolution: Changes the maximum texture resolution
    • -
    • Texture color: changes the color depth for textures between 16 and 32 bit
    • -
    • Movie Color: Changes the color depth for movies between 16 and 32 bit
    • -
    • Smooth Lines: Enables drawing of the Groove Radar with antialiased lines
    • -
    • Cel-Shaded Models: Enables Cel-Shading on Dancing Characters
    • -
    • Texture memory: chooses whether or not to hold textures in memory
    • -
    • Refresh Rate: Overrides teh default refresh rate
    • -
    • Wait for VSync: Wait for the monitor's Vertical retrace before showing the next frame. Does not have an effect on framerate, but can reduce "tearing"
    • -
    • Show Stats: Shows Frams Per Second, Triangles per Frame, and Draws per Second in the upper right hand corner of the screen.
    • -
    -
  • -
  • Machine Options -
      -
    • Menu Timer: Enables/disables the timer on menus
    • -
    • Scoring Type: Chooses what scoring method to use
    • -
    • Judge Dificulty: Changes the timings for Perfect, Great, Good, etc
    • -
    • Life difficulty: defines the drain speed of the lifebar
    • -
    • Progressive Lifebar: Defines whether the lifebar is harsher on progressive boos/miisses
    • -
    • Progressive Stage Lifebar: Defines whether the lifebar is harsher in later stages
    • -
    • Progressive Nonstop lifebar: Defines whether the lifebar is harsher as a nonstop course progresses
    • -
    • Default Fail type: Sets the failt type; Immediate fails when all players have 0 life, Combo of 30 misses sets fail when both players have a combo of 30 misses, and End of Song stops the player at the end of the song.
    • -
    • Show Song Options: chooses whether to show the song options screen with song modifiers, note speed, etc
    • -
    • Name Entry: Shows the Name Entry screen
    • -
    -
  • -
  • Sound Options -
      -
    • Resampling Quality: Sets the resampling quality of sound
    • -
    • Attract sound frequency: Chooses how often to play the Attract sound, the sound that plays before a coin is inserted
    • -
    • Sound Volume
    • -
    -
  • -
  • Profile Options: Allows players to create profiles with controls and high scores
  • -
  • Other Options -
      -
    • Autogen songs: Automatically generates steps from other gametypes (eg. makes dance steps to a pump song)
    • -
    • Autogen Courses: Makes automatically generated courses out of song folders and artist names
    • -
    • Fast Load: Does not check songs for changes
    • -
    -
  • -
  • Reload Songs/Courses: Checks/Reloads all songs/courses
  • -
  • Test Input: Displays the Test Input screen
  • -
-

4d. The Stepmania Editor

-

TODO

-

5. Customizing StepMania

-

One of StepMania's most powerful features is the level to which the user can customize it. Everything from the user interface, to the sounds, and even the gameplay can all be edited and customized. Also, you can obtain add-on announcers, themes, dancing characters, and other goodies from around the net. See the Links section of www.stepmania.com for a start.

-

5a. Songs

-

Songs are obviously the most important part of StepMania. You can obtain songs from many places around the internet, some of which are described in the Links section of stepmania.com, or you can make your own.

-

Adding Songs to StepMania

-

Songs are added to the Songs folder of your StepMania installation. All the songs a user has are broken down by groups. These could be the game that they were taken from, or by step author. The files are then broken down by the song that they go with. Each folder needs a step file (DWI or SM) and a music file (MP3/OGG). Optionally, lyrics, a banner and a background image can be included.

-

For example, Butterfly would be placed under songs\DDR 1st Mix\Butterfly\, and that folder would contain butterfly.dwi, buttefly.lrc, butterfly.mp3, butterfly-bg.jpg, and butterfly-banner.jpg.

-

The .SM format

-

(Courtesy of [Who wrote the old manual anyway?])

-

The .SM song file format was created to be one file format that supports all game types that StepMania can play (dance, pump, beat, guitar, etc). The syntax of a .SM is similar to .DWI and .KSF except that some tags are different.
-
-Note that StepMania can load images in PNG, GIF, PJG, and BMP formats, and can load sounds in OGG, MP3, and WAV formats.
-
-Any text field in an SM file can contain UTF-8 characters.
-
-#TITLE:...; - The "main title" of the song.
-#SUBTITLE:...; - This text will appear underneath the main title of the song on the Select Music screen. e.g. "~Dirty Mix~" or "(remix)".
-#ARTIST:...; - The artist of the song.
-#TITLETRANSLIT:...; - Transliteration of song's main title.
-#SUBTITLETRANSLIT:...; - Transliteration of song's subtitle.
-#ARTISTTRANSLIT:...; - Transliteration of the artist's name.
-#CREDIT:...; - Give yourself some credit here for creating a wonderful song.
-#BANNER:...; - The file name of the banner image. e.g. "b4u-banner.png". This image must reside in the song folder.
-#BACKGROUND:...; - The file name of the background image. e.g. "b4u-bg.png". This image must reside in the song folder.
-#CDTITLE:...; - The file name of the spinning CD logo. e.g. "b4u-cdtitle.png". This image must reside in the song folder.
-#MUSIC:...; - The file name of the music file. e.g. "b4u.mp3". This image must reside in the song folder.
-#OFFSET:...; - The time in seconds at which beat 0 occurs in the music. This is specified as a floating point value. e.g. "2.34".
-#SAMPLESTART:...; - The time in seconds to start the music sample that plays on the Select Music screen. This is specified as a floating point value. e.g. "32.34".
-#SAMPLELENGTH:...; - The time in seconds let the sample music play after starting. This is specified as a floating point value. e.g. "16.00". Note that in the last 1 second of playing the music will fade out.
-#SELECTABLE:...; - If "NO", the song can not be selected manually and can only be played as part of a course. If "ROULETTE", the song can can also be selected via roulette. The default value is "YES".
-#BPMS:...; - A value of the format "beat=bpm". Indicates that at 'beat', the speed of the arrows will change to "bpm". Both of these values are specified as floating point values. You must specifiy a BPM value for beat 0. Multiple BPMs can be given by separating them with commas. e.g. "0=160,120=80".
-#STOPS:...; - A value of the format "beat=sec". Indicates that at 'beat', the motion of the arrows should stop for "sec" seconds. Both of these values are specified as floating point values. Multiple stops can be given by separating them with commas. e.g. "60=2.23,80=1.12".
-#BGCHANGE:...; - A value of the format "beat=bg name". Indicates that at 'beat', the background should begin playing a new background named 'bg name'. 'beat' is a fractional value value and 'bg name' is a string. Different bg changes are separated by commas. e.g. "60=falling,80=flower".  When StepMania looks for a backgound, it searches in this order:
-

-
    -
  1. Looks for a movie with file name = "bg name" in the song folder. You must include the file extension in "bg name". e.g. "60=falling.avi,80=flower.mpg".
  2. -
  3. Looks for a BGAnimation folder with the name "bg name" in the song folder.
  4. -
  5. Looks for a movie with file name "bg name" in the RandomMovies folder. You must include the file extension in "bg name". e.g. "60=falling.avi,80=flower.mpg".
  6. -
  7. Looks for a BGAnimation with file name "bg name" in the BGAnimations folder.
  8. -
  9. Looks for a Visualization with the file name "bg name" in the Visualizations folder. For example, if you have a song B4U and special B4U-specific BGAnimations called "robot" and "electric". First, move the robot and electric BGAnimation folders into the B4U song folder (e.g. "Songs\4th Mix\B4U\robot" and "Songs\4th Mix\B4U\electric"). Then, using the editor, insert a new background change at each point in the song where you to switch to a new BGAnimation.
  10. -
-


- Each pattern of notes has the same basic format:
-
- #NOTES:<NotesType>:<Description>:<DifficultyClass>:<DifficultyMeter>:<RadarValues>:<NoteData>;
-
- NotesType: Must be one of the currently supported types in StepMania: "dance-single", "dance-double", "dance-couple", "dance-solo", "pump-single", "pump-double", "pump-couple", "ez2-single", "ez2-double", "ez2-real", "para-single"
-
- Description: This will be displayed on the gameplay screen. This can be any text, but is most commonly:
-"Beginner", "Basic", "Another", "Trick", "Standard", "SSR", "Maniac", "Heavy", "Challenge", "SManaic"
-
- DifficultyClass: This value must be "beginner", "easy", "medium", "hard", or "challenge". These values correspond the levels of difficulty on the Select Difficulty screen.
-
- DifficultyMeter: The difficulty of these notes as a bar rating. The value must be an integer between 1 and 10.
-
- NoteData: This value requires a longer explanation.
-
- Each note is represented by a character:
-
- 0 = no note here
- 1 = a regular "tap note"
- 2 = beginning of a "hold note"
- 3 = end of a "hold note"
- a-z,A-z = tap notes reserved for game types that have sounds associated with notes
-
- Notes that are hit at the same time are grouped into rows. For example, if the NotesType is "dance-single", the row "1001" would specify that both the Left and Right and Down panels should be hit at the same time.
-
- The number of notes per row (also called the number of 'columns') depends on the "NotesType.
-
- dance-single = 4 notes/row (Left,Down,Up,Right)
- dance-double = 8 notes/row
- dance-couple = 8 notes/row
- dance-solo = 6 notes/row
- pump-single = 5 notes/row
- pump-double = 10 notes/row
- pump-couple = 10 notes/row
- ez2-single = 5 notes/row
- ez2-double = 10 notes/row
- ez2-real = 7 notes/row
- para-single = 5 notes/row
-
-
- Note rows are grouped into measures. The number of note rows you specify in a measure will determine the time value of each note. For example, if there are 4 note rows in a measure, each note will be treated as a quarter note. If there are 8 notes rows in a measure, each note will be treated as a eighth note. If there are 12 notes rows in a measure, each note will be treated as a triplet (1/12th) note. Measures are separated by a comma.
-
- Example:
-
- // measure 1
- 2010
- 0000
- 0100
- 0000
- : // measure 2
- 0001
- 0100
- 0001
- 0000
- 3010
- 0000
- 0000
-0000

-

Backgrounds

-

StepMania supports three different modes of backgrounds. The default background mode can be set in the Graphic Options menu.
-
- BGAnimations - Sprite animations similar to DDR 1st-5th Mix. There must be BGAnimation folders present in the BGAnimations directory, or else no background will be played. See the section called "BGAnimations Format" in this document for more information on the BGAnimations format. BGAnimations will perform better than the other background modes on slower computers.
-
- Random Movies - The background will cycle randomly over any avi or mpg files in the "RandomMovies" folder in the StepMania program directory.
-
- Visualizations - A random avi or mpg file will be chosen from the "Visualizations" folder in the StepMania program directory. This movie file will be played and blended over top of the song's background graphic.
-
-Many video AVIs will require the DivX codec for playback. If you haven't yet downloaded DivX, you can get it from www.divx.com. Playing movies as the background is very processor intensive, and may cause choppiness on slower computers.
-
-Sample animations, visualizations, and random movies can be found at www.stepmania.com.
-

-

BGAnimation format

-

The BGAnimations folder in the StepMania program directory may contain several BGAnimation folders.
-
- \BGAnimations\<anim folder>\<layer files>
-
-<anim folder> is the name of the animation.
-
-<layer files> are one or more graphics files that will be used as layers in the animation. Each sprite represents exactly one layer. Multiple layers can be specified by having multiple <layer files>. Layer files can be PNG, AVI, or MPEG files.
-
-For example, a BGAnimation named "flower" may include the files:
-
-BGAnimations\flower\1 TileScrollUp.png
-BGAnimations\flower\2 StartOnRandomFrame ParticlesFloatDown 1x2.png
-BGAnimations\flower\3 TileScrollLeft CycleColor 2x2.png
-
-The layers of a BGAnimation are drawn from bottom in the order in which the layer graphics files appear alphanumerically. A layer file name will often begin with a number to control the order in which they are drawn.
-
-Different "effects" are specified for each layer by adding tokens to the file name. Here are an explanation of the currently supported tokens:
-
-UseSongBg - Use the song's background file instead of this graphics file. Since this graphics file is merely a placeholder, you might want to make this graphic a 1x1 graphic to save disk space.
-
-Add - use additive blending instead of normal blending.
-
-CycleColor - cycle the color of the layer over the colors of the rainbow
-
-CycleAlpha - cycle the alpha channel of the layer over type
-
-StartOnRandomFrame - Start the animation on a random frame. This is mainly useful for Tile or Particle effects.
-
-DontAnimate - Stay on the first frame of this animation. This is only useful for layers with multiple frames.
-
-(stretch effects) - These scretch the graphic across the extire screen.
-ScretchScrollLeft,
-StretchScrollRight,
-StretchScrollUp,
-StretchScrollDown,
-- Scroll the layer in a direction
-
-StretchWater,
-StretchBubble,
-StretchTwist,
-StretchSpin,
-- Deform the background sprite with an effect. Only stretch spin is currently implemented.
-
-(particle effects) - Use the graphic to make individual particles on the screen.
-ParticlesSpiralOut,
-ParticlesSpiralIn,
-- Spiral particles away from/toward the center of the screen.
-
-ParticlesFloatUp,
-ParticlesFloatDown,
-ParticlesFloatLeft,
-ParticlesFloatRight,
-- Scroll the particles across the screen.
-ParticlesBounce,
-- Particles start traveling in random directions and bounce when they hit the edge of the screen.
-
-(tile effects) - Tile the graphics across the screen, forming a grid of graphics.
-TileStill,
-TileScrollLeft,
-TileScrollRight,
-TileScrollUp,
-TileScrollDown,
-- Scroll the tiles
-
-TileFlipX,
-TileFlipY,
-- Flip the tiles along the X or Y axis.
-
-TilePulse,
-- Tiles zoom in and out.

-

5b. Courses

-

CRS files define the courses used in the Nonstop, Oni, and Endless modes.  All CRS files must reside in the "Courses" folder in the StepMania program folder.  These rules determine which of the three modes a course will appear in:
-
-Nonstop: Will appear if there is no #LIVES tag and #REPEAT is OFF.
-Oni (Challenge): Will appear if there is a #LIVES tag and #REPEAT is OFF.
-Endless: Will appear if #REPEAT is ON.
-
-#COURSE:...; - name of the course
-#LIVES:<0..10>; - An integer between 0 and 10. This line is optional.
-#REPEAT:<YES|NO>; - start over after last stage?
-#SONG: - can use any one of the following formats:
-
-A fixed song:
-        #SONG:<group folder>/<song folder>:<difficulty>:<modifiers>;
-        example: #SONG:Nicolai Rimsky-Korsakov/Flight of the Bumblebee:BASIC;
-        example: #SONG:Oldies/Jump Jive and Wail:MANIAC:sudden,shuffle,reverse;
-A random song:
-        #SONG:*:(<difficulty>|<meter range>):<modifiers>;
-        example: #SONG:*:MANIAC;
-        example: #SONG:*:8..10:1.5x,reverse;
-A random song within a group:
-        #SONG:<group folder>/*:(<difficulty>|<meter range>):<modifiers>;
-        example: #SONG:Classical/*:3..6;
-        example: #SONG:Techno/*:MANIAC:1.5x,reverse;
-A players best song:
-        #SONG:BEST<number>:(<difficulty>|<meter range>):<modifiers>;
-        example: #SONG:BEST1:TRICK;
-        example: #SONG:BEST4:MANIAC:1.5x,reverse;
-A players worst song:
-        #SONG:WORST<number>:(<difficulty>|<meter range>):<modifiers>;
-        example: #SONG:WORST4:MANIAC;
-        example: #SONG:WORST1:TRICK:1.5x,reverse,drunk;
-
-Descriptions:
-group folder - The name of the folder that contains the song folder. (e.g. "Techno")
-song folder - the name of the folder that contains files for the song. (e.g. "Flight of the Bumblebee")
-difficulty - Can be one of the following: BEGINNER, EASY, MEDIUM, HARD, CHALLENGE.
-meter range - A value in the format "x..y" where x is the lowest meter allowed and y is the highest meter allowed.  For example, the string "7..9" would choose only from songs with a meter of 7, 8, or 9.
-modifiers - A comma separated series of modifier strings.  This value may be left blank.  Any string you see on the Player Options screen is a modifier string.  Some examples are:
-

-
    - 0.5x, 0.75x, 1.5x, 2.0x, 3.0x, 4.0x, 5.0x, 8.0x
    - boost, wave, drunk, dizzy, space, mini
    - hidden, sudden, stealth, blink
    - mirror, left, right, shuffle, supershuffle
    - little, reverse, note, flat, plain
    - noholds, nofreeze, dark
    - 0.7xmusic, 0.8xmusic, 0.9xmusic, 1.0xmusic, 1.1xmusic,
    - 1.2xmusic, 1.3xmusic, 1.4xmusic, 1.5xmusic
    -
-

5c. Announcers

-

Announcers folders must reside in the "Announcers" folder inside the StepMania program directory (e.g. "Announcers\James Earl Jones\"). An announcer folder contains several more folders - one for each announcer "trigger". Add as many .WAV, .MP3, or .OGG sounds as you want to the trigger folder. When StepMania wants to play a sound for that trigger, it will play a random sound file from your trigger folder.
-
-Sound files in a trigger folder can have any name you want. It's recommended that you name the sound files according to what is being said (e.g. "everybodys waiting for you.mp3"). If there are 0 sound files in a trigger folder, or the trigger folder is missing, then no sound will be played for that trigger.
-
-For a complete list of announcer trigger names, see the example announcer packs that are available at www.stepmania.com.

-

5d. Note Skins

-

Note skins allow you to customize the way notes appear. Note skins must reside in the folder "NoteSkins\<Game Name>\<Note Skin Name>". Note skins are specific to a particular game (dance, pump, etc). In the note skin folder, you must implement the folling files for each note:
-
-<NoteName> receptor (3x1).png
-<NoteName> tap note (NxN).png
-<NoteName> tap explosion bright.png
-<NoteName> tap explosion bright.png
-<NoteName> hold explosion.png
-<NoteName> down hold topcap active.png.png
-<NoteName> down hold topcap inactive.png.png
-<NoteName> down hold head active.png.png
-<NoteName> down hold head inactive.png.png
-<NoteName> down hold body active.png.png
-<NoteName> down hold body inactive.png.png
-<NoteName> down hold tail active.png.png
-<NoteName> down hold tail inactive.png.png
-<NoteName> down hold bottomcap active.png.png
-<NoteName> down hold bottomcap inactive.png.png
-<NoteName> tap.colors
-
-"<NoteName>" must be the name of the note (e.g. "left", "upright", "snare").  Look at the example note skins included with StepMania for a complete list for each game.
-
-Most of the note skin elements can use any number of frames. For example, the element "tap exposion bright" could have 4 frames (2x2), 2 frames (1x2), or just a single frame. The exception to this rule is "receptor", which must have 3 frames.

-

5d. Themes

-

All themes must reside in the Themes folder below the StepMania program directory. Inside a theme folder, you will all or only a few of the items below:
-
-Themes\<ThemeName>\BGAnimations\
-Themes\<ThemeName>\Fonts\
-Themes\<ThemeName>\Graphics\
-Themes\<ThemeName>\Numbers\
-Themes\<ThemeName>\Sounds\
-Themes\<ThemeName>\metrics.ini
-
-The 5 possible folders in a theme hold "theme elements". A theme element is simply a little piece of the theme that can be changed. Each of the 5 folders contains different types of information as explained below:
-
-BGAnimations: This folder contains BGAnimation elements for the different screens. Since all backgrounds for all the menus in the game are generated using BGAnimations, any screen in the game can have an animating background. Also, BGAnimations can contain movie layers. For more information about BGAnimations, see the section "BGAnimations Format" in this document.
-
-Fonts: This folder contains graphics and font width data used by the font system. Font graphics and width files are generated using the program "Bitmap Font Builder", which is available at their site. To export a font for use in StepMania:
-- In Bitmap Font Builder, choose Character Set->Full ASCII. StepMania can only load 16x16 character sheets.
-- In Bitmap Font Builder, click File->Save 32bit TGA. Save the file some place that is easy to access.
-- Open Photoshop and load the TGA file. Click the chanel "Alpha 1", then load this channel as a selection.
-- Click back to the Layers tab and create a new layer.
-- Choose Edit->Fill, and fill the selection with white.
-- Delete the layer named "Background". You should now see a mostly transparent background with faint hints of white text.
-- Click File->Save For Web. Choose the Format "PNG-24" and Save.
-- Rename the PNG file you just saved to "<YourFontName> 16x16.png". (the "16x16" means that the graphic contains 16 * 16 frames worth of characters.
-- Back in Bitmap Font Builder, click File->Save Font Widths (INI Format). Save this in the same directory where you saved the PNG. Rename the exported INI file to "<YourFontName> 16x16.ini" where the first part of the file name matches the PNG you exported.
-- Done! The PNG and the INI file are your new font. Move them into your theme's Fonts folder.
-
-StepMania will also look for the following optional lines in a font INI file:
-CapitalsOnly=<0|1>: If 1, then StepMania will use the capital letter frames in place of the lower case letter frames. If not specified, StepMania will use 0 for this value.
-DrawExtraPixelsLeft=<0..32>: If letters of your font are being chopped off on the left size, try increasing this value. If not specified, StepMania will use 0 for this value.
-DrawExtraPixelsRight=<0..32>: If letters of your font are being chopped off on the right size, try increasing this value. If not specified, StepMania will use 0 for this value.
-AddToAllWidths=<0..32>: If specified, this value will be added to the width of every character in the font. Increase this value if the width of all characters changes uniformly; for example, if you add a border to each character.
-AdvanceExtraPixels=<0..32>: The value in this line determines the amount of space to advance between each character. This is usually small, as most fonts include spacing between characters in the body of the character. Increase this value to increase character spacing in your font. If not specified, StepMania will use 1 for this value.
-ScaleAllWidthsBy=<0.0...2.0>: The width of every character in the font be multipled by this value. If not specified, StepMania will use 1 for this value.
-LineSpacing=<0..64>: This controls the spacing in pixels between lines of text. This value is only used in text items that have multiple lines. If not specified, StepMania will use the height of the frames in your texture (which is 32 pixels for 512x512 graphics).
-Top=<0..63>: This indicates the top of a typical capital letter, from the top of the frame. If not specified, this will be derived from LineSpacing.
-Baseline=<0..63>: This indicates the baseline of the font, from the top of the frame. If not specified, the baseline is derived from LineSpacing.
-
-Graphics: This folder contains graphics used in all of the screens. These graphics are the meat and potatoes of a theme. These graphics can be of any dimension. For example, your theme could have a "title menu logo dance.png" graphic that is 640x480 - which would take up the whole screen!
-
-Numbers: This folder contains graphics used to render numbers. Every graphic in this folder must be 5 frames by 3 frames (5x3) and follow the standard layout (see the Numbers graphics in the theme named "default" for examples).
-
-Sounds: This folder contains sounds. Sounds may be in OGG, MP3, or WAV format.
-
-metrics.ini: A metric is simply values that can alter the appearance of the game. metrics.ini is a large list of values that will allow you to alter things like the position of elements in the menus, and the order of menu screens. There is no documentation or explaination of these values other than the value name. Because the theme "default" implements all possible theme elements and metrics, the metrics file "Themes\default\metrics.ini" contains a complete list of all possible metrics. DO NOT EDIT the file "Themes\default\metrics.ini". Instead, create a blank file "metrics.ini" in your theme folder, and override only those values you want to customize for your theme using default's metrics.ini to see what values are possible.
-
-
-When StepMania looks to load a theme element from one of these folders, it will first look in the folder of the currently selected theme. If the element is not found in this folder, StepMania then look for the theme element in the theme folder called "default". The theme "default" is a base theme and guaranteed that a theme is usable even if it is missing elements.
-
-This "fallback" system has other advantages too. User-created themes can override as many or as few theme elements as the author pleases. For example, you could create a theme called "MySuperTheme" which does nothing more than override the title menu logo. Here's how you would create this theme:
-
-- Create a new folder in "Themes" called "MySuperTheme"
-- Open the MyStepMania folder. Create a folder inside called "Graphics".
-- Copy the file "Themes\default\Graphics\title menu logo dance.png" into your Graphics folder "Themes\MySuperTheme\Graphics".
-- Edit your new title menu graphic to be whatever you want.
-- Start StepMania, go to Appearance Options, and change your theme to "MySuperTheme".

-

Actor commands

- In the old paradigm, you would define the position of an Actor with two different metrics - one for the X position, and one for the Y. For example:
-ObjectX=100
-ObjectY=220
-
-This system is being replaced by more powerful "commands strings". A command string can set positions, colors, effects, and also script animations over time. Positioning an Actor with command string would look like this:
-ObjectOnCommand=x,100;y,220
-
-A command string contains one or more commands separated by semicolons. This command string contains two commands: "x,100" and "y,220". A command is made up of a command name and a list of parameters. The command name and any parameters are separated by commas. In the example above, both the commands "x" and "y" both take exactly one parameter. Other commands like "diffuse" take 4 parameters (R, G, B, and A). For example, the command "diffuse,1,0,1,1" would turn an Actor's color to opaque purple.
-
-Typically, the metrics file will have two commands per Actor - the "OnCommand" (which is where you command an Actor to tween onto the screen), and the "OffCommand" (for tweening the Actor off the screen).
-
-Below is a list of actor commands and their C++ equivalents. I'll have an explanation of animations and more examples in the full documentation.
-
-
-sleep BeginTweening( fParam(0), TWEEN_LINEAR );
-linear BeginTweening( fParam(0), TWEEN_LINEAR );
-accelerate BeginTweening( fParam(0), TWEEN_ACCELERATE );
-decelerate BeginTweening( fParam(0), TWEEN_DECELERATE );
-bouncebegin BeginTweening( fParam(0), TWEEN_BOUNCE_BEGIN );
-bounceend BeginTweening( fParam(0), TWEEN_BOUNCE_END );
-spring BeginTweening( fParam(0), TWEEN_SPRING );
-stoptweening { StopTweening(); BeginTweening( 0.0001f, TWEEN_LINEAR ); }
-x SetX( fParam(0) );
-y SetY( fParam(0) );
-xoffset SetX( GetX()+fParam(0) );
-yoffset SetY( GetY()+fParam(0) );
-zoom SetZoom( fParam(0) );
-zoomx SetZoomY( fParam(0) );
-zoomy SetZoomY( fParam(0) );
-diffuse SetDiffuse( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
-glow SetGlow( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
-rotationx SetRotationX( fParam(0) );
-rotationy SetRotationY( fParam(0) );
-rotationz SetRotationZ( fParam(0) );
-shadowlength SetShadowLength( fParam(0) );
-horizalign SetHorizAlign( sParam(0) );
-vertalign SetVertAlign( sParam(0) );
-diffuseblink SetEffectDiffuseBlink();
-diffuseshift SetEffectDiffuseShift();
-glowblink SetEffectGlowBlink();
-glowshift SetEffectGlowShift();
-wag SetEffectWag();
-bounce SetEffectBounce();
-bob SetEffectBob();
-spin SetEffectSpin();
-vibrate SetEffectVibrate();
-stopeffect SetEffectNone();
-effectcolor1 SetEffectColor1( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
-effectcolor2 SetEffectColor2( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
-effectperiod SetEffectPeriod( fParam(0) );
-effectmagnitude SetEffectMagnitude( RageVector3(fParam(0),fParam(1),fParam(2)) );
-additiveblend EnableAdditiveBlend( iParam(0)!=0 );
-
-Screen Select
-


- ScreenSelect is a type of screen that presents the user with a list of choices. The choices shown on these screens can be Styles, Difficulties, PlayModes, or any combination thereof. Each ScreenSelect screen has two metrics that define what choices are shown (examples below). Currently, there are only two different screens that support the ScreenSelect framework.
- - ScreenSelectMaxType1
- - ScreenSelectMaxType2
- - (more will be converted over in the next couple days)
-
-
- // Example 1: Show all Styles for the current game type the DDR MAX Select Style template
-
- [ScreenSelectMaxType1]
- ChoicesType=0 // 0=styles, 1=difficulties, 2=modes, 3=games
- Choices=
-
-
- // Example 2: Show specific Difficulty and PlayMode choices using a DDR MAX Select Difficulty template
-
- [ScreenSelectMaxType2]
- ChoicesType=1 // 0=styles, 1=difficulties, 2=modes, 3=games
- Choices=Beginner,Easy,Medium,Hard,Nonstop,Oni,Endless
-
-
- // Example 3: Show specific Style-PlayMode-Difficulty combinations using a DDR MAX Select Style template
-
- ChoicesType=2 // 0=styles, 1=difficulties, 2=modes, 3=games
- Choices=versus-arcade-medium,couple-arcade-medium,double-arcade-medium,single-arcade-medium,single-battle-medium,double-battle-medium,couple-battle-medium,versus-battle-medium
-
-
- 5e. A note on how SM loads textures

-

* What are textures?
-
-"Texture" is simply another name for graphics file. The name "texture" is more common when taking about 3D graphics. This document uses "texture" and "graphic" interchangeably.
-
-
-* How to you specify that a texture has multiple frames (for animation)?
-
-Simply add the string "(NxN)". Immediately before the "." that separates the main file name and the extension. For example, suppose there is a file called "title menu logo.png" that you would like to turn into an animation. Now, you create an graphic file with 9 frames of animation - 3 frames wide and 3 frames high. Name this file, "title menu logo 3x3.png", and StepMania will play the graphic as an animation with frames in the order left-to-right, top-to-bottom, with 0.20 seconds separating each frame.
-
-
-* What are .sprite files?
-
-.sprite files are a way to have even more precise control over how your graphics animate. Each sprite has multiple "states". For each state, you may specify: 1) What frame of the graphic to show, and 2) how long to show this state before moving to the next state.
-
-Let's look at an example .sprite file:
-
-[Sprite]
-Texture=dancer p1 1x3.png
-Frame0000=0
-Delay0000=0.05
-Frame0001=1
-Delay0001=0.05
-Frame0002=2
-Delay0002=0.05
-
-Texture is the name of the texture file to use. This must reside in the same directory as the .sprite file. If your texture has multiple frames, be sure to specify the dimensions in the file name using the convention described above.
-
-FrameNNNN is the index of the frame number to use for the first state of the animation. Frame may range between 0 and (total number of frames - 1).  Frame indicies move left-to-right, top-to-bottom over the frames in an image.
-
-DelayNNNN is the time in seconds to show the state.
-
-
-* My graphics show ugly banding or look washed out. What can I do?
-
-Change your PNG images to use "palette mode" instead of "RGB mode". Paletted images have three advantages:
-- StepMania can load paletted images with higher color precision than RGB images.
-- paletted images use much less texture memory than RGB images.
-- paletted images often have a smaller file size than an equivalent RGB mode image.
-
-However, paletted PNGs have a couple limitations:
-- they support you to only "on/off" alpha.
-- they support a maximum of 256 colors. This can make smooth gradients look ugly.
-
-Alternatively, inserting "dither" into filenames will instruct StepMania to dither the image when loading.
-
-* Why do the graphics look so blurry?
-
-Some 3D graphics cards (the Voodoo3 in particular) do not support textures greater in size than 256x256. If a texture is larger than the card's maximum texture size, the image will scaled down internally resulting in output that looks blurry.
-

-

 

-

6. Supported Controllers or Controller Adapters

-For a list of controllers and conroller adapters supported by StepMania, see http://www.stepmania.com/stepmania-old/adapter.php7. SMConvert -

Comming soon!

-

7. Getting Help/Contact

-

There are a variety of ways to get help with StepMania. If you have thoroughly read this manual (emphasis on thoroughly), and still require help, you can either:

-
    -
  • Use the IRC chat room, located on irc.faereal.net port 6667 channel #stepmania. This is NOT (I repeat, NOT) a file server channel and no file servers are allowed!
  • -
  • Use the mailing lists, available from the Mailing Lists Page.
  • -
  • If your problem is a bug in the program, report it to the Bug Tracker.
  • -
  • You can also post on the new Stepmania message boards, which can be found here
  • -
-

8. Changelog

-

May-3-2005 Added tons of stuff from the old manual, TOC broken.

-

May-1-2005: Initial Rewrite.

-

 

- -

 

- -

 

-

6. Supported Controllers or Controller Adapters

-For a list of controllers and -

7. Getting Help/Contact

-

There are a variety of ways to get help with StepMania. If you have thoroughly read this manual (emphasis on thoroughly), and still require help, you can either:

-
    -
  • Use the IRC chat room, located on irc.faereal.net port 6667 channel #stepmania. This is NOT (I repeat, NOT) a file server channel and no file servers are allowed!
  • -
  • Use the mailing lists, available from the Mailing Lists Page.
  • -
  • If your problem is a bug in the program, report it to the Bug Tracker.
  • -
  • You can also post on the new Stepmania message boards, which can be found here
  • -
-

8. Changelog

-

May-1-2005: Initial Rewrite.

- - diff --git a/stepmania/FAQ.html b/stepmania/FAQ.html deleted file mode 100644 index 8f49235a66..0000000000 --- a/stepmania/FAQ.html +++ /dev/null @@ -1,231 +0,0 @@ - - - StepMania FAQ - - - - - -

StepMania FAQ

-

- The error "Your system is reporting that Direct3D8 - hardware acceleration is not available. In most cases, you can download an - updated driver from your card's manufacturer".

-
- This means one of two things:  -
    -
  • - Your video card does not support Direct3D 8.  If - your computer is more than 4 years old, this is very likely the case.  - StepMania can not run without hardware acceleration, so your only option is to - buy a new video card (AGP - or - PCI). -
  • - Your video card does support Direct3D 8, but you have a - very old driver installed.  You need to obtain an updated video driver - from either the PC manufacturer (Dell, - - Compaq, - Gateway, - HP) or directly from the graphics card maker (Nvidia, - - ATI).
    -  
  • -
-
-

- The error "Cannot find Dinput8.dll" appears when - launching the game./ StepMania reports "Direct3DCreate failed".

-
- You need to download DirectX 8.1 at - http://www.microsoft.com/directx/.
-  
-

- When playing with a dance pad, the game doesn't register - presses of Left and Right simultaneously or Up and Down simultaneously.

-
- This is a hardware limitation of many - PlayStation->USB converters.  In some cases, it can be solved by - turning on the option "Ignore Joy Axes" on the Input Options screen.  See - our - adapter compatibility page for more information on this problem.
-  
-

- The graphics appear blurred on the right and bottom - edges.  for example, "Stage One" will appear as "Stage O----" (blur).

-
- You probably have a Savage video card and are running - StepMania 3.0 final. Please download the latest intermediate version of SM, and - the problem should be fixed.
-  
-

- I'm using an EMS2, and pressing 2 buttons simultaneously - resets the game to the main menu.

-
- Apparently this is a know problem with the latest batch - of EMS USB2's: - http://www.levelsix.com/L6news.shtml
-  
-

- Can newer StepMania versions import my StepMania 3.0 - final high scores?

-
-

As of StepMania 3.9 alpha 5, the answer is yes.  To - use this feature, copy the file "statistics.ini" file from the StepMania 3.0 - final directory (usually C:\Program Files\StepMania) to the StepMania 3.9 - directory (usually C:\Program Files\StepMania CVS). -

-

* Be sure that you have copied all of your songs over - from SM 3.0 final or else some scores will fail to import.  -

-

* When copying songs from 3.0 to 3.9, do not rename any - song folders.  For example, if have a song in StepMania 3.0 at "Songs\4th - Mix\B4U", the song must exist in SM 3.9 at "Songs\4th Mix\B4U".  If these - names do not match exactly, scores will fail to import.
-  

-
-

- The versus, double, and couple styles aren't - selectable.  I see them, but I can only choose single or couple.

-
- Press Start on the 2nd pad, then you'll be able to - select styles that require both sides to be joined.
-  
-

- When I run StepMania on Windows Server 2003, I get an - error "hardware acceleration isn't available".

-
- D3D hardware acceleration is disabled by default in - Windows Server 2003.  This web page has instructions on how to re-enable - hardware acceleration: - http://www.msfn.org/win2k3/hardwareacc.htm -
-  
-

- How do I run StepMania on an Xbox?

-
- StepMania will only run on a - mod-chipped Xbox.  For legal reasons, we cannot distribute an - executable of StepMania for Xbox.  See the the #xbins channel on EFnet or - the Xbins web site for more information.
-  
-

- I can't press more than 2 keys simultaneously.  How - do I fix this?

-
- This is a hardware limitation of nearly every keyboard - - both PS2 and USB.  See - here for more info.  In some cases, you can get around this by - carefully choosing which keys you map.
-  
-

- Joysticks don't work in the Linux version.

-
-

Some notes courtesy of Aaron VonderHaar:

-
    -
  • - Depending on SDL compile-time options, it may only be - looking for /dev/js?.  If the system has devfs, then the joysticks may - actually be in /dev/js/? -- I couldn't figure out how to tell SDL where to - look, so I ended up making symlinks (e.g. /dev/js0 => /dev/js/0). -
  • - A common problem is that the necessary joystick modules - aren't properly loaded. -
  • - There are latency issues with the parallel port - joystick driver.
  • -
-
-

- When I run under RedHat 9, I get the error "libmad.so.0 - is missing"

-
-

You can get the libmad RPM for RedHat 9 - here.

-
-

- When I run under Linux, I get the error "SDL 1.2.6 is - required"

-
-

RedHat and Mandrake users can get the RPM - here.  If you're trying to compile StepMania, you can get the - SDL-devel RPM here.

-
-

- I changed the CoinMode setting to "Pay", but now I - can't get back into the options menu.

-
-

You can press F3 at any time during the attract screens - to toggle the CoinMode setting.  This will let you switch back to CoinMode - "Home" and get into the options menu. You can also use the operator key - (default is scroll lock, but can be changed in the key mapping screen) to jump - directly into the options menu.

-
-

- I hooked up dance pads to my computer, but StepMania - isn't detecting input from them.

-
-
    -
  • - If you go to Start -> Control Panel -> Game - Controllers, does the list of controllers show all of the joysticks you expect?
  • -
  • - In the Game Controllers window, double click on the - adapter and make sure that the on-screen display changes when you press buttons - on the dance pads. If it pad steps and nothing changes on the screen, there's - an incompatibility between your dance pad and the USB adapter.
  • -
  • - If the above step is successful, open StepMania, then - choose Options -> Test input. Verify that the text on-screen changes when - you step on the pad. If StepMania sees input here, you'll be able to map inputs - on the Map Key/Joy screen.
-
-

- StepMania skips a lot when I play.  How - do I fix this?

-
- Here are some things to try:
    -
  • Close all open programs. If you have - icons in the system tray, then something is still running!
  • -
  • Upgrade to the latest version of - StepMania.
  • -
  • In Data\StepMania.ini, set - "Logging=0". This will stop the game from writing to the disk during - gameplay.
  • -
  • Force use of the the Direct3D - renderer: in Data\StepMania.ini, set "VideoRenderers=d3d"
  • -
  • Switch to the Null sound driver: in - Data\StepMania.ini, set "SoundDrivers=null"
  • -
-
-

 

- - \ No newline at end of file diff --git a/stepmania/Manual/index.html b/stepmania/Manual/index.html new file mode 100644 index 0000000000..7ececf5052 --- /dev/null +++ b/stepmania/Manual/index.html @@ -0,0 +1,8 @@ + + + + +

StepMania

+ See the StepMania web site for more information. + + diff --git a/stepmania/README-FIRST.html b/stepmania/README-FIRST.html deleted file mode 100644 index de08fb642a..0000000000 --- a/stepmania/README-FIRST.html +++ /dev/null @@ -1,1210 +0,0 @@ - - - - - - -

StepMania 3.9

-

©2001-2004, StepMania team, All rights reserved.
- http://www.stepmania.com

-

-


- Table of Contents
- -
- About StepMania
- Minimum Requirements
- DirectX -
- Installation -
- Controls
- How StepMania Loads Songs
- Connecting Dance Pads -
- Compatibility Issues
- FAQ / Troubleshooting
- StepMania Packages - .smzip
- Questions, Bugs, Suggestions, and - Help -
- The StepMania Editor
- The .SM File Format
- Backgrounds
- BGAnimations Format
- The .CRS File Format
- Extra Stages
- Unlock System
- Creating an Announcer
- Creating a Note Skin
- Creating a Theme
- Actor Commands
- ScreenSelect
- How StepMania Loads Textures
- Building StepMania from CVS Source
- Thanks
-
- See the file NEWS for version history.
- See the file COPYING.txt for license information.
-
-
-
-
About StepMania
(top)
- -
- StepMania is capable of playing many game types. Currently, it supports games - similar to Dance Dance Revolution, Pump It Up, EZ 2 Dancer, and Para Para - Paradise. In the future, it will support games similar to BeatMania, Guitar - Freaks, DrumMania, and more.
-
- The games played by StepMania are rhythm games. Notes scroll up from the bottom - of the screen, and the player must hit the corresponding button on the - controller in time to the. All games can be played using the keyboard, but the - real fun comes when using specially designed controllers, like a dance pad or - hand sensors.
-
-
-
-
Minimum Requirements
(top)
- -
- * Windows 98, Windows ME, Windows 2000, Windows XP, Linux, OS X
- * Pentium II, Pentium III, Celeron, Athlon, or compatible processor, 266MHz - minimum (400 MHz recommended)
- * 64 MB of RAM
- * Video card that supports High Color (16-bit color) and has 16MB video RAM
- * Video card with OpenGL drivers
- * DirectX 7.0 compatible sound card with drivers
-
-
-
-
-
DirectX
(top)
- -
- DirectX 8.0 is required before installing StepMania. If DirectX 8.0 is not - installed on your computer, the StepMania installer will display a warning and - abort the installation.
-
-
-
-
Installation
(top)
- -
- To install StepMania, download the file stepmania300.exe to a known - location on your hard drive, then double-click the file icon to begin the - installation. The installer may prompt you to remove an older version of the - program if one is present. The default installation directory is 'C:\Program - Files\StepMania'.
-
-
-
-
Controls
(top)
- -
- Use the "Config Key/Joy" option from the Options Menu to configure your - keyboard, dance pad, or other game controller. This menu allows you to map up - to 2 keyboard/joystick buttons to each function in the game. The third column - is the default key mapping, and cannot be changed. However, you can override a - default keyboard key by simply assigning it to another function. The mappings - for player 1 are on the left half of the screen, and the mapping for player 2 - are on right half.
-
-
- The following is a list of special keys:
-
- Any time:
- * F1 = insert coin
- * F2 = reload metrics and textures
- * Alt-Enter = toggle fullscreen
- * PrintScreen = take screenshot (saves to program directory as - "Screenshots\screenNNNN.bmp")
- * Hold Tab = increase game speed by 4x (useful for moving through menus - quickly)
- * Hold Tilde (~) = decrease game speed by 1/4x
- * Hold Tab and Tilde (~) = decrease game speed to 0x
-
- In menus:
- * Arrow keys navigate menus
- * Enter = Start
- * Escape = Back
-
- In any attract screen:
- * Left or Right = next attract screen
- * F3 = toggle CoinMode
-
- In title menu:
- * Escape = return to attract sequence
-
- In gameplay:
- * F6 = toggle AutoSync mode
- * F7 = toggle assist tick
- * F8 = toggle AutoPlay
- * F9 = decrease offset
- * F10 = increase offset
- * F11 = decrease BPM of current segment (hold ALT for small increments)
- * F12 = increase BPM of current segment (hold ALT for small increments)
- * Hold Escape = abort playing
-
- In editor:
- * Escape = menu
- * Up/Down = prev/next line
- * Left/Right = change snap
- * 1 through 0 = add/remove note
- * Enter - Set selection begin marker
- * Space - Set selection end marker
- * P - Play back current selection (if no selection, play whole song)
- * R - Record over current selection (if no selection, record whole song)
-
- In the music select screen:
- * F9 = Toggle title translations
-
-
-
-
How StepMania Loads Songs
(top)
- -
- All files for a specific song (data file, music file, banner, background) must - reside in a single folder. This folder must have the following path:
-
-       Songs/<group folder>/<song folder>/
-
- For example, the song Discow Moscow may consist of the following files:
-
-       Songs/TournaMix 4/Discow Moscow/Discow Moscow.sm
-       Songs/TournaMix 4/Discow Moscow/Discow - Moscow.ogg
-       Songs/TournaMix 4/Discow Moscow/Discow - Moscow-banner.png
-       Songs/TournaMix 4/Discow Moscow/Discow - Moscow.png
-       Songs/TournaMix 4/Discow Moscow/Discow - Moscow-movie.avi
-
- StepMania supports the SM, DWI, BMS, and KSF song file formats. If the song - file format is BMS or KSF, simply put all the KSF or BMS files into the song - folder.
-
- If a song file does not specify a valid banner file, StepMania first looks for - a graphic in the song folder that contains the word "banner". If that search - fails, StepMania will guess which image is most appropriate.
-
- If a song file does not specify a valid background file, StepMania first looks - for a graphic in the song folder that contains the words "bg" or "background". - If that search fails, StepMania will guess which image is most appropriate.
-
- If a song file does not specify a valid CDTitle file, StepMania will look for a - graphic in the song folder that contains the words "cdtitle". If that search - fails, StepMania will guess which image is most appropriate.
-
- If there is exactly one movie in the song folder, StepMania will insert a - background change to that movie at beat 0.
-
-
-
-
Connecting Dance Pads
(top)
- -
- There are several devices that allow you to connect PlayStation dance pads to - your PC.
-
- * Not recommended: generic PlayStation->USB converter -
-
- Using a generic PlayStation->USB converter is not recommended to play any - dancing game on the PC. The vast majority of these converters are not capable - of registering simultaneous presses of Left+Right or Up+Down. This restriction - will cause the player to miss many notes where two buttons must be hit - simultaneously.
-
- * Highly Recommended: specific brands of PlayStation->USB adaptor
-
- There is just one brand of PlayStation->USB adaptor that functions perfectly - with StepMania. These adaptors are available for purchase through some - importers (www.liksang.com). The adaptor is made by "Boom", and it small and - black with a detachable USB cable. These adaptors cost about $15 and allow you - to attach one dance pad per adaptor. The primary advantage of these adaptors is - that they do not require special drivers and require no configuring.
-
- * Semi-Recommended: PlayStation->Parallel adaptor
-
- PlayStation->Parallel converters do not have the simultaneous button problem - that USB converters do. The disadvantage of these adaptors is that home-made - drivers are required to use these devices. These drivers are often finicky and - incompatible with some sound cards. PlayStation->Parallel adaptors can be - purchased from the StepMania web site or any importer.
-
- For Windows 98 and Windows Me users, the recommended driver is DirectPad Pro - 5.0 for Win9x. For Windows 2000 and Windows XP, the recommended drivers is - NTPad XP 1.x or PSXPAD.  For the latest versions of these drivers, visit - Aldo's Tools.
-
- StepMania now natively supports USB Pump It Up pads.
-
-
-
-
Compatibility Issues
(top)
- -
- Some video card/driver combinations have visual errors when running StepMania. - If you experience any visual errors, please visit your video card - manufacturer's web site and download the latest Direct3D 8.1 drivers. Below is - a list of known issues that are thought to be video card driver bugs:
-
- * Voodoo 3
- Blah
-
- * nVidia Geforce cards
- Symptom: Extremely low framerates.
- Fix: Ensure "Enable conformant OpenGL texture clamp behavior" is NOT CHECKED in - advanced display settings.
-
- * S3 Savage family cards (e.g. Diamond Stealth)
- Symptom: The right edge of some graphics appears "cut off".
- Explanation: Drivers do not properly handle textures >= 512x512, resulting - in cropped textures. Turn the texture detail option to 256 to force textures to - a smaller size.
-
- * SiS cards -
- Symptom: Garbled fonts.
- Explanation: Drivers have errors in handling texture coordinates. Only known - solution is to upgrade drivers.
-
- * Any card older than two years
- Symptom: Various graphical glitches.
- Explanation: These problems are most often caused by buggy video card drivers - bugs. Please upgrade to the latest drivers, which will hopefully fix the - errors.
-
-
-
-
FAQ / Troubleshooting
(top)
- -
- * The error "Cannot find Dinput8.dll" appears when launching the game.
-
- You need to download DirectX 8.1. http://www.microsoft.com/directx
-
- * I'm looking to purchase a video card. What works well with StepMania?
-
- Just about any video card manufactured in the last year will run StepMania - flawlessly at 60 frames per second. I recommend any card with an nVidia GeForce - chip or an ATI Radeon chip.
-
- * How can I improve performance with my existing video card
-
- 1. Install the latest drivers for your video card.
- 2. Press F5 in the game to toggle between high detail and low detail modes.
- 3. Tweak the Display Resolution and Texture Resolution setting in the - Options->Graphic Options screen.
-
- * Will you tell me when the next version will be released?
-
- Nope, Sorry. It's gotten me in trouble before.
-
- * Why won't you tell me? I promise I won't tell anyone else.
-
- The reasons I won't tell is because: a) I don't know yet, and b) I don't want - to make anyone angry if it takes longer than expected (it usually does).
-
-
-
-
StepMania Packages - .smzip
(top)
- -
- The StepMania package format was created to make the distribution of songs and - other add-ons very easy.  StepMania package files have the extension - '.smzip' and can be installed by double-clicking the .smzip file.
-
- A StepMania package is 'installed' by extracting all files in the package to - the StepMania program directory. This allows songs, courses, themes, and - visualizations to all be installed by the Package Manager.
-
- The file format of an .smzip file is actually the PK-Zip standard.  This - means you can rename any .smzip file to have the extension '.zip', and then - open the file in any compression application (e.g. WinZip, WinRAR).
-
- The StepMania Package Exporter (smpackage.exe) can create packages of your - song, announcers, themes, or other add-ons. Simply launch the Package Exporter - (Start Menu->Programs->StepMania->Package Exporter), click the items - you would like to make into a package, then click the one of the Export - buttons. "Export as One" will take all of the selected items and make one - package that contains them all. "Export Individual" will create one separate - package for each selected item in the list.
-
-
-
-
Questions, Bugs, Suggestions, and Help
- (top)
- -
- If you have a question about or problem with StepMania, please first ask your - question a StepMania message board. For a list of StepMania message boards, see - the web site.
-
- If you have found a bug, please file a bug report into the SourceForge bug - tracking - system(http://sourceforge.net/tracker/?group_id=37892&atid=421366). This - will allow the developers to track and fix bugs much more efficiently.
-
- * In a bug report, please specify your video card brand and model, and your OS - version (Win98, WinXP, etc).
- * PLEASE, PLEASE enter your e-mail address on the bug reports. In many cases, - we need more information from the bug reporter.
-
- Please use - SourceForge's feature request system to enter new feature requests. - Also, please discuss feature ideas on the - StepMania message board or the - StepMania developers list.  
-
- If you would like to help with development of StepMania, please send an email - to the StepMania developers list - or to Chris.
-
-
-
-
The StepMania editor
(top)
- -
- The StepMania editor allows you to edit, record, synchronize, and play back - note patterns. When you choose 'Save', your song will be saved in both the .SM - format and the DWI format for use in Dance With Intensity. If you save a song - that was originally in the BMS or KSF format, the old files will be appended - with ".old", and a new .SM file will be written with your new song data.
-
- Following are a few basic commands that you will find useful in learning to use - the editor:
-
- * Escape = menu
- * Up/Down = prev/next line
- * Left/Right = change snap
- * 1 through 0 = add/remove note
- * Enter - Set selection begin marker
- * Space - Set selection end marker
- * P - Play back current selection (if no selection, play whole song)
- * R - Record over current selection (if no selection, record whole song)
-
-
-
-
The .SM file format
(top)
- -
- The .SM song file format was created to be one file format that supports all - game types that StepMania can play (dance, pump, beat, guitar, etc). The syntax - of a .SM is similar to .DWI and .KSF except that some tags are different.
-
- Note that StepMania can load images in PNG, GIF, PJG, and BMP formats, and can - load sounds in OGG, MP3, and WAV formats.
-
- Any text field in an SM file can contain UTF-8 characters.
-
- #TITLE:...; - The "main title" of the song.
- #SUBTITLE:...; - This text will appear underneath the main title of the song on - the Select Music screen. e.g. "~Dirty Mix~" or "(remix)".
- #ARTIST:...; - The artist of the song.
- #TITLETRANSLIT:...; - Transliteration of song's main title.
- #SUBTITLETRANSLIT:...; - Transliteration of song's subtitle.
- #ARTISTTRANSLIT:...; - Transliteration of the artist's name.
- #CREDIT:...; - Give yourself some credit here for creating a wonderful song.
- #BANNER:...; - The file name of the banner image. e.g. "b4u-banner.png". This - image must reside in the song folder.
- #BACKGROUND:...; - The file name of the background image. e.g. "b4u-bg.png". - This image must reside in the song folder.
- #CDTITLE:...; - The file name of the spinning CD logo. e.g. "b4u-cdtitle.png". - This image must reside in the song folder.
- #MUSIC:...; - The file name of the music file. e.g. "b4u.mp3". This image must - reside in the song folder.
- #OFFSET:...; - The time in seconds at which beat 0 occurs in the music. This is - specified as a floating point value. e.g. "2.34".
- #SAMPLESTART:...; - The time in seconds to start the music sample that plays on - the Select Music screen. This is specified as a floating point value. e.g. - "32.34".
- #SAMPLELENGTH:...; - The time in seconds let the sample music play after - starting. This is specified as a floating point value. e.g. "16.00". Note that - in the last 1 second of playing the music will fade out.
- #SELECTABLE:...; - If "NO", the song can not be selected manually and can only - be played as part of a course. If "ROULETTE", the song can can also be selected - via roulette. The default value is "YES".
- #BPMS:...; - A value of the format "beat= bpm". Indicates that at 'beat', the - speed of the arrows will change to "bpm". Both of these values are specified as - floating point values. You must specifiy a BPM value for beat 0. Multiple BPMs - can be given by separating them with commas. e.g."0=160,120=80".
- #STOPS:...; - A value of the format "beat= sec". Indicates that at 'beat', the - motion of the arrows should stop for "sec" seconds. Both of these values are - specified as floating point values. Multiple stops can be given by separating - them with commas. e.g."60=2.23,80=1.12".
- #BGCHANGE:...; - A value of the format "beat= bg name". Indicates that at - 'beat', the background should begin playing a new background named 'bg name'. - 'beat' is a fractional value value and 'bg name' is a string. Different bg - changes are separated by commas. e.g."60=falling,80=flower".  When - StepMania looks for a backgound, it searches in this order:
-
-
    -
  1. - Looks for a movie with file name = "bg name" in the song folder. You - must include the file extension in "bg name". e.g. - "60=falling.avi,80=flower.mpg". -
  2. - Looks for a BGAnimation folder with the name "bg name" in the song - folder. -
  3. - Looks for a movie with file name "bg name" in the RandomMovies - folder. You must include the file extension in "bg name". e.g. - "60=falling.avi,80=flower.mpg". -
  4. - Looks for a BGAnimation with file name "bg name" in the BGAnimations - folder. -
  5. - Looks for a Visualization with the file name "bg name" in the - Visualizations folder. For example, if you have a song B4U and special - B4U-specific BGAnimations called "robot" and "electric". First, move the robot - and electric BGAnimation folders into the B4U song folder (e.g. "Songs\4th - Mix\B4U\robot" and "Songs\4th Mix\B4U\electric"). Then, using the editor, - insert a new background change at each point in the song where you to switch to - a new BGAnimation.
  6. -
- -
- Each pattern of notes has the same basic format:
-
- #NOTES:<NotesType>:<Description>:<DifficultyClass>:<DifficultyMeter>:<RadarValues>:<NoteData>;
-
- NotesType: Must be one of the currently supported types in StepMania: - "dance-single", "dance-double", "dance-couple", "dance-solo", "pump-single", - "pump-double", "pump-couple", "ez2-single", "ez2-double", "ez2-real", - "para-single"
-
- Description: This will be displayed on the gameplay screen. This can be any - text, but is most commonly:
- "Beginner", "Basic", "Another", "Trick", "Standard", "SSR", "Maniac", "Heavy", - "Challenge", "SManaic"
-
- DifficultyClass: This value must be "beginner", "easy", "medium", "hard", or - "challenge". These values correspond the levels of difficulty on the Select - Difficulty screen.
-
- DifficultyMeter: The difficulty of these notes as a bar rating. The value must - be an integer between 1 and 10.
-
- NoteData: This value requires a longer explanation.
-
- Each note is represented by a character:
-
- 0 = no note here
- 1 = a regular "tap note"
- 2 = beginning of a "hold note"
- 3 = end of a "hold note"
- a-z,A-z = tap notes reserved for game types that have sounds associated with - notes
-
- Notes that are hit at the same time are grouped into rows. For example, if the - NotesType is "dance-single", the row "1001" would specify that both the Left - and Right and Down panels should be hit at the same time.
-
- The number of notes per row (also called the number of 'columns') depends on - the "NotesType.
-
- dance-single = 4 notes/row (Left,Down,Up,Right)
- dance-double = 8 notes/row
- dance-couple = 8 notes/row
- dance-solo = 6 notes/row
- pump-single = 5 notes/row
- pump-double = 10 notes/row
- pump-couple = 10 notes/row
- ez2-single = 5 notes/row
- ez2-double = 10 notes/row
- ez2-real = 7 notes/row
- para-single = 5 notes/row
-
-
- Note rows are grouped into measures. The number of note rows you specify in a - measure will determine the time value of each note. For example, if there are 4 - note rows in a measure, each note will be treated as a quarter note. If there - are 8 notes rows in a measure, each note will be treated as a eighth note. If - there are 12 notes rows in a measure, each note will be treated as a triplet - (1/12th) note. Measures are separated by a comma.
-
- Example:
-
- // measure 1
- 2010
- 0000
- 0100
- 0000
- : // measure 2
- 0001
- 0100
- 0001
- 0000
- 3010
- 0000
- 0000
- 0000
- ;
-
-
-
-
Backgrounds
(top)
- -
- StepMania supports three different modes of backgrounds. The default background - mode can be set in the Graphic Options menu.
-
- BGAnimations - Sprite animations similar to DDR 1st-5th Mix. There must be - BGAnimation folders present in the BGAnimations directory, or else no - background will be played. See the section called "BGAnimations Format" in this - document for more information on the BGAnimations format. BGAnimations will - perform better than the other background modes on slower computers.
-
- Random Movies - The background will cycle randomly over any avi or mpg files in - the "RandomMovies" folder in the StepMania program directory.
-
- Visualizations - A random avi or mpg file will be chosen from the - "Visualizations" folder in the StepMania program directory. This movie file - will be played and blended over top of the song's background graphic.
-
- Many video AVIs will require the DivX codec for playback. If you haven't yet - downloaded DivX, you can get it from www.divx.com. Playing movies as the - background is very processor intensive, and may cause choppiness on slower - computers.
-
- Sample animations, visualizations, and random movies can be found at - www.stepmania.com.
-
-
-
-
BGAnimations Format
(top)
- -
- The BGAnimations folder in the StepMania program directory may contain several - BGAnimation folders.
-
- \BGAnimations\<anim folder>\<layer files>
-
- <anim folder> is the name of the animation.
-
- <layer files> are one or more graphics files that will be used as layers - in the animation. Each sprite represents exactly one layer. Multiple layers can - be specified by having multiple <layer files>. Layer files can be PNG, - AVI, or MPEG files.
-
- For example, a BGAnimation named "flower" may include the files:
-
- BGAnimations\flower\1 TileScrollUp.png
- BGAnimations\flower\2 StartOnRandomFrame ParticlesFloatDown 1x2.png
- BGAnimations\flower\3 TileScrollLeft CycleColor 2x2.png
-
- The layers of a BGAnimation are drawn from bottom in the order in which the - layer graphics files appear alphanumerically. A layer file name will often - begin with a number to control the order in which they are drawn.
-
- Different "effects" are specified for each layer by adding tokens to the file - name. Here are an explanation of the currently supported tokens:
-
- UseSongBg - Use the song's background file instead of this graphics file. Since - this graphics file is merely a placeholder, you might want to make this graphic - a 1x1 graphic to save disk space.
-
- Add - use additive blending instead of normal blending.
-
- CycleColor - cycle the color of the layer over the colors of the rainbow
-
- CycleAlpha - cycle the alpha channel of the layer over type
-
- StartOnRandomFrame - Start the animation on a random frame. This is mainly - useful for Tile or Particle effects. -
-
- DontAnimate - Stay on the first frame of this animation. This is only useful - for layers with multiple frames.
-
- (stretch effects) - These scretch the graphic across the extire screen.
- ScretchScrollLeft,
- StretchScrollRight,
- StretchScrollUp,
- StretchScrollDown,
- - Scroll the layer in a direction
-
- StretchWater,
- StretchBubble,
- StretchTwist,
- StretchSpin,
- - Deform the background sprite with an effect. Only stretch spin is currently - implemented.
-
- (particle effects) - Use the graphic to make individual particles on the - screen.
- ParticlesSpiralOut,
- ParticlesSpiralIn,
- - Spiral particles away from/toward the center of the screen.
-
- ParticlesFloatUp,
- ParticlesFloatDown,
- ParticlesFloatLeft,
- ParticlesFloatRight,
- - Scroll the particles across the screen.
- ParticlesBounce,
- - Particles start traveling in random directions and bounce when they hit the - edge of the screen.
-
- (tile effects) - Tile the graphics across the screen, forming a grid of - graphics.
- TileStill,
- TileScrollLeft,
- TileScrollRight,
- TileScrollUp,
- TileScrollDown,
- - Scroll the tiles
-
- TileFlipX,
- TileFlipY,
- - Flip the tiles along the X or Y axis.
-
- TilePulse,
- - Tiles zoom in and out.
-
-
-
-
The .CRS File Format
(top)
- -
- CRS files define the courses used in the Nonstop, Oni, and Endless modes.  - All CRS files must reside in the "Courses" folder in the StepMania program - folder.  These rules determine which of the three modes a course will - appear in:
-
- Nonstop: Will appear if there is no #LIVES tag and #REPEAT is OFF.
- Oni (Challenge): Will appear if there is a #LIVES tag and #REPEAT is OFF.
- Endless: Will appear if #REPEAT is ON.
-
- #COURSE:...; - name of the course
- #LIVES:<0..10>; - An integer between 0 and 10. This line is optional.
- #REPEAT:<YES|NO>; - start over after last stage?
- #SONG: - can use any one of the following formats:
-
- A fixed song:
-         #SONG:<group folder>/<song - folder>:<difficulty>:<modifiers>;
-         example: #SONG:Nicolai - Rimsky-Korsakov/Flight of the Bumblebee:BASIC;
-         example: #SONG:Oldies/Jump Jive and - Wail:MANIAC:sudden,shuffle,reverse;
- A random song:
-         - #SONG:*:(<difficulty>|<meter range>):<modifiers>;
-         example: #SONG:*:MANIAC;
-         example: #SONG:*:8..10:1.5x,reverse;
- A random song within a group:
-         #SONG:<group - folder>/*:(<difficulty>|<meter range>):<modifiers>;
-         example: #SONG:Classical/*:3..6;
-         example: - #SONG:Techno/*:MANIAC:1.5x,reverse;
- A players best song:
-         - #SONG:BEST<number>:(<difficulty>|<meter - range>):<modifiers>;
-         example: #SONG:BEST1:TRICK;
-         example: - #SONG:BEST4:MANIAC:1.5x,reverse;
- A players worst song:
-         - #SONG:WORST<number>:(<difficulty>|<meter - range>):<modifiers>;
-         example: #SONG:WORST4:MANIAC;
-         example: - #SONG:WORST1:TRICK:1.5x,reverse,drunk;
-
- Descriptions:
- group folder - The name of the folder that contains the song folder. (e.g. - "Techno")
- song folder - the name of the folder that contains files for the song. (e.g. - "Flight of the Bumblebee")
- difficulty - Can be one of the following: BEGINNER, EASY, MEDIUM, HARD, - CHALLENGE.
- meter range - A value in the format "x..y" where x is the lowest meter allowed - and y is the highest meter allowed.  For example, the string "7..9" would - choose only from songs with a meter of 7, 8, or 9.
- modifiers - A comma separated series of modifier strings.  This value may - be left blank.  Any string you see on the Player Options screen is a - modifier string.  Some examples are:
-
    - 0.5x, 0.75x, 1.5x, 2.0x, 3.0x, 4.0x, 5.0x, 8.0x
    - boost, wave, drunk, dizzy, space, mini
    - hidden, sudden, stealth, blink
    - mirror, left, right, shuffle, supershuffle
    - little, reverse, note, flat, plain
    - noholds, nofreeze, dark
    - 0.7xmusic, 0.8xmusic, 0.9xmusic, 1.0xmusic, 1.1xmusic, -
    - 1.2xmusic, 1.3xmusic, 1.4xmusic, 1.5xmusic
    -
-
-
-
Extra Stages
(top)
- -
- You can manually specify extra stages for each song group by creating .CRS - files called "extra1.crs" and "extra2.crs" and placing them in the song group - folder (e.g. Songs\Vib Ribbon\extra1.crs). When it comes time to play an extra - stage the first song in the .crs file will be used. Don't forget to specify - modifiers - see the "CRS File Format" section of this document for more - information. If a CRS file is not found or is invalid, appropriate song, notes, - and modifiers will be chosen.
-
- Don't forget: extra stage CRS files belong in the song group folder (e.g. - "Songs/Vib Ribbon/"), not in "Courses".
-
-
-
-
Unlock System (top) - -
- Unlocks allow songs and courses to be hidden until certain - conditions have been met. Conditions are:

- Dance points (DP)
- Require a minimum number of dance points. A Perfect is worth 2 points, a Great - is worth 1 point.

- Arcade points (AP)
- Clearing a song is worth 1 point. An AAA or greater is worth 10 points instead.

- Song points (SP)
- A "D" grade is worth 1 point, "C" is worth 2, AA is worth 5, AAAA is worth 20.

- Stages Cleared (SC)
- Require a minimum number of cleared stages.

- Roulette (RO)
- Locked until landed on (not necessarily passed) in roulette. Each entry to be - locked via roulette must have its own seed; if multiple songs have the same - seed and one of them is landed on, all are unlocked.

- Toasties (!!)
- Songs are locked until a certain number of Toasties appear on screen.

- Unlocks are defined in the file unlocks.dat inside of the Data folder. If - multiple conditions are given, the song is unlocked when any one is met. Songs - are specified in the same format as course entries.

- Examples:

- #UNLOCK:Duke Of Earl:AP=10;
- The song (or course) "Duke Of Earl" requires 10 arcade points to be played.

- #UNLOCK:Yakety Yak:RO=3;
- "Yakety Yak" is in roulette slot 3.

- #UNLOCK:BananaBoat:CS=30,RO=3;
- "Banana Boat" is locked until either 30 stages are cleared, or until landed on - in roulette.

- #UNLOCK:My Course:CS=50;

- Course "My Course" is locked until 50 stages are cleared.

- -

- -


- Creating an Announcer (top)
- -
- Announcers folders must reside in the "Announcers" folder inside the StepMania - program directory (e.g. "Announcers\James Earl Jones\"). An announcer folder - contains several more folders - one for each announcer "trigger". Add as many - .WAV, .MP3, or .OGG sounds as you want to the trigger folder. When StepMania - wants to play a sound for that trigger, it will play a random sound file from - your trigger folder.
-
- Sound files in a trigger folder can have any name you want. It's recommended - that you name the sound files according to what is being said (e.g. "everybodys - waiting for you.mp3"). If there are 0 sound files in a trigger folder, or the - trigger folder is missing, then no sound will be played for that trigger.
-
- For a complete list of announcer trigger names, see the example announcer packs - that are available at www.stepmania.com.
-
-
-
-
Creating a Note Skin
(top)
- -
- Note skins allow you to customize the way notes appear. Note skins must reside - in the folder "NoteSkins\<Game Name>\<Note Skin Name>". Note skins - are specific to a particular game (dance, pump, etc). In the note skin folder, - you must implement the folling files for each note:
-
- <NoteName> receptor (3x1).png
- <NoteName> tap note (NxN).png
- <NoteName> tap explosion bright.png
- <NoteName> tap explosion bright.png
- <NoteName> hold explosion.png
- <NoteName> down hold topcap active.png.png
- <NoteName> down hold topcap inactive.png.png
- <NoteName> down hold head active.png.png
- <NoteName> down hold head inactive.png.png
- <NoteName> down hold body active.png.png
- <NoteName> down hold body inactive.png.png
- <NoteName> down hold tail active.png.png
- <NoteName> down hold tail inactive.png.png
- <NoteName> down hold bottomcap active.png.png
- <NoteName> down hold bottomcap inactive.png.png
- <NoteName> tap.colors
-
- "<NoteName>" must be the name of the note (e.g. "left", "upright", - "snare").  Look at the example note skins included with StepMania for a - complete list for each game.
-
- Most of the note skin elements can use any number of frames. For example, the - element "tap exposion bright" could have 4 frames (2x2), 2 frames (1x2), or - just a single frame. The exception to this rule is "receptor", which must have - 3 frames.
-
- For more information on about textures with multiple frames, see the section - "How StepMania Loads Textures" in this document.
-
-
-
-
Creating a Theme
(top)
- -
- All themes must reside in the Themes folder below the StepMania program - directory. Inside a theme folder, you will all or only a few of the items - below:
-
- Themes\<ThemeName>\BGAnimations\
- Themes\<ThemeName>\Fonts\
- Themes\<ThemeName>\Graphics\
- Themes\<ThemeName>\Numbers\
- Themes\<ThemeName>\Sounds\
- Themes\<ThemeName>\metrics.ini
-
- The 5 possible folders in a theme hold "theme elements". A theme element is - simply a little piece of the theme that can be changed. Each of the 5 folders - contains different types of information as explained below:
-
- BGAnimations: This folder contains BGAnimation elements for the different - screens. Since all backgrounds for all the menus in the game are generated - using BGAnimations, any screen in the game can have an animating background. - Also, BGAnimations can contain movie layers. For more information about - BGAnimations, see the section "BGAnimations Format" in this document.
-
- Fonts: This folder contains graphics and font width data used by the font - system. Font graphics and width files are generated using the program "Bitmap - Font Builder", which is available - at their site. To export a font for use in StepMania:
- - In Bitmap Font Builder, choose Character Set->Full ASCII. StepMania can - only load 16x16 character sheets.
- - In Bitmap Font Builder, click File->Save 32bit TGA. Save the file some - place that is easy to access.
- - Open Photoshop and load the TGA file. Click the chanel "Alpha 1", then load - this channel as a selection.
- - Click back to the Layers tab and create a new layer.
- - Choose Edit->Fill, and fill the selection with white.
- - Delete the layer named "Background". You should now see a mostly transparent - background with faint hints of white text.
- - Click File->Save For Web. Choose the Format "PNG-24" and Save.
- - Rename the PNG file you just saved to "<YourFontName> 16x16.png". (the - "16x16" means that the graphic contains 16 * 16 frames worth of characters.
- - Back in Bitmap Font Builder, click File->Save Font Widths (INI Format). - Save this in the same directory where you saved the PNG. Rename the exported - INI file to "<YourFontName> 16x16.ini" where the first part of the file - name matches the PNG you exported.
- - Done! The PNG and the INI file are your new font. Move them into your theme's - Fonts folder.
-
- StepMania will also look for the following optional lines in a font INI file:
- CapitalsOnly=<0|1>: If 1, then StepMania will use the capital letter - frames in place of the lower case letter frames. If not specified, StepMania - will use 0 for this value.
- DrawExtraPixelsLeft=<0..32>: If letters of your font are being chopped - off on the left size, try increasing this value. If not specified, StepMania - will use 0 for this value.
- DrawExtraPixelsRight=<0..32>: If letters of your font are being chopped - off on the right size, try increasing this value. If not specified, StepMania - will use 0 for this value.
- AddToAllWidths=<0..32>: If specified, this value will be added to the - width of every character in the font. Increase this value if the width of all - characters changes uniformly; for example, if you add a border to each - character.
- AdvanceExtraPixels=<0..32>: The value in this line determines the amount - of space to advance between each character. This is usually small, as most - fonts include spacing between characters in the body of the character. Increase - this value to increase character spacing in your font. If not specified, - StepMania will use 1 for this value.
- ScaleAllWidthsBy=<0.0...2.0>: The width of every character in the font be - multipled by this value. If not specified, StepMania will use 1 for this value.
- LineSpacing=<0..64>: This controls the spacing in pixels between lines of - text. This value is only used in text items that have multiple lines. If not - specified, StepMania will use the height of the frames in your texture (which - is 32 pixels for 512x512 graphics).
- Top=<0..63>: This indicates the top of a typical capital letter, from the - top of the frame. If not specified, this will be derived from LineSpacing.
- Baseline=<0..63>: This indicates the baseline of the font, from the top - of the frame. If not specified, the baseline is derived from LineSpacing.
-
- Graphics: This folder contains graphics used in all of the screens. These - graphics are the meat and potatoes of a theme. These graphics can be of any - dimension. For example, your theme could have a "title menu logo dance.png" - graphic that is 640x480 - which would take up the whole screen!
-
- Numbers: This folder contains graphics used to render numbers. Every graphic in - this folder must be 5 frames by 3 frames (5x3) and follow the standard layout - (see the Numbers graphics in the theme named "default" for examples).
-
- Sounds: This folder contains sounds. Sounds may be in OGG, MP3, or WAV format.
-
- metrics.ini: A metric is simply values that can alter the appearance of the - game. metrics.ini is a large list of values that will allow you to alter things - like the position of elements in the menus, and the order of menu screens. - There is no documentation or explaination of these values other than the value - name. Because the theme "default" implements all possible theme elements and - metrics, the metrics file "Themes\default\metrics.ini" contains a complete list - of all possible metrics. DO NOT EDIT the file "Themes\default\metrics.ini". - Instead, create a blank file "metrics.ini" in your theme folder, and override - only those values you want to customize for your theme using default's - metrics.ini to see what values are possible.
-
-
- When StepMania looks to load a theme element from one of these folders, it will - first look in the folder of the currently selected theme. If the element is not - found in this folder, StepMania then look for the theme element in the theme - folder called "default". The theme "default" is a base theme and guaranteed - that a theme is usable even if it is missing elements. -
-
- This "fallback" system has other advantages too. User-created themes can - override as many or as few theme elements as the author pleases. For example, - you could create a theme called "MySuperTheme" which does nothing more than - override the title menu logo. Here's how you would create this theme:
-
- - Create a new folder in "Themes" called "MySuperTheme"
- - Open the MyStepMania folder. Create a folder inside called "Graphics".
- - Copy the file "Themes\default\Graphics\title menu logo dance.png" into your - Graphics folder "Themes\MySuperTheme\Graphics". -
- - Edit your new title menu graphic to be whatever you want.
- - Start StepMania, go to Appearance Options, and change your theme to - "MySuperTheme".
-
-
-
-
Actor Commands
(top) -
-

- -
- In the old paradigm, you would define the position of an Actor with two - different metrics - one for the X position, and one for the Y. For example:
- ObjectX=100
- ObjectY=220
-
- This system is being replaced by more powerful "commands strings". A command - string can set positions, colors, effects, and also script animations over - time. Positioning an Actor with command string would look like this:
- ObjectOnCommand=x,100;y,220
-
- A command string contains one or more commands separated by semicolons. This - command string contains two commands: "x,100" and "y,220". A command is made up - of a command name and a list of parameters. The command name and any parameters - are separated by commas. In the example above, both the commands "x" and "y" - both take exactly one parameter. Other commands like "diffuse" take 4 - parameters (R, G, B, and A). For example, the command "diffuse,1,0,1,1" would - turn an Actor's color to opaque purple.
-
- Typically, the metrics file will have two commands per Actor - the "OnCommand" - (which is where you command an Actor to tween onto the screen), and the - "OffCommand" (for tweening the Actor off the screen).
-
- Below is a list of actor commands and their C++ equivalents. I'll have an - explanation of animations and more examples in the full documentation.
-
-
- sleep BeginTweening( fParam(0), TWEEN_LINEAR );
- linear BeginTweening( fParam(0), TWEEN_LINEAR );
- accelerate BeginTweening( fParam(0), TWEEN_ACCELERATE );
- decelerate BeginTweening( fParam(0), TWEEN_DECELERATE );
- bouncebegin BeginTweening( fParam(0), TWEEN_BOUNCE_BEGIN );
- bounceend BeginTweening( fParam(0), TWEEN_BOUNCE_END );
- spring BeginTweening( fParam(0), TWEEN_SPRING );
- stoptweening { StopTweening(); BeginTweening( 0.0001f, TWEEN_LINEAR ); }
- x SetX( fParam(0) );
- y SetY( fParam(0) );
- xoffset SetX( GetX()+fParam(0) );
- yoffset SetY( GetY()+fParam(0) );
- zoom SetZoom( fParam(0) );
- zoomx SetZoomY( fParam(0) );
- zoomy SetZoomY( fParam(0) );
- diffuse SetDiffuse( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
- glow SetGlow( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
- rotationx SetRotationX( fParam(0) );
- rotationy SetRotationY( fParam(0) );
- rotationz SetRotationZ( fParam(0) );
- shadowlength SetShadowLength( fParam(0) );
- horizalign SetHorizAlign( sParam(0) );
- vertalign SetVertAlign( sParam(0) );
- diffuseblink SetEffectDiffuseBlink();
- diffuseshift SetEffectDiffuseShift();
- glowblink SetEffectGlowBlink();
- glowshift SetEffectGlowShift();
- wag SetEffectWag();
- bounce SetEffectBounce();
- bob SetEffectBob();
- spin SetEffectSpin();
- vibrate SetEffectVibrate();
- stopeffect SetEffectNone();
- effectcolor1 SetEffectColor1( - RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
- effectcolor2 SetEffectColor2( - RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
- effectperiod SetEffectPeriod( fParam(0) );
- effectmagnitude SetEffectMagnitude( RageVector3(fParam(0),fParam(1),fParam(2)) - );
- additiveblend EnableAdditiveBlend( iParam(0)!=0 );
-
-
-  

- -
-
ScreenSelect
(top) -
-

- -
- ScreenSelect is a type of screen that presents the user with a list of choices. - The choices shown on these screens can be Styles, Difficulties, PlayModes, or - any combination thereof. Each ScreenSelect screen has two metrics that define - what choices are shown (examples below). Currently, there are only two - different screens that support the ScreenSelect framework.
- - ScreenSelectMaxType1
- - ScreenSelectMaxType2
- - (more will be converted over in the next couple days)
-
-
- // Example 1: Show all Styles for the current game type the DDR MAX Select - Style template
-
- [ScreenSelectMaxType1]
- ChoicesType=0 // 0=styles, 1=difficulties, 2=modes, 3=games
- Choices=
-
-
- // Example 2: Show specific Difficulty and PlayMode choices using a DDR MAX - Select Difficulty template
-
- [ScreenSelectMaxType2]
- ChoicesType=1 // 0=styles, 1=difficulties, 2=modes, 3=games
- Choices=Beginner,Easy,Medium,Hard,Nonstop,Oni,Endless
-
-
- // Example 3: Show specific Style-PlayMode-Difficulty combinations using a DDR - MAX Select Style template
-
- ChoicesType=2 // 0=styles, 1=difficulties, 2=modes, 3=games
- Choices=versus-arcade-medium,couple-arcade-medium,double-arcade-medium,single-arcade-medium,single-battle-medium,double-battle-medium,couple-battle-medium,versus-battle-medium
-
-
-
-
-
-  

- -
-
How StepMania Loads Textures
(top)
- -
- * What are textures?
-
- "Texture" is simply another name for graphics file. The name "texture" is more - common when taking about 3D graphics. This document uses "texture" and - "graphic" interchangeably.
-
-
- * How to you specify that a texture has multiple frames (for animation)?
-
- Simply add the string "(NxN)". Immediately before the "." that separates the - main file name and the extension. For example, suppose there is a file called - "title menu logo.png" that you would like to turn into an animation. Now, you - create an graphic file with 9 frames of animation - 3 frames wide and 3 frames - high. Name this file, "title menu logo 3x3.png", and StepMania will play the - graphic as an animation with frames in the order left-to-right, top-to-bottom, - with 0.20 seconds separating each frame.
-
-
- * What are .sprite files?
-
- .sprite files are a way to have even more precise control over how your - graphics animate. Each sprite has multiple "states". For each state, you may - specify: 1) What frame of the graphic to show, and 2) how long to show this - state before moving to the next state.
-
- Let's look at an example .sprite file:
-
- [Sprite]
- Texture=dancer p1 1x3.png
- Frame0000=0
- Delay0000=0.05
- Frame0001=1
- Delay0001=0.05
- Frame0002=2
- Delay0002=0.05
-
- Texture is the name of the texture file to use. This must reside in the same - directory as the .sprite file. If your texture has multiple frames, be sure to - specify the dimensions in the file name using the convention described above.
-
- FrameNNNN is the index of the frame number to use for the first state of the - animation. Frame may range between 0 and (total number of frames - 1).  - Frame indicies move left-to-right, top-to-bottom over the frames in an image.
-
- DelayNNNN is the time in seconds to show the state.
-
-
- * My graphics show ugly banding or look washed out. What can I do?
-
- Change your PNG images to use "palette mode" instead of "RGB mode". Paletted - images have three advantages:
- - StepMania can load paletted images with higher color precision than RGB - images.
- - paletted images use much less texture memory than RGB images.
- - paletted images often have a smaller file size than an equivalent RGB mode - image.
-
- However, paletted PNGs have a couple limitations:
- - they support you to only "on/off" alpha.
- - they support a maximum of 256 colors. This can make smooth gradients look - ugly. -
-
- Alternatively, inserting "dither" into filenames will instruct StepMania to - dither the image when loading. -
-
- * Why do the graphics look so blurry?
-
- Some 3D graphics cards (the Voodoo3 in particular) do not support textures - greater in size than 256x256. If a texture is larger than the card's maximum - texture size, the image will scaled down internally resulting in output that - looks blurry.
-
-
-
-
Building StepMania from CVS source
- (top)
- -
- See the instructions posted on our web site: - http://www.stepmania.com/stepmania/mediawiki.php?title= DeveloperInstructions
-
-
-
-
Thanks
(top)
- -
- - redcrusher (Michael Curry) for help on ez2 graphics
- Dj Slash & Tony Thai for the caution graphic
- Kyle "KeeL" Ward for - his awesome menu music
- Regular expression support provided by the PCRE library package, by Philip - Hazel, and copyright the University of Cambridge, England.
-
-
-
- End of document -
-

- -