[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:
parent
a48e731794
commit
2d75d54f6b
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue