cellGame: real parameter IDs, error values and ABI buffer bounds - #84
Open
canersaka wants to merge 1 commit into
Open
cellGame: real parameter IDs, error values and ABI buffer bounds#84canersaka wants to merge 1 commit into
canersaka wants to merge 1 commit into
Conversation
Replace the invented split integer/string ID ranges with the firmware's unified PARAM.SFO enum, return VERSION, PS3_SYSTEM_VER, and APP_VER from their own fields, and use the 32-byte dirName bound. Correct CELL_GAME_PATH_MAX and the cellGame error-code base/table against the public ABI.
canersaka
marked this pull request as ready for review
July 25, 2026 05:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cellGame's integer parameter table was not the firmware ABI. Several IDs were shifted or collapsed together, VERSION, PS3_SYSTEM_VER and APP_VER did not have their distinct values, localized title IDs were incomplete, and the path and directory-name limits were host-shaped rather than the fixed guest sizes. A title asking for a valid parameter could therefore receive the value for a different key, while callers allocating the documented buffers could be overrun by the larger local limits. The module error base was also 0x8002B600 even though cellGame uses the 0x8002CBxx range.
This replaces the table with the firmware IDs through 106, restores the localized-title ranges and separate version fields, uses the 128-byte path and 32-byte directory-name bounds, corrects the cellGame and game-data error bases, and reads the three version strings from their corresponding SFO keys. The change is limited to constants, bounds and the existing parameter switch; it does not add title-specific behavior.
Verified: ps3recomp_runtime builds clean. A standalone compile-time ABI check passes for the corrected constants and buffer sizes. The numeric IDs, 0x8002CBxx error range, 128-byte path and 32-byte directory name were checked against RPCS3's cellGame.h as an ABI oracle.