aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxpress/README.md
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2023-01-23 09:36:22 +0100
committerspicyjpeg <thatspicyjpeg@gmail.com>2023-01-23 09:36:22 +0100
commit09f321e37fc187affa664d32e36e32c0533a7e8e (patch)
tree27f846c194d92a9f4f8e3daea4ff2317e3e66894 /libpsn00b/psxpress/README.md
parenta21e949c9aea98cb4b3feee48bb98579bbdfba70 (diff)
downloadpsn00bsdk-09f321e37fc187affa664d32e36e32c0533a7e8e.tar.gz
Add BS v3 decoding, fix MDEC API and strvideo example
Diffstat (limited to 'libpsn00b/psxpress/README.md')
-rw-r--r--libpsn00b/psxpress/README.md29
1 files changed, 18 insertions, 11 deletions
diff --git a/libpsn00b/psxpress/README.md b/libpsn00b/psxpress/README.md
index a894874..df18ec5 100644
--- a/libpsn00b/psxpress/README.md
+++ b/libpsn00b/psxpress/README.md
@@ -1,14 +1,19 @@
# PSn00bSDK MDEC library
-This is a fully open source reimplementation of the official SDK's "data
+This is a fully original reimplementation of the official SDK's "data
compression" library. This library is made up of two parts, the MDEC API and
functions to decompress Huffman-encoded bitstreams (.BS files, or frames in
-.STR files) into data to be fed to the MDEC. FMV playback is not part of this
-library (nor the official one) per se, but can implemented by using these APIs
-alongside some code to stream data from the CD drive.
+.STR files) into data to be fed to the MDEC. Two different implementations of
+the latter are provided, one using the GTE and scratchpad region and an older
+one using a large lookup table in main RAM.
-**Currently only version 1 and 2 bitstreams are supported**.
+FMV playback is not part of this library per se, but can implemented using the
+APIs defined here alongside some code to stream data from the CD drive.
+
+Currently bitstream versions 1, 2 and 3 are supported. Version 0 and .IKI
+bitstreams are not supported, but no encoder is publicly available for those
+anyway.
## MDEC API
@@ -26,14 +31,16 @@ The following functions are currently provided:
- `DecDCTvlcStart()`, `DecDCTvlcContinue()`: a decompressor implementation that
uses a small (<1 KB) lookup table and leverages the GTE, written in assembly.
- `DecDCTvlcCopyTable()` can optionally be called to temporarily move the table
- to the scratchpad region to improve decompression speed.
-- `DecDCTvlcStart2()`, `DecDCTvlcContinue2()`: a different implementation using
+ `DecDCTvlcCopyTableV2()` or `DecDCTvlcCopyTableV3()` may optionally be called
+ to temporarily move the table to the scratchpad region in order to boost
+ decompression speed.
+- `DecDCTvlcStart2()`, `DecDCTvlcContinue2()`: an older implementation using
a large (34 KB) lookup table in main RAM, written in C. The table must be
- decompressed ahead of time using `DecDCTvlcBuild()`, but can be deallocated
- when no longer needed.
+ decompressed ahead of time manually using `DecDCTvlcBuild()`, but can be
+ deallocated when no longer needed. **This implementation does not support**
+ **version 3 bitstreams**.
- `DecDCTvlc()`, `DecDCTvlc2()`: wrappers around the functions listed above,
- for compatibility with the Sony SDK. Using them is not recommended.
+ for compatibility with the Sony SDK.
## SPU ADPCM encoding API