Disassembly encoders are not exercised by the byte-identical ROM build (text DTE, LZSS) #4

Open
opened 2026-10-28 22:48:00 +00:00 by Gatchan · 0 comments
Owner

make rip writes the ROM's original compressed/encoded blobs into build/<lang>/; they are newer than the editable sources, so make never re-encodes them. Measured:

  • LZSS: 18 of 666 blobs re-encode byte-exact (all 666 decompress identically).
  • EN dialogue: encode_text.py on assets/text/dlg.en.txt gives 119 044 bytes vs 126 907 in the ROM (different DTE choices); first difference at byte 6.

Consequence for our pack (decision D6): unedited strings keep Square's bytes; edited strings are re-encoded by our encoder and all pointer tables are rebuilt. Our round-trip tests must compare decoded content and keep original bytes for unedited data.

`make rip` writes the ROM's original compressed/encoded blobs into `build/<lang>/`; they are newer than the editable sources, so `make` never re-encodes them. Measured: - LZSS: 18 of 666 blobs re-encode byte-exact (all 666 decompress identically). - EN dialogue: `encode_text.py` on `assets/text/dlg.en.txt` gives 119 044 bytes vs 126 907 in the ROM (different DTE choices); first difference at byte 6. Consequence for our pack (decision D6): unedited strings keep Square's bytes; edited strings are re-encoded by our encoder and all pointer tables are rebuilt. Our round-trip tests must compare decoded content and keep original bytes for unedited data.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Gatchan/FF6Portage#4
No description provided.