Skip to content

docs(libSceSaveData): record the sizes titles pass to sceSaveDataCreateTransactionResource - #12020

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
milescoviello:docs/savedata-transaction-sizes
Oct 28, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
milescoviello:docs/savedata-transaction-sizes

Conversation

@milescoviello

Copy link
Copy Markdown
Contributor

What

The sceSaveDataCreateTransactionResource, sceSaveDataDeleteTransactionResource entry in docs/dev/debt/libSceSaveData.native.md says resource parameter validation is unknown. The stub takes a uint32_t size and ignores it. This adds the sizes titles pass.

The first argument at each sceSaveDataCreateTransactionResource call site, read from the last write to edi before the call in each relinked executable:

Title Version Sites Size
Borderlands 4 (PPSA01494) 01.100.002 2 0xC0000 at both
Ghost of Tsushima (PPSA02225) 02.024.000 1 0xC0000
Forspoken (PPSA03984) 01.020.000 1 0
Metal Gear Solid 4 (PPSA18194), mgs4.elf 01.004.003 2 0xC0000 at 1; a value loaded from a global at 1 (not traced)
Crimson Desert (PPSA25286) 01.000.568 1 0
MXGP 26 (PPSA30839) 01.003.000 1 0xC0000
Super Meat Boy 3D (PPSA31162) 02.000.001 1 0xC0000
Call of Duty: Black Ops II (PPSA34502) 01.010.000 2 0 at both
Steins;Gate Re:Boot (PPSA36591) 01.002.000 4 0xC0000 at all 4

Astro Bot (PPSA21564) doesn't import it, and neither does MGS4's app.elf. That's 15 sites: ten at 0xC0000 (768 KiB), four at 0 and one from a global. Every site the import-stub cross references list was read.

How

Changed: docs/dev/debt/libSceSaveData.native.md, one sentence added to the existing entry (now 608 characters). It still links Export.cpp, which defines both functions. No code change.

Tested

Docs only. tools/check_conventions.py --base upstream/main passes and git diff --check is clean. tools/pr_overlap.py couldn't compare #8285, which edits this file but already conflicts with main. Its diff adds the sceSaveDataMount2 entry and a pending-declarations entry, not this one. #8630 and #7780 also edit this file, and both merge with this branch without conflicts.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

🤖 Generated with Claude Code

…teTransactionResource

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the docs label Oct 27, 2026
@adriadam10 adriadam10 self-assigned this Oct 28, 2026

@THEMANnt THEMANnt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed ef0bfaa5f2daaa245160f14a1783ba3b82dd655f against author merge base 3ae8209b643be054ef09542f9e9e5e951b1ed73b — approve the documentation change.

The transaction-resource documentation matches synthetic positive IDs and current state validation, while keeping rollback semantics unresolved. The caller constants are not presented as proof of arbitrary console-valid flag combinations.

Validation: checked the submitted Markdown diff, pinned implementation references and relative links; git diff --check passed. This changes documentation only. Title disassembly and console observations were not independently reproduced; no runtime regression result is claimed.

@github-actions

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 11720 docs/dev/debt/libSceSaveData.native.md

@adriadam10
adriadam10 merged commit 3b951bc into boykopovar:main Oct 28, 2026
10 checks passed
@adriadam10

Copy link
Copy Markdown
Collaborator

Checked the stub in Export.cpp (takes a uint32_t size and ignores it, as the entry says), the conventions run, and that the edit is confined to the existing debt entry; merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants