UTTORI ASM · IN DEVELOPMENT
SNES asset formats
Exact PNG graphics and native SNES formats, plus explicit lossy WAVE-to-BRR conversion.
SNES asset conversion is provided by @uttori/asm-assets. The SNES assembler plugin registers these formats for includeAsset; native encode/decode functions remain usable without an assembler or ROM.
| Format | Native output |
|---|---|
snes.tile.2bpp, .3bpp, .4bpp, .8bpp |
Planar 8×8 tiles, 16/24/32/64 bytes each |
snes.tile.mode7 |
Linear 8×8 tiles, 64 bytes each |
snes.palette.bgr555 |
Little-endian CGRAM colors, two bytes each |
snes.tilemap.bg |
16-bit BG entries with tile, palette, priority and flip fields |
snes.tilemap.mode7 |
Mode 7 tile indexes |
snes.brr |
Nine-byte S-DSP blocks |
The short "4bpp" alias is scoped to the SNES target. PNG conversion produces named tiles, palette, tilemap, and composed RGBA preview outputs. Tile bit depth and spatial layout are separate options. Row-major, column-major, and 2×2 block tile traversals are supported; BG screen-block maps have their own layout rules. Colors and indexes must be exactly representable. No quantization, rescaling, or implicit tile deduplication occurs.
Mono PCM8/PCM16 WAVE input converts to snes.brr with explicit lossy audio metadata. BRR bytes do not store playback rate or an external loop address. The converter also returns decoded reviewWav audio for comparison. Native BRR block encode/decode preserves encoded nibbles exactly; that is a separate contract from WAVE-to-BRR sample fidelity.
The Framework table readers in the SNES analysis package still model relative pointer tables, asset boundaries, and sample-directory ranges. They identify ROM structure; they do not import PNG or WAVE and do not register the old ROM codec API.