尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证KDE Plasma 6 wallpaper rendering animated PSP XMB waves from system_plugin_bg.rco files — Wayland, Vulkan/OpenGL RHI
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Native wallpaper for KDE Plasma 6 (Wayland, Vulkan/OpenGL RHI) that renders PSP XMB animated waves from system_plugin_bg.rco files.
Open source under GPL-2.0-or-later (COPYING, NOTICE). No Sony data is included.
Full guide: docs/INSTALL.md · Czech: docs/NAVOD.cs.md ·
Article:
Public snapshot — development happens in a private repository; commit history is squashed.
Renderer before/after — the wave is now drawn from the real RCO data, not heuristics:
Wireframe and the reflection map stored inside the GMO:查看完整 README ↗Native wallpaper for KDE Plasma 6 (Wayland, Vulkan/OpenGL RHI) that renders PSP XMB animated waves from system_plugin_bg.rco files.
Open source under GPL-2.0-or-later (COPYING, NOTICE). No Sony data is included.
Full guide: docs/INSTALL.md · Czech: docs/NAVOD.cs.md ·
Article: https://svec-elektro.cz/projekty/psp-xmb-wave/
Public snapshot — development happens in a private repository; commit history is squashed.
Renderer before/after — the wave is now drawn from the real RCO data, not heuristics:
| Before (heuristic) | After (B-spline + fcurves + sphere map) |
|---|---|
Wireframe and the reflection map stored inside the GMO:
RcoError handling — never crashes plasmashell on bad RCO~/.cache/vlnky/<hash>/xmb_cache_v1.bin for fast startupflowchart TB
rco[system_plugin_bg.rco]
cache[xmb_cache_v1.bin]
lib[libxmbwave]
worker[QThreadPool load]
item[XmbWaveItem GUI]
rhi[XmbWaveRenderer RHI]
rco --> cache
cache --> lib
rco --> lib
lib --> worker
worker --> item
item --> rhi
sudo dnf install gcc-c++ cmake zlib-devel \
qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtdeclarative-devel qt6-qtshadertools-devel \
kf6-kpackage python3
Other distributions: see docs/INSTALL.md.
cd vlnky
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure
bash scripts/install.sh
systemctl --user restart plasma-plasmashell.service
Uninstall: bash scripts/uninstall.sh (--purge also removes the cache).
Golden collection tests (optional):
export VLNKY_WAVE_COLLECTION="/path/to/176 XMB WAVES"
cmake -B build && cmake --build build
ctest --test-dir build
Verify entire collection:
bash scripts/verify-all-waves.sh "/path/to/176 XMB WAVES" build/vlnky-extract
QT_LOGGING_RULES="xmb.*=true" journalctl --user -f -t plasmashell
Categories: xmb.rco, xmb.mesh, xmb.anim, xmb.render, xmb.perf
rm -rf ~/.cache/vlnky/errorCode on XmbWaveItem in debug buildsSee docs/INSTALL.md for the full user guide.
vlnky/
├── libxmbwave/ # RCO parser, mesh builder, cache v1
├── src/ # QML plugin (XmbWaveItem, WaveScanner)
├── shaders/ # wave.vert / wave.frag → .qsb
├── tests/ # Qt Test
├── prototype/ # Python reference + golden tests
├── plasma-wallpaper/ # Plasma package (QML + KConfig)
├── packaging/ # RPM spec
└── third_party/rhi/ # fallback Qt RHI headers (see NOTICE)
Original PSP wave – extracted from an official Sony system update (not bundled):
bash scripts/import-original-wave.sh ../EBOOT.PBP # e.g. the 6.61 updater
It adds PSP Original (OFW x.xx) to the collection. On the console the wave is white; its
colour comes from the XMB theme colour.
XMB colour (wallpaper settings): Original follows the current month like the PSP/PS3, or pick any of the 12 month colours. Optional night dimming (time-of-day brightness).
Wave style → PS2 (PSX DESR): the two-band sine wave of the PS2-based PSX XMB, rendered analytically per pixel (after OSD-XMB, GPL-3).
Wave style → Svec Studio wave: the four layered "hero waves" from the Sencurio landing page as used on the svec-studio desktop — filled silhouettes anchored to the bottom edge, scrolling sideways and bobbing, tinted by the wave colour over any background. The Height slider scales the wave band (30–250 % of the landing-page default).
Wave colour: Automatic follows the theme / style default; Custom colour tints the wave of any style (PSP, PS2, Svec Studio) with a freely chosen colour.
Frame graph: wave mesh → RGBA16F scene (MSAA resolve, optional 1.5×/2× supersampling) → ¼-res bloom (box downsample + separable Gaussian) → composite (background, PS2 wave, glow, vignette, triangular dither) → item texture.
| Setting | Effect |
|---|---|
| Mesh detail Ultra | 400×120 B-spline samples – smooth silhouettes on large screens |
| Supersampling 1.5× / 2× | wave rendered above screen resolution and resolved with a tent filter |
| Antialiasing MSAA 2/4/8× | clean edges of the thin wave strands |
| Glow (bloom) | soft PSP-like light around bright strands, radius scales with resolution |
| Smooth (bicubic) texture | B-spline magnification of the 128×128 reflection map |
| Dithering | removes 8-bit banding of dark gradients (backgrounds are drawn by the renderer) |
| Vignette | darkens the corners |
Presets in the settings: Performance, Balanced, Beautiful (Full HD+), Maximum (4K). Battery saver forces 1×, no MSAA and no bloom.
Preview with any property: build/vlnky-preview -r wave.rco --size 1920x1080 --set bloom=0.5 --set waveStyle=1
1.5.0 — Svec Studio wave style (the simple Sencurio landing-page hero waves: four filled layers at the bottom with per-layer scroll and bob) and a custom wave colour option for all styles, alongside the existing custom background colours.
1.4.0 — post-processing pipeline (HDR scene, MSAA, SSAA, bloom, bicubic, dither, vignette), Ultra mesh detail, XMB month colours with night dimming, procedural PS2 (PSX) wave, import of the original Sony wave from an official updater.
1.3.0 — new rendering core (libxmbwave/psp_wave.cpp) that follows the real data in the RCO:
the wave is a cubic B-spline surface (22×11 control points, knot vectors from the GMO) with two
interleaved morph targets; the bone matrix (rotation about X) and morph weights are animated by
linear fcurves (1500 frames @ 30 fps). Shading is a sphere-mapped reflection texture (TGA inside
the GMO), modulated by the material diffuse/alpha and blended additively, as on the PSP.
Also fixes an infinite recursion (segfault) in the RCO reader and stale RCO paths in the config.
Optional tuning: ~/.config/vlnky/channel_map.json (see docs/channel_map.example.json) and invert_textures.txt (one MD5 hash per line with invert or no-invert).
GPL-2.0-or-later — see COPYING. Third-party material and attributions: NOTICE.
PlayStation, PSP, PS2, PSX and XMB are trademarks of Sony Interactive Entertainment; this project
is not affiliated with Sony.