Skip to content

Zenonia 3 PS Vita - v01.2.0 — Performance Update: Stable 30 FPS

Choose a tag to compare

@MetalSyntax MetalSyntax released this 18 Jul 03:26
· 1 commit to master since this release

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/access were 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.