Personally, I think adding LZ will get the job done. I've seen it done in several SNES games with good results.
Won't work. The SNES DQ games use huffman for a reason. The script pointer table holds a pointer to a block of 8 or 16 (depending on the game) pointers, and the pointer holds the bit index as well. The game decompresses exactly that many text boxes (1 - 8/16) to get the decompressed text.
See the problem? LZ is a streaming compression, the current byte relies upon the decompression of the previous bytes. DQ does not decompress the entire script into RAM, so it has to use a compression algorithm that you can jump into at any point to decode.
The reason you see LZSS in so many SNES games is because they mostly use scripting systems and such that have blocks for each "area", "scenario" or "chapter." It's much easier to stick those small blocks into the top of the 128kb SNES WRAM. A 300kb game script wouldn't fit so easily.
Personally, I think DaMarsMan is underestimating the compression power of combined huffman and dictionary. 70% shouldn't be too hard with that, but sadly I don't have the time to help.
For what it's worth, the game plays fine in bsnes. I don't know if that's a sign that it's using the correct 'cart mapping' or not.
No, not at all. SNES emulators use hacked up mappers designed to get optimal compatibility, because the people dumping carts don't agree upon the importance of also recording the cartridge PCBs to get correct mapping. It'd take them five minutes a cart, but they won't do it, simply because we're really good at bullshitting things now.
And I can't afford to purchase 5,000 carts to do it myself :(