Zenonia 3 PS Vita - v01.2.0 — Performance Update: Stable 30 FPS
Highlights
- Stable 30 FPS (up from ~20-24 FPS) via CPU/GPU/bus clock tuning, a fixed I/O logging
bottleneck, and a manual frame-pacing lock that removes the ~40-60fps stutter that showed up
once rendering got fast enough to land near the 60Hz vblank boundary. - Root-caused a hidden I/O bottleneck:
fopen/stat/accesswere logging unconditionally on
every single call — the same fprintf+fflush-per-line cost already found in GL logging, but this
time hitting every asset load during actual gameplay, not just the menu. - New GPU-native texture path (developer opt-in): the software framebuffer can now be uploaded
to the GPU as RGB565 directly, skipping the CPU-side RGBA8888 conversion entirely.
What changed
- Raised CPU (444MHz) / bus (222MHz) / GPU (222MHz) clocks at boot (previously running at the
conservative factory defaults). - Capped the last 3 unbounded log call sites (
fopen_hook/stat_hook/access_hook). - Added a manual 30fps frame cap (2 vblanks, vitaGL's own vsync disabled) to replace its default
single-vblank pacing. - Added 3 alternate strategies for the RGB565→RGBA framebuffer conversion (LUT, NEON SIMD, and a
GPU-native passthrough) plus an independent NEON path for vertex/color/texcoord conversion — all
exposed as CMake options for anyone who wants to A/B test on their own hardware (see the new
Performance Tuning section in the README).
Recommended build (this release)
RGB565_CONVERT_MODE=NATIVE + OPTIMIZE_NEON_FIXED=OFF + LOCK_FPS_30=ON — confirmed on real
hardware as the most stable combination.
Known issues (unchanged)
- In-game text and UI text are still invisible (custom font rendering pending).
- The menu still re-reads certain assets from disk on every input event.