Skip to content

docs(spec): add virtual segment incbin carve-out specification - #2

Merged
mikolas merged 5 commits into
masterfrom
feat/virtual-carves
Oct 26, 2026
Merged

mikolas merged 5 commits into
masterfrom
feat/virtual-carves

Conversation

@mikolas

@mikolas mikolas commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Summary

Adds VIRTUAL_SEGMENTS_SPEC.md defining the unified virtual segment carve-out workflow using existing hunks primitives (db.CellIncbin, Label, and BlockComment):

  • Disassembly Editor Range Carve-Out (v + K): Mark start address with v, navigate to end address (j/k, g, /, ←/→), and press K to prompt for a label/stem via ModalCarveName and carve [Start, End) into a single incbin row.
  • Asset Viewer Carve-Out (K in ModalBitplane): Pre-fills [Start, End) from st.ByteSpan(), opens ModalCarveName with default gfx_<W>x<H>x<BPU>[i], attaches bitmap geometry/register summary as a BlockComment above the label, and invokes CarveRange (flat binaries only).
  • Undo / Uncarve (u / U): Includes project.Carve restoration on undo and cleans up auto-generated labels/block comments on uncarve.

… ripper

- Unify CarveRange/UncarveAtCursor/Undo under SQLite transactions with full cell, comment, label, and project.json Carves restoration (including straddling cells and overlapping re-carves)
- Wire Bitplane Viewer 'K' to ModalCarveName with '; Bitmap:' metadata block comments (geometry, BPLCON0/modulos, VIS/SYNC masks, plane pointers, palette/invert/bias) and full round-trip on 'B'
- Add TUI Music Ripper modal ('M' -> ModalMusicRipper) with j/k/PgUp/PgDn/Home/End navigation, Enter jump, 'w' module export, and 'K' incbin carve
- Update MANUAL.md, README.md, ARCHITECTURE.md, TESTING.md, and VIRTUAL_SEGMENTS_SPEC.md
@mikolas
mikolas force-pushed the feat/virtual-carves branch from 0b82921 to cbe6a4a Compare October 25, 2026 21:02
@mikolas
mikolas merged commit 324b621 into master Oct 26, 2026
8 checks passed
@mikolas
mikolas deleted the feat/virtual-carves branch October 26, 2026 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant