- The program uses a new output format (ECM2v3).
- This new format allows to add some metadata and multiple images, but is not implemented yet.
- With this new format the streams TOC header can be compressed, so now zlib is used in this header too.
- Now the program disables de redundant FLAG cleanup if cannot be recovered on decoding. Some games copy protections includes wrong redundant FLAG.
- Added a new sector mode to allow to detect data sectors with an undetermined mode (used in copy protections)
- Fixed a segmentation fault problem using the FLAC compressor on some games.
- Now if a CD-ROM image contains any wrong sector MSF (like PSX libcript protection), then MSF cleanup is disabled because the process will not be lossles if not.
- Fixed a bug in lzma compression which makes the program to create bigger files. Was much more notizable in images with a lot of merged CDDA and data sectors (Medievil ECM file was 2gb+, which is much more than the original image).
- If there was an error processing the file, then the output file will be removed (added an option to keep it).
- Added FLAC compression using flaczlib class which helps to make it in a similar way to zlib
- Added FLAC repository as submodule and updated Makefile
- Fixed some memory leaks
- Added lz4 HC compression using a lzlib4 class which helps to make it in a similar way to zlib
- Added lz4 repository as submódule and updated Makefile
- Refactorized analisys, encodong and decoding processes
- Fixed a bug in header write/read
- Fixed LZMA compression on multistream files related with some extra data created by some compressors.
- Added encoding summary
- Added lzma compression to data and audio streams
- Now zlib is a submodule
- Updated Makefile and pipelines
- Added lzma compression with extreme option
- Added XZ compression tool repository as submodule
- Updated specifications document
- Fixed a typo in program version
- Cleaned common.h
- Migrated to github. I have added some workflows to compile the binaries.
- Unified audio and data compressions enum
- Fixed some bugs on audio compression using zlib
- Splitted clean sector function into several functions
- Updated changelog and readme files
- Added zlib compression to audio stream
- Fixed a bug when there are more than one stream with compression enabled
- Little bugfixes
- New ECM file version. This version improves the way the data is stored to allow better random access
- Zlib compression is fully working
- Added a "block size" header to help to the random seek decoder to know how many sectors exists in every block
- Added compression level option to program
- Updated help message
- Fixed a bug in stream change detection
- Changed the manual IN/OUT buffers to C File buffers. The speed is almost the same (6s to 7s), but are much easier to manage.
- I have decided to keep the C style File because was faster in several tests.
- Fixed the streams data. The correct data is now stored (counter, compression and type).
- Streams size is used in decoding (first step to add compression)
- Fixed streams data position. Now it stores the end position in the original file to be used as control.
- Fixed a bug detecting the MODE2 XA sectors which causes bigger files.
- Added the decoding functions. Now the program is able to encode and decode files
- Fixed CRC calculation on encoding
- Added CRC to verify the file integrity after decoding
- Changed some class methods to public because are required in CRC and decoding process
- Added the original progress indicator.
- Now the program also creates an stream information to be used in the future
- The original EOD indicator creates a 5 bytes data. Changed to 0x00 that only uses 1 byte.
- Some fixes
- Because the limitations of the original ECM code for the features I want, I have decided to recreate the whole program. It still based in original ECM code, but a lot of things were changed.
- Renamed to ecmtool and added some arguments. To have two binaries is not required anymore.
- The program autodetects the input format and it will decides automatically if must encode or decode the file.
- Modified Makefile to create a Win64 binary too (cross compile)
- Added automatic pipelines to bitbucket to build the releases automatically
- A new format is created because the new features are not compatible with the old format.
First release based in the original ECM program. For now is not fully working.