.obj files are not DEFLATE
This commit is contained in:
@@ -177,28 +177,36 @@ display(parsed.sprites[0], 8, 0)
|
|||||||
# Step through every byte of each sprite so we manage if some header is present
|
# Step through every byte of each sprite so we manage if some header is present
|
||||||
#
|
#
|
||||||
# Tried so far, with no success:
|
# Tried so far, with no success:
|
||||||
|
# * DEFLATE / ZLIB
|
||||||
# * LZO
|
# * LZO
|
||||||
|
# * LZOP
|
||||||
|
|
||||||
|
|
||||||
puts "\nAttempting decompression..."
|
puts "\nAttempting decompression..."
|
||||||
|
|
||||||
require 'lzo'
|
require 'zlib'
|
||||||
|
|
||||||
parsed.sprites.each_with_index do |sprite, i|
|
parsed.sprites.each_with_index do |sprite, i|
|
||||||
print "Sprite %02d..."%i
|
print "Sprite %02d..."%i
|
||||||
|
|
||||||
(0...sprite.size).each do |offset|
|
(0...64).each do |offset|
|
||||||
block = sprite.byteslice(offset, sprite.size-offset)
|
block = sprite.byteslice(offset, sprite.size-offset)
|
||||||
|
|
||||||
begin
|
begin
|
||||||
decompressed = LZO.decompress(block)
|
inflater = Zlib::Inflate.new(-32)
|
||||||
|
decompressed = ""
|
||||||
|
decompressed << inflater.inflate(block)
|
||||||
|
raise "0 bytes" if decompressed.size == 0
|
||||||
|
|
||||||
puts "succeeded! sprite=#{i} offset=#{offset} decompressed_size=#{decompressed.size}"
|
puts "succeeded! sprite=#{i} offset=#{offset} decompressed_size=#{decompressed.size}"
|
||||||
puts "data:"
|
puts "data:"
|
||||||
puts decompressed.inspect
|
puts decompressed.inspect
|
||||||
exit 0
|
exit 0
|
||||||
rescue => err
|
rescue => err
|
||||||
|
puts "failed: #{err}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
puts "failed"
|
#puts "failed"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user