Coder Social home page Coder Social logo

cdcrush.net's Introduction

Closed Forever

I am no longer working with C# or Visual Studio. I just can't.
Checkout these Instead:

I think that storing CDImages in cold storage is deprecated, as to why, read the CBAE readme file

CDCRUSH dot NET

Name: CDCRUSH, Highly compress cd-image games
Author: John32B, Project Page and Sources: https://github.com/john32b/cdcrush.net
Language: C# .NET 4.5, Licence: MIT
Version: 1.5 Platform: Windows
Sister Project : cdcrush nodejs

Download

To get the latest version check the releases page here on github.
Available for windows only.

What is it

CDCRUSH LOGO

Cdcrush is a tool that can highly compress CD based games, (PS1, PC-Engine, PC, etc.). Reduces size of data and audio tracks. Ideal for storage/sharing.
Then it can restore a compressed archive back to a CD Image .cue/.bin. Also you can use a lossless audio codec to store/restore a 1:1 ,byte to byte, copy of a CD Image.

๐Ÿ› ๏ธ In Detail:

  • Applies ECM tools to DATA tracks. This removes redundant data (Error Correction/Detection Codes) from the CD sectors. This data can then be reconstructed
  • Encodes CDDA audio tracks with lossy or lossless codecs (Vorbis, Opus, FLAC, TAK)
  • Puts everything into an archive (7zip, FreeArc)
  • Then the process can be reversed and the original .bin/.cue file is reconstructed

Use cases

  • BACKUP a 1:1 copy of CD images for cold storage. If you choose to encode audio tracks with FLAC or TAK, then the restoration will be the same as the source down to the last byte. This method is more efficient than directly compressing a cd image with a data archiver (like 7zip)
  • Highly Compress your personal collection of CD games for storage. You can choose a lossy audio codec to greatly reduce the filesize of some games that feature many audio tracks. The audio will still sound great because modern audio codecs do a decent job at compressing audio.
  • Convert CD images that include multiple audio tracks to .cue/.bin + encoded audio tracks, using an audio codec of your choosing. Some emulators like mednafen support loading these type of .cue files.

๐Ÿ’น Compression comparisons of some games:

Name Raw Size 7-zip 0 CDCRUSH Lossless 1 CDCRUSH Lossy 2
Wipeout XL 680MB 567MB 407MB 72MB
Tomb Raider 505MB 306MB 275MB 169MB
PO'ed 139MB 50MB 39MB 18MB

0: Direct compression of the CD Image with 7zip. Profile : Maximum Compression
1: Audio : TAK , Archive : FreeArc High
2: Audio : Ogg Vorbis 64k , Archive : FreeArc High

Convert to encoded audio/cue Example Converting to encoded audio tracks example

USAGE

๐Ÿ“Ž General Info and Features

  • cdcrush is only compatible with .cue/.bin type CD images. Some programs that allow you to rip your CDs to this format are:
  • When selecting an output folder you will be asked to save a dummy file, that file will not ever be written and the program will select the folder of that file.
  • You can download the release without FFmpeg if you already have it, just be sure to set it up in the settings tab.
  • ๐ŸŒŸ You can see the detailed info of a CD along with the tracks checksum. When restoring a CD, click the Detailed Info button. And for when crushing a CD, the button will become active AFTER the operation is complete.
  • ๐Ÿ“œ Logging. You can click the log button on the bottom right of the window to open the main log. It's an advanced feature, use it in case something goes wrong to get more detailed info.
  • When BACKING UP, cdcrush will use ECM Tools to the data tracks. A small program that removes unnecessary error recovery data, resulting in even smaller archives. (The error data can then be recovered)
  • Audio Codecs Supported : Ogg Vorbis, Ogg Opus, Mp3, FLAC lossless, TAK lossless
  • Archive Types Supported : FreeArc, 7zip, Zip
  • TIPS
    • FreeArc offers the best compression results, for cold storage
    • ZIP is the most compatible for mounting and the fastest to extract.
    • YOU CAN'T restore cd images you have previously converted to encoded audio tracks. You can only restore images you have compressed using the normal backup option.
    • TAK Audio Codec Produces a good compression and is very fast. Try it out

๐Ÿ’ฟ Crushing a CD (Compressing )

Crushing a CD

  • Select an input file .cue. You can drop it in the window or click the [...] button to select one
  • Optionally set an Destination folder, the final archive will be created there, auto-named after the CD title
  • Optionally set a cover image by dropping a .jpg file in the window, or by clicking on the image placeholder
  • Choose an audio codec and bitrate to encode the audio tracks with (if any)
  • You can optionally change the CD Title
  • Compression, Select an the archiver type to use
  • ::star:: Method combo box
    • Normal backup: This will encode all tracks and create a cold storage archive. โ— This is the archive type that can be restored to a full cd image later โ—
    • To cue/bin/encoded audio tracks: This will just encode all audio tracks into separate files and create a new .cue file. Used for loading games with emulators that support this format
    • To cue/bin/encoded audio tracks [ARCHIVE] : Same as above, but will put the files into an archive. Make sure you select the compression settings above.

๐Ÿ”ƒ Restoring a CD

Restoring a CD

  • Select a previously BACKED UP archive .arc .zip .7z to be restored. You can drop it in the window or click the [...] button to select one.
  • Optionally set a Destination Folder, the files will be created there, auto-named after the CD title
  • Create Subfolder - If you tick this, a new folder in destination folder will be created and files will be put there
  • METHOD
    • Restore - This is a normal restore. Will restore an archive back to a full .cue/.bin
    • Restore and Merge - Same as normal restore but will force all tracks of the CD to be merged into a single .bin.
    • Restore to cue/bin/encoded audio tracks - This is the same as you would just convert a cd to this format from the crash menu. Will keep the audio tracks encoded and will restore data tracks. Useful to play on emulators that support .cue with encoded audio.

๐Ÿ”ง Settings tab

Settings tab

Temp Folder : You can set a custom temporary folder for the various background processes like FFmpeg. Useful if you have a RAMDRIVE.
โš ๏ธ WARNING : Make sure the temp folder can hold up to 1.2GB of data !

FFmpeg Path : Point to the location of ffmpeg.exe , it is needed for encoding/decoding the audio tracks. If you have FFmpeg set on the system/user PATH, it will be checked once you clear the custom path.

  • Note: If you download the full package of cdcrush. FFMPEG is included, so don't worry about it.

Max Concurrent Tasks: How many tracks to process at the same time. (For when compressing or restoring with ffmpeg and ecm tools)

โ— CHANGELOG

See CHANGELOG.MD

๐Ÿ“‹ Q&A

Q : Why?
A : I wanted to save space on my hard drive and I think it's a decent way to store CD images, better than just compressing with 7zip or Rar. Also It was a good programming practice.

Q : Does it support games from Sega CD, Jaguar, 3DO, X, Y?
A : Theoretically it should support all valid .cue/.bin files, try it out.

Q : I am worried about the audio quality.
A : Vorbis and Opus can produce very good results even at 96kbps. If you just want to keep the games for personal use it is fine. However if you don't want any compressed audio you can select the FLAC or TAK codecs, which are lossless.

Q: Is storing the entire CD with FLAC/TAK really lossless? I am worried about byte integrity.
A: YES, to the last byte. The filesize and checksums of the restored tracks are the same as the original ones. (data&audio).

Q : Why there are two versions of the program?
A : FFmpeg.exe is a small beast ( around 36 megabytes) and in some cases users already have it on their pc. So I am publishing a version with and a version without it.

NodeJS Version

This project is a continuation of cdcrush nodeJS.

NEW MAY 2019 : The NodeJS version is now FULLY COMPATIBLE with the .Net version. So archives made with one version can be processed by the other.

๐ŸŒ  NodeJS**** version support batches , so you can restore/compress multiple CD with one command.

You can checkout NodeJS version over at NPM : https://www.npmjs.com/package/cdcrush

๐Ÿšฉ Final Notes

  • This project is no longer in development and is currently frozen.
  • The contact information from within the program is wrong, as I had a username change, and the program uses my old name and url. ( I am too lazy to build it again )

cdcrush.net's People

Contributors

john32b avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

slippy2k

cdcrush.net's Issues

More future

add 7z
because for example retroarh, it allows you to open 7z on the fly, without arms (removal / unpacking)

Several images in one archive
This is very effective if there are several little different images - translations, hacks.
In this case, solid archive 7z, lrzip is used.

Request: Expose ffmpeg compression backend

This might be better than a a few-size-fits-all approach. You're already using ffmpeg to convert, so it would be cool if the program just generated a text string that got passed to ffmpeg. It would expose commands like this and allow for user editing.

Some video compression tools already use this approach. It is great for power users, because they can customize the command as much as they want. It also gives the tool more forward-compatibility.

It would be even better if the tool loaded options from a config file for the ffmpeg path. Something like:

[option-flac]
command: ffmpeg -i %1 %1.flac
[option-ogg]
command: ffmpeg -i %1 %1.ogg

Then I could add Opus recipes at different bitrates, for example. :)

Batch Mode

The initial nodejs version of cdcrush supported batch operations. You could just call cdcrush *.arc and it would restore all CD archives.

The code engine is almost ready for this, the only thing I need to do is the user interface part, which is something that I need to figure out.

WILL implement at a later version, as it's very helpful.

Better progress reporting

Currently, progress reporting on the progress bar is based on number of tasks completed / total tasks.
Some tasks can take a while to finish, and also there are more than one task running at the same time,
I need to think of a better way to implement this,

  • More than one progress bar?
  • Estimated Time ?
  • Calculate the progress of each task and calculate that into the main progress so it's smoother ?

Request: Opus Codec

Opus is a modern audio codec with better compression at the same apparent audio quality. 96kbps fared well in HydrogenAudio (audio enthusiast community) tests.

https://www.opus-codec.org/

It's built into ffmpeg as well.

Add support for .tak audio

This is really a suggestion, not an issue, however it may be worth looking at TAK audio in addition to FLAC for lossless audio, as it allows for even better lossless compression than FLAC. There's a CLI version of the compressor available, so parameters should be able to be passed in using a similar method as the other supported codecs are. Here's some information about TAK if you're not familiar with it: https://wiki.hydrogenaud.io/index.php?title=TAK

FLAC Support

It's coming in the next version. Audio Tracks can be stored and restored to an exact byte for byte copy of the original file.

Set default ffmpeg path to the tools directory upon downloading and first run of the program

Since FFMpeg is included with the program (at least with the full copy of it) the default path of ffmpeg.exe should match the folder where the file is put by default. This may make it a little easier for end-users that aren't savvy enough to know where the executable is dropped and will make the program immediately usable right out out of the gates for users who download the full version.

Dropping FreeArc

I chose FreeArc for compressing the archives a few years ago for the npm version of cdcrush, it is an open source archiver and it provided good and fast compression.

However It seems that it's inactive for a long time and the project's homepage is down http://freearc.org. The latest free arc version 0.666 , can't be found from officially anywhere online, neither does the source code.

So I'm going to drop freearc for compressing but not entirely, I'm going to keep it for backwards compatibility, so old archives can still be extracted.

As for what I'm going to be replacing freearc with, I'm guessing 7-zip since it's open source, well documented and supported.

Full Report with CD/tracks information

After compressing/restoring produce a full report of the cd and tracks with info like:
trackLength, sectorSize, md5, pregaps, filesizes, etc

That info would be

  • stored to a file?
  • displayed in a window?

Purpose is to be able to confirm/check CD checksums and infos against online databases like http://redump.org/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.