1
0

Emulator learnings folded back into decompiler

This commit is contained in:
Aiden
2026-05-25 19:11:22 +10:00
parent 1fabf6587d
commit d2e7609bbf
16 changed files with 1468 additions and 87 deletions

View File

@@ -275,6 +275,11 @@ def _serial_reconstruction_lines(serial_reconstruction: dict[str, object] | None
f"checksum {candidate['checksum_address_hex']} seeded by {candidate['checksum_seed_hex']} "
f"(confidence {confidence} {score})",
)
tx_path = candidate.get("tx_path")
if isinstance(tx_path, dict):
lines.append(
f"; TX path: {tx_path.get('summary', 'interrupt-driven TXI path')}",
)
elif kind == "candidate_sci1_rx_frame":
lines.append(
f"; RX candidate: {candidate['frame_length']} bytes "
@@ -286,6 +291,17 @@ def _serial_reconstruction_lines(serial_reconstruction: dict[str, object] | None
caveat = candidate.get("caveat")
if caveat:
lines.append(f"; caveat: {caveat}")
ram_roles = serial_reconstruction.get("ram_roles", [])
if isinstance(ram_roles, list) and ram_roles:
lines.append("; Serial RAM role candidates")
for role in ram_roles:
if not isinstance(role, dict):
continue
address_text = str(role.get("address_hex") or h16(int(role.get("address") or 0)))
lines.append(
f"; {address_text}: "
f"{role.get('name', 'ram_role')} - {role.get('summary', '')}",
)
lines.append("")
return lines