gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Coding > How fast is your LZSS decompression?

#177499 - brave_orakio - Thu Jul 12, 2012 1:16 am

I created an LZSS decompressor straight to VRAM and I was wondering how many cycles the ones you guys are using takes up?

Mine currently stands at a slow 20k for a 32x32 4-bits per pixel image. I think I can cut it down to around 13k - 15k but the current build doesn't allow any lower than that I think. This is running the process from ROM and not IWRAM by the way.
_________________
help me

#177500 - Dwedit - Thu Jul 12, 2012 4:55 am

I once made an ultra-fast LZ-style compressor/decompressor that operated on aligned 32-bit words only, but that's not practical for most uses.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."

#177501 - brave_orakio - Thu Jul 12, 2012 6:05 am

Mine is 16-bit aligned by default since I want it to write directly to VRAM.

For a 32-bit aligned LZ compression,wouldn't the compression rate be compromised? My 16-bit version has a compression similar to the 8-bit version(roughly 60% of the original file size) but I can't imagine that being the same for the 32-bit version.
_________________
help me

#177507 - brave_orakio - Fri Jul 13, 2012 1:15 am

I managed to speed it up to 10k cycles for a 32x32 4-bit/pixel image executed from ROM. Is this good or can it go faster with a different process?

edit: As an additional question, how fast is the built in BIOS LZSSdecompress2vram of the GBA for 32x32 sprites? My data format is not compatible with the BIOS version because I changed some things up to make it run a little faster in my custom LZSS decompression process.
_________________
help me

#177526 - FluBBa - Sun Jul 22, 2012 3:24 pm

brave_orakio wrote:
Mine is 16-bit aligned by default since I want it to write directly to VRAM.

Writing to VRAM can be done with 16 or 32bit writes.
_________________
I probably suck, my not is a programmer.

#177527 - brave_orakio - Mon Jul 23, 2012 4:51 am

Yeah, its just that making it 32-bit might compromise the compression rate
_________________
help me