diff --git a/Makefile b/Makefile index 1df74fef..23d4d105 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ endif DEFINES += NO_ERRNO_H=1 NO_GZIP=1 -COMPRESS ?= yay0 +COMPRESS ?= rnc1 $(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp)) ifeq ($(COMPRESS),gzip) DEFINES += GZIP=1 diff --git a/README.md b/README.md index 654622a6..6a93e258 100644 --- a/README.md +++ b/README.md @@ -103,21 +103,29 @@ The repository supports targeting the iQue Player in addition to the N64. The iQ To target iQue, run make with the ``CONSOLE=bb`` argument. ## Compression -The repository supports using DEFLATE compression instead of Nintendo's Yay0. This boasts a better compression ratio, but at a slight cost to load times. + +The repo also supports RNC (Rob Northen Compression). RNC has two methods. + +Method 1 is designed to compress as small as possible, while method 2 is designed so that decompression is as fast as possible. + +Method 1 is the current default, and is the best all-rounder in terms of speed and ratio. + +Both methods are fast. Method 1 has better compression than 2, so I suggest using method 1 if using RNC. + +To switch to RNC, run make with either ``COMPRESS=rnc1`` or ``COMPRESS=rnc2``, depending on preferred method. + +The repository also supports using DEFLATE compression. This boasts a better compression ratio, but at a slight cost to load times. + On average I'd estimate that the bottleneck on decompression is about 1-2 seconds. To switch to gzip, run make with the ``COMPRESS=gzip`` argument. The repo also supports gziping with ``libdeflate-gzip``. This compresses at a slightly better ratio than standard ``gzip``, with no real downside from a decompression standpoint. -To use ``libdeflate-gzip``, first clone the [repo](https://github.com/ebiggers/libdeflate), then make and make install it. + +To use ``libdeflate-gzip``, first clone the [repo](https://github.com/ebiggers/libdeflate), then `make` and `make install` it. + Then run make for sm64 with ``GZIPVER=libdef`` in addition to ``COMPRESS=gzip`` -The repo also supports RNC (Rob Northen Compression). RNC has two methods. -Method 1 is designed to compress as small as possible, while method 2 is designed so that decompression is as fast as possible. - -Both methods are fast. Method 1 has better compression than 2, so I suggest using method 1 if using RNC. -To switch to RNC, run make with either ``COMPRESS=rnc1`` or ``COMPRESS=rnc2``, depending on preferred method. - The repo also supports building a ROM with no compression. This is not recommended as it increases ROM size significantly, with little point other than load times decreased to almost nothing. To switch to no compression, run make with the ``COMPRESS=uncomp`` argument.