== 1. read-only export of /ct_jp.sfc
ExportInsns65816.java> ExportInsns65816: ct_jp.sfc instructions 119871 (overlay 6525, in functions 119871), functions 3002  
ExportMarkup65816.java> ExportMarkup65816: ct_jp.sfc (65816:LE:24:snes): functions 3002, labels 566, comments 824, data 305, equates 20, bookmarks 0, user refs 4202, flow overrides 0, types 130 -> /mnt/work/digitalarch/ghidra-65816/migration/ct/out/markup_jp.json + /mnt/work/digitalarch/ghidra-65816/migration/ct/out/markup_jp.gdt  
== 2. context
overlay ov_7e3000_c3scenes: bytes identical to module_jp_7e3000.bin
dbrd sources: --dbrd /mnt/work/digitalarch/games/Chrono Trigger/tools/out/mod_jp_dbrd.txt --dbrd /mnt/work/digitalarch/games/Chrono Trigger/tools/out/sys_jp_dbrd.txt
runtime sources: --rt /mnt/work/digitalarch/games/Chrono Trigger/tools/out/rt_jp_d_dbr.tsv --rt /mnt/work/digitalarch/games/Chrono Trigger/tools/out/rt_jp_raw_wram.tsv
instructions 119871 (overlay 6525), runs 12747, context ranges 4632
  D-dependent operands known                       19433
  D-dependent operands unknown                     1750
  DBR-dependent operands known                     28479
  DBR-dependent operands unknown                   2595
  ctxfix applied                                   8
  source model                                     74634
  source none                                      343
  source runtime                                   44894
== 3. import /ct_jp_65816.sfc
Snes65816Map.java> Snes65816Map: hirom, 4194304 bytes, header map byte $31, SRAM 8 KB  
Snes65816Map.java> Snes65816Map: bank-0 mirror reads identical to ROM = true  
OverlayImage65816.java> OverlayImage65816: created ov_7e3000_c3scenes at ov_7e3000_c3scenes::7e3000 len 33943  
ApplyRuns65816.java> ApplyRuns65816: context ranges set 4632/4632; runs disassembled 12747, already present 0, blocked 0, tiling failures 0; instructions 0 -> 119871  
ApplyRuns65816.java> ApplyRuns65816: DBR/D context verified on 119871 instructions, mismatches 0  
ImportMarkup65816.java> ImportMarkup65816: source ct_jp.sfc (65816:LE:24:snes), register translation ghidra-snes -> ghidra-65816  
ImportMarkup65816.java> ImportMarkup65816: types resolved 133  
ImportMarkup65816.java> ImportMarkup65816: functions created 3002 (exact body 3002, flow body 0), renamed 0, calling conventions 0, prototypes 651, thunks 58  
ImportMarkup65816.java> ImportMarkup65816: labels 369  
ImportMarkup65816.java> ImportMarkup65816: data 305  
ImportMarkup65816.java> ImportMarkup65816: comments 824  
ImportMarkup65816.java> ImportMarkup65816: equate references 30  
ImportMarkup65816.java> ImportMarkup65816: bookmarks 0  
ImportMarkup65816.java> ImportMarkup65816: user references 4202  
ImportMarkup65816.java> ImportMarkup65816: flow overrides 0  
ImportMarkup65816.java> ImportMarkup65816: skipped 197 x label: already present  
ImportMarkup65816.java> ImportMarkup65816: 9441 applied, 0 failed  
FunctionSnapshot.java> saved 3002 functions to /mnt/work/digitalarch/ghidra-65816/migration/ct/out/new_jp_snapshot_replayed.tsv  
TailCalls65816.java> TailCalls65816: new function at c20000 (JML target from c0006e)  
TailCalls65816.java> TailCalls65816: new function at c30000 (JML target from c0264b)  
TailCalls65816.java> TailCalls65816: new function at fdfff1 (JML target from c03fe8)  
TailCalls65816.java> TailCalls65816: new function at fdffeb (JML target from c03ff0)  
TailCalls65816.java> TailCalls65816: new function at fdffe8 (JML target from c03ff8)  
TailCalls65816.java> TailCalls65816: new function at fdffe5 (JML target from c03ffc)  
TailCalls65816.java> TailCalls65816: new function at cffbe5 (JML target from c1001f)  
TailCalls65816.java> TailCalls65816: new function at c00000 (JML target from c22505)  
TailCalls65816.java> TailCalls65816: new function at c18000 (JML target from cffbe1)  
TailCalls65816.java> TailCalls65816: new function at c0000e (JML target from fdc0d3)  
TailCalls65816.java> TailCalls65816: long-jump targets made functions 10  
TailCalls65816.java> TailCalls65816: CALL_RETURN set 281, already 0, cleared 0; functions 3002 -> 3014, instructions 119871 -> 119871  
CtFixOrphans.java> CtFixOrphans: orphan bytes 414 -> 0; functions 3014 -> 3018  
JumpTableOverrides65816.java> JumpTableOverrides65816: overrides 56, computed jumps with no known destinations 6, not in a function 0  
SetCallConventions65816.java> SetCallConventions65816: set {__jsl=240, __jsr=2627, __rti=15}, user-set kept 48, RTS+RTL mixed (left) 0  
Analyzed65816.java> Analyzed65816: analyzers switched off 17 (all)  
FunctionSnapshot.java> saved 3018 functions to /mnt/work/digitalarch/ghidra-65816/migration/ct/out/new_jp_snapshot.tsv  
ExportInsns65816.java> ExportInsns65816: ct_jp_65816.sfc instructions 119871 (overlay 6525, in functions 119871), functions 3018  
ExportMarkup65816.java> ExportMarkup65816: ct_jp_65816.sfc (65816:LE:24:snes-hirom): functions 3018, labels 960, comments 824, data 305, equates 20, bookmarks 0, user refs 4202, flow overrides 281, types 130 -> /mnt/work/digitalarch/ghidra-65816/migration/ct/out/markup_jp_new.json + /mnt/work/digitalarch/ghidra-65816/migration/ct/out/markup_jp_new.gdt  
== 4. checks
old 119871, new 119871, new-only 0 (overlay 6525)
  context changed by ctxfix (intended)         8 
  instructions identical
comments by kind old {'EOL': 1, 'PLATE': 823} new {'EOL': 1, 'PLATE': 823}
types old 130 new 130; user references old 4202 new 4202; flow overrides old 0 new 281; prototypes (non-default) old 651
old: functions 3002 labels 566 comments 824 data 305 equates 20 | new: functions 3018 labels 960 comments 824 data 305
markup check: everything in the old program is present in the new one
done: new program /ct_jp_65816.sfc in /tmp/claude-1000/ctcopy3/Chrono Trigger.gpr (old /ct_jp.sfc untouched).  Log: /mnt/work/digitalarch/ghidra-65816/migration/ct/out/migrate_jp.log
