Commit graph

3 commits

Author SHA1 Message Date
Ilia Sharin
8133b3a6cb More content added 2026-04-26 14:46:18 -04:00
Ilia Sharin
aeaea88d75 03/exe_crunchers: expand architecture with full decrunch lifecycle
Replaced the brief 'key insight' paragraph with a comprehensive
two-phase execution model covering:
- Phase 1 (OS): what LoadSeg sees, how wrapper relocations are applied
- Phase 2 (stub): all 6 reconstruction steps with code examples:
  1. Metadata block preserving original hunk count/sizes/memflags
  2. Chip vs Fast RAM allocation (with IMPORTANT warning about
     DMA-invisible Fast RAM for bitmap/audio data)
  3. Decompression into separately allocated hunks
  4. Relocation regeneration from embedded tables
  5. BPTR segment chain construction (with C code)
  6. Wrapper cleanup and JMP to original entry
- The segment list handoff problem (double-free hazard) and the
  three solutions: pr_SegList patching, chain linking, in-place
2026-04-23 18:50:46 -04:00
Ilia Sharin
4593ff135a 03: new article — exe_crunchers.md (executable packers deep dive)
New comprehensive article on Amiga executable crunchers covering:
- Architecture: how crunched files remain valid HUNK executables
- Major crunchers: PowerPacker, Imploder, Shrinkler, ByteKiller,
  Titanics, CrunchMania, PackFire, XPK framework
- PP20 format: efficiency table, decrunch info, decrunch colours
- Shrinkler internals: 1536-context adaptive probability model,
  range coder, parity context flag, stack-based context table,
  actual 68000 decompressor source from GitHub
- LZ77/LZSS vs context-modelling+range-coding algorithms
- Relocation handling: 3 strategies (compressed relocs, delta
  table, merged single-hunk)
- Memory layout diagrams: before/during/after decompression
- Detection: magic signatures table, fake header warning,
  Python scanner script
- Tools: xfdmaster modular architecture, Ancient C++ library,
  debugger-based extraction (last resort)
- FPGA/emulation impact: timing, self-modifying code, cache

Based on web research: verified PP20 format spec, Shrinkler
source (askeksa/Shrinkler), Ancient library (temisu/ancient),
xfdmaster slave module architecture.

Updated indexes: 03/README.md, root README.md
2026-04-23 18:41:07 -04:00