http://jiggawatt.org/badc0de/lzsscube.zip
I wrote a small LZSS decoder in SH2 assembly that lets you run compressed binaries on your Saturn. It basically works like this:
* Build your binary as normal, but with an altered base address (I use 06008000, which works fine as long as the compressed binary is <16kB).
* Compress the binary with an LZSS encoder (included in the zip above).
* Assemble and link the decoder code with the compressed binary incbin'd.
* As you run the resulting binary from 06004000 the decoder will recreate your original binary in RAM and jump to it.
Note that the example uses gouraud shading, which doesn't work properly in yabause. It does work on a real Saturn though, as you can see here (minus all the artifacts that came from photographing a TV screen):
I wrote a small LZSS decoder in SH2 assembly that lets you run compressed binaries on your Saturn. It basically works like this:
* Build your binary as normal, but with an altered base address (I use 06008000, which works fine as long as the compressed binary is <16kB).
* Compress the binary with an LZSS encoder (included in the zip above).
* Assemble and link the decoder code with the compressed binary incbin'd.
* As you run the resulting binary from 06004000 the decoder will recreate your original binary in RAM and jump to it.
Note that the example uses gouraud shading, which doesn't work properly in yabause. It does work on a real Saturn though, as you can see here (minus all the artifacts that came from photographing a TV screen):