From f1261d1e2f76924690984797ec2f39b42dbc61cc Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Tue, 20 Mar 2018 00:32:39 +0000 Subject: [PATCH] .obj files are not DEFLATE --- scripts/try-uncompress | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/try-uncompress b/scripts/try-uncompress index 8ea30f1..1cd8f5e 100755 --- a/scripts/try-uncompress +++ b/scripts/try-uncompress @@ -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 # # Tried so far, with no success: +# * DEFLATE / ZLIB # * LZO +# * LZOP + puts "\nAttempting decompression..." -require 'lzo' +require 'zlib' parsed.sprites.each_with_index do |sprite, i| print "Sprite %02d..."%i - (0...sprite.size).each do |offset| + (0...64).each do |offset| block = sprite.byteslice(offset, sprite.size-offset) 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 "data:" puts decompressed.inspect exit 0 rescue => err + puts "failed: #{err}" end end - puts "failed" + #puts "failed" end