Dragon Ball Z: Burst Limit Recompiled - ALPHA (Version 6.1)
https://github.com/iExplosiveRage/DBZ-Burst-Limit-Recompiled

This is an early alpha. Expect bugs.
No game data is included. You need your own copy of the game.

HOW TO PLAY
1. (Only if the game does not start) install the Visual C++ Redistributable (x64):
   https://aka.ms/vs/17/release/vc_redist.x64.exe
2. Run burstlimit.exe. The first time, it asks for your Dragon Ball Z: Burst Limit
   Xbox 360 disc image (.iso): pick it, and the game files are copied into the
   "game_data_root" folder (about 3.3 GB, only once). The .iso isn't changed.
   Only the US (NTSC-U) version works - the installer checks it.
   (You can still extract the game yourself into "game_data_root" instead:
   it must contain default.xex and LONG2DATA.)

NEW IN 6.1
- Smooth motion (#14): no more judder at a steady 60 FPS. Every frame is now shown
  once, from the monitor's next refresh, and offline the game's frames are locked to
  the monitor's refreshes (online timing is unchanged).
  F1 > DISPLAY > VSync (on by default; G-Sync / FreeSync still work).
  F1 > DISPLAY > Frame rate > Monitor refresh rate: runs at your monitor's refresh rate.
  Smoothest: your monitor's refresh rate, or half of it (60 on a 120 Hz monitor).
- F3 FPS panel: the FPS, its 1% low and the graph now measure what really reaches the
  screen.
- Texture packs: packs saved with premultiplied alpha no longer show dark edges, glows,
  skies and decals (auto-detected; texture_replace_alpha = auto / straight /
  premultiplied in burstlimit.toml). Fixed the blue Goku / Vegeta title art with some
  packs. Very big images (over 8192) are scaled down, sharper textures at an angle
  (anisotropic filtering), and less RAM used while a big pack loads.
- Fixed a rare crash while a character select or a fight loads
  ("Call to invalid function 0x0").
- Online: version 6.1 only plays with 6.1 (rooms are version-locked).

NEW IN 6.0
- Ultrawide (#13): F1 > DISPLAY > Aspect ratio: 21:9, 32:9 or Fit the window / screen.
  Fights show more to the sides (not stretched); menus and movies stay 16:9 in the
  middle. Wide HUD: the life bars at the screen's edges, or all in the middle.
  DLSS / FSR still work.
- Room Rules for Player Match: when a guest joins, the host picks each player's Health,
  Attack and Defense, the time, the rounds and the cut-scenes. The guest sees them, and
  so do the room list and View Battle Rules. Ranked Match is unchanged.
- Much lower CPU use (#11): about 5x less at 60 FPS. With Frame rate 30, the game now
  stays at 30 everywhere offline (fights ran at about 48).
- F1 > DISPLAY > HUD: turn the fight's HUD off.
- The settings menu's help text no longer covers the buttons at the bottom.
- Online: version 6.0 only plays with 6.0 (rooms are version-locked).

NEW IN 5.2
- Fixed a crash at the main menu when going online the first time, on PCs whose
  Windows user name or Documents folder has non-English letters.

NEW IN 5.1
- Ranked Match: no more "auth_required". If the game has no online identity yet,
  it gets one by itself and creates / joins the room (no restart needed).

NEW IN 5.0
- Ranked Match online: Versus > Online Battle > Ranked Match. Power Level and Grade
  with the game's own formula; a battle counts once both PCs report the same result.
- Online Leaderboard (Ranked Match > Leaderboard): every player's battles, wins, losses
  and favourite character. Also in F1 > ONLINE > Online rankings.
- Extra characters from mods: a mod with a slot.toml adds a character on a second page
  of the character select (R2 / L2), with its own name, pictures, moves and voice
  (Versus and Training, offline). Modding tools:
  https://github.com/iExplosiveRage/DBZ-Burst-Limit-ModKit
- Lower resolution for slow GPUs (F1 > DISPLAY > Lower resolution): 960x540 or 640x360.
- Fix: online, a transformation could loop and end the session ("Connection with
  other player has been lost") when the two players' start forms didn't match (#9).
- Fix: picking a start form (RB / LB) no longer changes the CPU's level.

MODS
- mods\<Mod name>\<file>   - the file is named like the file inside the game's archive
  LONG2DATA_US.CPK, for example mods\My_Goku\BCGOK002.NUX
- An optional mod.toml in the mod's folder gives it a name:
  name = "My Goku"   author = "..."   version = "1.0"   description = "..."
- Start screen > Mods, or Main Menu > Mods > Browse mods (then Apply): switch them on or off.
- The game's own files are never changed.
- Online, rooms only match players with the same mods on.
- Extra characters: a mod with a slot.toml shows up on the R2 page of the character
  select. Tools and guide: https://github.com/iExplosiveRage/DBZ-Burst-Limit-ModKit

ONLINE - both players need THIS SAME version (6.1)
- Host:  Versus > Online Battle > Player Match > Create Match > pick the rules.
         Keep "Private Session" OFF (ON hides the room from the list).
         Then wait in the Session Lobby.
- Guest: Versus > Online Battle > Player Match > Custom Match.
         Leave every search page on Random and press A. The host's room shows
         with their name: pick it.
- Both press Ready! in the Session Lobby.
- Ranked: Versus > Online Battle > Ranked Match (one creates, the other searches).
  Leaderboard: Ranked Match > Leaderboard. Your record is kept with an online
  identity saved in Documents\burstlimit\online_identity.json - keep that file.
- If Windows Firewall asks, allow burstlimit.exe (private and public networks).
- The two PCs connect directly; if that's not possible, through a relay server.
- Your name: open burstlimit.toml with Notepad and write it in
  online_name = "YourName"   (max 15 characters, English letters and numbers).
  Leave it empty ("") to use your Windows user name.
- Input delay: F1 > ONLINE > Online input delay. The HOST's value is used by both.
  2 = very low ping, 3-4 = normal (4 is the default), 6-8 = high ping.
  The online settings are copied from the host and can't change during a session.
- If something goes wrong online, send burstlimit.log (next to burstlimit.exe)
  in a GitHub issue.

ONLINE (old method: Radmin VPN / LAN) - still works
- Host: Host_Online.bat, enter your Radmin IP, create a Player Match.
- Join: Join_Online.bat, enter your Radmin IP then the host's IP, search for a Player Match.
- Allow burstlimit.exe through Windows Firewall (the game's UDP port is 59395).
- "Online input speed" (F1 > ONLINE) is used by this method. It shows when
  "Online input delay" is set to "Game default".
- Local_Online_Test.bat runs two copies on one PC to test.

TIP - 30 FPS with an NVIDIA GPU?
- Don't set "Max Frame Rate" to 60 in the NVIDIA Control Panel / NVIDIA App for this
  game: it locks the game to 30. Use the game's own setting instead:
  F1 > DISPLAY > Frame rate.

- F1 (or Back + Start on the controller) = settings menu: resolution, upscalers
  (AMD FSR, NVIDIA DLSS, CAS), frame rate (30 / 60 / 120 / 144 / monitor / unlocked), VSync, field of
  view, effects, button icons, Ki charge, saves, free camera... Changes apply right
  away and are saved to burstlimit.toml.
- F3 = FPS panel.
- Character select: RB / LB = start the match transformed (Super Saiyan Goku,
  Final Form Frieza, Perfect Cell...). Versus, Training and online.
- Texture packs: put the pack in textures\replace (next to burstlimit.exe) and turn on
  "Texture pack" in the settings menu.
- Free camera: Insert on the keyboard, or Y in the settings menu. Works in cinematics
  and super attacks too. Numpad 0 (or X in the free camera) freezes the game for a photo.
  Both keys can be changed in Settings > Game.
  Left stick moves, right stick looks, LB/RB down/up, LT/RT slower/faster,
  D-pad up/down zoom, D-pad left/right tilt, A hides the HUD, Y resets, B exits.
- Xbox, PlayStation and Switch controllers work out of the box.
  Keyboard: run burstlimit.exe --mnk_mode=true

THIRD-PARTY
- NVIDIA DLSS: this software uses NVIDIA DLSS (nvngx_dlss.dll), distributed under the
  NVIDIA RTX SDKs license (licenses\NVIDIA-RTX-SDKs-LICENSE.txt). NVIDIA, GeForce RTX and
  DLSS are trademarks of NVIDIA Corporation. This project is not affiliated with or
  endorsed by NVIDIA.
- AMD FidelityFX: amd_fidelityfx_loader_dx12.dll and amd_fidelityfx_upscaler_dx12.dll
  (AMD FSR 4 / 3.1.5, licenses\AMD-FidelityFX-SDK-license.md) and amd_fidelityfx_dx12.dll
  (FSR 1/2/3 present effects). This project is not affiliated with or endorsed by AMD.
- libjuice (online connections), Mozilla Public License 2.0, used unmodified
  (licenses\libjuice-LICENSE.txt). Source: https://github.com/paullouisageneau/libjuice
- Button icons: Xelu's Free Controller Prompts by Nicolae "Xelu" Berbece, CC0 (public
  domain): https://thoseawesomeguys.com/prompts/

--------------------------------------------------------------------------

دراغون بول زد: بيرست لِمِت - نسخة ريكومب (ألفا - الإصدار 6.1)

هذي نسخة تجريبية، ومتوقع فيها مشاكل.
ما فيها ملفات اللعبة، لازم تكون عندك نسختك من اللعبة.

طريقة التشغيل
1. (بس إذا اللعبة ما اشتغلت) ثبّت Microsoft Visual C++ Redistributable (x64):
   https://aka.ms/vs/17/release/vc_redist.x64.exe
2. شغّل burstlimit.exe. أول مرة بتطلب منك ملف الـISO حق لعبة Dragon Ball Z: Burst Limit
   للإكس بوكس 360: اختاره، وملفات اللعبة بتنسخ في مجلد "game_data_root" (حوالي 3.3 جيجا،
   مرة وحدة بس). ملف الـISO نفسه ما يتغير.
   تشتغل بس النسخة الأمريكية (NTSC-U)، والتثبيت يتأكد منها.
   (وتقدر برضو تستخرج ملفات اللعبة بنفسك داخل "game_data_root": لازم يكون فيه
   default.xex ومجلد LONG2DATA.)

الجديد في 6.1
- حركة ناعمة (#14): خلاص ما فيه تقطيع (judder) والفريمات ثابتة على 60. كل فريم الحين يطلع مرة
  وحدة من التحديث الجاي للشاشة، وبدون أونلاين فريمات اللعبة تمشي مع تحديث الشاشة نفسه (توقيت
  الأونلاين ما تغير).
  F1 > DISPLAY > VSync (شغال من البداية، و G-Sync / FreeSync يشتغلون عادي).
  F1 > DISPLAY > Frame rate > Monitor refresh rate: اللعبة تمشي على تردد شاشتك.
  أنعم شي: تردد شاشتك أو نصه (60 على شاشة 120 هيرتز).
- لوحة الفريمات F3: الفريمات والـ1% low والرسم صارت تقيس اللي يوصل للشاشة فعلاً.
- باكات التكستشرز: الباكات المحفوظة بـpremultiplied alpha ما عاد تطلع فيها الأطراف والتوهج والسما
  والملصقات غامقة (تنكشف لحالها؛ texture_replace_alpha = auto / straight / premultiplied في
  burstlimit.toml). وانحلت مشكلة صورة قوكو وفيجيتا الزرقا في شاشة البداية مع بعض الباكات.
  الصور الكبيرة مرة (فوق 8192) تتصغر، والتكستشرز أوضح من الزوايا (anisotropic filtering)،
  ورام أقل وباك كبير يتحمل.
- إصلاح كراش نادر وشاشة اختيار الشخصيات أو القتال تحمّل ("Call to invalid function 0x0").
- الأونلاين: نسخة 6.1 تلعب بس مع 6.1 (الغرف مقفلة على نفس النسخة).

الجديد في 6.0
- الشاشات العريضة (#13): F1 > DISPLAY > Aspect ratio: ‏21:9 أو 32:9 أو على قد النافذة / الشاشة.
  القتال يبين أكثر على الجوانب (بدون مط)، والقوائم والفيديوهات تبقى 16:9 في النص.
  Wide HUD: أشرطة الصحة على أطراف الشاشة، أو كلها في النص. DLSS و FSR يشتغلون عادي.
- قوانين الغرفة في Player Match: لما يدخل أحد غرفتك، الهوست يختار الصحة والهجوم والدفاع لكل
  لاعب، والوقت، وعدد الجولات، والمشاهد السينمائية. اللي دخل يشوفها، وتطلع بعد في قائمة الغرف
  وفي View Battle Rules. الرانكد ما تغير.
- استهلاك المعالج أقل بكثير (#11): تقريباً أقل 5 مرات على 60 فريم. ولو الـFrame rate على 30،
  اللعبة الحين تثبت على 30 في كل مكان بدون أونلاين (القتال كان يمشي على 48 تقريباً).
- F1 > DISPLAY > HUD: تقدر تطفي واجهة القتال.
- شرح الإعدادات ما عاد يغطي الأزرار اللي تحت.
- الأونلاين: نسخة 6.0 تلعب بس مع 6.0 (الغرف مقفلة على نفس النسخة).

الجديد في 5.2
- إصلاح كراش في القائمة الرئيسية أول مرة تدخل الأونلاين، في الأجهزة اللي اسم المستخدم فيها
  أو مجلد المستندات (Documents) فيه حروف مو إنجليزية.

الجديد في 5.1
- الرانكد: خلاص ما يطلع "auth_required". إذا اللعبة ما عندها هوية أونلاين، تجيبها بنفسها
  وتسوي الغرفة أو تدخلها (بدون إعادة تشغيل).

الجديد في 5.0
- الرانكد أونلاين: Versus > Online Battle > Ranked Match. الـPower Level والـGrade بنفس طريقة
  اللعبة، والقيم ينحسب لما الجهازين يرسلون نفس النتيجة.
- لوحة الصدارة أونلاين (Ranked Match > Leaderboard): كم قيم لعب كل لاعب، كم فاز، كم خسر،
  وشخصيته المفضلة. وموجودة بعد في F1 > ONLINE > Online rankings.
- شخصيات زيادة من المودات: المود اللي فيه ملف slot.toml يضيف شخصية في صفحة ثانية من شاشة
  اختيار الشخصيات (R2 / L2)، باسمها وصورها وحركاتها وصوتها (Versus والتدريب، بدون أونلاين).
  أدوات المودرز: https://github.com/iExplosiveRage/DBZ-Burst-Limit-ModKit
- دقة أقل من 720p للأجهزة الضعيفة (F1 > DISPLAY > Lower resolution): 960x540 أو 640x360.
- إصلاح: في الأونلاين كان التحول يعلق ويقطع الجلسة ("Connection with other player has been
  lost") لما تختلف التحولات اللي يبدأ فيها اللاعبين (#9).
- إصلاح: اختيار التحول (RB / LB) ما عاد يغير مستوى الكمبيوتر.

المودز
- mods\<اسم المود>\<الملف>   اسم الملف نفس اسمه داخل أرشيف اللعبة LONG2DATA_US.CPK،
  مثلاً mods\My_Goku\BCGOK002.NUX
- ملف mod.toml اختياري داخل مجلد المود يعطيه اسم:
  name = "My Goku"   author = "..."   version = "1.0"   description = "..."
- شاشة البداية > Mods، أو القائمة الرئيسية > Mods > Browse mods (بعدين Apply): شغل أو طف.
- ملفات اللعبة الأصلية ما تتغير أبداً.
- في الأونلاين، الغرف تطلع بس للي عندهم نفس المودات مشغلة.
- شخصيات زيادة: المود اللي فيه slot.toml يطلع في صفحة R2 في شاشة اختيار الشخصيات.
  الأدوات والشرح: https://github.com/iExplosiveRage/DBZ-Burst-Limit-ModKit

الأونلاين - لازم الاثنين يستخدمون نفس هذي النسخة (6.1)
- الهوست: Versus > Online Battle > Player Match > Create Match واختار القوانين.
  خل "Private Session" على OFF (لو ON الغرفة ما تطلع في القائمة).
  بعدها انتظر في الـSession Lobby.
- اللي يدخل: Versus > Online Battle > Player Match > Custom Match.
  خل كل صفحات البحث على Random واضغط A. بتطلع لك غرفة الهوست باسمه، اختارها.
- الاثنين يضغطون Ready! في الـSession Lobby.
- الرانكد: Versus > Online Battle > Ranked Match (واحد يسوي غرفة والثاني يدور).
  لوحة الصدارة: Ranked Match > Leaderboard. سجلك محفوظ بهوية أونلاين في ملف
  Documents\burstlimit\online_identity.json - لا تحذفه.
- إذا جدار الحماية (Windows Firewall) طلب إذن، اسمح لـ burstlimit.exe (الشبكات الخاصة والعامة).
- الجهازين يتصلون ببعض مباشرة، وإذا ما قدروا يتصلون عن طريق سيرفر وسيط.
- اسمك: افتح burstlimit.toml بالمفكرة (Notepad) واكتبه في
  online_name = "YourName"   (أقصى شي 15 حرف، حروف إنجليزية وأرقام بس).
  خله فاضي ("") عشان ياخذ اسم مستخدم الويندوز حقك.
- تأخير الضغطات: F1 > ONLINE > Online input delay. قيمة الهوست هي اللي تمشي على الاثنين.
  2 = بنق واطي جداً، 3-4 = عادي (4 هو الافتراضي)، 6-8 = بنق عالي.
  إعدادات الأونلاين تنسخ من الهوست وما تتغير خلال الجلسة.
- إذا صارت مشكلة بالأونلاين، أرسل ملف burstlimit.log (جنب burstlimit.exe) في Issue على GitHub.

الأونلاين (الطريقة القديمة: Radmin VPN أو شبكة محلية) - للحين تشتغل
- الهوست: شغّل Host_Online.bat واكتب IP حقك في Radmin وسوّ Player Match.
- اللي يدخل: شغّل Join_Online.bat واكتب IP حقك بعدين IP الهوست، ودوّر على Player Match.
- اسمح لـ burstlimit.exe في جدار الحماية (منفذ اللعبة UDP 59395).
- خيار "Online input speed" (F1 > ONLINE) حق هذي الطريقة، ويطلع إذا "Online input delay"
  على "Game default".
- Local_Online_Test.bat يشغل نسختين على نفس الجهاز للتجربة.

نصيحة - اللعبة على 30 فريم وكرتك NVIDIA؟
- لا تحط "Max Frame Rate" على 60 في NVIDIA Control Panel أو NVIDIA App لهذي اللعبة:
  يقفل اللعبة على 30. استخدم خيار اللعبة نفسها: F1 > DISPLAY > Frame rate.

- زر F1 (أو Back + Start في اليد) يفتح قائمة الإعدادات: الدقة، رفع الدقة (AMD FSR و
  NVIDIA DLSS و CAS)، الفريمات (30 / 60 / 120 / 144 / تردد الشاشة / مفتوحة)، VSync، زاوية الرؤية، المؤثرات،
  شكل الأزرار، شحن الكي، التخزينة، الكاميرا الحرة... التغييرات تنطبق على طول وتنحفظ في
  burstlimit.toml.
- زر F3 يعرض الفريمات.
- شاشة اختيار الشخصيات: RB / LB تختار التحول اللي تبدأ فيه القتال (قوكو سوبر ساين،
  فريزا الشكل الأخير، سيل الكامل...). في Versus والتدريب والأونلاين.
- باكات التكستشرز: حط الباك في مجلد textures\replace (جنب burstlimit.exe)
  وشغّل "Texture pack" من قائمة الإعدادات.
- الكاميرا الحرة: زر Insert بالكيبورد، أو Y داخل قائمة الإعدادات. تشتغل بالكت
  سينز والضربات الخاصة بعد. زر 0 بالنمباد (أو X وانت بالكاميرا) يوقف اللعبة عشان تصوّر.
  تقدر تغيّر الزرين من الإعدادات > Game.
  العصا اليسار تحرك، اليمين تلف، LB/RB نزول وطلوع، LT/RT أبطأ وأسرع،
  الأسهم فوق وتحت زوم، يمين ويسار ميلان، A يخفي الواجهة، Y يرجع الكاميرا، B يطلع.
- أيادي Xbox و PlayStation و Switch تشتغل على طول. للكيبورد: شغّل burstlimit.exe --mnk_mode=true

برامج خارجية
- NVIDIA DLSS: البرنامج يستخدم NVIDIA DLSS (nvngx_dlss.dll) تحت رخصة NVIDIA RTX SDKs
  (licenses\NVIDIA-RTX-SDKs-LICENSE.txt). NVIDIA و GeForce RTX و DLSS علامات تجارية لشركة
  NVIDIA. المشروع مو تابع لإنفيديا ولا مدعوم منها.
- AMD FidelityFX: الملفات amd_fidelityfx_loader_dx12.dll و amd_fidelityfx_upscaler_dx12.dll
  (AMD FSR 4 / 3.1.5، الرخصة licenses\AMD-FidelityFX-SDK-license.md) و amd_fidelityfx_dx12.dll
  (FSR 1/2/3). المشروع مو تابع لـAMD ولا مدعوم منها.
- libjuice (اتصال الأونلاين)، رخصة Mozilla Public License 2.0، بدون تعديل
  (licenses\libjuice-LICENSE.txt).
- أيقونات الأزرار: Xelu's Free Controller Prompts من Nicolae "Xelu" Berbece، رخصة CC0
  (ملكية عامة): https://thoseawesomeguys.com/prompts/
