You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release v6.0: stable scaled UI since v5.7 — auto scale, cinematics, scoreboard, mission text
Consolidates all work since v5.7-build160: resolution-auto font/HUD scale (-1),
cinematic text and credit images, hybrid scoreboard scaling, mission status and
pause text, DM ranking fixes, Wine-safe caller detection, and F12 menu fixes.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+46-14Lines changed: 46 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,24 +2,56 @@
2
2
3
3
## v6.0
4
4
5
-
-**Scaled UI / scoreboard:** Scoreboard text now scales with `_sofbuddy_font_scale` and images with `_sofbuddy_hud_scale` (hybrid path in `hkglVertex2f` instead of applying HUD scale to all vertices).
6
-
-**Scaled UI / cinematic text:** Hook `SCR_DrawCinematicString` and scale cinematic string vertices with `fontScale`.
7
-
-**Scaled UI / mission status:** Add `FontCaller::MissionStatus` and shared `scaleCenterAnchoredText` helper for mission-status / center-anchored on-screen text.
8
-
-**Linux scripts:** Fix `enable_*.sh` patch scripts to resolve paths relative to script location (works when run from any cwd).
5
+
Stable release consolidating all changes since **v5.7-build160** (intermediate v5.8/v5.9 builds were withdrawn).
9
6
10
-
##v5.9
7
+
### Scaled UI — auto resolution scaling
11
8
12
-
-**Scaled HUD:** Restored scoreboard scaling in `hkglVertex2f` — v5.8 had limited `SCR_ExecuteLayoutString` scaling to image quads only, which left scoreboard text tiny/unscaled; scoreboard mode again scales all layout vertices.
9
+
-**`_sofbuddy_font_scale -1` (Auto):** Negative value enables auto mode — scale tracks `vid_h / 480` and updates on resolution changes (`vid_restart`, `vid_checkchanges`). Default is **`-1`**.
10
+
-**`_sofbuddy_hud_scale -1` (Auto):** Same auto ratio for HUD elements. Default is **`-1`**.
11
+
-**F12 → UI Scale:** Font Scale and HUD Scale lists include **Auto** as the first option (writes `-1`). Restore Defaults resets both to Auto.
12
+
-**`_sofbuddy_scale_cinematic_pics`:** New cvar (default **`1` = on**) scales cinematic credit/fade images (`SP_FLAG_CREDIT` / `SCR_DrawCinemaScope`) from 640×480 to your resolution. Toggle in F12 → UI Scale → **Scale Cinematic Images**.
13
13
14
-
##v5.8
14
+
### Scaled UI — scoreboard (CTF / DM)
15
15
16
-
-**Scaled UI / HUD vertex scaling:**
17
-
- Fixed sticky quad-vertex counters in `hkglVertex2f` by moving state to file scope and adding `resetGlVertexQuadState()` at draw-hook boundaries (`Draw_Pic`, `Draw_StretchPic`, `Draw_PicOptions`, console, scoreboard, font).
18
-
- Scoreboard layout (`SCR_ExecuteLayoutString`) now scales only image quads (`Pic` / `StretchPic` / `PicOptions`); layout text via `Draw_String`/`Draw_Char` passes through unscaled (fixes garbled scoreboard text at non-1:1 HUD scale).
19
-
- Hardened exit paths: symmetric quad-state reset on `Draw_PicOptions`, `R_DrawFont`, and console `Draw_StretchPic` early returns.
20
-
- Removed duplicate dead scaling helpers from `sui_hooks.cpp`.
21
-
-**Core:** Added `video_state_fallback.cpp` so `current_vid_w` / `viddef_*` symbols resolve when all scaled UI features are disabled (needed by internal menus).
22
-
-**README:** Restored badges and hero screenshots; collapsible `<details>` sections; static Discord join badge; removed map-entity feature from the advertised list; credit for Acadie.
16
+
-**Hybrid scoreboard scaling:** Scoreboard layout text scales with `_sofbuddy_font_scale`; scoreboard images/icons scale with `_sofbuddy_hud_scale` (via `hkglVertex2f` scoreboard path using screen-center pivot).
17
+
-**Quad-state hygiene:**`resetGlVertexQuadState()` at draw-hook boundaries (`Draw_Pic`, `Draw_StretchPic`, `Draw_PicOptions`, `R_DrawFont`, console, scoreboard layout) fixes sticky vertex counters that caused mis-scaled or garbled quads.
18
+
-**CTF player list:** Fixed regression where DM-ranking font repositioning was applied to scoreboard player names — removed erroneous `HudDmRanking → DMRankingCalcXY` mapping from render-type caller detection.
19
+
20
+
### Scaled UI — cinematic text & images
21
+
22
+
-**Typematic / cinematic subtitles:** Hook `SCR_DrawCinematicString` + `Draw_CharExtra` — green bottom-left typewriter text scales with `_sofbuddy_font_scale` (including Auto). Uses `g_cinematicDrawDepth` scope guard so HUD `hud_scale` text paths are not affected.
23
+
-**Bottom-anchored text scaling:** Typematic and yellow subtitle/center-print text preserve 480p bottom-margin percentage when scaled (`computeTextBottomAnchor` / `applyBottomAnchoredScale`).
24
+
-**Cinematic credit images:** Hook `SCR_DrawCinemaScope` with scope-based `PicCaller::SCR_DrawCinemaScope`; `glVertex2f` scales the fade/credit quad when `_sofbuddy_scale_cinematic_pics` is on. Renamed mislabeled `NetworkDisconnectIcon` caller entry.
25
+
26
+
### Scaled UI — mission status, pause, center print
27
+
28
+
-**Mission status text** (`cMissionStatus::Draw` @ `0x9250`): Scope hook sets `FontCaller::MissionStatus`; scales with **`fontScale`** (not `hudScale`) via `scaleCenterAnchoredText` — fixes red upper-center messages like “Mission Objectives Updated” / “Mission Failed” at wrong size and off-center. Added `0x9250` to SoF.exe funcmap.
29
+
-**“Paused” text** (`SCR_DrawPause` @ `0x13710`): Scope hook + `fontScale` center compensation in `hkR_DrawFont` and per-glyph vertex scaling.
30
+
-**Center print** (`SCR_DrawCenterPrint` @ `0x163C0`): Scope hook replaces fragile text-matching fallback; merged v5.7 word-wrap with bottom-margin scaling for yellow subtitles and center-print lines.
31
+
32
+
### Scaled UI — DM ranking HUD
33
+
34
+
- Restored v5.7 `hudDmRanking_wasImage` + `scorePhase` alternation for frag count vs ping/limit lines under team chevrons.
35
+
-`resetDmRankingFontPhase()` at each `cDMRanking_Draw` frame start — prevents line overlap from stale phase state.
36
+
-`FontCaller::DMRankingCalcXY` set from `HudDmRanking` render scope (no fragile per-call-site RVA checks through ref.dll).
37
+
38
+
### Scaled UI — console & menu caller detection
39
+
40
+
-**Console repaint:**`Draw_StretchPic` treats `g_activeRenderType == Console` as console background — dirty-rect marking no longer depends solely on stack caller detection (fixes backspace / stale pixel artifacts).
41
+
-**`visitExternalCallers`:** Safe stack walk picks the first *known*`FontCaller` (e.g. `RectDrawTextItem` for F12 menu rows), skipping unknown frames like `R_DrawFont` itself.
42
+
-**Wine crash fix:** Hardened EBP chain walk in `hook_callsite.cpp` (`plausibleFramePtr`, bounded frame advance) — fixes page fault when classifying callers on Wine.
43
+
-**F12 menu bug fix:** Changing Font Scale no longer mis-scales the HUD Scale value below it (removed center-print substring fallback; menu text resolves to `RectDrawTextItem` etc. using `screen_y_scale`).
44
+
45
+
### Core & Linux scripts
46
+
47
+
-**`video_state_fallback.cpp`:** Resolves `current_vid_w` / `viddef_*` when all scaled UI features are disabled (needed by internal menus).
48
+
-**Linux `enable_*.sh`:** Patch scripts resolve paths relative to script location (works from any cwd).
Copy file name to clipboardExpand all lines: README.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,8 +26,9 @@
26
26
<detailsopen>
27
27
<summary><b>Click to expand</b></summary>
28
28
29
-
- 🔠 **Font Scaling** — Crisp, readable fonts at any resolution: `1x`, `2x`, `3x`, `4x`, etc.
30
-
- 🖥️ **HUD Scaling** — Scale the HUD independently from the font for perfect UI balance.
29
+
- 🔠 **Font Scaling** — Crisp, readable fonts at any resolution: `1x`, `2x`, `3x`, `4x`, etc. Set `_sofbuddy_font_scale -1` (or pick **Auto** in F12 → UI Scale) to scale automatically with resolution (`vid_h / 480`).
30
+
- 🖥️ **HUD Scaling** — Scale the HUD independently from the font for perfect UI balance. Set `_sofbuddy_hud_scale -1` (or **Auto** in the menu) for the same resolution-based scaling.
31
+
- 🎬 **Cinematic Image Scaling** — Credit/fade images (`SP_FLAG_CREDIT`) scale up from 640×480 to your resolution. Toggle with `_sofbuddy_scale_cinematic_pics` (`1` = on, `0` = off) or **Scale Cinematic Images** in F12 → UI Scale.
- 🎯 **Restored `cl_maxfps` in Singleplayer** — Enjoy smooth, uncapped framerates without legacy workarounds.
33
34
- ⚡ **Stable Framerate & CPU Saver** — Uses `QueryPerformanceCounter` for precise timing and energy savings. New cvar: `_sofbuddy_sleep`.
@@ -117,7 +118,7 @@
117
118
118
119
### In-Game Commands
119
120
120
-
-`**F12`** (or `**bind <key> sofbuddy_menu sof_buddy`**) — **Open the SoF Buddy menu. Use this. It’s the main entry point for all settings, updater, and profiles.**
121
+
-`**F12`** (or `**bind <key> sofbuddy_menu sof_buddy`**) — **Open the SoF Buddy menu. Use this. It’s the main entry point for all settings, updater, and profiles.** Under **UI Scale**: Font/HUD Scale **Auto** writes `-1` to `_sofbuddy_font_scale` / `_sofbuddy_hud_scale`; **Scale Cinematic Images** toggles `_sofbuddy_scale_cinematic_pics`.
121
122
-`sofbuddy_list_features` — Print compiled features (and whether they are on/off).
122
123
-`sofbuddy_menu <name>` — Open an embedded internal menu page (examples: `loading`, `sof_buddy`).
123
124
-`sofbuddy_menu <menu>/<page>` — Open a specific embedded page (e.g. `sofbuddy_menu sof_buddy/cpu`).
|`_sofbuddy_font_scale`| -1 | Font scaling multiplier (`1`, `2`, `2.25`, …). **`-1` = Auto** — tracks resolution (`vid_h / 480`) and updates on `vid_restart` / resolution changes. Writable in `config.cfg` or via F12 → UI Scale → **Auto**. |
195
+
|`_sofbuddy_hud_scale`| -1 | HUD scaling multiplier. **`-1` = Auto** — same resolution ratio as font auto mode. Set in config (`set _sofbuddy_hud_scale -1`) or pick **Auto** in F12 → UI Scale. |
196
+
|`_sofbuddy_scale_cinematic_pics`| 1 | Scale cinematic credit/fade images (`SP_FLAG_CREDIT` / `SCR_DrawCinemaScope`) from 640×480 to your resolution. `1` = on, `0` = off. F12 → UI Scale → **Scale Cinematic Images**. |
0 commit comments