Releases: devnoname120/livearea_nolimits
Release list
LiveArea NoLimits v1.6.0
Fix the recovery allocator's stack-guard validation so correctly loaded firmware can receive the hidden-application recovery patches.
In v1.4.0/v1.5.0, validation incorrectly expected the guard address inside SceDbRecovery's text segment. The loader resolves it to the imported SceLibKernel __stack_chk_guard variable instead. The old check could therefore silently skip the allocator hook and all seven recovery patches, leaving the native 500-application limit active.
Changes
- Compare the full operand with the plugin's own loader-resolved guard import; retain module identity, instruction, register and address validation.
- Correct the test fixture's relocation assumption and add rejection tests for altered operands and the old placeholders.
- Verify the actual retail firmware import records and the reported 510-visible/one-hidden recovery-planning case.
- Retain feature parity for retail 3.60, retail 3.65 and PTEL 3.60, including the complete icon-cache correction.
Build and validation
The published plugin is built in Release mode, optimized with -O2, with runtime logging disabled. Diagnostic file-operation symbols and log strings are absent. Existing log files from older versions are left untouched.
Both Release variants passed fresh sanitizer, firmware-byte, lifecycle/rollback, cache and hook-relocation tests, plus 33,942 native ARM shell checks per variant. Native recovery tests use the supplied database's counts without modifying that database: the stock planner returns -10 and the patched planner returns 1.
Validation limitation: this fixes a confirmed recovery-patch activation defect. The shutdown during database updating reported in issue #2 and successful restoration have not yet been retested on the affected Vita. Offline tests do not establish end-to-end hardware resolution.
Limits remain 500 top-level icons, 50 pages, 10 icons per page and 1,000 counted application/content icons. No database-format change is introduced.
Asset: livearea_nolimits.suprx (10,398 bytes)
SHA-256:
2c8c40df4eb0373b33622cbe4ec8c17fa4a0ab3c4d53e2bd24a14b49f7ba59f1
To upgrade, replace the plugin at the existing configured path and fully reboot. Preserve your existing plugin and database backups.
LiveArea NoLimits v1.5.0
LiveArea NoLimits v1.5.0 closes the icon-cache feature gap in v1.4.0. Retail 3.65 and PTEL/testkit 3.60 now receive the same complete cache correction as retail 3.60.
Feature parity
| Feature | Retail 3.60 | Retail 3.65 | PTEL 3.60 |
|---|---|---|---|
| 500 top-level icons / 50 pages | Enabled | Enabled | Enabled |
| 1,000 counted application/content icons | Enabled | Enabled | Enabled |
| Hidden-application recovery extension | Enabled | Enabled | Enabled |
| LRU icon-cache eviction | Enabled | Enabled | Enabled |
| Pending artwork reload and pinned consumer handoff | Enabled | Enabled | Enabled |
All runtime patches remain conditional on successful module/code validation. Ten icons per page, the fixed appearance table, the 2 MiB texture pool, and the existing cache algorithms remain unchanged.
Changes
- Add validated shell/PAF profile pairs rather than merely removing the retail-3.60 guard. Retail 3.65 uses PAF NID
0x73F90499, shell initializer+0x2CCC, and pool-pointer slot+0x6DFC; PTEL uses its own+0x6BBCpool slot. - Verify each shell's text/data sizes and relocated initializer reference before reading its pool pointer, even when the pool already exists.
- Preserve PAF instruction checks, mutex/clock references, imported stack-guard validation, and consumer-before-eviction hook installation.
- Enable the correction by default in fresh source configurations. The historical
LIVEAREA_ICON_CACHE_TRIALoption is retained for explicitly requesting a limits/recovery-only build. - Add a regression requiring the compiled shell-support and cache-profile lists to match, preventing future advertised shell support without a cache profile.
Build and validation
The published livearea_nolimits.suprx is an optimized Release build (-O2, NDEBUG) with the cache correction enabled and logging disabled at compile time. No diagnostic log-path strings or diagnostic I/O symbols are present. Existing logs from older builds are not deleted or modified.
Fresh tests passed for both Release build configurations. Cache startup/LRU tests run against actual retail 3.60, retail 3.65, and PTEL PAF and shell bytes, with logging both off and on in the host tests. Coverage includes immediate/deferred activation, cross-profile rejection, corrupted code and relocated pointers, partial hook failures, cleanup, pending reloads, and pinned handoff. taiHEN/libsubstitute relocation checks pass for each profile. The existing native shell suite passes 33,942 checks per build configuration, and retail recovery instruction tests pass.
Hardware coverage is not identical to feature coverage: the original correction has a retail 3.60 device-validation record; the new retail 3.65/PTEL ports have not yet been tested on their respective devices. A populated 500-icon/50-page library and recovery of an already-hidden application library still require hardware acceptance. External LSDB calls are stubbed in the native capacity/recovery tests. This release does not claim complete renderer/scheduler validation on those devices.
Artifact
livearea_nolimits.suprx — 10,425 bytes
SHA-256: fb55214c6ffef28c8b87e0b7aae0bb1a5b7c519d8cd6b720855fef6518f2b254
Replace the existing plugin at its configured path and fully reboot to activate it. Preserve plugin, configuration, and layout-database backups before an on-device trial. No manual database rebuild or application reinstallation is a prerequisite.
Source commit: 7c2ed719ff2f4f4c3811ce48758129ed8fd41586
LiveArea NoLimits v1.4.0
LiveArea NoLimits v1.4.0 raises the home-screen capacity to 500 top-level icons across 50 pages and extends native recovery for applications hidden before the plugin was installed.
Changes
- Raise the top-level limit from 255 to 500 and the page limit from 26 to 50. Ten icons per page and the separate 1,000 counted-application/content limit remain unchanged.
- Replace the narrow top-level comparisons with two fixed-size, fully validated instruction blocks. The capacity expansion needs no new hooks, trampolines, database-schema changes, or theme-table expansion.
- Patch the native SceDbRecovery capacity and page-allocation paths to use the same limits as SceShell, including a top-level admission guard. Validate the recovery module before startup and handle partial-installation rollback and module cleanup.
- Retain the retail 3.60 icon-cache correction from v1.3.0, including bounded texture residency and pending-widget reload handling.
- Disable runtime logging in the release artifact. The plugin does not create, truncate, write, or delete its diagnostic log; any old log file is left untouched.
The identified retail 3.60, retail 3.65, and PTEL 3.60 shell profiles are included. The icon-cache correction remains specific to retail 3.60.
Build
Built from commit a73c8c9315ff7359cff60d56d1db44729d6702a3 with:
CMAKE_BUILD_TYPE=Release
LIVEAREA_ICON_CACHE_TRIAL=ON
LIVEAREA_ICON_CACHE_LOGGING=OFF
The project retains its explicit -O2 optimization level. Module metadata is version 1.4. The final ELF was checked for the absence of diagnostic file-operation symbols and log-path strings.
Verification and limitations
Fresh validation passed for both Release build variants: ASan/UBSan, actual shell and recovery firmware-byte checks, corrupted-byte rejection, partial-installation rollback, native recovery instructions, cache regressions, and taiHEN relocation checks. Each variant passed 33,942 native ARM shell checks, covering complete admission/message functions, 255/256 and 499/500 boundaries, query errors, and page limits. External LSDB calls are stubbed in the ARM harness; these are not complete database/UI tests.
The 500-icon/50-page build has not yet been tested on hardware. The earlier 255-icon recovery build completed a normal boot on the local retail 3.60 Vita with an unchanged layout database. That Vita had no hidden applications, so restoration of an existing hidden-app library was not exercised. Large-library rendering on retail 3.65 and PTEL is also not hardware-verified.
Installation
Replace ur0:/tai/livearea_nolimits.suprx at the existing *main configuration entry and perform a full reboot. Standby does not activate the update. Keep backups of the plugin, configuration, and layout database. Do not reinstall applications or manually rebuild the database as a prerequisite for the recovery fix. Applications can still remain hidden when the configured top-level or counted-icon capacity is exhausted.
Artifact
livearea_nolimits.suprx - 10,302 bytes, Release mode, logging disabled.
SHA-256: f2cd935ba39e0c121fdad91ec25527b4ad1ca1c66ec23d4c19fb348753da594c
LiveArea NoLimits v1.3.0
LiveArea NoLimits v1.3.0 fixes the retail 3.60 LiveArea white-icon/revisit failure while keeping texture residency bounded.
- Replace broad cache reclamation with single-victim LRU eviction from the 2 MiB shell icon pool.
- Preserve reloadable PAF image handles, retry state and cache metadata while releasing only unused texture surfaces.
- Keep widget image requests pending while evicted artwork reloads instead of accepting the stale previous success result and abandoning the binding.
- Pin acquired artwork across the native consumer handoff so concurrent eviction cannot recreate the race.
- Validate the retail 3.60 ScePaf consumer, getter, image-handle thunk, vtable, mutex/clock references and hook prologues before enabling the correction.
- Resolve
__stack_chk_guardthrough its loader-provided SceLibKernel variable import rather than treating the enriched PAF import placeholder as a module-relative runtime address. - Keep the existing 26-page / 255-top-level-icon / 1,000-content limits active if the optional icon-cache hook path cannot be enabled.
- Retail 3.65 and PTEL 3.60 continue to use the baseline limit patches only.
Hardware validation: the retail 3.60 Vita build was uploaded and read back byte-for-byte before and after reboot, activated with icon-cache trial active (LRU + consumer reload), and the user subsequently reported that the previously reproducible white-icon navigation problem was gone and the plugin works perfectly. This is qualitative device validation, not instrumented frame timing.
The exact pre-version-bump build running during that comparison was 9,736 bytes with SHA-256 9cdbeca2ad349b83a7f9e9dbb96c721fe9af51ef8cb24568a7a4f0dd90199297; a fresh build from that source tree reproduced those bytes exactly. The v1.3.0 release asset differs only after the module version metadata bump and is built from commit 5dee98d48363d4df1a8972ac15689756d0b4089a with LIVEAREA_ICON_CACHE_TRIAL=ON.
Release artifact: livearea_nolimits.suprx (9,736 bytes)
SHA-256: 20edc57a2020b9789df3f1fabab4a25839e5100340aae6476849161a98c46923
LiveArea NoLimits v1.2.0
LiveArea NoLimits v1.2.0 fixes startup with HENkaku version spoofing and corrects the retail 3.60/3.65 patch profiles.
- Select the loaded SceShell by its module NID, independently of the spoofed firmware version.
- Correct the old profile labels: the original reference was PTEL/testkit 3.60, and the table previously labeled 3.65 was retail 3.60.
- Add the correct 23 patch locations for retail 3.65, verified against the identified shell in the 3.65 update package.
- Verify the exact text-segment size and every original patch instruction before writing. Unknown or mismatched shells are rejected, and partial injection failures roll back.
- Preserve the existing limits: 26 pages, 255 top-level icons, ten icons per page, and 1,000 counted application/content icons. Release builds remain log-free.
Replace ur0:tai/livearea_nolimits.suprx, keep its existing *main entry, and reboot. Version spoofing can remain enabled.
Validation: all 23 original patch instructions match each identified retail 3.60, retail 3.65, and PTEL 3.60 reference. Host tests with AddressSanitizer and UndefinedBehaviorSanitizer cover startup, every corrupted patch byte, every partial-injection failure, and unload restoration against these binaries. The VitaSDK build and the assembled replacement instructions were verified. Visible LiveArea behavior on a retail 3.65 device still needs device confirmation.
Artifact: livearea_nolimits.suprx (5,753 bytes)
SHA-256: 36209803a782b9e43f008644997ae9f43a3e5875674ce48f1f0d3e7e9c8d41f4
LiveArea NoLimits v1.1.0
LiveArea NoLimits v1.1.0 raises the top-level LiveArea capacity to the maximum representable by the original SceShell instruction forms.
Changes since v1.0.0:
- Raise the page limit from 20 to 26.
- Raise the top-level icon limit from 200 to 255.
- Keep the firmware's fixed ten-icons-per-page layout unchanged.
- Use the minimum page capacity needed to make all 255 top-level icon positions reachable.
- Bump the plugin module version to 1.1.
The plugin supports FW 3.60 and FW 3.65. It selects a firmware-specific patch profile and verifies every original instruction before applying any patch. Unsupported or modified SceShell builds fail closed. Release builds do not write runtime log files.
Install livearea_nolimits.suprx under *main in ur0:tai/config.txt, then reboot. See the repository README for the complete installation and recovery instructions.
SHA-256:
4e23c0ffb2af067a2cc2300f62b292d12131de8caa18d736cb5dfdc75b7bf9f8
LiveArea NoLimits v1.0.0
Initial release of LiveArea NoLimits.
Supported system software:
- FW 3.60
- FW 3.65
Changes to SceShell limits:
- 20 LiveArea pages instead of 10
- 200 top-level icon slots instead of 100
- 1,000 counted application/content icons instead of 500
- 10 icons per page, unchanged
The plugin selects a firmware-specific patch profile and verifies every original instruction before applying any patch. It fails closed on unsupported or modified SceShell builds. This release does not write runtime log files.
Install livearea_nolimits.suprx under *main in ur0:tai/config.txt, as documented in the repository README, then reboot.
SHA-256:
c858e953368082abbcbc3e4caed1e070b61a819bbc4c50b95a1a1326cdc9008b