Pass one collects every JSR, JMP and branch target; pass two traces execution to mark bytes as code or data; pass three names them by priority, user labels first. The result reads as subroutine and data names with hardware registers resolved, instead of a wall of addresses.
A .NET server for reverse-engineering Atari 8-bit ROMs, XEX binaries and ATR disk images. Multi-pass disassembly separates code from data and generates labels, against a built-in table of the Atari hardware registers.
- Binaries and disk images loaded and inspected — load_rom, rom_info, atr_info, atr_header, load_atr_file, load_atr_boot, list_atr_directory, analyze_boot_sector, sector_dump, search_boot_sector
- ATRs written to: files extracted and injected copy-on-write, images created from scratch, raw sectors written, and a custom layout defined for non-DOS disks — extract_atr_file, inject_atr_file, create_atr, write_atr_sector, write_atr_file, define_filesystem
- 6502 disassembly in listing, ca65, atasm or mac65 format, with analysis generating labels, splitting code from data and emitting segment and procedure directives — disassemble, analyze_disassembly, hex_dump
- Segments defined, listed and cleared by type, and a cc65 linker configuration generated from them — define_segment, remove_segment, list_segments, clear_segments, generate_linker_config
- Analysis — x_ref, find_pattern with wildcards, find_strings, trace_control_flow, probe_data with confidence scoring, generate_callgraph, analyze_coverage, diff_roms
- Symbols and zero page — define_symbol, remove_symbol, lookup_symbol, list_symbols, set_symbols to switch groups on and off, load_labels and save_labels to a sidecar file, annotate_zero_page, show_zero_page_map
- A hardware symbol table of over 200 entries covering GTIA, POKEY, PIA, ANTIC and OS ROM entry points
- Batch work through run_script, plus calculate, hex_to_decimal and decimal_to_hex
.NET SDK 10.0 or newer, on Linux, macOS or Windows. Build with dotnet build, then launch either dotnet run --project AtariHackerMCP or the published executable over stdio.
Build from source — clone the repository and build it, then point your client at the binary
