[cmd/extract-imgs] Add some padding checks

Added some checks and warnings if the palettes didn't immediately follow
attribute data and if there were any non-zero bytes after the palette
data.  The padding at the end of the file/segment seems to be ignored by
the engine anyway.
This commit is contained in:
Zorchenhimer 2025-11-09 12:13:35 -05:00
parent a48e731794
commit 2d75d54f6b
Signed by: Zorchenhimer
GPG Key ID: 70A1AB767AAB9C20
1 changed files with 20 additions and 0 deletions

View File

@ -369,6 +369,26 @@ func ReadData(raw []byte, tiles []*nesimg.Tile, isSprites bool) ([]*Layer, error
layers = append(layers, l) layers = append(layers, l)
} }
if offset != int(dataHeader.PaletteOffset) {
fmt.Printf("[[ offset != dataHeader.PaletteOffset: %04X != %04X ]]\n", offset, dataHeader.PaletteOffset)
}
// Looks like the data after the palettes is just padding? If there's a non-zero
// byte in there, print a warning.
palend := int(dataHeader.PaletteOffset) + (8*4)
if palend < len(raw) {
nonzero := false
for i := palend; i < len(raw); i++ {
if raw[i] != 0x00 {
nonzero = true
break
}
}
if nonzero {
fmt.Printf("[[ %d bytes of extra data ]]\n", len(raw) - palend)
}
}
return layers, nil return layers, nil
} }