Add Ghidra MCP server update workflow instructions and various binary files; enhance segment coverage ledger and mid-project plan with detailed analysis notes

This commit is contained in:
MaddoScientisto 2026-03-21 19:29:57 +01:00
commit 8847708d41
10 changed files with 248 additions and 18 deletions

View file

@ -59,28 +59,28 @@
"58","code","0x86400","0x44B","None","","","","crusader_ne_segments.csv"
"59","code","0x86A00","0x4288","None","","","","crusader_ne_segments.csv"
"60","code","0x8B600","0x231","None","","","","crusader_ne_segments.csv"
"61","code","0x8BA00","0x1B6C","None","","","","crusader_ne_segments.csv"
"62","code","0x8DA00","0x85F","None","","","","crusader_ne_segments.csv"
"61","code","0x8BA00","0x1B6C","Foothold","Entity/timer dispatch guard and period helpers","timer_entity_enable_wrapper; entity_check_flag_0x4000; entity_set_event_type_checked; entity_set_update_period_and_reschedule","Several wrappers still resolve into thunk-heavy paths and need caller-side semantic naming","crusader_decompilation_notes.md"
"62","code","0x8DA00","0x85F","Foothold","Entry word-list lifecycle helpers","entity_word_list_destroy","Caller-side object-role mapping still needed for strong behavioral names","crusader_decompilation_notes.md"
"63","code","0x8E400","0x519","None","","","","crusader_ne_segments.csv"
"64","code","0x8EA00","0x3B1","None","","","","crusader_ne_segments.csv"
"64","code","0x8EA00","0x3B1","Foothold","Global one-shot gate/dispatch control","FUN_0008_eb43; FUN_0008_ebe7; FUN_0008_eac8; FUN_0008_ec23","Subsystem identity of the gate path remains unresolved; names intentionally conservative","crusader_decompilation_notes.md"
"65","code","0x8F000","0x5BD","None","","","","crusader_ne_segments.csv"
"66","code","0x8F800","0x4A9","None","","","","crusader_ne_segments.csv"
"67","code","0x8FE00","0x839","None","","","","crusader_ne_segments.csv"
"68","code","0x90800","0xB4A","None","","","","crusader_ne_segments.csv"
"69","code","0x91800","0x2A0","None","","","","crusader_ne_segments.csv"
"70","code","0x91C00","0xF24","None","","","","crusader_ne_segments.csv"
"70","code","0x91C00","0xF24","Foothold","File-handle allocation/open wrappers","file_handle_alloc_init_and_open; file_handle_open_with_mode","Exact DOS open/create flags and mode semantics still need caller-side argument decoding","crusader_decompilation_notes.md"
"71","code","0x92E00","0x6C2","None","","","","crusader_ne_segments.csv"
"72","code","0x93600","0xCA1","None","","","","crusader_ne_segments.csv"
"73","code","0x94600","0x9AA","None","","","","crusader_ne_segments.csv"
"74","code","0x95200","0x337","None","","","","crusader_ne_segments.csv"
"75","code","0x95600","0x1428","None","","","","crusader_ne_segments.csv"
"76","code","0x96E00","0x627","None","","","","crusader_ne_segments.csv"
"77","code","0x97600","0x616","None","","","","crusader_ne_segments.csv"
"76","code","0x96E00","0x627","Foothold","VGA palette read/write/free helpers","vga_palette_write; vga_palette_read; palette_free_if_set","Need caller-side analysis to classify higher-level palette transaction semantics","crusader_decompilation_notes.md"
"77","code","0x97600","0x616","Foothold","Palette buffer clone/metadata setup","palette_buffer_alloc_copy_from_source","Need caller-side analysis to separate generic palette clone use from callback-specific staging","crusader_decompilation_notes.md"
"78","code","0x97E00","0x634","None","","","","crusader_ne_segments.csv"
"79","code","0x98600","0x421","None","","","","crusader_ne_segments.csv"
"80","code","0x98C00","0xF27","Foothold","Conditional render/callback dispatch","entity_conditional_render_dispatch","0x4588 callback object still lacks a concrete subsystem name","crusader_decompilation_notes.md"
"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","allocator_head_try_alloc_block; allocator_head_free_block; public size wrapper","0x4588 object and finalize path still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"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"
"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"
@ -89,11 +89,11 @@
"88","code","0xA2E00","0x523","None","","","","crusader_ne_segments.csv"
"89","code","0xA3400","0x373","None","","","","crusader_ne_segments.csv"
"90","code","0xA3800","0x9C6","None","","","","crusader_ne_segments.csv"
"91","code","0xA4400","0x6FA","Partial","Init/context and RNG helpers","seg091_func_00fd; seg091_func_014d; rng_set_seed; rng_next_modulo","00fd and 014d still positional","crusader_decompilation_notes.md; plan-mid.md"
"91","code","0xA4400","0x6FA","Partial","Init/context RNG and runtime callback/video-state lifecycle","seg091_func_00fd; seg091_func_014d; rng_set_seed; rng_next_modulo; runtime_callback_object_init_once; runtime_callback_object_teardown_once; video_bios_state_snapshot; video_mode_set_and_record_state","00fd/014d still positional; callback object subsystem identity still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"92","code","0xA4E00","0x59E","None","","","","crusader_ne_segments.csv"
"93","code","0xA5600","0x4F1","None","","","","crusader_ne_segments.csv"
"94","code","0xA5E00","0x606","Partial","Tracked handle table control","tracked_entity_handle_table_init; tracked_entity_handle_table_shutdown; tracked_entity_handle_table_clear_and_dispatch","Downstream dispatch tail still unresolved","crusader_decompilation_notes.md"
"95","code","0xA6600","0xC9F","Partial","Cache manager init/reset and 0x4588 runtime callback lifecycle","cache_init; cache_reset_runtime_state; cache_shutdown","Concrete 0x4588 callback object name and nearby no-function callers remain unresolved","crusader_decompilation_notes.md; plan-mid.md"
"95","code","0xA6600","0xC9F","Partial","Cache manager init/reset and 0x4588 runtime callback lifecycle","cache_init; cache_reset_runtime_state; cache_shutdown; entity_cleanup_resources_and_dispatch","Concrete 0x4588 callback object name and field-level role mapping remain unresolved","crusader_decompilation_notes.md; plan-mid.md"
"96","code","0xA7600","0x582","None","","","","crusader_ne_segments.csv"
"97","code","0xA7E00","0xDB0","None","","","","crusader_ne_segments.csv"
"98","code","0xA8E00","0x68A","None","","","","crusader_ne_segments.csv"
@ -135,8 +135,8 @@
"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","None","","","","crusader_ne_segments.csv"
"138","code","0xD9200","0x32E4","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"
"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
59 58 code 0x86400 0x44B None crusader_ne_segments.csv
60 59 code 0x86A00 0x4288 None crusader_ne_segments.csv
61 60 code 0x8B600 0x231 None crusader_ne_segments.csv
62 61 code 0x8BA00 0x1B6C None Foothold Entity/timer dispatch guard and period helpers timer_entity_enable_wrapper; entity_check_flag_0x4000; entity_set_event_type_checked; entity_set_update_period_and_reschedule Several wrappers still resolve into thunk-heavy paths and need caller-side semantic naming crusader_ne_segments.csv crusader_decompilation_notes.md
63 62 code 0x8DA00 0x85F None Foothold Entry word-list lifecycle helpers entity_word_list_destroy Caller-side object-role mapping still needed for strong behavioral names crusader_ne_segments.csv crusader_decompilation_notes.md
64 63 code 0x8E400 0x519 None crusader_ne_segments.csv
65 64 code 0x8EA00 0x3B1 None Foothold Global one-shot gate/dispatch control FUN_0008_eb43; FUN_0008_ebe7; FUN_0008_eac8; FUN_0008_ec23 Subsystem identity of the gate path remains unresolved; names intentionally conservative crusader_ne_segments.csv crusader_decompilation_notes.md
66 65 code 0x8F000 0x5BD None crusader_ne_segments.csv
67 66 code 0x8F800 0x4A9 None crusader_ne_segments.csv
68 67 code 0x8FE00 0x839 None crusader_ne_segments.csv
69 68 code 0x90800 0xB4A None crusader_ne_segments.csv
70 69 code 0x91800 0x2A0 None crusader_ne_segments.csv
71 70 code 0x91C00 0xF24 None Foothold File-handle allocation/open wrappers file_handle_alloc_init_and_open; file_handle_open_with_mode Exact DOS open/create flags and mode semantics still need caller-side argument decoding crusader_ne_segments.csv crusader_decompilation_notes.md
72 71 code 0x92E00 0x6C2 None crusader_ne_segments.csv
73 72 code 0x93600 0xCA1 None crusader_ne_segments.csv
74 73 code 0x94600 0x9AA None crusader_ne_segments.csv
75 74 code 0x95200 0x337 None crusader_ne_segments.csv
76 75 code 0x95600 0x1428 None crusader_ne_segments.csv
77 76 code 0x96E00 0x627 None Foothold VGA palette read/write/free helpers vga_palette_write; vga_palette_read; palette_free_if_set Need caller-side analysis to classify higher-level palette transaction semantics crusader_ne_segments.csv crusader_decompilation_notes.md
78 77 code 0x97600 0x616 None Foothold Palette buffer clone/metadata setup palette_buffer_alloc_copy_from_source Need caller-side analysis to separate generic palette clone use from callback-specific staging crusader_ne_segments.csv crusader_decompilation_notes.md
79 78 code 0x97E00 0x634 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 Conditional render/callback dispatch and surface release entity_conditional_render_dispatch 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 Allocator sweep and per-head allocation/finalize allocator_head_try_alloc_block; allocator_head_free_block; public size wrapper allocator_head_try_alloc_block; allocator_head_free_block; allocator_head_finalize_sweep; public size wrapper 0x4588 object and finalize path still unresolved 0x4588 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
89 88 code 0xA2E00 0x523 None crusader_ne_segments.csv
90 89 code 0xA3400 0x373 None crusader_ne_segments.csv
91 90 code 0xA3800 0x9C6 None crusader_ne_segments.csv
92 91 code 0xA4400 0x6FA Partial Init/context and RNG helpers Init/context RNG and runtime callback/video-state lifecycle seg091_func_00fd; seg091_func_014d; rng_set_seed; rng_next_modulo seg091_func_00fd; seg091_func_014d; rng_set_seed; rng_next_modulo; runtime_callback_object_init_once; runtime_callback_object_teardown_once; video_bios_state_snapshot; video_mode_set_and_record_state 00fd and 014d still positional 00fd/014d still positional; callback object subsystem identity still unresolved crusader_decompilation_notes.md; plan-mid.md
93 92 code 0xA4E00 0x59E None crusader_ne_segments.csv
94 93 code 0xA5600 0x4F1 None crusader_ne_segments.csv
95 94 code 0xA5E00 0x606 Partial Tracked handle table control tracked_entity_handle_table_init; tracked_entity_handle_table_shutdown; tracked_entity_handle_table_clear_and_dispatch Downstream dispatch tail still unresolved crusader_decompilation_notes.md
96 95 code 0xA6600 0xC9F Partial Cache manager init/reset and 0x4588 runtime callback lifecycle cache_init; cache_reset_runtime_state; cache_shutdown cache_init; cache_reset_runtime_state; cache_shutdown; entity_cleanup_resources_and_dispatch Concrete 0x4588 callback object name and nearby no-function callers remain unresolved Concrete 0x4588 callback object name and field-level role mapping remain unresolved crusader_decompilation_notes.md; plan-mid.md
97 96 code 0xA7600 0x582 None crusader_ne_segments.csv
98 97 code 0xA7E00 0xDB0 None crusader_ne_segments.csv
99 98 code 0xA8E00 0x68A 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 crusader_ne_segments.csv
138 137 code 0xD7E00 0xFBB None 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_ne_segments.csv crusader_decompilation_notes.md; plan-mid.md
139 138 code 0xD9200 0x32E4 None 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_ne_segments.csv 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