ewrogers/megadev-skills

megadev-compression

Choose and validate compression for Megadev Sega CD assets, comparing sector-rounded disc size, decode time and RAM, with safe Kosinski decoding and loading/preloading integration.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/ewrogers/megadev-skills --skill megadev-compression

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Megadev compression

Choose compression per asset and loading path. A smaller file can still cost more sectors, more working RAM or more time before an asset is usable. Preserve the game's asset formats, visual design and loading behavior.

support, a deterministic Kosinski encoder and input/output validation.

staging, peak RAM, Sub decoding and preloading trade-offs.

execution, timing limits, ARM64/AMD64 comparison and PAL/NTSC auditions.

Use ewrogers/megadev:latest; inspect its actual decoder and ABI before teaching calls. The audited SDK revision and primary links are in the references. Do not port SGDK's resource compiler, unpack calls or codec names as Megadev APIs.

Essential contracts:

  • Bound source consumption, decoded length and history references before

calling a decoder that has no bounds arguments. Keep that validated source immutable until decoding completes. Validate the decoded asset before use.

  • Round CD reads to 2048-byte sectors and reserve that full writable range.

Keep encoded input and output disjoint, with exclusive CPU ownership.

  • A request acknowledgement, read completion, decode completion and visible

upload completion are different events. Cancellation/timeouts do not free buffers from a live reader or decoder.

  • Keep decoding out of VBlank/interrupt handlers. Main/Sub separation can keep

gameplay responsive, but does not make decode cost or shared-bus work free.

  • Report stored bytes, sectors, decoded bytes, active buffer usage and reserved

capacity separately. Compression does not shrink the final VRAM requirements.

The self-contained Compression Lab compares raw versus Kosinski artwork and an explicitly labeled random-noise sample. scripts/create_project.py generates a new project without replacing files. Its encoder, validator, measurement helpers and protocol are application code; Kos_Decomp is the actual SDK assembly decoder. Both raw and packed versions are included for comparison, not as a recommended shipping layout.

Reuse the game's existing reader, clock, memory leases and renderer. megadev-streaming owns loading mechanics, megadev-memory covers lifetimes, and megadev-performance covers broader profiling. This skill adds compression choice, validation and decode integration; it prescribes no art style or game flow.

Related by task

from this repository

More skills

All skills