From eb40fe3022c7664499e28aa3d4fe615f0bd5384b Mon Sep 17 00:00:00 2001 From: boh-wyp <157998429+boh-wyp@users.noreply.github.com> Date: Thu, 9 Oct 2025 18:03:40 +0200 Subject: [PATCH 1/3] Support for IIDX16 and various snippets for older styles --- docs/games/konami/iidx/16_empress/extras.md | 34 ++++ docs/games/konami/iidx/16_empress/setup.md | 172 ++++++++++++++++++ .../konami/iidx/16_empress/troubleshooting.md | 45 +++++ docs/img/konami/iidx/16_empress/11.webp | Bin 0 -> 41850 bytes docs/img/konami/iidx/16_empress/logo.webp | Bin 0 -> 21836 bytes docs/snippets/konami/common/btools_cards.md | 15 ++ docs/snippets/konami/common/btools_lights.md | 8 + docs/snippets/konami/iidx/btools_analogs.md | 13 ++ docs/snippets/konami/iidx/btools_buttons.md | 15 ++ .../konami/iidx/btools_connecting_network.md | 42 +++++ docs/snippets/konami/iidx/btools_d3d8to9.md | 9 + .../konami/iidx/btools_resolution_fps.md | 50 +++++ docs/snippets/konami/iidx/clvsd.md | 16 ++ mkdocs.yml | 4 + 14 files changed, 423 insertions(+) create mode 100644 docs/games/konami/iidx/16_empress/extras.md create mode 100644 docs/games/konami/iidx/16_empress/setup.md create mode 100644 docs/games/konami/iidx/16_empress/troubleshooting.md create mode 100644 docs/img/konami/iidx/16_empress/11.webp create mode 100644 docs/img/konami/iidx/16_empress/logo.webp create mode 100644 docs/snippets/konami/common/btools_cards.md create mode 100644 docs/snippets/konami/common/btools_lights.md create mode 100644 docs/snippets/konami/iidx/btools_analogs.md create mode 100644 docs/snippets/konami/iidx/btools_buttons.md create mode 100644 docs/snippets/konami/iidx/btools_connecting_network.md create mode 100644 docs/snippets/konami/iidx/btools_d3d8to9.md create mode 100644 docs/snippets/konami/iidx/btools_resolution_fps.md create mode 100644 docs/snippets/konami/iidx/clvsd.md diff --git a/docs/games/konami/iidx/16_empress/extras.md b/docs/games/konami/iidx/16_empress/extras.md new file mode 100644 index 00000000..189ce4d7 --- /dev/null +++ b/docs/games/konami/iidx/16_empress/extras.md @@ -0,0 +1,34 @@ + +# Extra Information + +## Output modes +!!! info "Output Mode" + + This game supports two output modes: `S-VIDEO` and `VGA`. + The difference between these two is: + + - `S-VIDEO` runs at 59.95hz + - `VGA` runs at 60.05hz + + By default, the output mode is set automatically by the game. + !!! tip "If for some reason you want to change the output mode of your game, do the following:" + Open your `iidxhook-xx.conf`. Find a line that says: + ``` + gfx.frame_rate_limit=xx.xx + ``` + + - Depending on the output mode of your choice, replace `xx.xx` with either 59.95 or 60.05 + + Now, in the service menu of your game: + + - Go to `GAME OPTIONS` + + + + - Go to the line that says `OUTPUT MODE` and change it to your desired mode + + - Select `SAVE AND EXIT` + + That's it! + + \ No newline at end of file diff --git a/docs/games/konami/iidx/16_empress/setup.md b/docs/games/konami/iidx/16_empress/setup.md new file mode 100644 index 00000000..069f9ee6 --- /dev/null +++ b/docs/games/konami/iidx/16_empress/setup.md @@ -0,0 +1,172 @@ + +# Game Setup + +--8<-- "docs/snippets/common/data_warning.md" + +## Preparing data + +--8<-- "docs/snippets/common/data_readonly.md" + + The **complete game data** should be approximately **26 GB or larger**. + If your data is significantly smaller, you likely have an update archive instead of the full game data. + + Here's what the expected data structure should look like: + + ``` + 📂yyyymmddrr (revision folder, y = year digit, m = month digit, d = day digit, r = revision digit) + 📂data + 📄sidcode.txt + ``` + +## Installing Bemanitools + +!!! tip "" + + - Download the latest Bemanitools release zip [here](https://github.com/djhackersdev/bemanitools/releases/latest) + + - Inside `bemanitools-x.xx.zip` locate `iidx-14-to-17.zip` + + - Extract all files from `iidx-14-to-17.zip` into your revision folder (yyyymmddrr) + - (Hint: you only need one of the `gamestart-**.bat` and `iidxhook-**.bat` files, specific to your game version number) + +--8<-- "docs/snippets/konami/iidx/btools_d3d8to9.md" + +--8<-- "docs/snippets/konami/iidx/clvsd.md" + +!!! tip "" + + - After all this, here's what the expected data structure should look like: + ``` hl_lines="2 3 4 7 8 10 11 12 13 14 18 19" + 📄bm2dx.exe + 📄config.bat + 📄config.exe + 📄d3d8.dll + 📄d3dx9_24.dll + 📄dbghelp.dll + 📄eamio.dll + 📄gamestart-16.bat + 📄gcidata.nsd + 📄geninput.dll + 📄iidxhook3.dll + 📄iidxhook-16.conf + 📄iidxio.dll + 📄inject.exe + 📄libacio.dll + 📄libavs-win32.dll + 📄libavs-win32-ea3.dll + 📄vefx.txt + 📄vefxio.dll + ``` + +## Configuring Bemanitools + +!!! info "Open the `config.bat` file. The following tabs correspond to the ones in the configuration window." + +=== "Buttons" + +--8<-- "docs/snippets/konami/iidx/btools_buttons.md" + +--8<-- "docs/snippets/konami/common/spicecfg_buttons_additionalinfo.md" + +=== "Lights" + +--8<-- "docs/snippets/konami/common/btools_lights.md" + +=== "Analogs" + +--8<-- "docs/snippets/konami/iidx/btools_analogs.md" + +=== "Network" + +--8<-- "docs/snippets/konami/common/btools_cards.md" + +## Connecting to a network + +--8<-- "docs/snippets/konami/iidx/btools_connecting_network.md" + +## Game resolution and locking FPS + +!!! tip "" + We'd like to mention that there are two options when it comes to how the game renders. You can choose between `Linear` and `Point`. + + Below is an example of how both look like. + + ??? info "Linear" + + + ??? info "Point" + + + It comes down to your own prefrence what you decide on, `Linear` is less sharp but doesn't have pixel perfect edges. `Point` is sharp and is pixel perfect. + +--8<-- "docs/snippets/konami/iidx/btools_resolution_fps.md" + +## Before playing + +--8<-- "docs/snippets/common/before_playing.md" + +## First launch + +!!! tip "" + + If you've followed all instructions correctly, you're now finally ready to launch the game! + + **First plug your controller if you have one** and run `gamestart.bat` **as Administrator**. + + If it's your first time running the game, you'll soon be greeted with this screen. + + + + Press your `Test` key to initialize the backup data, a message will pop up stating it's been initialized. + + !!! warning "" + If right here you get `USB I/O ERROR ERROR(FM TRNS-OUT)` or `USB I/O ERROR ERROR(FM-DL TIMEOUT)` instead of the `BACKUP DATA ERROR`, reboot the game and it should get fixed. + + Next, you'll get another error. + + + + Press your `Test` key again and let the game run for a bit until the monitor check is complete. + + You will now be taken to the service menu. + + + + Instructions on how to navigate the menu are shown at the bottom of the screen: + + - Press `1` and `2` to go up and down + - Press `6` to select/execute + + Start by going up to `CLOCK`. + + + + Here, simply select `SAVE AND EXIT` and the clock will be set. + + You'll be back in the service menu. + + Go to `NETWORK OPTIONS` then `e-AMUSEMENT SETTINGS`. + + + + + You will need to set a shop name. + + - Name your shop to whatever you'd like. Again, navigation instructions are at the bottom of the screen + - Go to `EXIT` then `SAVE AND EXIT` + + Select `GAME OPTIONS`. + + + Here, you need to select a display type. + !!! tip "This setting affects timing offset in the song." + - For lower offset, select `TYPE B`. If your monitor has high latency, select `TYPE A`. If you're not sure what to pick, remember that you can always change this setting later depending on how the game feels + - Go to `SAVE AND EXIT` + + Select `GAME MODE`. + +!!! success "You're all done! The game should load up properly now. Make sure to insert credits by pressing your `SERVICE` key!" + +## Help + +--8<-- "docs/snippets/common/help.md" \ No newline at end of file diff --git a/docs/games/konami/iidx/16_empress/troubleshooting.md b/docs/games/konami/iidx/16_empress/troubleshooting.md new file mode 100644 index 00000000..a1063cde --- /dev/null +++ b/docs/games/konami/iidx/16_empress/troubleshooting.md @@ -0,0 +1,45 @@ + +# Troubleshooting + +--8<-- "docs/snippets/common/data_warning.md" + +!!! warning "If you get any error codes that weren't listed in the guides here, check out [this](https://github.com/djhackersdev/bemanitools/blob/master/doc/game-error-codes.md) Bemanitools documentation page" + +## Technical problems + +### Crashes + +!!! info "Riva Tuner Statistics Server (RTSS) and MSI Afterburner are known to cause odd crashes.
If you have them installed, close them both before starting any arcade game" + +??? tip "I'm using a laptop with a hybrid internal+dedicated GPU setup" + + Laptops often have odd issues running data. The game may open on the wrong monitor, run at the wrong resolution or framerate, or simply crashes. + + There is currently no known fix for this, other than maybe playing in windowed mode, or using a desktop PC instead. + +### Performance + +??? tip "Game is running too slow/fast" + + Your game is likely running at an incorrect framerate. The expected framerates is 59.95fps for S-VIDEO output mode, and 60.05fps for VGA output mode. + !!! tip "For more information regarding output modes, check out the [Extra Information](https://two-torial.xyz/games/konami/iidx/16_empress/extras/) page" + Try these steps to resolve framerate issues: + + - Double-check that your selected output mode in the service menu matches the refresh rate in your `iidxhook-xx.conf` file. + - Close any software that can affect framerates (like RTSS) + - Close unnecessary background programs + - Ensure V-SYNC is not forcefully disabled in your graphics card control panel + + If issues persist: + + - Double-check that you followed all steps in the setup guide correctly + - Your data may be corrupt in one way or another, you could try starting from scratch using trusted data sources + +!!! info "For issues with desync and the such, check out Bemanitools' performance guide [here](https://github.com/djhackersdev/bemanitools/blob/master/doc/iidxhook/iidx-syncbook.md)" + +### Other + +??? tip "Background videos not working" + + The CLVSD codec is not installed. Install it by following the correct section in the setup guide. + \ No newline at end of file diff --git a/docs/img/konami/iidx/16_empress/11.webp b/docs/img/konami/iidx/16_empress/11.webp new file mode 100644 index 0000000000000000000000000000000000000000..f6bcf407eac8eb19743d6a6877c28b8f9d5365bb GIT binary patch literal 41850 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 literal 0 HcmV?d00001 diff --git a/docs/img/konami/iidx/16_empress/logo.webp b/docs/img/konami/iidx/16_empress/logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..003bd5997b3ba8721886c445f1ce88b6e89e3c6e GIT binary patch literal 21836 zcmYhBb8se6x36Q{wmq@!iIbVwd4q{o?iREy}P=* zp0!kDBqhavfqh${V7;?{rz0RchzcRhfD#Dai`$SFw+5rTjq;!0ZM!>XizCJXIv z@gblBb3i^3Rio9&DrpxjL@MLMlJxjJEAB4Vo2`GwQylR<{-k% z8?(G4DH;RCWBtAdX)G?dmFJ8;1gH*?{4gTFi7!IG2FM~Vi%sRIGdHb!h9EdW3=tF$ z3q!vW$o83X8xXRtG7)v3=>zV1@Hkm>CqI2Hr~z+M98B2Dev^4?Upvz3&ru{+8locW z8XIAnt5-Sb@@@DC+@5ODj-eeiyd4M8Jf0*2pxWa+L+3(NJRJ@B2}^d&Tfhmg;rkv# ze-6e7`^VTk?Bt4U+0$z$LoqN347_R*&d*Os(QHVq{hg*T{XnX^>;QO7~v)qL} zQfvs8WdHWwp8eqacB5|^?kj9;8q$IlF_r>+@!GanrZ*0;(5X+ld1U$qItrS-nhh3f zCbw63J#>E&e+e9B@p%nXZwOTL-#ZJP%zXQTof0D#Lp4U-_(nAsgrrG|9QD-zgJu#x zOUP3V-Is2KSNK?`aA(HH4}cG8j>~IbXSt+?BSd{UZTP-?zUrQL-5oi;U)r0mC2S=k zDMSzPd}e||`qSrpXI2e<#M!W~dE!04SgN?(ODjB!dl<$$Hi&eZW8@%UU_V*d&3!Ux z{IafoRA&lWAHi-k^hXoN(fq{Ok5>`OG*n^bS+G^%ZhTpga=w_oPdwUr_`x>F$zGA|9a!ePO|9b}o!SYsDP8>L1U}r5{b07N9zh%c#x#y++Hr&gRT!F2Vmzu1EsO>hOF>F81~L`^ z6=9+1E!iVx3r)QuC1C68D)gEFtLtk4Xh!DDuTE?lAJ~xm?=&$Zm^-BA^3nG~wsUi_q6u^_Y|KcE&L|xr+~wv z0@4cc+3KaG|LYG(b;`?Go~(f_!hU*UuTh3nAd%**y_s*}a65Jwv5GMJ<)U0v$6^<~ zkg}9dOoOsZfe!&;vQs)Sn6g$$F>hPIgkl3CxLtFOl(7CCyr8PK4{1*ymmrz{Cmw?R zP}ZA0RZEiN#Tx`xVfwCPXN$`b^`B{8sAwT%78(?ci!_2L6L#UAWpaXnUS>C!_^!P- zdtO&2JLDN#1}0IvuW1{zl${;|;gRR6ivB)o6p9Vt_)1RVE%G;UA2#$gs-2YiVf=WJ5rL_U!T|9ct? zaHv3oW&8}$3}7G_U;_fjjUK}4G30EEN76tU8}?`^$OtLTQfImT22445Ts={7F7WJI zG6@}L7D=?Y{n?3Knylrc7qaZ?3?3MpUt3@ACdrExPLJ&5z;(AwrNp5k|Cd-(2<3UL z$XOoas%H37!D>SEkgP0_W?3YtgP|=bRz`zN*iL56VZ&m!uH-GB(B__%Esy3w4AWS( zH+TK&CI44FDHS-1$QHC=ZPqfQteYU z1?%SJq{h|`#`LZ&bM0RbNiN1?xKEJxRR&b~nE2RV$1W;A2LX^&`&E?5EG;C$|F%>v zo+9DDw)DRt0R&t4+7g@RfhS5N&;Z#HLTVD?hhebew8l?L*l48wW4GVeyitTPW=xmk zF&e%|u6x`9*nIGb)Y@-t6_OZ1VNE7b_sjn|rvLxEy4Mdg1fj3B%=!S3u`gEOFelN> zxFPL&wQAj|6eepYJ<~ZZBXtV z{|#iR&zMPSH_PoTQcz&~-cc>V4VJCfNR+Z(J)&P}Q;x4elom%JPtzB0j>lyTGEito z(DL)$1~C&iEMC1WKlynBNJ2?q0$>72{sUw%`xl^UwRHQp;B*Enc1L@Cbl6|h1WbAN z%JNNReMKIn{M>w7?)6pIJ~};>Gosk?`l}uxjfdfz}($3Fk}c^t7XiTOr4( zd%kEK#p-*1zUyHh;`C%1JKkzXbq}7C1MlrMs40I z)IJlQC(&HkK_nR4kJcLc9%GX+DIPOb$_H3;{8)-?j^j!+$B_(coY6`+YCNL(>SFra$IEZkB#4dgo${XTU%KZ zbqZ$!zu)E@N&U8|$%>pk!l@{0+J9<`b9*hh+^NoNO0l!P1Q_vDINT2U`lQr0LG3^y zmu|dLEE*mSQ5q10+WrDuJ`9UFJ}IDWA$UJo5P)sD=eTo4|}Ks}WYDS5THS<-pKxOQ2>%Q&XyzQ)9c z`Wo=e9R$GMQ7N`Hw+eHk$0T0ZO~1LinZWxhu>=5kO+Tf$ecvHTfB%AKXBNJ1>p9tG0%m>#Xo=PF&nZ2 zyUlxb@wRo1qgsXr{$l$~e*yzzWN^qJ{(ZYrz6o5Z_#D3F)!uy0i0C${S0`(|kV}8- z`+h%(z-&yfW)O&dD$Z?OxIF4F@8{L4rri`Xf`gO9Ac3x|dEA*NuzWdQ=?QMp<3D<9 z9XO@DxIkvcg@$Z^RC+QAUaIruP{IH?{D6*7UD7@=jfWO7H)ed`P4qFG$(xBY$vge) zb0sj6efkj3GdpV;&EATeaj?lRE>e4q=r^qkMO~_Qp4?%1io(XH&k?;5ahMOD$!oZl z-T``!WXVzy2WW!=pHy<3>W8oyM)p?&@Ls`3SLNP{6B=9YT>61Oz%Ps;R>4s4eBjM; zub2b|uy5Y?ex<(KoEmOS-P9(-q_}PrLa7l4jB-M8e-cgamN1>OO(I;>^AT?dFO)yY z!#>L&(QMpzCA)KO1Dmm8?}cfT)2#iHcLsWU=xJuSG28F^kU1D`c~9`6obJ3PK!-P; z35Qt$?|Mx12=ug2t1BveZo}i}FMd{efb4)`yC~qS!EunQ=iN??*KyL2z(W#`c86{^ zm%BFCw&z_x9g}SnN^CwY{(Gg`o4_TR>5?kK(y`I2zdYh$|51Yj5`C9O=g9-SW2@Ow z@eU|w?{Nq0iUGDA1ADHfg{3KPYQ$&zGTEA=(?-`d54A@?yjC9^ur%_I_>B9NS(eAs zS(mzE%`}Sd$4hHFpEou`!reBQ&Toxwb1!>bmwbyqN{1;;7O1Xn3WiSN|eD!XGV5TA$wEO8#CwKEYtS%xchcA;@lMGdzDpxYlFVSR^3pyVMko z-IiY;b-n=$w_;~IEiQV#A)0;^01Y1eP(%+jM7@)MU1Hi!8sVaSSq6Tnrt{E$Z3%5h z3GiEPwc{$Db#=SIm2fu4V50bbWNEUN-pSpZh4Lfr?*!?!p3^}*Jfln+^N}fL1ZKWZ) z97=~%y+NB|xS+%~BWgjQ#Kurx^$(^}W-8|hfi~6lQ@jmqfp&3$4au=!YxX(61~9WD zC@ylBeGs%xWzu3NSsZ)Z*nt00y|GVk^Q_q**|-k0J7icdJ|+Sm&$p!K%^3hM0z0B^ z4U8mTS1dHaNybj;n3h9PkDUJT+)mfvzXB~0JAXgL z!-oeqXdFm5Cdj|Bu@_Xu&v^wNkbZsb?7l=wlkGwA#DkMA7P#r@oWFjwzaI@QhwKm> z#>8xwROy8v)*BtW17cE3dBcN$e`jgAP*Q~qD@S-)z++Xx6fGvs|2B&LA|U}Xqaf~J z54cNwAPKc6(AlD)Kz8FbR$JhL)RG=7|)o z_)K22HE>cQT@8bR+}zRUHGS#u+{~5}5|ZeTA!H8XB)gH%zIzUO$l9Nhdy;-ahQ?O=K{dG+wXa@Xs>hUptha!U;=&F_Y{zSYHtH~?*Q z!R?v28pk8^N$^xXkeO*D+&*5=W%;bh&cZDrXmHHw8^0%&2y%Eivq#8RxN;F2g3PYp zvclpxy?vF<26Y4uyp9bT9C`x@2#3EYFF!A?GEDMF>pB?@*CRqZ#N)DyX(s zpUvP#XkH$bb3n&}(7+j2$*<6|mIqV5wZeqVf2E^?9K$t1WV{;sdAMqOekCXSJM zj2>*+e!#ncyFFctZIWF!k}4EyISmWpeu?De01faY1DxDM^whMDt;xICAfP^mXso759__8!3%a_-l{5p){p%C;Jt3d> zZ8Y#FFHT|HbP&v^`>zSPI}%PZPesAIw-(UV77!5LbsItHJ0cXRE+gmeqh(TeU)4x* z!R4ocOCS51nklt|sOCQj{AD**cwY>1P#bprNp4LQQJkmq68pHi;^c(8FS|MfQKk7v zZ&LeZLHY+3isWPP*mc$qH+#VyGieqfX^ z^?pcfXWLH}y>4cP%sk*vCY$auK;X?h@F*f}0aiyczJ@R3%^msja-ynuOj*j6*_K}C zf}@LAE{D7pmIQ(XR2;YLLi}ZW%gkNWekBh#TQ_B8t;aXx?rB15GOSOgdntZ4m9Rue zU0@n_#b&^Hiv&Mb-Sv2j;atJeeHQM`2xSn$q?)C*X61Usuby>j;jUlEOmN2cA!efH zYmo;PY*l^UJPn|NW$p6ZL`d+}bp^mG6}G+i+4V>Ps4xObm@hL7jZD+iV6oG?UXGv* zL5ydLJ8pS$8ZPfIggDIHO0o2H+m#bKDmvWFuA)M!FHWjlwbv%blfoH8yp6$8l%^g5 zoi2OVQhsogMA={Y3)GGG^qTKtD8k5nwal>GZTAvVZ+}qsvsThvRjE207_o^FWNahS+vSgP^2lw zVCzj~JBMSKFQPN=*HHFIdg9UP1Bh3_*?RVs?|f`-LhAQ6!dndQBtU;NRaR#6oXD}g zl5Tc#WOgsRzSXiEsI#I7zgghbK47MvIh-xC)wZJiWTQPw5r(i@(XC1;_k~AUeaANCa!Zf&n0~S2YqlN3dS}ffjSwnRJN}b-@Nl*a*|22Bev8Rg z43aUBG)q}<{nm01I^TS0=AaVBJ1n%dUqKOM8b;6cpb97UO!nvR;G`j`(?qciz>YaB z#a;92C^FR*y#=w1Wx^-Bnd`oGLl~c@P|X9x5Yolob+u`3W4$sjtJ9Z4Q% zP6~7RC@Z`Py0}*@+A}2V2aR}manA7lS+G9&u!Z`nncupA-$~q=u;@`vd}c-63xQ;ZhPXs{R8cKV;2AM4++;@B?2zE4n#Mu> z5Gm`p^NsIntL^?4PuW#b0FvF$tIb*_R#+?Iuq?0}EB8ILyC?=c^z_7Vi_qm0PN^%d zD%%e(6TJPLRk&}EV7m9(;pom~T=$kWv&8S!G@%8|szHh0R*lWDD{f17>n6fBGKO8$ zC%>f)Vh07K>UvMp>`xlc-%+%_!A6IsU)yXj-i(vsYytx<(2(IuKj{?H(Md)@yg|FL zfz>g5KILtNV*224?v{eklbK9^5asjNWWlfX+;{l5C$6#Vv&0l7K!>yeanx0!@?fIo zrW&p{_Z@W7Z;T?Pu>$amC!}by>!gES9rx40x+j0@_Ypk#CfP(Fy4?41Oy{D(aQsIP zFWSF~CxZ{NY(ayebWm~*uO{UXEMpn&gMP%fG1hJAiM2Jb3Cul=u+$^eQst954bOE= z*#5cF#OHJZsbM0=eu%CTyTt3WXzu7eOiwSkojM@MwPdYqj z3l2^iKX2yoJc_lPlH*L$I$Y6op2X(OuX;9}>xr*-kYQk$$>tl9yt91oXy09sEYr>4 zqro=8Fxu*?82Q8VVVViWz2qTp5k&iK=(iLIVjcI>Sz*tQx&v1O|NhjdcT)ME>2@z_ zgcECVzdD5*SKnCvsKBhkyTFDON6q>#fZS~afP1fC69yPrz6_MXX6X(ZQ-g)qu3hEZ zB))42`E8f8O;po#3icWHg2_UMzD5yBwm?h2|E;wLYVf|%ajrGO<~GxSpVXfknQg2P z`_|%Vl_m`(QP7vZ=0}Qyd^IC9MDnxB1=G0RzuQk*WNlWXiFomB6X6oJF=7+)J-j!3 z3=Fb!g;g`zfJoeJ9cR4iR+-ocf+>?w_2bqMiy~StUpvPs+*SFDK{(ZIU?PWRzk`;? zMH#9mL*8oK?H<1TQnb^1jAf=`W2bR;^=(X5QS9*0%`|=81~H0MvVmvDF&#n|P-Q7{|#VZpUTZLbOoZqK`p0wUhkLxKtx84K@#6^PF^w) zUx)R`p)p+xe&*0yU8}>{RyTTlf!MHkZxCQm8%|AMuz~bkDG4{QvX{j6p4#U|zexk2 za_cl(YYwB4hF*g5L{nzuR9-d>V!tHU+!#F-cn=v@?ams+Z+CRnlsu3&nFe5wo} znX_NYGB;-l$aQ+gCh^ptBGI$%F+`h~2#d<3^`l${=)nvJyD}$F-oShYe{#S}nj*iB zY>S|?mz$azIHxamC43F?Hs6f0&sn{rIC~L0-w2cX$;F(g3deL!X?a#BCiR zfR$&(rns3U8p$*kso9JtwYAJ{#GWRbHQbTUU!Qk?u8`dx6btmfeA$1?xPPkif8jsQ zbL>Cz^M6d;*fv5(9ZBTHhu>^9P0p{(85xKG(;#aIt?6aP1OmxRu;$HmKiX`5>0pZI zN-)s~3MJNQr0HP1VS38YFls~v@Ao%#GL%hv42}j*!U8`SDR6}U$w5T)KOtK1zmf4P z_}6GCf^{ewc|xB6?0u_nV7-hElRX zB?mC>YK}s%Nc~*U878dUOUpoI~yXMGsbh-K6C_G`sy~>J@)I1p+$k<@W z&8z)?dC%ZKOWOF+)Bn5vKedU=Q;-%OpgSyqNVYPha^hv107Q;891W6JOa71@ry%L?QH0tRzKF=%DqYx{p$XDFQiG$Z~4p#Q;tmH&qSs*TcF z=sDw??1xe6LT-fSW3)G*X!5nRLBUKDnk0knlgkZr;Z6s~Ql)bLjOP~S_jU^26so}{ zT;*w~1!cVe+{4h=t%1tytE-w8<3Q?$?vG){K7lc4&n;SAp0JM_GS0`pivuTen`9xNVZ*I0z_UgH%WaDCQHAftA(?vZMXxF zQbsaIdku~;tRXd1YQQ&m?@1x<&2;NkCj~~T)ed7dX;u5-_LRc*X(+IlyoyLbKuFZ# zJ4)5s^hJ|C{*4hxI24=OYNCXIuz1afXGyHa=xIdrn^$8SieX5HBZ-af{+!|5=DX}!74m+1`Lfj#0{^C;kShK>`fhxZ z0E&Iy)CxVtF!ucJY57j{h3K*Ibrd-KKK5w;Mm^PsRJ3 zSfc1pxo^);;##RA-|6r1Z^zH**Mm>NRm2_OO0HBhvCencm(X&~rO>*M(MQE|%vVY) z^@Y?Yl2DK0GsIWP7yh@@5p_TFa(9eiHL&Rw=gS@V@=XljbUD3RjT0g3q^F!IdNynr z&UnR;^!SA`1yrn`kq}&rS^&=;*<~SNGs;e;BpjV&a=$E}M;SDrm`M}s zI(jP%1C72v8TSrSU#Y3q0YALV0E|$}w`G_Ik#ytT)|Q)Qi;1N5WDgYGCRZ5)p|bMh z>%nJu;OY1~9?Q$pp3%nyZDW*c>08Nd-;U9f6H9?}-Rd#I8J`8@@9f~o{*1pD#L!=s zehFO25T~EAC65%vO6Ul&1CU%F38@r;hrt;;W(E4!X6l5UgPWt(R9=sewJvfr95iUU z&YHIFyhi|i87uYEmF1PLnF_eVRr`?-o!?02SA=;4XO@NRJQ)HJANg-f&DIrfr%^xl zcCX@#g38G>@*?`SgQB^1Rv{kxdnOkN+?4;hR7w3uN-OQ_eJnKfYA#R>Q>QlfN8T*T zM-`M^{j}dppUGM*nu3o7uUO;99-F%x->S9Y&6d;=>#Oiy?AtpYGvvE7FX%wqHR5rT z9>gwkCpJP$ESeCq1M4>7%z;#@^CAl>i!`GU2V_8Uc{0wBZcCs5ja}bYi&szVNJ+?h z@5kDy7N`d3W{`z4S)&YA3TCFSdJOVjY)LdXT)4~1(xeR2SuWpy+_i@U4G6|I$<-C5Yt9Ff135ekRAMS4nP+Pwe zL#>mr9N6X$r|5UGc?(spdZ04mq6N*!1_ujS zuLIn}M>y+;7dP{j#pA#l{OO)^UhO`RBu%c85o?{2Hzs^vS))~P4Sd+)mEVT$tL>#& z1Zw2TbuYA71sJBWC!*N^iXF1BOgQv@X!JvWC1mwMpO364PG*e`6ua-AXlBn}TpEAu zxh$cJpoWVapKa7SB&EtkD)$pC6jJtG93B5e;U@K3K}hxLtSU^)9`#UI(d$h3s%WDX zF=#U(wAX`l{P|(VrBu-N%~@=?+jJv{rTzEhSP0N&EP576^wUc@#5BGQ-LO3X{Fiiv zD}Nzigmw;$EW9~?PkGSRC!H|#$^B~;U8<1%{xs7oiM3X-R=^NesapQjGCMDKFm+tt z$6cd4NxR@{fdvRAT_Z6RXKmI*d`n2cH1mtW^T_Zz?wCo1QW_qjshtYVJjUhkwM31)Q6}9=(rL2`JxV_Bew&bZsx0}-eUy0iueFQ!i(7i$5 z;CjIr`wSVXY{II240LZDNcrv*F-g3eJA|8q{5xxa825|KB>Jjxoz6K#y8qm-h$JeY zrUon^${R6VLw8Y`9#4jS*PaPq0AJdQozuh*ffX>%HwtVOQW=wA^h0kMkl2l$J%3mQ0G2>h!*#%S4|{~>=Knw zD7w)c2_lca|5;3t3^vE{f&qHr0lJ1XXC^&^8Fp@b+Z8>{~?D?FgTDc@}tffeUhl7F^k_4`V|vyHbHi{ zE&aD$SSg8FF;Sx>BU_Yvj>teftyQ(KFZ-V9Aumh$l;z2qx3dZHE2p_CIBkPVC}(Ex zJ_K57W4+;9TH_7j!Q-@8Lc$)e2nPsAC$LtO=XHZ;v&|-HcWAW3<11O7_}#~eRnZox zsn>)cG6S4TxlNC=^zK}0wI^YT&SNiHdw^a(%qv*{Is2jGMAT5AJ8zTih%41|tivk; zM>FbGTTNLds9oT$PHGgazXy13qea`d-YV)IyU#JH6nwTAV+G3tU=SA`cPwJ3KIU=X zLWYY+Io})Eq{H7aLFybrkHTEi0>#>tx;W!+Peq{>`@aS+Sqf5)G_Ow=3dBd-p z>EfP*W`A{+y0)#W zOp{t#RQR>#31Te+|LLh29WxnNwqkT8irRTSxh9rLV67DN5gE571ttmMmilMiokdzg z*!9D@;QCj1Y+J`{L7*uLM>VWeI0>%mAy|ITQx;8nmr!?qu|=rHGDdT=Nx80v zyO>ftS*DdsOGheDAafy8o8WK=hM|1?pnH@fh1_BwYySw`0b*P?eAq?7jS5oDO83D7 z4a9VHozj^T#*>q$rh9UITTT^uIzn_V7#zBKgVkR!pBY6YXgP`w(J)TvMBuYGaYr;? zdnrlp<$@iY$>+OqG-P8}g)6)sQ!zeWoa6ntrU6w`oO5I?LD^si#E<#J@CcIqvmIF> zdC?}&{_(Ba_pM2jfB_3dS7#)|haZ?No6Pwfecr@0sj7N>7j~2=wS>&O9#+%aqyF){BRr6K!uo{A4?&9Fv!#2i_fFmesvy2oNi+-YRd^532 zpI6T;72Nqy)c_;WTh=CM9ZXLafGo*n?dI2rc3ME(@Mc`=Pu+sjiz$OjtC@b|8D8pa z_hdCIQ}*k|GG|gOiQqoupJQ0ZXKcDaGv6{w$34`RZ!-<-7*C#7 z$r_Q|m9y_&h-%CoR>Y_lZkIf##HBbcIKTYt_NaDOBf~uKZ#WZGHlvK?%YR$7Y`Vj}}i@wCCtgY!Er%6zkz<~%Pz&I5= zI0#@-;w{aFW&jqkyFz5yKv49F2dJd-d~*+6>mt?c(&lf%4G}aU!G=agFrIQQcZ^p) z_K1or42V9hW}3P|7wk@qNfr$<(j40_&8YO=7LtIpm28U)=66E2{4-{Ru&(?m2-}AU zUo+yt%%aCDzZ!J@!po7-^pSY9K49WCWWiatBuFgoKf=ypA|%$k7uWy^Z&gmu$1_=> z5}+GN^6&_z!ilVhX#NM&P57KVH_W2jBiNaeDG|%_W)&&1=P#53)}gi?zG!z9u^_XQ zn9AHKk!afR`8;0L- z!GN?b%{y(oHqy_JFoVRjfM5kO|K~(c9pWodnr4!}=EkfZ5Rt2YZ^20b+0@ocwmoDP zL2$##+M-$L=p#xh_zM4>m`rA)6=0u>npCc-=?asSf&@Dqk^V(O-qUX{89Qh7wcQ%_ zlu9#-wE%~}!+}XiE4PkyB23{8)-?-l(lb_#avWPbw`a1Dyt+;@bH&kR@!Vk>9U-y- zF)VpJ9lW_Kb?D3;56E71yLkDPZxYVIUrUlmA9_{M8l*fvHTe6_0|X)mWP+SenE;~r zo{W#IZGzUPNYx4t*;R~?K|i~3-n)%4NySm;pI$b)tJUr#kJdbSEL5MWn{N>cmbWnG zM8y}x)Mw-(zQ+v@7k71yul=F!Bh|{$0>`d|%L8z{AncKQm7mPN4+^IIy55ae)ULd* z5OKiiV}+>*KE032ECFKcGn1SHq01*V73D!6wu+s~$b`Z|k9h<9#76TaV->#Nuieb# z5jy(yWfHp=Ks+xEuy7y33g=HSiTp`ayV>oe6pIDIJ*0}3SqeZa7Oss_FUg(v5p`$^ zVOBa;q3rx-c0^as{UH^OVv9_EQIU$hRT>IJ5*)6%Pu>h5S6BQ1+DNna0)I1OOG7=W z%wyoHKB6UcLNC&vdRW3+2I>mj>s9)lT!guNsG5&7T`+6c0|%%79>bSL%1}ds(RWWI z;k1YNs$f5vOZIv9UJKsXc;ErChP?UVnOlKI6Vc{qNZ@N=#lTo zXq0lYaN19=GqVE0V7ZSLBRc1kZ}KPB`4%%XGea0a|#$gY#`Igxkxr1ZRm__}MZkPoGxUw0Spz&F#ERBYkO0g%VGVhY- zG^tnJ!9V7ae9v&M8oWh@#dDhBd*OV`Z6IXS%L9fUJ72rt9`){iymZ{MmHMfjDRatp z;7Nu(#nzhd_`g3WXzag^EB4?dpESn@56WVH?sendOCC_V$!%tjSh`M$#=%n)+ado6 zI%)u&4tg5isLNlMz%;re5HZ3;3N+ zL%S6S*c%rUhdl{{9`v9;$O@Ye39oaX)WJ(_A&eYv{pLlsEfb50`z-_h1;rYL9wJZ# z7ZS!XUyaA6rex?jSvC?DxY0o)c(psUbY*I+#3!cfxG?I2ge!dc%foTWSS^;i=*z5m z-k3o;qtZ11_76^5w@8|e(G~%w$J6Bu#y0WA0L>ID*7O>@jW5~`f>N(}M$I2Tc_6+W zcV8xiZfqBB%ec{2|H-h1=roY-y4%;Vg_D1qP*;nURf0`E~Dsn za`B-cg_&k*rNX0zp->8+)h2^f!LuNGoEY25q$oz#gbf3=u4d zHptAWFZ7Z#D;0>P-|a;CC3N=aRE=sRvOgZ^?hNyh$lB@Z!zk&n-pha>il${Qbhi19 zl~^iGvHq2E{U>R>+PdDQ`Zc3l8b0&{#B4!9OW!7 zy<7jrluo54lVSAa`jX{kKTD`lk}7m@qgwoS~!O{c2Il{&!B!HN4GS z_s1E(*;l}q#}Dv^Wkd^Gq-RcD_DW06z$TR}5W-6)k!s=h7XpzVdz~B8uoprqp|DH}`@U^-n7EX%J-n7HHb!#1gCFRKCHj zB}nQnYAV{rBKRz0%kbkija{0cAzV?zc57@z?2nwk4YMjc$lVx^;MsVT6%BI1c0;F~Xsi6SQ?iLFtONDf=dE~a{U9HA*9p6LNPR%Yqr z_i4qy=^1OCZg$z+jts*CGOlriXF#eJVcuWBKnHxA4yc##O{+NYwEN zysIv8ogPnaYf(%WN0Ih~ebJ~qRrp*oaF&azXFFn_YJ?`%Z(7pfF_cSXo(`&ebw6ox zlwSUtmm9<3R~vi|g+|(<(TyG3>?ODS{$Q9OV*g=uP9&=r~F`sci6d!1f1-`yh`(H&eFIFxrGILhl< zxZK8)gL{y6qEq&ujGl*ZVTSRgiBr6M{HvLT#w+uEF98%K3bm>j?G8xlIXb6sddQ;O z9tE<$w5gyMqqp<5;)seZ0VW8H zdnv%xp~v7?Q)F$c5whHXRLcMX-1a<^IBFS`!0%Q0g_p9~`C)4fLyzpZ$M77gPc%3>so9MbZWfQtUwf*5PJvSO&3KahlaN5TkyX3hG$LB z6K~z)QDV&>ZM?+@qIt%7X$wCBgnFbR#q7!t6sAr{mk^sh+K2Qst9|YDjPd8H{9e|F zJ%#G`?KcgXKl)B4J*e?6qD1wtq&#T!w{!dsfrRU z)G>L=UQ?>_n9##}PLkspTpcKB(Y&m#>ngZ4Ah%i8phNs>$hlEvHW8jio4keMVJY!= z?-rC-*|@)Z(T0oMh8R#~9m_(u%oY3L=$&0CnP1D)mUs zx-%W)^BDHqpt(-^49-yelJ~jz*n&&4T0(g@swvSL%~pRy)_sddeehoD<*#r-=2{5E~mL_2l(PDuFvp4_kzIT%;Y0yBjwO?0Nm8-mruUD7* zQNl!2=bBxWCs^PD;Wxa0%2ufK5t0|ogYM?ng?z!hqd;}g#_L>xYnog9bhwzH;n`S4 zBdMp4*$z}h6Gw2Ip?3IunX?|5xNzHKppBEDzn7~`WW#ruckE$FY1qx<>-H0NM61Re z2d1RMEXwK1ia&i7_mb8|-7cmKiasw`3DIKSjG(WJWPeFm_=r)V9QT{}9&=LS113rY zz$W&O_UEH9KB(uCbC*{iVoF{OOXQ$tx9c#aYrTD423%U~tbMnd1w!=zEW8|`m*#T-Ur(Eme=S+$`!OKYXkC&7 zr3DXngOb%!F|)mQ-M_^5q- zX7QSnr+WF!4I^mIh(%Kup_=}75AsWiFu*x@Q0l#Fpt8~MLy#tce4w%7r{3$vPOX9< z4<~XJ5^)%Hv#&YIChL-FRf<`GO)w_^UDA$)@&(5I`+cUAefa#Q-o{Y>nN&{of~YQY zp4jv>-6}MQMRsw?uU17akpZwc1;xozqXf@N!323EF!+%dP~%MwnpN8NZuBSfg5Wym z{;|)hO;R(yn(>tF=g||Et8T*cVc8AV%CSS1dse*maYU(Nas<-2=(_zI@*A5n*+Ah9 z;SRSOkda=k@kHh-^zB#THTtL4*gFEbtuFavFlpq7?7|dRNP3HNlGP+K&e87?MZQ-2 zC_cI0yA)^#RRENDr#qVuI9(@5BbDGc;k@yqLfy}NkYWkTW&_CdkZ;d!z_0qsZ->}Y z&mWOY8tS-ES@(taf1lpoFKZIcoDBOE>7>Vt&XBlO=IM#qTH#pA5ddVzMvn>zWQ16? zqQ{i!)zGZ{DCWH-t5l7%OX4rQ*2Jjew5-;vZw%_`$hrZE5ap-33bewKG5d_J0hCKI%?HP#PO1{z=(b58>(l+`HGF`*`F>i5p;CDCM0b*G8a8W z;D6W*n;`ju&R-GxQ1TuM{l}{EEZ3i$Ksh+0yz_pz(1B zu1ro};ZyD?=qTw9DD=efHvY}FG<}StH!wTMq(8g*seCc|g_Esn{fOC%z#NOuiqP~b zGVSP3bWiwRtzRK%gh#`Fs<(Ijm69Gum<3q}k76-r+dlZQg8-H!qm1RMgiyH|j*e36 zfL`kR^7Bsu%;be-m&<7VUt~bAnpN7n5BvQK?~}UK?`b4skg97{EYx0YPWH-<4S&+X z&O!(>MnaelRU=1*o8At_jItZcU)$BM_6jKdUEVGTj^viu2)pVoKV@Wzphk;BehRv< zhlF#m8MULf?mj0N!h~kpNKcsfOTpcFSZ&IVEj^KA(jh{%v$w~hQh@w!T~R8@3E9{n zpN#?!wFIsTYXcD?^Y~8J_Av_?#@8j?umqnl=2JE1{0|4gw>x5ypv@R3-O*dPW45B_ zxAPie7PEhrFip%RocoXyNdnj}ISU7U2|3xg-Y7OS5(Q0xJ>HGhRm=xv57k44(k@s@ zdNo3Xms+w9J|4>R5~Nm^5LlMj;(6=au5574!vmRjlOdigFep6?j8_+?>6V9nRvLNQ zFno!DJdQEs7=^z6L0~cPVMIOwSf`d*?D(s>ex|ox#V+`;OCUCprPJ!N`oFML+_J3X zX6(`yj%&RVwfj;(Odnm=vSj|v zf`7eoIb^i)!k;3mAjk4gqkjTWj1rGHV}~QgGbNw+is0^gI|upp_3L-BK{4lS zJ$ID6k_(Ro6Bb+RHhe(xO^Hk>*IO&`UK(b4$5Cn?9tz!li-%NzrECz&$mvBO zFUE&x8GC9JAMA$1-yyO7`ejM2e;|Jj(|8j#iE5Osbi!x$6x`m=FMKlZnm@0IR`#pT z4b@T^Jj3NV!u_OuDI}k9eCDZP@Gnj`*i3(@XOp#`3IC++gbSMX)VQ(MEYmN=XyPyM zZvh#Wt#CX7DnzA2+glvsMLdOZoT2u`lpCS50cAA&ZR^?aqbBNr%rb!B z)VP}54Jj^~e(8jnOsw#r3?1*XJ5h~qHiU3$fGJGsrW;y{`{CM5OqjLSoe&`k&ifL^T{5o2xEChjsmJzYH?`q-I5wV7#162f&2lulRt`CHEcszB- ztXJEsq3lYkJ=((+TT4!G>~q7yCtzB`mdCy)2LTZcHB*)IShIAZ;rGd+7L!x5o*|dB z1Pe-hj|u)ZFOQMMg%>krNga>`C2(?sx+1^>g}+Nf=XO30VRCP5r^zMgc9K6Rjhd*Q z3-6x++jR_9rok*F-8Z6)_WZuoCLZKlxo%2|xLcSs^X|r{?#ns;eNd$?WncQ7&ko$S z4Uj)ougKiYv?4L=xoR4l%|!)2O={BICdeiDPAYDLHfwa2LG~;$jd2uu7Ee1hb~M43 z+Zqs;zHXadw`TgrPfv^_`^?h-+gSH#YDAJbG%JVbBiH+lz#Df)I=x_vngRK1RdQ(Y znMgoR`e#zbDM@u;!&Rll3b9OuPdT;V?iN4_qsQl=g8`wF_sqDw?6;OC zvD(%k4!j@GrmIgjic+C$n$5i@V*zwToKmqqc#N&^DZ)jB@?DPm89^wkwd0$i(6KM* zT}Zb0XVdJrbf<$bGJp!2i99TTudhN{emrR{H|x+15wBouG>+tW9dH)UDVt7%EDG{B zXBbk>;G{>UaklpN-F5vQw48Dq2>!cGE^-}0WeB}XZP+$b_{XE=CPZ^@%Y<11!2XO5 zLqffq2m<=wxM9q93)bfKM%62wqbL^0ltBn3z8eA?-lYjcXuXgn*wZ=cLs3VE<$9V0 zTmDv##GDMv_}`#P|0tt@1}`6#8yL?dZg{JOlLS|bS~BEwn`H8p2s5eUg04KG)3rPW zj2#Cm^Jzrnq~`h7IsTe@77v8?JO|kvfS0#N5gO+$UR@e?38pW63xK#F+Sg zRIjT4Z4TsFoVIXQMIIaLuk^n{FiCxCI?i4nF}s2QpsMM}wS5A6^mmVzA7 zL;pgtBEI@gu*rnz6XoH0pNlL8?6sQhJNy+DAcm)KA?)A1UVztoSz@>nVInH0A7Lba zd>X7l#XS1F;~dx{<#=?F&yFhX@Ko~;VS_2Q`Q6*H~0FCN47BJMG3ofO0+ zp6hWYeQh)FcfPBVWqE`dZCW^?JWl z?&(=JUS(7%|7JxK5i7VxZFN*DP_~5$aQE+SrAQ+gupvng4x=kWMKImpUUT6&^`tq48zS#$s%Q-m4u z7uS~HmX~%J$EeJ2S(a@mT{aI=f(Q*3Eh>1+h(d2${V)`&fro$A4Hf^isCa$hI{8W@ z-Ce{;t-QtP5t+7IlcQ{TaQ0oyx;u?ZN}>oikYr^ps&xV!6*o&QCEVT2TIXnbJ7a%)h^|P!+2<{sy>9&{jZi*wXzG z6|%!hl9@RK6rdDblio*5ZuD828<0G*w3WG?EM-{s#>n{~a^t5?*H5e^I2ruhN-MW2 zr`?Mdugi7d-EO;6w^U{OkY6PT=5a)sYn?n{K-BG zv})NS9QC|JVui0Gm-uG=xo98PB{)~fnPJ|F^rOlgidsUY{Q4%bHk5fw^Yq0MzM-?q zL~sEjvHSLr zkleiyMPf(0)XBDiK511J;rZ)yAEx`RS{^=twU|W{@itCmO4T!2773iFc&+DH6Y9rz z!!i8vu!ULhL#QWP;!)Y;R?J;Hh7k2!P{1G?9OPTELzn*IX5Ma8vewf;znmBvZxF}8=suW=RyOxUz%-#_6r51xZGl}=4iOu4b@(WidOkr#)E=)SLwOXX zEk|MkGShG_gd2u{wn0= zAFjvdi6mUY ztx2+9+P(9P?pE@EZ%=fsIm_b!p+GYo5Ga6Nj{27Wb78>+g3vSZ5;P1*$AUkLKA~A zl}0LW!-P*m6bfu6Bnm>MRVbZ-8pXHdk^8h6Iq6@srY#lhV|AN}Q+Rs~;KZ)e+s zgU`;iZ*)hf9QdW)_K0z~am?fdjaOkDXBlbOP-R+>c@>xS#DjFLi~{l@3}{VI_3ugh z6G&Y-`;;3Zx$8E;B*%-IL`dYvy%CyE8g0Q0_bSi5h+vBFkm{JoZG<7@ZKb%k;I)f* z$vkr_XY+b+h|(ms3x)qZOfL#Eejx1)OD^J~F{r);$I#{ganJsU7oL%Fx?tW3Zeil` z7W2{y1#dw@s}UDyxoaaHVut5Hu9QVqUIVQg+{QqPg`MkHiX-RQmr%&d?lP~Ur40Fv zrcMrKroqNQm!207x2)o0D&eF{nz#W5`ieo)GpN|dIe9~JZ#)`pFMmog#p z2pyv5e9>Tj6j-5gC4&6raVs7GEg@P`VO-pUP$uTOGKp7VK@wf^FQH}zNV>UaSHsBb zm!c~kWdVzfPR%G6`3eRK2v`p5(JdVk?Pgib=)QQMfqwvrF95)gODCZ?9LOG5bdlk! zxg>!fZkHsbu~v$0aMd=V@gMDu!+_(R`CU}q`3qhLOY!YhU~fzf!b6ZK5KdC&c9M#% zOS<8#0$A$o2^2OO;F3&SZNP&JlZG4xm(-A~H__kR#zY9T-BBv(7u9iF&*4Zg#s*(? zI9Q`@jBI)?zpNqc%&=3D5Em2fhcsz!-pt=tbtF7Z4{{Urev{eC9nM^6rEDouNA`hQ zyDjUy{?ldWe>8^T3$qQU#Bc7-!v28n6!gD1lkBaB5mdND2$hn{ZL2)le=|KleG6axy z_p1q#w@44|(i8FS{aGVm#iojcdgQ3Z(W69Zgel zoT)+nxtzk?Cv<#PT%fiK_`l=uUaNul7u>0#jxcJ^46jV6fuXG|2Y98tPN&V9@}J@o zNVtAhC{1ZhcCs3k6VE+U^^>Pc5?mK&WB!Z*(hIS4N2;Xh9cxf= z#2`FyV;F}X5@}n?&j?c*v273}HnWFlM1Tse39nZ$yej;o5&HKU2pXZ>ijqLi(WuH` z`rlujcKsj*@}A;%HQ3CG8D*#w$D#7~raaA1fF9wo(Jq_Tcc}6B)(A=-wyXpd7hmJ$ z?aPZ1HGldbOL^@Y$$^T{I-FC&d!sE@kv)$>IRY6(N`!qAqneN&#ml}NSU9S5rBDxT zA}#7ZHKx>%tt16nQGmXuQ^GW@=DGk`AXLs~LN1TV)XkLY^;W4Iu#RiFeA zSfBJfz(1Z*lgn{TmR6Y=uBs2SX%KTofYSE)5gT>^G{vKwa&%7w0c%HoFqK|wQPoTO z2Gl?*c5UO-5f}oF?QR~y?QSZ`JLvauNcrq|>EfIcR5w;yGlu5H92cC;S)X?;$&$oeU>G1*FdAM%`7%7!pW$cBarNT|0@-BD<kaht6&LueH!Ogb~p?9D%uF$eg+AzNj=*17Sx$kCPZnIK53AyMc@y~OjUHC19+B@tcaoZ zFPTnzU@D|JSO|3j-L+)@?nKAF6j;1c!}UcWh$oKNt|=Bv2CZ36^!_c02nyu=EI0a+ zWl9!QKy&_w!4XWXNJk48L7R!C={3b~rkU)g!R&ri*NOOQ-$(@O6nH;Q@;UG6>LFeT zW-IITlXbl%5V}}Gof5|6N#Jld^UFI5`DW4$2wCjCVh&zZD=mndH^Pb7gYx#;!wmw7 zyt+2FcoW%T4Zs!_$$dQat4?ry9bAJuZ-Ip}IQhU6)Irf5`^x8)mQ zaitp_cTX?JpC{MyPk0(z=Bo%#$(Z}XqB-avM*Y<@fa+O}&ktggj9ojk8cA*`2z7ZQ ze2-Z|8R)S2XFC5OB7p)Ts=(7dHpvDAN3E@V#wc@qp|4|_U`ds}zkT%e^^wokV6}C$ z*A$Kgd#!-UNlBLRSWy8>27yC@joEV>9^iJaoNzdmTB(;SrG^i<@!5rSe2R z?x9HPf+>x{JbejFwgO(Y{vr4A+j}k%RkEg67m26h=xsfag)G2oM}nE_xuAS79z)N{ zC{vm92x&?yW_&xn*nH-=Ac){|X zP=c4AFP-?0<>u{WJ?pxoYm-dHF)5FpQ?F67KEi=RkJ{5K-fb-og#xd$1H0-~mXpE> z$0F$(@fO)pG1oNqqE`E*6rD=^uRm)RQx1zeo)f3Z&0_GT8Xon$Q*=%b{2&Wr8ah_q zVcIaNu?V3c$!q@u0w2BX;BP!gdO4Sw#|v~f^atM>?MjMh>JTcM<=mzs^@j)><;*43 zANcX_@M?i&ULuTmcEGKj6ko(n2%bFb?r1_ujrxQZTPsz+r4`tnaNzuoGkD>U+(E^-x*i?D;JXw5$Rf)BWZ$R>t9kGwY6%PUeRkG- z-bz13CY2}E7XRFs_l#UrX_ZDn(OYY1>r<$Gi>hSA#42j+j6hh$Ig$abfWnj&ldw(? zwPH0YhHlcH2qJKcr^dc`xrP+keOV6;4kfnHOs~G>^2xRAI2P~&mCT`nF~D$npPijf zi&2x75pzQ%QiS2R#>sT{c+U9XSRa#2k(C~jK)&$*WHm~kHcfJ{*v;I|z zLh*w4_pi-{7Mteh4-rl)TBaTbG71~sBMr$N!(?aeIB2g$9c{&VbS%z z$i~@d&P^Xs_1wy%4g#`vN$UQR=oARixFp5Q^;-UT7Fn4Ntu)hvDmqr{5LBLmiCzb;mdmfo$e^K5fV(kT^Q>pXg6)fw}ouhe5Z6>m_5i$3Oq$ zcmAihsgo9yI7a;$rk{KO2m;|PW2FSX-S|Dk!{WmhCh%l--)`k0MXu`M!s}Ck!2uPF z&TV#DRd^QfGDv`+tX=}toF)RL*O;ql4$WCk+8t-?STX8g{+=n!(ky<&t@y)etx*Z2 zdIc|r)HE(UI9KOKFhnU90pXA(FvQ4N?rn6aGHPwE0Q>+8?3^5P=`_W7TV$Ac%l;DLK)R6l|P)VD24qLg(>r^iaNj+PLS2V-*S0Bz}55i z1E#bQ_q5Cdy^78nGB{8#J!^O>@V8^JTK9Az+=d>@e;FbV9Y23_qBt8x;1qyO^|IV) zxmXZ${}?UGacZfy9ob!~=VKynOc#OO8ut-y7W+vpq%e^n$)&P%v)J~aZjC6eyK66% zt>n+07uATGXbB)c2Utp!J7-{K``yO2Rcw+OfRe&uv2fL>@O&J{vYyODr*S~@5qo2l zwf8SLIc7g3~#auY;YYv#Ws=P1JAm1)XDLb*Z=^|sEl3! literal 0 HcmV?d00001 diff --git a/docs/snippets/konami/common/btools_cards.md b/docs/snippets/konami/common/btools_cards.md new file mode 100644 index 00000000..903f268f --- /dev/null +++ b/docs/snippets/konami/common/btools_cards.md @@ -0,0 +1,15 @@ + !!! info "This tab lets you configure which cards are used to save your game profile to" + + !!! warning "If you haven't generated a card number before, you can grab one from [here](https://kawashi.ro/card)" + + !!! tip "" + Now we will set up our PIN pad and card. + + - Click on `Keyboard device` for whichever player's card reader you want to use + - You may or may not have more than one option. To figure out which one is your actual keyboard, select a device inside that list and press a button on the numpad + - Once you have found your correct device, the `Keypad status` will change **(the number and location of the number does not matter, it only matters that it changed)** + - Create a `.txt` file in a location that is easily accessible, and name it however you like + - Inside the file, paste in your card number. Example: `E0045812F8AFB2DE` + - Point to the file you created by clicking `Browse...` and selecting it + + !!! info "If you don't have a numpad, make sure to tick `Use top keyboard row for PIN pad input`. This will also change the `Card In` button to `Backspace`" \ No newline at end of file diff --git a/docs/snippets/konami/common/btools_lights.md b/docs/snippets/konami/common/btools_lights.md new file mode 100644 index 00000000..4777c20d --- /dev/null +++ b/docs/snippets/konami/common/btools_lights.md @@ -0,0 +1,8 @@ + !!! info "This tab allows you to configure controller lights to sync with the game" + Not all controllers support this, but it does not affect gameplay and is completely optional. + + !!! tip "" + + - In `Device`, pick your controller + - In `Game Light`, select the corresponding button that will be used for that light + - Repeat for your other lights \ No newline at end of file diff --git a/docs/snippets/konami/iidx/btools_analogs.md b/docs/snippets/konami/iidx/btools_analogs.md new file mode 100644 index 00000000..f5aae17b --- /dev/null +++ b/docs/snippets/konami/iidx/btools_analogs.md @@ -0,0 +1,13 @@ + !!! info "This tab is used to bind analog controls like the turntable" + + !!! warning "Ignore this tab if you play with a keyboard" + + !!! tip "Bind your controller's turntable" + + With a controller rather than binding buttons to `TT+` and `TT-`, you need to: + + - Head to the `Analogs` tab at the top + - In `Device`, pick your controller + - In `Control`, pick whichever one corresponds to the turntable + - Turn your turntable ensuring that the preview turns along with it + - Click `OK`, leaving the rest of the settings alone \ No newline at end of file diff --git a/docs/snippets/konami/iidx/btools_buttons.md b/docs/snippets/konami/iidx/btools_buttons.md new file mode 100644 index 00000000..5337c2b3 --- /dev/null +++ b/docs/snippets/konami/iidx/btools_buttons.md @@ -0,0 +1,15 @@ + !!! info "This tab is used to bind your keyboard and controller buttons" + + !!! tip "" + + Double click on the right on a button that you wish to bind, then press the key you want associated with the action. + + With your controller and/or keyboard plugged in, configure your keys for: + + - **Maintenance**: `Service, Test` + - **P1 Game buttons**: `1 to 7, Start, EFFECT, VEFX` + - **P1 Keypad**: `Keypad Insert Card` + + **Only if** you're playing using a keyboard: + + - **Turntable**: `TT+, TT-` **and optionally** `TT+/-` which alternates between `TT+` and `TT-` on each press. \ No newline at end of file diff --git a/docs/snippets/konami/iidx/btools_connecting_network.md b/docs/snippets/konami/iidx/btools_connecting_network.md new file mode 100644 index 00000000..ed1808e6 --- /dev/null +++ b/docs/snippets/konami/iidx/btools_connecting_network.md @@ -0,0 +1,42 @@ +!!! danger "Pick one or the other, not both!" + +??? tip "Option 1: Remote (Online Network)" + + Remote networks typically require an invitation to join. + You'll need to connect with members of the community who can provide you with an invite. + + Your network should provide you with the necessary information to proceed: + + - Open `iidxhook-xx.conf` (xx being your game version) with a text editor + + - In the line `eamuse.server=localhost:80`, replace `localhost:80` with your provided network url + + - In the lines `eamuse.pcbid=XXXXXXXXXXXXXXXXXXXX` **and** `eamuse.eamid=XXXXXXXXXXXXXXXXXXXX`, replace the part after `=` with your provided PCBID + + - Example: + ``` + # URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80. + eamuse.server=http://be.ma.ni/ + + # PCBID + eamuse.pcbid=ABMYPRECIOUSPCBIDCDE + + # EAMID + eamuse.eamid=ABMYPRECIOUSPCBIDCDE + ``` + +??? tip "Option 2: Local e-amuse Emulator (Asphyxia)" + + For instructions on setting up Asphyxia, please refer to our [Asphyxia setup guide](/extras/asphyxia.md). + + After Asphyxia is setup with the proper plugin for your game: + + - Open `iidxhook-xx.conf` (xx being your game version) with a text editor + + - In the line `eamuse.server=localhost:80`, replace `localhost:80` to point to your asphyxia server, typically `localhost:8083` + + - Example: + ``` + # URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80. + eamuse.server=localhost:8083 + ``` \ No newline at end of file diff --git a/docs/snippets/konami/iidx/btools_d3d8to9.md b/docs/snippets/konami/iidx/btools_d3d8to9.md new file mode 100644 index 00000000..7e0a3522 --- /dev/null +++ b/docs/snippets/konami/iidx/btools_d3d8to9.md @@ -0,0 +1,9 @@ +!!! tip "" + + - Download the latest Bemanitools supplements release [here](https://github.com/djhackersdev/bemanitools-supplement/releases/latest) + + - Inside `bemanitools-supplement-vx.x.zip` locate `misc.zip` + + - Inside `misc\d3d8to9\`, extract `d3d8.dll` into your revision folder. + + This enables us to use the graphic options inside `iidxhook-xx.conf` (xx being your game version number) which we will take advantage of. diff --git a/docs/snippets/konami/iidx/btools_resolution_fps.md b/docs/snippets/konami/iidx/btools_resolution_fps.md new file mode 100644 index 00000000..f5a8f5de --- /dev/null +++ b/docs/snippets/konami/iidx/btools_resolution_fps.md @@ -0,0 +1,50 @@ +!!! tip "" + Next up, we'll setup borderless window and configure the proper resolution. We're using a `1920x1080` monitor so we will use that. + + Open your `iidxhook-xx.conf` (xx being your game version). We want to find these lines: + + ``` + # Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit) + gfx.frame_rate_limit=0.0 + + # Run the game windowed + gfx.windowed=false + + # Windowed width, 0 for default size + gfx.window_width=0 + + # Windowed height, 0 for default size + gfx.window_height=0 + + # Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter. + gfx.scale_back_buffer_width=0 + + # Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter. + gfx.scale_back_buffer_height=0 + + # Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation). + gfx.scale_back_buffer_filter=none + ``` + + If you can't seem to find them, press `CTRL` + `F` and search for `gfx.frame_rate_limit=0.0`. This will bring you to the first line we want to edit. + +!!! tip "" + Listed below are the values we want to change them to. + + ``` + gfx.frame_rate_limit=59.95 + gfx.windowed=true + gfx.window_width=1920 + gfx.window_height=1080 + gfx.scale_back_buffer_width=1920 + gfx.scale_back_buffer_height=1080 + gfx.scale_back_buffer_filter=linear + ``` + Unless you'd like to have the game properly windowed you can safely ignore `gfx.framed=false`. + + Make sure to decide on whether you want `Linear` or `Point` rendering. + + ``` + gfx.scale_back_buffer_filter=linear + gfx.scale_back_buffer_filter=point + ``` diff --git a/docs/snippets/konami/iidx/clvsd.md b/docs/snippets/konami/iidx/clvsd.md new file mode 100644 index 00000000..42c18ed7 --- /dev/null +++ b/docs/snippets/konami/iidx/clvsd.md @@ -0,0 +1,16 @@ +!!! tip "" + + In order to have background videos work, we need to install a codec. + + - Inside `bemanitools-supplement-vx.x.zip` that you downloaded locate `iidx.zip` + + - From inside `iidx\misc\`, extract `CLVSD.ax` into any folder on your computer that won't get moved or renamed + - An example to this can be your Documents folder + + - Open the command prompt as ***administrator***, and type `regsvr32 "[File location]\CLVSD.ax"` + - In the case of the documents folder, the command will be `regsvr32 "C:\Users\YourUsername\Documents\CLVSD.ax"` + + A prompt should appear telling you that it has been installed successfully. + This applies for game styles between 12 and 18, if you did it once you don't have to again. + + If an error occurs, you didn't run the command prompt as administrator or you messed up the location of the file. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index d11b6736..eb8f886a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -28,6 +28,10 @@ nav: - "14 GOLD": - "Game Setup": "games/konami/iidx/14_gold/setup.md" - "Troubleshooting": "games/konami/iidx/14_gold/troubleshooting.md" + - "16 EMPRESS": + - "Game Setup": "games/konami/iidx/16_empress/setup.md" + - "Extra Information": "games/konami/iidx/16_empress/extras.md" + - "Troubleshooting": "games/konami/iidx/16_empress/troubleshooting.md" - "24 SINOBUZ": - "Game Setup": "games/konami/iidx/24_sinobuz/setup.md" - "Extra Information": "games/konami/iidx/24_sinobuz/extras.md" From b7bffb10cc78cf86df7d577407a1f69aa508daeb Mon Sep 17 00:00:00 2001 From: boh-wyp <157998429+boh-wyp@users.noreply.github.com> Date: Thu, 9 Oct 2025 20:14:51 +0200 Subject: [PATCH 2/3] iidx 16 troubleshooting.md fix hyperlink --- docs/games/konami/iidx/16_empress/troubleshooting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/games/konami/iidx/16_empress/troubleshooting.md b/docs/games/konami/iidx/16_empress/troubleshooting.md index a1063cde..59a61e8a 100644 --- a/docs/games/konami/iidx/16_empress/troubleshooting.md +++ b/docs/games/konami/iidx/16_empress/troubleshooting.md @@ -22,7 +22,7 @@ ??? tip "Game is running too slow/fast" Your game is likely running at an incorrect framerate. The expected framerates is 59.95fps for S-VIDEO output mode, and 60.05fps for VGA output mode. - !!! tip "For more information regarding output modes, check out the [Extra Information](https://two-torial.xyz/games/konami/iidx/16_empress/extras/) page" + !!! tip "For more information regarding output modes, check out the [Extra Information](extras.md) page" Try these steps to resolve framerate issues: - Double-check that your selected output mode in the service menu matches the refresh rate in your `iidxhook-xx.conf` file. From 48df37af05ca66d906edc1bb69d3cb17629339b6 Mon Sep 17 00:00:00 2001 From: Akitake Date: Fri, 10 Oct 2025 22:18:51 +0200 Subject: [PATCH 3/3] Fix wording/formatting --- docs/games/konami/iidx/16_empress/setup.md | 57 +++++++++---------- .../konami/iidx/16_empress/troubleshooting.md | 10 ++-- docs/snippets/konami/common/btools_cards.md | 4 +- docs/snippets/konami/iidx/btools_clvsd.md | 18 ++++++ docs/snippets/konami/iidx/btools_d3d8to9.md | 4 +- docs/snippets/konami/iidx/btools_graphics.md | 26 +++++++++ .../konami/iidx/btools_resolution_fps.md | 50 ---------------- docs/snippets/konami/iidx/clvsd.md | 16 ------ 8 files changed, 80 insertions(+), 105 deletions(-) create mode 100644 docs/snippets/konami/iidx/btools_clvsd.md create mode 100644 docs/snippets/konami/iidx/btools_graphics.md delete mode 100644 docs/snippets/konami/iidx/btools_resolution_fps.md delete mode 100644 docs/snippets/konami/iidx/clvsd.md diff --git a/docs/games/konami/iidx/16_empress/setup.md b/docs/games/konami/iidx/16_empress/setup.md index 069f9ee6..cb3fefff 100644 --- a/docs/games/konami/iidx/16_empress/setup.md +++ b/docs/games/konami/iidx/16_empress/setup.md @@ -10,10 +10,10 @@ The **complete game data** should be approximately **26 GB or larger**. If your data is significantly smaller, you likely have an update archive instead of the full game data. - Here's what the expected data structure should look like: + Here's what the expected data structure should look like: ``` - 📂yyyymmddrr (revision folder, y = year digit, m = month digit, d = day digit, r = revision digit) + 📂yyyymmddrr (revision directory, y = year digit, m = month digit, d = day digit, r = revision digit) 📂data 📄sidcode.txt ``` @@ -22,20 +22,22 @@ !!! tip "" - - Download the latest Bemanitools release zip [here](https://github.com/djhackersdev/bemanitools/releases/latest) + - Download the latest Bemanitools release [here](https://github.com/djhackersdev/bemanitools/releases/latest) - Inside `bemanitools-x.xx.zip` locate `iidx-14-to-17.zip` - - Extract all files from `iidx-14-to-17.zip` into your revision folder (yyyymmddrr) - - (Hint: you only need one of the `gamestart-**.bat` and `iidxhook-**.bat` files, specific to your game version number) + - Extract all files from `iidx-14-to-17.zip` to your revision directory (yyyymmddrr) +!!! note "You may delete the `gamestart-[14,15,17].bat` and `iidxhook-[14,15,17].conf` files as you only need the ones for 16 (Empress)" + --8<-- "docs/snippets/konami/iidx/btools_d3d8to9.md" ---8<-- "docs/snippets/konami/iidx/clvsd.md" +--8<-- "docs/snippets/konami/iidx/btools_clvsd.md" !!! tip "" - - After all this, here's what the expected data structure should look like: + In the end, here's what the expected data structure should look like: + ``` hl_lines="2 3 4 7 8 10 11 12 13 14 18 19" 📄bm2dx.exe 📄config.bat @@ -77,29 +79,16 @@ --8<-- "docs/snippets/konami/iidx/btools_analogs.md" === "Network" - + --8<-- "docs/snippets/konami/common/btools_cards.md" ## Connecting to a network --8<-- "docs/snippets/konami/iidx/btools_connecting_network.md" -## Game resolution and locking FPS +## Configuring graphics -!!! tip "" - We'd like to mention that there are two options when it comes to how the game renders. You can choose between `Linear` and `Point`. - - Below is an example of how both look like. - - ??? info "Linear" - - - ??? info "Point" - - - It comes down to your own prefrence what you decide on, `Linear` is less sharp but doesn't have pixel perfect edges. `Point` is sharp and is pixel perfect. - ---8<-- "docs/snippets/konami/iidx/btools_resolution_fps.md" +--8<-- "docs/snippets/konami/iidx/btools_graphics.md" ## Before playing @@ -158,15 +147,21 @@ Select `GAME OPTIONS`. - Here, you need to select a display type. - !!! tip "This setting affects timing offset in the song." - - For lower offset, select `TYPE B`. If your monitor has high latency, select `TYPE A`. If you're not sure what to pick, remember that you can always change this setting later depending on how the game feels - - Go to `SAVE AND EXIT` - Select `GAME MODE`. - -!!! success "You're all done! The game should load up properly now. Make sure to insert credits by pressing your `SERVICE` key!" + Here, you want to select a display type. + + !!! warning "This setting affects timing offset in the song." + + - `TYPE B`: Lower latency + - `TYPE A`: If your monitor has high latency + + We recommend starting with `TYPE B` and returning change this later if you encounter any issues. + + - Go to `SAVE AND EXIT` then `GAME MODE` + +!!! success "You're all done! The game should load up properly now. Insert credits by pressing your `SERVICE` key!" ## Help ---8<-- "docs/snippets/common/help.md" \ No newline at end of file +--8<-- "docs/snippets/common/help.md" + diff --git a/docs/games/konami/iidx/16_empress/troubleshooting.md b/docs/games/konami/iidx/16_empress/troubleshooting.md index 59a61e8a..d28d7919 100644 --- a/docs/games/konami/iidx/16_empress/troubleshooting.md +++ b/docs/games/konami/iidx/16_empress/troubleshooting.md @@ -3,7 +3,7 @@ --8<-- "docs/snippets/common/data_warning.md" -!!! warning "If you get any error codes that weren't listed in the guides here, check out [this](https://github.com/djhackersdev/bemanitools/blob/master/doc/game-error-codes.md) Bemanitools documentation page" +!!! warning "If you get any error codes that weren't listed in the guides here, check out the [Bemanitools docs](https://github.com/djhackersdev/bemanitools/blob/master/doc/game-error-codes.md)" ## Technical problems @@ -22,7 +22,7 @@ ??? tip "Game is running too slow/fast" Your game is likely running at an incorrect framerate. The expected framerates is 59.95fps for S-VIDEO output mode, and 60.05fps for VGA output mode. - !!! tip "For more information regarding output modes, check out the [Extra Information](extras.md) page" + !!! info "For more information regarding output modes, check out the [Extra Information](extras.md) page" Try these steps to resolve framerate issues: - Double-check that your selected output mode in the service menu matches the refresh rate in your `iidxhook-xx.conf` file. @@ -35,11 +35,11 @@ - Double-check that you followed all steps in the setup guide correctly - Your data may be corrupt in one way or another, you could try starting from scratch using trusted data sources -!!! info "For issues with desync and the such, check out Bemanitools' performance guide [here](https://github.com/djhackersdev/bemanitools/blob/master/doc/iidxhook/iidx-syncbook.md)" +!!! info "For issues with desync, check out the [Bemanitools IIDX syncbook](https://github.com/djhackersdev/bemanitools/blob/master/doc/iidxhook/iidx-syncbook.md)" ### Other ??? tip "Background videos not working" + + The CLVSD codec is not registered. Follow the instructions in the [setup guide](setup.md#installing-bemanitools). - The CLVSD codec is not installed. Install it by following the correct section in the setup guide. - \ No newline at end of file diff --git a/docs/snippets/konami/common/btools_cards.md b/docs/snippets/konami/common/btools_cards.md index 903f268f..c2f1a6f0 100644 --- a/docs/snippets/konami/common/btools_cards.md +++ b/docs/snippets/konami/common/btools_cards.md @@ -3,6 +3,7 @@ !!! warning "If you haven't generated a card number before, you can grab one from [here](https://kawashi.ro/card)" !!! tip "" + Now we will set up our PIN pad and card. - Click on `Keyboard device` for whichever player's card reader you want to use @@ -12,4 +13,5 @@ - Inside the file, paste in your card number. Example: `E0045812F8AFB2DE` - Point to the file you created by clicking `Browse...` and selecting it - !!! info "If you don't have a numpad, make sure to tick `Use top keyboard row for PIN pad input`. This will also change the `Card In` button to `Backspace`" \ No newline at end of file + !!! info "If you don't have a numpad, tick `Use top keyboard row for PIN pad input`. This will also change the `Card In` button to `Backspace`" + diff --git a/docs/snippets/konami/iidx/btools_clvsd.md b/docs/snippets/konami/iidx/btools_clvsd.md new file mode 100644 index 00000000..df71ddc5 --- /dev/null +++ b/docs/snippets/konami/iidx/btools_clvsd.md @@ -0,0 +1,18 @@ +!!! tip "" + + For background movies to work, you need to install and register a codec. + + This also applies for IIDX 12 to 18, if you'd done it before you shouldn't need to again and may skip this step. + + - Inside `bemanitools-supplement-vx.x.zip` locate and open `iidx.zip` + + - Inside `iidx\misc\`, extract `CLVSD.ax` to any directory where the file can stay long term + As an example we will be using your Documents folder, but it really could be anywhere you prefer. + + - Open a command prompt as ***administrator***, and run `regsvr32 "CHOSEN_PATH\CLVSD.ax"` + For the Documents folder, the command would be `regsvr32 "C:\Users\YOUR_USERNAME\Documents\CLVSD.ax"` + + You should get confirmation that the file has been registered successfully. + + If an error occurs, you most likely didn't start your command prompt as administrator, or the location to CLVSD.ax was incorrect. + diff --git a/docs/snippets/konami/iidx/btools_d3d8to9.md b/docs/snippets/konami/iidx/btools_d3d8to9.md index 7e0a3522..ff0bdf73 100644 --- a/docs/snippets/konami/iidx/btools_d3d8to9.md +++ b/docs/snippets/konami/iidx/btools_d3d8to9.md @@ -4,6 +4,6 @@ - Inside `bemanitools-supplement-vx.x.zip` locate `misc.zip` - - Inside `misc\d3d8to9\`, extract `d3d8.dll` into your revision folder. + - Inside `misc\d3d8to9\`, extract `d3d8.dll` to your revision directory - This enables us to use the graphic options inside `iidxhook-xx.conf` (xx being your game version number) which we will take advantage of. + This lets you configure graphics options inside `iidxhook-xx.conf` (xx being your game version number) diff --git a/docs/snippets/konami/iidx/btools_graphics.md b/docs/snippets/konami/iidx/btools_graphics.md new file mode 100644 index 00000000..d2b29d6f --- /dev/null +++ b/docs/snippets/konami/iidx/btools_graphics.md @@ -0,0 +1,26 @@ +!!! tip "" + + - Open your `iidxhook-xx.conf` (xx being your game version) + + - Locate and change the options we're interested in: + + ``` + gfx.framed=false # Only matters if windowed. False for borderless, True for decorations (title bar, etc..) + gfx.frame_rate_limit=0.0 # Set this to 59.95 + gfx.windowed=false # False for fullscreen, True for windowed + gfx.window_width=0 # Set to your desired game width (recommended: monitor width) + gfx.window_height=0 # Set to your desired game height (recommended: monitor height) + gfx.scale_back_buffer_width=0 # Set to your desired game width (recommended: monitor width) + gfx.scale_back_buffer_height=0 # Set to your desired game height (recommended: monitor height) + gfx.scale_back_buffer_filter=none # Set to point or linear (pick one from examples below) + ``` + + Here are visual examples of the two filter options: + + ??? info "point (sharp, pixel perfect)" + + + + ??? info "linear (less sharp, not pixel perfect)" + + diff --git a/docs/snippets/konami/iidx/btools_resolution_fps.md b/docs/snippets/konami/iidx/btools_resolution_fps.md deleted file mode 100644 index f5a8f5de..00000000 --- a/docs/snippets/konami/iidx/btools_resolution_fps.md +++ /dev/null @@ -1,50 +0,0 @@ -!!! tip "" - Next up, we'll setup borderless window and configure the proper resolution. We're using a `1920x1080` monitor so we will use that. - - Open your `iidxhook-xx.conf` (xx being your game version). We want to find these lines: - - ``` - # Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit) - gfx.frame_rate_limit=0.0 - - # Run the game windowed - gfx.windowed=false - - # Windowed width, 0 for default size - gfx.window_width=0 - - # Windowed height, 0 for default size - gfx.window_height=0 - - # Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter. - gfx.scale_back_buffer_width=0 - - # Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter. - gfx.scale_back_buffer_height=0 - - # Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation). - gfx.scale_back_buffer_filter=none - ``` - - If you can't seem to find them, press `CTRL` + `F` and search for `gfx.frame_rate_limit=0.0`. This will bring you to the first line we want to edit. - -!!! tip "" - Listed below are the values we want to change them to. - - ``` - gfx.frame_rate_limit=59.95 - gfx.windowed=true - gfx.window_width=1920 - gfx.window_height=1080 - gfx.scale_back_buffer_width=1920 - gfx.scale_back_buffer_height=1080 - gfx.scale_back_buffer_filter=linear - ``` - Unless you'd like to have the game properly windowed you can safely ignore `gfx.framed=false`. - - Make sure to decide on whether you want `Linear` or `Point` rendering. - - ``` - gfx.scale_back_buffer_filter=linear - gfx.scale_back_buffer_filter=point - ``` diff --git a/docs/snippets/konami/iidx/clvsd.md b/docs/snippets/konami/iidx/clvsd.md deleted file mode 100644 index 42c18ed7..00000000 --- a/docs/snippets/konami/iidx/clvsd.md +++ /dev/null @@ -1,16 +0,0 @@ -!!! tip "" - - In order to have background videos work, we need to install a codec. - - - Inside `bemanitools-supplement-vx.x.zip` that you downloaded locate `iidx.zip` - - - From inside `iidx\misc\`, extract `CLVSD.ax` into any folder on your computer that won't get moved or renamed - - An example to this can be your Documents folder - - - Open the command prompt as ***administrator***, and type `regsvr32 "[File location]\CLVSD.ax"` - - In the case of the documents folder, the command will be `regsvr32 "C:\Users\YourUsername\Documents\CLVSD.ax"` - - A prompt should appear telling you that it has been installed successfully. - This applies for game styles between 12 and 18, if you did it once you don't have to again. - - If an error occurs, you didn't run the command prompt as administrator or you messed up the location of the file. \ No newline at end of file