||2 months ago|
|assets/samples||2 years ago|
|src||2 months ago|
|.gitignore||2 years ago|
|Cargo.lock||2 years ago|
|Cargo.toml||2 years ago|
|LICENSE||2 years ago|
|README.md||2 months ago|
|run||2 years ago|
|run_debug||2 years ago|
Right now, the program works, but the interface is incredibly primitive. See usage for more information.
If you wanna hear how it sounds, you can find a demo here.
git clone https://gitdab.com/LunarLambda/organism.git cd organism cargo install --path .
After installing, you can render Organya files like so:
organism organya_file loops "wav" > output_file
If you omit the third argument (which must be the string
wav), then only raw PCM data will be output.
Alternatively, you can run organism without installing it, by using the included
run script, which always uses wav output:
If you don't specify the number of loops, it defaults to 1.
# Output to wav file ./run organya_file > output.wav # Output to flac file ./run organya_file | flac -sV8fo output.flac - # Play ./run organya_file | aplay -q
Programs that have
in_org, a plugin for Winamp. It has issues with playing drum tracks at low pitches.
Org2XM, which converts Organya files to FastTracker modules. Requires two-step conversion and the original code is pretty outdated. I might build my own some day.
Recording Org Maker or Cave Story in Audacity. Requires lots of manual effort and depends on hardware.
Several aspects of the Organya format and Pixel's original code need to be considered when talking about accuracy.
Org Maker and Cave Story do not verify that Organya files are valid aside from checking the magic number.
This can cause all sorts of mayhem, so Organism will validate all files beforehand. (TODO!)
Pixel's engine is built on Microsoft's (now deprecated) DirectSound APIs.
All playback happens through DirectSound buffers, and frequency, volume, and pan controls can all be emulated very easily.
Timing is done using Windows Multimedia Timers.
This means that playback speed is never 100% consistent, though fluctuations are minimal.
Since Organism does not provide real-time playback, timing is done by counting the number of processed samples.
While Org Maker and Org View use regular Wave files for the percussion samples, Cave Story uses Pixel's own format, PixTone, which will require its own emulation.
PixTone support may be added in the future.
Alongside my own experimentation with existing tools, these projects have provided a lot of insight into how Organya works.
Org Maker 2, which was built using the original code by Pixel, which is largely still intact.
Cave Story Engine 2, which aims to create a bit-perfect decompilation of the original game.
Organism is released under the MPL-2.0 license. See LICENSE for more information.