Skip to content

Confirm with cross, as on a European console - #9

Draft
MHunterG wants to merge 1 commit into
night-60fpsfrom
fix/confirm-cross
Draft

MHunterG wants to merge 1 commit into
night-60fpsfrom
fix/confirm-cross

Conversation

@MHunterG

@MHunterG MHunterG commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

What and why

On the European release (UCES-01059) cross confirms and circle goes back, but the port made the game confirm with circle: the language screen showed "○ Confirm".

Traced with PURUN_TRACE_KERNEL (the new [sysparam] lines):

before: sceUtilityGetSystemParamInt id=8 -> 0   (Japanese)
        sceUtilityGetSystemParamInt id=9 -> 0   (circle)
        sceImposeSetLanguageMode language=1 button=0
after:  sceUtilityGetSystemParamInt id=8 -> 1   (English)
        sceUtilityGetSystemParamInt id=9 -> 1   (cross)
        sceImposeSetLanguageMode language=1 button=1

The game reads the console's confirm button and uses it; PortableKit at e73a866 always answered as a Japanese console.

  • host/purun_profile.cpp: system_language = 1, confirm_button = 1.
  • portablekit moves to purun/confirm-cross. That is e73a866 with three commits on top: "Let a profile say which console the game runs on" (cherry-picked from PortableKit main), the [sysparam] trace, and a pad mapping that follows the console. Before this, "confirm on the south button" meant that south pressed circle. Now input.confirm names the physical button that presses the game's confirm button. It defaults to south where cross confirms, and a value in settings.ini or PURUN_PAD_FACE still wins. The same PortableKit change for main is in Put the console's confirm button where the player's setting says PortableKit#40.
  • docs/MISSING.md: the language screen line.

Verified

macOS arm64 (M1), this branch at its head, recompiled build, fresh install from the disc image into a new data dir, windowed, PURUN_NO_AUDIO=1, virtual pad through PURUN_INPUT_SCRIPT. I looked at the captures:

  • Before: the language screen prompt is "○ Confirm". After: it is "× Confirm".
  • Language screen: east (○) does nothing, south (×) confirms English and the logos follow.
  • Title: south opens New / Continue, east closes it again, south reopens it, and on New south starts the opening movie.
  • The log says [pad] PortableKit input script connected; confirm (cross) on the south button, right stick as camera.
  • portablekit_input_tests and portablekit_settings_tests pass.

Not verified

  • The Steam Deck and Windows, and a real gamepad. Only the virtual pad was used.
  • Whether ○ still splits the character in the levels, which is a gameplay button and not the confirm button. I did not play a level.
  • The in-game menu's "Confirm button" row and the keyboard binding labels were not looked at on screen.
  • A player whose settings.ini already holds input.confirm=east, from saving settings before this change, keeps the right button as confirm. That is the saved choice, and the menu or input.confirm=south changes it.

🤖 Generated with Claude Code

The game reads the console's language and confirm button through
sceUtilityGetSystemParamInt (ids 8 and 9) and passes them on to
sceImposeSetLanguageMode. PortableKit answered as a Japanese console, so
the game took circle as confirm: its language screen showed "○ Confirm",
and "confirm on the south button" put circle, not cross, there.

- The profile now reports English and cross (system_language 1,
  confirm_button 1), which the European release UCES-01059 expects.
- PortableKit moves to purun/confirm-cross: e73a866 with the profile's
  console settings from its main branch, a "[sysparam]" trace under
  TRACE_KERNEL, and a pad mapping that puts the console's confirm button
  on the face button input.confirm names, south by default here.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant