re: DIFFICULTY is a dialog -- DLG_SELECT_DIFFICULTY, GP_DIALOG entries 2/3

Closes a negative of mine whose failed assumption I had named: I searched for an
8-record btn-named build in an archive of its own, assuming DIFFICULTY's four items
pair with f variants the way GP_TITLE's screens do. It has its own prefix and is
not a GamePart screen at all.

Three independent routes agree. The image lists DLG_SELECT_DIFFICULTY among the
DLG_* dialog names at 0x820A41BB, and GP_DIFFICULTY appears zero times. GP_DIALOG
entries 2/3 are the only builds there with pcbtn00..03 -- four buttons at design
rows 259/329/399/469, spacing 70, an EN/JP pair. And my capture of the running
screen puts its four rows within 4 px of those, with spacing 70.5/69.5/70.0 against
the disc's 70/70/70.

Reach stated: the entries are identified by button count and geometry, not by a
binding from the DLG_ name to a pak entry. No such binding was found.

Also notes the consequence for Q6's count-match: NEW GAME opens a DIALOG from an
external archive, which still matches the count but is not the same category as
OPTIONS or TUTORIAL opening a GamePart.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-31 02:44:39 +00:00
parent 2922217764
commit 6ba003219b
3 changed files with 178 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
# Where does the DIFFICULTY screen live? ✅ DECODED 2026-08-31.
# It is a DIALOG -- `DLG_SELECT_DIFFICULTY`, GP_DIALOG.pak entries 2/3.
#
# CLOSES A NEGATIVE OF MINE. gp-title-holds-three-button-screens.txt recorded
# "not an 8-record btn-named build anywhere on the disc", with the failed
# assumption named as mine: I assumed DIFFICULTY's four items pair with `f` focus
# variants in an archive of its own, the way GP_TITLE's screens do. Both halves
# of that were wrong -- it has its own button prefix and it is not a GamePart
# screen at all.
#
################################################################################
# ROUTE 1 -- THE IMAGE. /image/sylpheed.pe, 3 occurrences of "DIFFICULTY":
# 0x820A2548 STAGE | DIFFICULTY | TITLE | FADE | BASE_EXTRA ...
# (a GamePartTask::RegisterToFactory name list)
# 0x820A3377 RECORD_DIFFICULTY (a results/record field)
# 0x820A41BB DLG_LEADERBOARD_MENU_NEXT | DLG_SYSTEM_PAUSE |
# **DLG_SELECT_DIFFICULTY** | DLG_MISSION_OBJECTIVE |
# DLG_MESSAGE_BOX | DLG_MESSAGE_BOX_YES_NO | ...
#
# ✅ The third is the answer: DIFFICULTY is one of the game's DLG_* dialogs.
# ⚠️ "GP_DIFFICULTY" appears 0 times in the image, which is consistent.
#
################################################################################
# ROUTE 2 -- THE DISC. GP_DIALOG.pak entries 2 and 3 are the only builds in that
# archive carrying `pcbtn00`..`pcbtn03` -- FOUR buttons, matching
# EASY / NORMAL / HARD / BACK. Design rows and spacing:
#
# entry 2 y 259 / 329 / 399 / 469 spacing 70, 70, 70
# entry 3 identical (the EN/JP pair, as everywhere else)
#
# ✅ CONTROL: the same reader on GP_TITLE entry 5 returns 162/242/322/401/482,
# spacing 80 -- the rows that archive is independently known to place.
#
################################################################################
# ROUTE 3 -- THE ORACLE. My own capture of the running DIFFICULTY screen
# (captures/menu-nav/live-difficulty-opens-normal.png), with the disc-grounded
# calibration capture_y = 64.82 + 0.9919 * design_y:
#
# design row predicted measured in the capture residual
# 259 321.7 323.5 +1.8
# 329 391.2 394.0 +2.8
# 399 460.6 463.5 +2.9
# 469 530.0 533.5 +3.5
# measured spacing 70.5 / 69.5 / 70.0 against the disc's 70 / 70 / 70
#
# Four rows, all under 4 px, with the spacing agreeing exactly. The residual is a
# uniform ~+2.8 px offset, which is the calibration's own systematic and not a
# mismatch.
#
# => THREE INDEPENDENT ROUTES: the executable names it a dialog, the disc has a
# four-button dialog build, and the running game draws its rows where that
# build says they are.
#
# 📌 WHY IT MATTERS BEYOND THE LOCATION: DIFFICULTY being a DIALOG explains why
# NEW GAME's destination is not a screen in GP_TITLE, and it means the "four menu
# items load an external archive" reading of the event numbers
# (boot-config-and-gamepart-registry.md's count-match) is looser than it looked --
# NEW GAME opens a dialog from GP_DIALOG.pak, which is an external archive, but a
# dialog is not the same kind of thing as OPTIONS or TUTORIAL opening a GamePart.
# The count still matches; the categories are not uniform.
#
# ⚠️ REACH: entries 2/3 are identified by button count and geometry, not by a
# name binding DLG_SELECT_DIFFICULTY to a pak entry. No such binding was found --
# the DLG_* names live in a string list, and what maps a name to an archive entry
# is not decoded. Another 4-button dialog with the same rows would be
# indistinguishable by this evidence.