Thanks! flate2 is listed as a dependency in the crate - you should try seeing if it works when you use gingerlib in another program ("cargo new" to create a new project, "cargo add gingerlib" in the project's folder to add gingerlib. See rainbowdream or gingerlib's documentation to find out how to use the library)trob2026 wrote: ↑Sun Apr 26, 2026 12:02 pm error[E0433]: cannot find module or crate `flate2` in this scope
--> lib.rs:98:31
|
98 | let mut decoder = flate2::read::ZlibDecoder::new(tags[3].data.as_slice());
| ^^^^^^ use of unresolved module or unlinked crate `flate2`
|
= help: you might be missing a crate named `flate2`
error[E0601]: `main` function not found in crate `lib`
--> lib.rs:195:2
|
195 | }
| ^ consider adding a `main` function to `lib.rs`
My Audiosurf/Quest3D reverse engineering journey
-
m1nt_
- Posts: 11
- Joined: Thu Sep 14, 2023 4:32 pm
Re: My Audiosurf/Quest3D reverse engineering journey
-
trob2026
- Posts: 13
- Joined: Fri Apr 24, 2026 3:13 pm
Re: My Audiosurf/Quest3D reverse engineering journey
I did try adding gingerlib to rainbowdream, and it worked. Now, what apps are you talking about in terms of gingerlib?m1nt_ wrote: ↑Sun Apr 26, 2026 12:12 pm Thanks! flate2 is listed as a dependency in the crate - you should try seeing if it works when you use gingerlib in another program ("cargo new" to create a new project, "cargo add gingerlib" in the project's folder to add gingerlib. See rainbowdream or gingerlib's documentation to find out how to use the library)
-
m1nt_
- Posts: 11
- Joined: Thu Sep 14, 2023 4:32 pm
Re: My Audiosurf/Quest3D reverse engineering journey
gingerlib just provides a generic way to read and write data to/from CGR files - it's pretty much up to you what you do with that
The functionality is kind of basic, but should be enough to scan files for interesting data. A bit of programming knowledge will be required to do this kind of stuff, so if you're not familiar with it, I'd recommend picking up some Rust basics first (or, if you're not familiar with programming in general, any other programming language is fine at first, so you can learn the fundamentals, since programming is a very good skill to have for this stuff).
The functionality is kind of basic, but should be enough to scan files for interesting data. A bit of programming knowledge will be required to do this kind of stuff, so if you're not familiar with it, I'd recommend picking up some Rust basics first (or, if you're not familiar with programming in general, any other programming language is fine at first, so you can learn the fundamentals, since programming is a very good skill to have for this stuff).
-
trob2026
- Posts: 13
- Joined: Fri Apr 24, 2026 3:13 pm
Re: My Audiosurf/Quest3D reverse engineering journey
I've learned a little bit.m1nt_ wrote: ↑Sun Apr 26, 2026 12:27 pm gingerlib just provides a generic way to read and write data to/from CGR files - it's pretty much up to you what you do with that
The functionality is kind of basic, but should be enough to scan files for interesting data. A bit of programming knowledge will be required to do this kind of stuff, so if you're not familiar with it, I'd recommend picking up some Rust basics first (or, if you're not familiar with programming in general, any other programming language is fine at first, so you can learn the fundamentals, since programming is a very good skill to have for this stuff).
-
trob2026
- Posts: 13
- Joined: Fri Apr 24, 2026 3:13 pm
-
m1nt_
- Posts: 11
- Joined: Thu Sep 14, 2023 4:32 pm
Re: My Audiosurf/Quest3D reverse engineering journey
CranberryCity doesn't work, unfortunately. Never got around to fixing that since I'm busy with a bunch of other things nowadays
-
trob2026
- Posts: 13
- Joined: Fri Apr 24, 2026 3:13 pm
Re: My Audiosurf/Quest3D reverse engineering journey
Oh well. Now, I tried decompressing the MoneyFloaterCommander file with rainbowdreams, it didn't work because there's no ash file.
-
trob2026
- Posts: 13
- Joined: Fri Apr 24, 2026 3:13 pm
Re: My Audiosurf/Quest3D reverse engineering journey
New day, still trying to figure out how to decompress using GingerLib.
-
m1nt_
- Posts: 11
- Joined: Thu Sep 14, 2023 4:32 pm
Re: My Audiosurf/Quest3D reverse engineering journey
Hello, RainbowDream is specifically for making custom Audiosurf Radio songs. You can look at the code as reference for how to use GingerLib in general, but RainbowDream itself is only for that one specific purpose.
This particular function from GingerLib may be of interest: https://docs.rs/gingerlib/latest/ginger ... _from_file
-
trob2026
- Posts: 13
- Joined: Fri Apr 24, 2026 3:13 pm
Re: My Audiosurf/Quest3D reverse engineering journey
What Rust applets can decompress the files with GingerLib?m1nt_ wrote: ↑Wed Apr 29, 2026 5:47 pm Hello, RainbowDream is specifically for making custom Audiosurf Radio songs. You can look at the code as reference for how to use GingerLib in general, but RainbowDream itself is only for that one specific purpose.
This particular function from GingerLib may be of interest: https://docs.rs/gingerlib/latest/ginger ... _from_file