If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
EarthBound/ASM/Decompression Routine: Difference between revisions
Jump to navigation
Jump to search
(→Libraries/Tools: Add all 3 compression tools I could find.) |
(→Subroutine Inputs: Add note about lack of size parameters.) |
||
Line 6: | Line 6: | ||
* <tt>0E-11</tt> = Compressed data start (long pointer) | * <tt>0E-11</tt> = Compressed data start (long pointer) | ||
* <tt>12-15</tt> = Decompressed output WRAM location (long pointer) | * <tt>12-15</tt> = Decompressed output WRAM location (long pointer) | ||
Note: There is no input parameter for size of compressed input or length available for decompressed output. The routine will read compressed data until encountering an encoded end, and it is up to the caller to understand the decompressed size of the data to ensure there is enough space at the output location. | |||
==Compression Format== | ==Compression Format== |
Revision as of 20:22, 16 May 2023
This is a sub-page of EarthBound/ASM.
This subroutine takes a section of ROM that is compressed and outputs decompressed data to WRAM.
Subroutine Inputs
- 0E-11 = Compressed data start (long pointer)
- 12-15 = Decompressed output WRAM location (long pointer)
Note: There is no input parameter for size of compressed input or length available for decompressed output. The routine will read compressed data until encountering an encoded end, and it is up to the caller to understand the decompressed size of the data to ensure there is enough space at the output location.
Compression Format
Data is compressed using a hybrid compression scheme common to many HAL Laboratories games of the NES/SNES/GB era.
Libraries/Tools
- exhal/inhal by Devin Acker (Revenant). Decompression and compression tools, generally able to compress data to at least as small of a data size as that found in the EarthBound ROM. As of 2023, used internally by CoilSnake.
- KompreSS by Sukasa. One of the oldest libraries (a .NET DLL), mostly only supporting decompression.
- kirbyLzRle by Griever. Decompression and compression tools, written in Haskell.
This page is rather stubbly and could use some expansion. Are you a bad enough dude to rescue this article? |