This commit is contained in:
MaddoScientisto 2026-04-12 14:45:08 +02:00
commit a9153546ae
56 changed files with 6731 additions and 258 deletions

View file

@ -519,6 +519,58 @@ Features that are mostly just break-state/UI flags:
- `single step` calls `usecode_debugger_break_state_enable_single_step`
- source-file open, goto-line, search, and breakpoint-table editing are mainly source-buffer/UI features once the debugger is open
### 18. Retail Ghidra follow-up implied by the Regret mapping
The Regret pass is now strong enough to drive a specific retail `CRUSADER.EXE` naming batch rather than a generic `more seg109 cleanup` request.
The most important retail equivalents to promote explicitly in live Ghidra next are:
- `13a0:2882` = `usecode_debugger_build_menubar`
- `13a0:088f` = `usecode_debugger_source_pane_create`
- `13a0:0ae8` = `usecode_debugger_source_pane_init_view_from_break_state`
- `13a0:0ba7` = `usecode_debugger_source_pane_handle_command`
- `13a0:0f16` = `usecode_debugger_source_pane_handle_pointer_event`
- `13a0:1088` = `usecode_debugger_source_line_copy_for_display`
- `13a0:1118` = `usecode_debugger_source_pane_draw_visible_lines`
- `13a0:1413` = `usecode_debugger_source_pane_clamp_viewport`
- `13a0:15ac` = `usecode_debugger_source_pane_load_file`
- `13a0:16ee` = `usecode_debugger_watch_pane_create`
- `13a0:1791` = `usecode_debugger_watch_pane_draw`
- `13a0:193f` = `usecode_debugger_watch_pane_handle_click`
- `13a0:1c2c` = `usecode_debugger_translate_registered_event`
- `13a0:1dc6` = `usecode_debugger_forward_child_event`
- `13a0:2c2e` = `usecode_debugger_source_buffer_create_from_path`
- `13a0:2ca0` = `usecode_debugger_source_buffer_destroy`
- `13a0:2d14` = `usecode_debugger_source_buffer_open_from_path`
- `13a0:2e0a` = `usecode_debugger_source_buffer_load_text`
- `13a0:2f4f` = `usecode_debugger_source_buffer_split_lines_in_place`
- `13a0:301d` = `usecode_debugger_source_buffer_get_line_ptr`
Why this follows from the Regret result rather than from guesswork:
- the retail `000b:* -> 13a0:*` table already closes the same UI layer at the raw/reference level
- the Regret `1398:*` cleanup shows the same function ordering and subsystem boundaries in a build where the debugger bootstrap survived
- that makes the remaining retail seg109 backlog primarily a promotion/documentation task, not a fresh discovery task
The live retail rename pass also closed one useful correction: the original retail-first mirror list over-assigned `13a0:1791` and `13a0:193f` to the source pane. Current decompile evidence now makes the split cleaner: `13a0:16ee/1791/193f` form a watch-pane lane, while the source-pane lane retains the file-load, pointer-event, line-copy, and viewport helpers.
This is the right pre-patch documentation step because it turns the surviving retail debugger lane into named UI, event, and source-buffer surfaces instead of leaving the future patch window hidden among anonymous helpers.
### 19. Delivery implication after the patching stall
The Regret result changes what `practical next step` should mean.
The next useful proof is no longer `try another manual hex patch`. It is one of these two:
1. a runtime-only memory experiment that proves the create/store/open model on a clean executable
2. a reproducible scripted patch against a writable clone, driven by a verified byte plan rather than by hand edits
Why the Regret comparison pushes in that direction:
- it already tells us the missing retail behavior is a small bootstrap-and-vtable problem, not a whole missing subsystem
- it shows that the real stability question is whether live interpreter state is seeded correctly, not whether the source pane exists
- it therefore favors runtime proof and scripted reproducibility over one-off static patching attempts
Features that clearly depend on seeded current-entry runtime payload:
- `Inspect what?`