re: forced_backdrop DECIDES 62 of its 80 instances, not 6
The port agent raised that every check this corpus ran on the rule measured its STABILITY -- that no verdict moved -- and never its NECESSITY. It is right, and the distinction is load-bearing. New probe: recompute derived_paint_order with the forced_backdrop fallback removed and diff the orders, over every dat/*.pak. 80 forced instances = 62 the rule DECIDES + 18 it merely AGREES with. The 80 reproduces the page's own census exactly, which is the check that the probe sees the same set. Every one of the 62 deciders is keyless; no keyed element is ever moved. Of the 18 that agree, 14 have their own key -- and that includes the palogo_eff0.prm 'control', whose implied key is 0x00000000 and would sort it first regardless. So that agreement is the rule reproducing our crate, not the game confirming the rule. The port saw this before I did. The remaining 4 are keyless but inert: every element on those two builds is forced, so the tie-break gives the same order either way. Confirms the port's GP_TITLE finding from the other side: entries 10/11/13/14 unchanged without the rule, entries 12/15 decided by it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
253
docs/re/data/forced-backdrop-necessity.txt
Normal file
253
docs/re/data/forced-backdrop-necessity.txt
Normal file
@@ -0,0 +1,253 @@
|
||||
# Does forced_backdrop DECIDE a screen's order, or merely AGREE with it?
|
||||
#
|
||||
# Produced by: cargo run -p sylpheed-formats --example forced_backdrop_necessity -- <pak>
|
||||
# over every dat/*.pak, 2026-08-30. SYLPHEED_DISC=/disc.
|
||||
#
|
||||
# 'decides' = derived_paint_order() differs from the same sort with the
|
||||
# forced_backdrop fallback removed. 'no' = the element's own read or implied
|
||||
# key already puts it there, OR every element on the screen is forced so the
|
||||
# declaration-index tie-break gives the same order either way.
|
||||
#
|
||||
# TOTALS: 80 forced instances = 62 decides + 18 agrees.
|
||||
# The 80 reproduces the census in ui-forced-backdrop.md exactly.
|
||||
# Every one of the 62 deciders is keyless; no keyed element is ever moved.
|
||||
#
|
||||
# /disc/dat/GP_BUNK.pak
|
||||
# entry forced decides elements note
|
||||
0 1 YES 21 forced=[px_bunk_base.tbm] keyless=[px_bunk_base.tbm]
|
||||
2 1 YES 21 forced=[px_bunk_base.tbm] keyless=[px_bunk_base.tbm]
|
||||
4 1 YES 19 forced=[pvbase.tbm] keyless=[pvbase.tbm]
|
||||
6 1 YES 19 forced=[pvbase.tbm] keyless=[pvbase.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [0, 2, 4, 6]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_CHALLENGE.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_DEBRIEFING_PILOTLOG.pak
|
||||
# entry forced decides elements note
|
||||
118 1 YES 6 forced=[px_deb_base.tbm] keyless=[px_deb_base.tbm]
|
||||
130 1 YES 6 forced=[px_deb_base.tbm] keyless=[px_deb_base.tbm]
|
||||
131 1 YES 13 forced=[pjbgbase2.tbm] keyless=[pjbgbase2.tbm]
|
||||
134 1 YES 10 forced=[px_deb_base.tbm] keyless=[px_deb_base.tbm]
|
||||
150 1 YES 13 forced=[pjbgbase2.tbm] keyless=[pjbgbase2.tbm]
|
||||
165 1 YES 10 forced=[px_deb_base.tbm] keyless=[px_deb_base.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [118, 130, 131, 134, 150, 165]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_DIALOG.pak
|
||||
# entry forced decides elements note
|
||||
2 1 YES 15 forced=[pcbase.tbm] keyless=[pcbase.tbm]
|
||||
3 1 YES 15 forced=[pcbase.tbm] keyless=[pcbase.tbm]
|
||||
9 1 YES 34 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
10 1 YES 46 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
11 1 YES 38 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
12 1 YES 32 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
13 1 YES 32 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
14 1 YES 34 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
15 1 YES 26 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
16 1 YES 20 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
17 1 YES 30 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
18 1 YES 38 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
19 1 YES 30 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
20 1 YES 36 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
21 1 YES 38 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
22 1 YES 46 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
23 1 YES 34 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
24 1 YES 36 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
25 1 YES 14 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
26 1 YES 16 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
28 1 YES 14 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
29 1 YES 16 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
30 1 YES 18 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
31 1 YES 18 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
32 1 YES 10 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
33 1 YES 16 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
34 1 YES 14 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
35 1 YES 18 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
36 1 YES 16 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
37 1 YES 18 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
38 1 YES 26 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
39 1 YES 20 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
40 1 YES 18 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
41 1 YES 20 forced=[pzeff00.prm] keyless=[pzeff00.prm]
|
||||
86 1 YES 2 forced=[esrb_base.prm] keyless=[esrb_base.prm]
|
||||
130 1 YES 2 forced=[esrb_base.prm] keyless=[esrb_base.prm]
|
||||
|
||||
# rule DECIDES the order on entries [2, 3, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 86, 130]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_GAMEOVER.pak
|
||||
# entry forced decides elements note
|
||||
4 1 YES 13 forced=[pnbase.tbm] keyless=[pnbase.tbm]
|
||||
7 1 YES 13 forced=[pnbase.tbm] keyless=[pnbase.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [4, 7]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_HANGAR_ARSENAL.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_LEADERBOARD.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_D2D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_E.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_E2D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_F.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_F2D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_I.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_I2D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_J.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_J2D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_S.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MAIN_GAME_S2D.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MISSION_LOG.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MISSION_SELECT.pak
|
||||
# entry forced decides elements note
|
||||
3 1 YES 15 forced=[px_mission_base.tbm] keyless=[px_mission_base.tbm]
|
||||
5 1 YES 15 forced=[px_mission_base.tbm] keyless=[px_mission_base.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [3, 5]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_MOVIE_THEATER.pak
|
||||
# entry forced decides elements note
|
||||
0 1 YES 12 forced=[px_movie_base.tbm] keyless=[px_movie_base.tbm]
|
||||
1 1 YES 12 forced=[px_movie_base.tbm] keyless=[px_movie_base.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [0, 1]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_OPTIONS.pak
|
||||
# entry forced decides elements note
|
||||
0 2 no 2 forced=[po_menu_base.tbm,po_menu_base.tbm] keyless=[po_menu_base.tbm,po_menu_base.tbm]
|
||||
2 2 no 2 forced=[po_menu_base.tbm,po_menu_base.tbm] keyless=[po_menu_base.tbm,po_menu_base.tbm]
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries [0, 2]
|
||||
# /disc/dat/GP_PAUSE_MENU.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_READY_ROOM.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_SAVE_LOAD.pak
|
||||
# entry forced decides elements note
|
||||
37 2 no 13 forced=[pfbase.tbm,pfbase.tbm] keyless=[]
|
||||
40 2 no 13 forced=[pfbase.tbm,pfbase.tbm] keyless=[]
|
||||
46 1 YES 10 forced=[pgloading_eff00.prm] keyless=[pgloading_eff00.prm]
|
||||
58 1 no 9 forced=[pfbase.tbm] keyless=[]
|
||||
69 1 YES 10 forced=[pgloading_eff00.prm] keyless=[pgloading_eff00.prm]
|
||||
78 1 no 9 forced=[pfbase.tbm] keyless=[]
|
||||
89 1 YES 7 forced=[px_replay_base.tbm] keyless=[px_replay_base.tbm]
|
||||
93 2 no 13 forced=[pfbase.tbm,pfbase.tbm] keyless=[]
|
||||
98 1 YES 7 forced=[px_replay_base.tbm] keyless=[px_replay_base.tbm]
|
||||
99 2 no 13 forced=[pfbase.tbm,pfbase.tbm] keyless=[]
|
||||
|
||||
# rule DECIDES the order on entries [46, 69, 89, 98]
|
||||
# rule merely AGREES on entries [37, 40, 58, 78, 93, 99]
|
||||
# /disc/dat/GP_STAGE_CLEAR.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_SYSTEM.pak
|
||||
# entry forced decides elements note
|
||||
0 1 YES 21 forced=[pqbase.tbm] keyless=[pqbase.tbm]
|
||||
1 1 YES 21 forced=[pqbase.tbm] keyless=[pqbase.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [0, 1]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/GP_TITLE.pak
|
||||
# entry forced decides elements note
|
||||
10 1 no 3 forced=[palogo_eff0.prm] keyless=[]
|
||||
11 1 no 7 forced=[palogo_eff0.prm] keyless=[]
|
||||
12 1 YES 10 forced=[pgloading_eff00.prm] keyless=[pgloading_eff00.prm]
|
||||
13 1 no 3 forced=[palogo_eff0.prm] keyless=[]
|
||||
14 1 no 7 forced=[palogo_eff0.prm] keyless=[]
|
||||
15 1 YES 10 forced=[pgloading_eff00.prm] keyless=[pgloading_eff00.prm]
|
||||
|
||||
# rule DECIDES the order on entries [12, 15]
|
||||
# rule merely AGREES on entries [10, 11, 13, 14]
|
||||
# /disc/dat/GP_TUTORIAL.pak
|
||||
# entry forced decides elements note
|
||||
0 1 YES 18 forced=[pubase.tbm] keyless=[pubase.tbm]
|
||||
1 1 YES 18 forced=[pubase.tbm] keyless=[pubase.tbm]
|
||||
|
||||
# rule DECIDES the order on entries [0, 1]
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/fonts.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/sound.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
# /disc/dat/tables.pak
|
||||
# entry forced decides elements note
|
||||
|
||||
# rule DECIDES the order on entries []
|
||||
# rule merely AGREES on entries []
|
||||
Reference in New Issue
Block a user