Enhance segment coverage ledger and mid-project plan with detailed updates

- Added new binary files for segment coverage in `Crusader.rep/idata/00/~00000006.db/`
- Updated `crusader_segment_coverage_ledger.csv` to reflect new findings and classifications, including:
  - Renamed segments for clarity on allocator mechanics and dispatch entry roles.
  - Adjusted coverage status for segments related to startup/display orchestration and allocator phase finalization.
- Revised `plan-mid.md` to include recent progress on segment recovery and classification, emphasizing the ongoing work on the `0x4588` callback object and related functions.
This commit is contained in:
MaddoScientisto 2026-03-21 20:32:21 +01:00
commit d1222a2a4f
7 changed files with 123 additions and 34 deletions

View file

@ -3,7 +3,7 @@
"2","code","0x40000","0x2B0","None","","","","crusader_ne_segments.csv"
"3","code","0x40400","0x55A","None","","","","crusader_ne_segments.csv"
"4","code","0x40A00","0x10B1","Foothold","Reset/cache entry path","runtime_cache_reset_sequence","ASYLUM.24 and downstream reset callers still need tighter classification","crusader_decompilation_notes.md; plan-mid.md"
"5","code","0x41E00","0x8D7","None","","","","crusader_ne_segments.csv"
"5","code","0x41E00","0x8D7","Foothold","Startup/display orchestration and large runtime handoff","FUN_0004_60c0; FUN_0004_1e00","Recovered bodies now exist, but exact subsystem naming and higher-level transition meaning remain open","crusader_decompilation_notes.md; plan-mid.md"
"6","code","0x42C00","0x75E","None","","","","crusader_ne_segments.csv"
"7","code","0x43600","0x484","None","","","","crusader_ne_segments.csv"
"8","code","0x43C00","0x1386","None","","","","crusader_ne_segments.csv"
@ -80,7 +80,7 @@
"79","code","0x98600","0x421","None","","","","crusader_ne_segments.csv"
"80","code","0x98C00","0xF27","Foothold","Conditional render/callback dispatch and surface release","entity_conditional_render_dispatch; surface_release_internal; surface_release_and_maybe_free","0x4588 callback object still lacks a concrete subsystem name","crusader_decompilation_notes.md"
"81","code","0x99E00","0x320","None","","","","crusader_ne_segments.csv"
"82","code","0x9A200","0x1C8A","Partial","Allocator sweep and per-head allocation/finalize","allocator_head_try_alloc_block; allocator_head_free_block; allocator_head_finalize_sweep; public size wrapper","0x4588 object subsystem identity still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"82","code","0x9A200","0x1C8A","Partial","Allocator head-table allocation and phase finalize","allocator_try_alloc_from_head_table; allocator_phase_finalize_pass; allocator_head_try_alloc_block; allocator_head_free_block; allocator_head_finalize_sweep","0x4588 callback object subsystem identity still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"83","code","0x9C400","0x31E","Foothold","Allocator node/header helpers","event_queue_push; packed size/header helpers","Mostly structural helper layer","crusader_decompilation_notes.md"
"84","code","0x9C800","0x1478","None","","","","crusader_ne_segments.csv"
"85","code","0x9E000","0x404","Foothold","Allocator work token helpers","token reserve/release and commit helpers","Needs clearer subsystem naming","crusader_decompilation_notes.md"
@ -124,7 +124,7 @@
"123","code","0xC3C00","0xE6D","None","","","","crusader_ne_segments.csv"
"124","code","0xC4E00","0x3DD","None","","","","crusader_ne_segments.csv"
"125","code","0xC5400","0x1A3E","None","","","","crusader_ne_segments.csv"
"126","code","0xC7400","0x402A","None","","","","crusader_ne_segments.csv"
"126","code","0xC7400","0x402A","Foothold","Runtime-entry wrappers and pre-entry state prep","FUN_000c_7412; FUN_000c_c890; FUN_000c_c9f4; thunk_callf_0000_ffff_000c_827d","Broader seg126 state-machine/helper meanings remain open, but this lane now clearly feeds the seg005 startup/display transition","crusader_decompilation_notes.md; plan-mid.md"
"127","code","0xCC600","0x8F6","None","","","","crusader_ne_segments.csv"
"128","code","0xCD200","0x5D0","None","","","","crusader_ne_segments.csv"
"129","code","0xCDA00","0xD77","None","","","","crusader_ne_segments.csv"
@ -134,9 +134,9 @@
"133","code","0xD3800","0x215A","None","","","","crusader_ne_segments.csv"
"134","code","0xD6000","0xEF0","None","","","","crusader_ne_segments.csv"
"135","code","0xD7000","0x3B7","None","","","","crusader_ne_segments.csv"
"136","code","0xD7600","0x5BD","None","","","","crusader_ne_segments.csv"
"137","code","0xD7E00","0xFBB","Foothold","Dispatch-entry runtime state init/release","entity_dispatch_entry_init_runtime_state; entity_dispatch_entry_release_runtime_state","Higher-level callback object role and event semantic naming still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"138","code","0xD9200","0x32E4","Foothold","Entity cleanup/finalize with callback and palette/file teardown","entity_cleanup_resources_and_dispatch; sprite_redraw_global_if_active","Callback-object role naming and 000d:7e00 constructor/dispatch path are still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"136","code","0xD7600","0x5BD","Foothold","Active dispatch-entry lifecycle helpers","active_dispatch_entry_mark_enabled; active_dispatch_entry_mark_disabled; active_dispatch_entry_create_default","Broader meaning of the active dispatch entry and its relationship to the startup/display lane still needs caller-side confirmation","crusader_decompilation_notes.md; plan-mid.md"
"137","code","0xD7E00","0xFBB","Partial","Palette and dispatch-entry emission helper family","entity_dispatch_entry_init_runtime_state; entity_dispatch_entry_release_runtime_state; vga_palette_set_all_black; vga_palette_set_all_white; vga_palette_set_all_rgb; dispatch_entry_create_black_palette_state_active; dispatch_entry_create_grayscale_palette_state_active; dispatch_entry_create_solid_palette_state_active","Higher-level event/script meaning is still unresolved, especially the paired 0x68bf object and the exact role of the 0004:5ad4-5b6e caller sequence","crusader_decompilation_notes.md; plan-mid.md"
"138","code","0xD9200","0x32E4","Foothold","Entity cleanup/finalize with callback and dispatch-entry palette emission","entity_cleanup_resources_and_dispatch; sprite_redraw_global_if_active","Concrete callback-object subsystem naming is still unresolved; FUN_000d_938c is now verified as a caller-side dispatch-entry/palette emission helper but remains intentionally unnamed","crusader_decompilation_notes.md; plan-mid.md"
"139","code","0xDCC00","0x984","None","","","","crusader_ne_segments.csv"
"140","code","0xDD800","0xC6F","None","","","","crusader_ne_segments.csv"
"141","code","0xDE600","0x2B","None","","","Short stub-sized segment","crusader_ne_segments.csv"

1 Segment Type FileOffset Length CoverageStatus KnownSubsystem KeyNamedFunctions Blockers NotesSource
3 2 code 0x40000 0x2B0 None crusader_ne_segments.csv
4 3 code 0x40400 0x55A None crusader_ne_segments.csv
5 4 code 0x40A00 0x10B1 Foothold Reset/cache entry path runtime_cache_reset_sequence ASYLUM.24 and downstream reset callers still need tighter classification crusader_decompilation_notes.md; plan-mid.md
6 5 code 0x41E00 0x8D7 None Foothold Startup/display orchestration and large runtime handoff FUN_0004_60c0; FUN_0004_1e00 Recovered bodies now exist, but exact subsystem naming and higher-level transition meaning remain open crusader_ne_segments.csv crusader_decompilation_notes.md; plan-mid.md
7 6 code 0x42C00 0x75E None crusader_ne_segments.csv
8 7 code 0x43600 0x484 None crusader_ne_segments.csv
9 8 code 0x43C00 0x1386 None crusader_ne_segments.csv
80 79 code 0x98600 0x421 None crusader_ne_segments.csv
81 80 code 0x98C00 0xF27 Foothold Conditional render/callback dispatch and surface release entity_conditional_render_dispatch; surface_release_internal; surface_release_and_maybe_free 0x4588 callback object still lacks a concrete subsystem name crusader_decompilation_notes.md
82 81 code 0x99E00 0x320 None crusader_ne_segments.csv
83 82 code 0x9A200 0x1C8A Partial Allocator sweep and per-head allocation/finalize Allocator head-table allocation and phase finalize allocator_head_try_alloc_block; allocator_head_free_block; allocator_head_finalize_sweep; public size wrapper allocator_try_alloc_from_head_table; allocator_phase_finalize_pass; allocator_head_try_alloc_block; allocator_head_free_block; allocator_head_finalize_sweep 0x4588 object subsystem identity still unresolved 0x4588 callback object subsystem identity still unresolved crusader_decompilation_notes.md; plan-mid.md
84 83 code 0x9C400 0x31E Foothold Allocator node/header helpers event_queue_push; packed size/header helpers Mostly structural helper layer crusader_decompilation_notes.md
85 84 code 0x9C800 0x1478 None crusader_ne_segments.csv
86 85 code 0x9E000 0x404 Foothold Allocator work token helpers token reserve/release and commit helpers Needs clearer subsystem naming crusader_decompilation_notes.md
124 123 code 0xC3C00 0xE6D None crusader_ne_segments.csv
125 124 code 0xC4E00 0x3DD None crusader_ne_segments.csv
126 125 code 0xC5400 0x1A3E None crusader_ne_segments.csv
127 126 code 0xC7400 0x402A None Foothold Runtime-entry wrappers and pre-entry state prep FUN_000c_7412; FUN_000c_c890; FUN_000c_c9f4; thunk_callf_0000_ffff_000c_827d Broader seg126 state-machine/helper meanings remain open, but this lane now clearly feeds the seg005 startup/display transition crusader_ne_segments.csv crusader_decompilation_notes.md; plan-mid.md
128 127 code 0xCC600 0x8F6 None crusader_ne_segments.csv
129 128 code 0xCD200 0x5D0 None crusader_ne_segments.csv
130 129 code 0xCDA00 0xD77 None crusader_ne_segments.csv
134 133 code 0xD3800 0x215A None crusader_ne_segments.csv
135 134 code 0xD6000 0xEF0 None crusader_ne_segments.csv
136 135 code 0xD7000 0x3B7 None crusader_ne_segments.csv
137 136 code 0xD7600 0x5BD None Foothold Active dispatch-entry lifecycle helpers active_dispatch_entry_mark_enabled; active_dispatch_entry_mark_disabled; active_dispatch_entry_create_default Broader meaning of the active dispatch entry and its relationship to the startup/display lane still needs caller-side confirmation crusader_ne_segments.csv crusader_decompilation_notes.md; plan-mid.md
138 137 code 0xD7E00 0xFBB Foothold Partial Dispatch-entry runtime state init/release Palette and dispatch-entry emission helper family entity_dispatch_entry_init_runtime_state; entity_dispatch_entry_release_runtime_state entity_dispatch_entry_init_runtime_state; entity_dispatch_entry_release_runtime_state; vga_palette_set_all_black; vga_palette_set_all_white; vga_palette_set_all_rgb; dispatch_entry_create_black_palette_state_active; dispatch_entry_create_grayscale_palette_state_active; dispatch_entry_create_solid_palette_state_active Higher-level callback object role and event semantic naming still unresolved Higher-level event/script meaning is still unresolved, especially the paired 0x68bf object and the exact role of the 0004:5ad4-5b6e caller sequence crusader_decompilation_notes.md; plan-mid.md
139 138 code 0xD9200 0x32E4 Foothold Entity cleanup/finalize with callback and palette/file teardown Entity cleanup/finalize with callback and dispatch-entry palette emission entity_cleanup_resources_and_dispatch; sprite_redraw_global_if_active Callback-object role naming and 000d:7e00 constructor/dispatch path are still unresolved Concrete callback-object subsystem naming is still unresolved; FUN_000d_938c is now verified as a caller-side dispatch-entry/palette emission helper but remains intentionally unnamed crusader_decompilation_notes.md; plan-mid.md
140 139 code 0xDCC00 0x984 None crusader_ne_segments.csv
141 140 code 0xDD800 0xC6F None crusader_ne_segments.csv
142 141 code 0xDE600 0x2B None Short stub-sized segment crusader_ne_segments.csv