.obj files are not DEFLATE

This commit is contained in:
2018-03-20 00:32:39 +00:00
parent 6eddefda38
commit f1261d1e2f

View File

@@ -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