Mod Archive Forums Mod Archive Forums
Advanced search  


Please note: Your main account will not work here, you must create a forum account to post on the forums.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Malvineous

Pages: [1]
MilkyTracker Bug Reports / Re: Crash when loading .s3m
« on: July 24, 2015, 12:08:35 »
Thanks!  Interesting description of what the problem ended up being.

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: August 26, 2014, 03:53:32 »
Here's what I've found, the list is in chronological order starting with the earliest:

The Sound Barrier: Too old
Composer 669: N/A
RQ Demo 0: Not checked, screenshot suggests music is a ripped .mod
Black Glass: Uses an early incompatible version of CDFM
Yet Another Renaissance Demo: Uses same early version of CDFM
Black Glass 2: Two CDFM songs, included in link below
Amnesia Music Player: N/A
Amnesia: Files already posted
Renaissance 93: No music
Daretro: One SB CDFM song, included below.  Also has a GUS song but the samples aren't stored with it like in Zone 66.  Maybe it shares the SB samples?  The length fields for each sample are certainly similar.
Muzik File: Three SB CDFM songs, included below. (I recognise some of the samples in these songs from the Zone 66 music)
DoWhackaDo (with SPD): .exe is compressed, can't find any songs in DOSBox memory dump
Multitracker Module Editor: N/A
nothing on: Music files seem to be in a variant of .mtm, ModPlug accepts them but doesn't play them properly
Epidemic (with iCE): Music files are all .s3m, any ripper can extract these

Here are the original CDFM songs plus conversions to S3M:

If anyone is interested I have starting writing a ripping utility as I couldn't find a good one that works under Linux, and I miss the old "Ripper 5" from my DOS days.  It's nowhere near as functional as Ripper 5 was, however it does support ripping CDFM files :-)  In a homage to Ripper 5, I have called it Ripper6 and the code is up on github.

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: August 25, 2014, 01:29:16 »
Oh wow I had no idea they used this format with other demos too!  I downloaded Blackglass 2 and it comes with the .670 files already extracted, and they play fine straight away!

I'll work my way through the list here and see what I can find, but if there are any others that use this music format let me know!

I'll convert everything I can find and post a link here when I'm done.

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: August 21, 2014, 03:04:48 »
Thanks!  Glad you like them :-)

I never played beyond the first level in the SB version either, but I did go through a year or so ago and record all the songs from the game itself, and listening to the recording of MG3 and the S3M of it, I can't hear any difference.  The drum loop is out of rhythm even in the game itself.

If you or anyone wants to verify this, make a copy of the game and rename MG3GMUZ.Z66 to M03GMUZ.Z66 and start the game with the /g parameter.  It will load GUS music and play the MG3 song on the main menu (you might need to go into the Options menu so you can listen for long enough without the demo kicking in.)  DOSBox has a GUS enabled by default so if you disable EMS+XMS in the DOSBox config the game will run fine in there.

I'm pretty confident the tempo is right based on the drum loop in M01.  +/- 1BPM and it doesn't sound quite the same as the game.

MilkyTracker Bug Reports / [Solved] Crash when loading .s3m
« on: August 20, 2014, 05:36:51 »
Hi all,

I just tried to load the attached .s3m file in MilkyTracker and it crashes every time.  The file was last saved with ScreamTracker 3 running under DOSBox so the file should not be corrupted.

I'm running v0.90.86 under Linux.

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: August 20, 2014, 04:52:09 »
Ok I think I have gotten this as good as done.  The tempo value seems completely unused in the GUS songs, and instead they have a command at the start of each (and every) pattern that sets the speed.

I've converted all those files now, so here's a download for anyone who's interested:

Zone 66 full soundtrack in .s3m format

The Adlib songs only have OPL instruments and will play correctly in AdPlug.  The GUS songs only have sampled instruments and will play correctly in any .s3m player.  The Sound Blaster songs have both OPL and sampled instruments, so most players will be missing half the instruments, except for the small number of players that support both.  Those songs marked as both Adlib and Sound Blaster just have the sampled instruments dropped in Adlib mode, so if you play them with AdPlug then it will ignore notes played with sampled instruments and so you'll hear the song in Adlib mode.

The Amnesia demo also used the same format for its music, so I have ripped and converted those songs too in case anyone is interested:

Amnesia full soundtrack in .s3m format

amnesia5.s3m only has OPL instruments so will be fine in AdPlug, while the others all have OPL and sampled instruments.

I hope these conversions are as close to perfect as is possible, but if you notice any differences (and can give me specific feedback about what's wrong) do let me know.

I did have to modify a couple of files from both sets which had the final pattern used multiple times.  I duplicated this so I could add a loop command to the end of the song, to make it loop correctly.  I've made a note in the instrument names for the songs where I had to do this.  I also noticed that at least one song has some unused patterns in it which is kind of exciting to find!

I hope someone finds these useful :-)  Thanks for all the help in getting me to this point, I really appreciate it!

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: August 08, 2014, 12:08:53 »
Thanks for the tip.  I've looked at the GUS timers but nothing really obvious stood out, however upon closer inspection all GUS files have the same value for the tempo byte (but they still run at different speeds) so I'm wondering whether that byte is not actually tempo - some more investigation is needed I think.

I did however figure out that the volume is not linear but logarithmic, so this tweak now makes the GUS songs sound very close to correct: z66title-gus-beta2.s3m

There are still a few commands I'm unsure of - both of them seem to be delays but I'm not sure how they should be handled (I'm currently ignoring one entirely which can't be right) so I'll post back if I have any luck.  Might still be related to the GUS timers after all, so I'll keep that one in mind.

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: July 29, 2014, 16:28:01 »
8287 would be the default for PAL machines. [...] Which calculations is the exactly correct one can of course only be figured out by having the original tracker, or by directly comparing the game's audio output with a render from e.g. ST3.

Interesting.  I'm guessing from the octave thing I should probably stick with ProTracker constants for the time being.

Well, as said, concepts are all but standardized between trackers, so it's possible that PCM middle-C doesn't match up but OPL interpretation is the same? I'm not really familiar with OPL instruments in ST3 so I don't even know if they have a concept of a variable middle-C pitch.
Would the original ASM mixer code be of help? :)

I was about to say: Yes! Definitely!  ...but ASM?  Hmm...that could take a while to decipher, unless it just happens to be heavily commented.  ST3 does adjust the note pitch if you alter the middle-C pitch for an OPL instrument.

Yeah, it's probably yet another thing that could only be confirmed with the original tracker. Or maybe you could create a test music file to replace the original music file and see how it translates things in-game?

Well I have now written my own player, and it is able to play these "quiet" notes at the correct volume.  I think the reason they are quiet is due to a bug in the OPL volume handing part of SchismTracker, as I also discovered that the reason some OPL notes go funny is because they are being faded out and SchismTracker seems to update the wrong OPL register when changing the volume of an active note.  (Perhaps it updates both the carrier output level and the modulator output level, whereas only the carrier should be changed.)  So I'm confident now I am handling the volume correctly.

Thanks for doing this! I've wanted to poke around with these tunes in module form for ages as well. Really cool to see how they're made; definitely post some updates here when you've got them!

Will do!  I've just done some reverse-engineering on the GUS variant since some of the GUS songs are quite different to the SB/AdLib ones, and I have gotten a preliminary converter working.  Still unsure how the speed values are calculated (they almost look like BPM figures but not quite) and there seem to be two different delay commands I'm not sure how to handle yet, but it's coming along nicely.  Here's a sample if you're curious: z66title-gus-beta.s3m.  Still have a few volume issues here too, and I'm sure the delay values aren't quite right either.  Any feedback is welcome if you can hear/see what the issue could be!

They seem to play fine on my setup, no apparent timing problems... [...] Foreign Shores (z66ep1v3.s3m) has an FM snare layered with a sampled snare - they should (and do) hit at exactly the same time. Best test I could think of.
I can record the output from my machine for you if it helps. Let me know.

Glad to hear it!  Thanks for the feedback.  Sounds like everything is good as far as sync goes then.  Thanks for the offer of the recording but I'm happy to take your word for it :-)

Project / Coder's Corner / Re: Zone 66 music conversion help
« on: July 13, 2014, 15:46:59 »
Well, the fact that the low octaves make up for the high sampling rate pretty much tells you already that your assumption of 33075 being the middle-C frquency is wrong. The original tracker that was used to create the songs (and thus, the CDFM format) may have had a completely different idea of what middle-C is than ST3 had - this is not a rare thing, e.g. C-2 in ProTracker is C-4 in ScreamTracker/Fasttracker, which in return is C-5 in Impulse Tracker.

Aha, that's what I am missing!  Sorry, despite listening to mods for years, this is my first attempt at actually trying to work with them!  I didn't realise the idea of what middle-C is varied so much.  Suddenly explains why the Halloween Harry/Alien Carnage songs were all a couple of octaves too low...

Incidentally, 33075 is exactly two octaves above ProTracker's middle-C frequency, so you can safely assume that the octaves found in those files are ProTracker octaves and need to be transposed upwards by two octaves (and the sample frequency needs to be divided by 4) to map the CDFM middle-C to ScreamTracker's middle-C.

While this makes perfect sense, it raises more questions!  I transposed the notes up by two octaves and set the frequency to 8268 and it sounds really good.  I tried 8363 too but it was off-key, so is 8268 a ProTracker default?  I can't seem to find a mention of this at present.

However this now transposes all the Adlib instruments up by two octaves!  I put an exception in the converter to only transpose notes on the sampled channels and this seems to produce the right output, but does seem a bit weird the two instrument types would use different middle-C notes.  See what you think: z66ep1v3.s3m z66title3.s3m.  Perhaps I should be transposing Adlib notes too but adjusting the middle-C frequency for those instruments?  But by only transposing the sampled notes they all end up around similar octaves so maybe this is best...  (Incidentally if you know of any documentation explaining how the ST3 middle-C frequency is applied to Adlib instruments I could really use it!)

I'm not sure about that one, but you may know that the CDFM format is somewhat related to 669 (made by the same person), which also has some magic numbers regarding tempo and speed which are different (tempo 78, speed 4) from those usually found in ProTracker-like formats (tempo 125, speed 6). It may simply be an idiosyncrasy he came up with while developing his player routines. One thing that could also come into play are PAL vs NTSC timing differences here.

Oh wow that's amazing, I had no idea!  For some reason I assumed .669 was an old format from the Amiga, I didn't realise it was a PC tracker!  And by Renaissance!  Feeling stupid now :-)  At least it helps explain some magic numbers.

I wouldn't be surprised if that's a DOSBox issue. I can probably confirm this on a real machine if you really want it, though.
Oh thanks for the offer, you could be right there.  I do have a few DOS machines around so I'll save you the effort and try it next time one is plugged in.

In the intro tune I'd even say that some of them are too loud in ScreamTracker, not too quiet. I'm sure this can depend on factors such as if ScreamTracker uses stereo or mono output.

Yes I thought the same thing about the intro tune, but some of the others are really quiet.  Have a listen to z66ep3v3.s3m, the "twinkly" Adlib is so quiet.  Maybe the 0-15 volume doesn't translate linearly to S3M's 0-63?  Not sure how you would go about testing that...

BTW: Your updated conversions seem to lack the "pattern jump" command in the last patterns to jump to the correct restart position.

Thanks for the conversions, btw. I've been searching for this soundtrack in a "normal" mod format for years, I even asked CCCatch if he still has the files, and while he said that he'd have to look at his parents' place, I haven't heard back from him since then.

Oh you've seen my earlier attempts?!  They were hacky as I had to hard-code the offsets of each pattern, but now I have rewritten everything from scratch to handle patterns correctly.  Once I've gotten everything sorted I'll gladly put up a link to the fully converted soundtrack if you'd like.

The pattern jump I added by hand previously but I'm in two minds whether I should put it in automatically.  It complicates the conversion because you could theoretically have the last pattern played twice, but you would only want the jump command the second time the pattern was played.  So you'd have to duplicate the pattern just to add the jump command, which no longer matches the original song...  I think I will leave it out and it's something that can be added by hand along with titles for a "curated" conversion.

Project / Coder's Corner / Zone 66 music conversion help
« on: July 13, 2014, 14:02:23 »
Hi all,

I'm working on a conversion utility for the music in the DOS game Zone 66.  I have successfully reverse engineered the file format (documented here) and converted it to ScreamTracker S3M format.  (I selected this format because it was one of the few that support both sampled and Adlib instruments.)

However, there are still a few unknowns and I'm wondering whether anyone here with a bit of tracking experience can offer some suggestions, as the format seems to share a lot of things with its contemporaries.

  • The sampled instruments have their centre frequency as 33075Hz.  This is a number I guessed by listening, but it seems a bit high to me for a song from the early 90s.  The notes seem to be played in very low octaves, so I am wondering whether the song needs to be transposed and the frequency lowered.  Some of the pitches don't quite match what the game sounds like, but I've been listening to both correct and incorrect versions of the songs for so long now I can't really tell any more which is right and which isn't...!
  • The "speed" is the only figure copied directly from the source file.  To play at the correct rate, the "tempo" has to be set to 144 or so.  This is another magic number which I came up with by twiddling until the drum loop in the title sequence looped fairly smoothly.  Is there something special about a tempo of 144? (0x90)  Is there a well known tempo value close to this that is probably more correct?
  • Has anyone ever created a song that uses both Adlib and sampled instruments?  When I play these files in ScreamTracker the Adlib notes seem to play too soon relative to the sampled ones, but when I use SchismTracker they are fine.  But then SchismTracker seems to mangle some Adlib notes so I'm not sure.  Just looking for feedback as to whether there are any known issues with trackers/players in this respect.
  • Some of the Adlib notes seem to play very quietly compared to the sampled ones, but this only seems to affect ScreamTracker.  SchismTracker seems ok.  Not sure which way is better...

If you'd like to take a look at the files, here are z66title2.s3m and  z66ep1v2.s3m.  If you're not familiar with the game, some recordings I made are available in Ogg Vorbis at VGMPF (the first two tracks - 101 Theme and 102 Foreign Shores - match the .s3m files.)

Any feedback would be much appreciated!

Pages: [1]