Amiga Music Preservation - Forum
General Category => Requests => Topic started by: swirlythingy on February 20, 2010, 19:21:40
-
Hi,
I've been spending a lot of my spare time recently decoding the so-called 'Jason Page' tracker format used in Fire and Ice. Unfortunately, I only had access to the Archimedes conversion of the game's internal playroutine, in ARM assembler, and as I got deeper in it became more and more apparent that the person who did the conversion didn't know the first thing about what he was doing or the relative properties of PC, Amiga and Acorn sound architecture.
So, while I do now have a converter program that produces music and a fairly thorough understanding of how the format is structured and how it is read, I am aware that the results, while faithful to the Acorn version, are completely different from the original one.
I'm asking because I'd like to know if anyone has any information on this format (or, indeed, a way to ask Jason himself about it) so that I could make my conversion a good deal more faithful. I couldn't find anything on Exotica (there's a page for it, but it's blank), but I hope I'm not the only person who knows anything about this format - the only alternative would be to get a look at the Amiga binary, and I can only read ARM assembler!
-
Hmm, apparently the answer is no. :(
I have now managed to produce a set of files which are a fairly close approximation to the sound produced by the original player. Finding the source code for the Wanted Team's conversion was definitely a big help.
The only problem is that, due to the way the converter works in order to give the best sound possible, several of the files exceed the ProTracker 31 sample limit. Although it doesn't use many effects, as most of the Jason Page effects are mutually incompatible with the MOD format and its derivatives (I ended up encoding them in copies of the sample data instead), it really does need a format with a long sample list. At the moment I'm using Archimedes Digital Symphony, and as the only non-RISC OS program I know of which can play that is xmp (http://xmp.sourceforge.net/), which is a command-line program, I'd like to be able to convert them to another format.
The one which seems most sensible is ScreamTracker 3 (.S3M), as that has up to 99 samples, but I don't have any tools to make those files. Can anybody help? I've attached a file as an example, so if anybody could return this converted to S3M (or another format with similar features), that'd be great and I'll upload the rest to Modland.
Alternatively, if somebody could confirm it's OK to send files to AMP in such an obscure format, that'd be great as well.
Thanks.
-
Hi dude,
I have just contact Jason Page and I'll let you know if I hear from him on your questions.
please send the files over to Asle. I am sure that he'll be able to check them out and help
best regards
-
Mate,
I sent him a copy of your questions and I should be able to get some answers within the next couple of days.
I also asked for the original tunes (if he has any left)
cheers
-
Thanks a lot for that! ;D
When you say "send the tunes over to Asle", do you mean the original format tunes, or the Digital Symphony conversions? (The original format tunes are all available on Modland - that's where I got them from.)
-
Dude,
Jason sent me the disassembly code of the editor/player which he tried to document. Send me an email so that I forward it to you.
Oops, I meant the DS conversions. :)
cheerio
-
Excellent! I'll email them now.
You can contact me at:
martin [dot] bazley [at] blueyonder [dot] co [dot] uk
-
Dude,
Jason Page agreed on AMP hosting the file so please download the Jason Page Music Player right here: http://amp.dascene.net/downcount.php?idx=25
Have fun and let us know if you have any further question. :)
-
Most wonderful news indeed! I'll get to work on it now. :)
-
Good luck my friend.... :)
-
Have fun and let us know if you have any further question. :)
I have a further question. :)
This really needs to be looked at by someone who has previously programmed in 68000 assembly language - I'm learning it by staring hard at it, which has its disadvantages!
I can't work out this code:
MOVE.L (A3)+,D0
MOVE.L D0,(_SampleLoopLen,A2)
BEQ.B lbC000C3A
LSR.W #1,D0
MOVE.W D0,(_SampleLength,A2)
lbC000C3A
RTS
If I'm reading it right (which I'm probably not), this translates to: Load 4 bytes from address A3, store them in address (A2 + _SampleLoopLen), then, only if the 4 bytes are not 0, divide them by 2 and store them in address (A2 + _SampleLength).
There is another function which does the same, but doesn't check if the bytes are 0 first.
This therefore means that the only value address (A2 + _SampleLoopLen) can take is 0, or (A2 + _SampleLength) * 2.
Which makes the code to program the Paula chip rather puzzling:
TST.L (_SampleLoopLen,A2)
BEQ.B lbC000A98 ; silence channel
MOVEQ #0,D0
MOVE.W (_SampleLength,A2),D0
ADD.L D0,D0
MOVE.L (_SampleLoopAddress,A2),D1
ADD.L D0,D1
MOVE.L (_SampleLoopLen,A2),D0
SUB.L D0,D1
MOVE.L D1,(_HSampleStartAddr,A4)
MOVE.W (_SampleLength,A2),(_HSampleLength,A4)
(Snipped for relevance and brevity.)
...as this means the address of the sample data can only take the value of (A2 + _SampleLoopAddress) (since the function is bypassed if _SampleLoopLen = 0).
...which makes you wonder what the point of _SampleLoopLen is.
I really hope I'm wrong. :(
-
Hi,
I really think you should ask those skilled coders at EAB. There's even a forum for coding questions.
Maybe someone can help, here, but EAB would get result for sure.
All the best,
Sylvain
-
<Farnsworth voice>
Good news, everyone!
After no small amount of help from the Amiga Hardware Reference Manual, the source code from this website and the Motorola 68000 ARM, the core part of the converter is finally ready.
All that remains to be done is convert it to output ScreamTracker files, and, of course, write the documentation. (I still haven't found a good place to upload my documentation for the Onyx format - according to Google the only mentions of it on the web are this forum and another one which the OP of that thread tried first.) After that I'll email you the conversions (or would it be better to use FTP?). I assume Asle didn't have any luck with the Digital Symphony files, but I have now finally managed to obtain the ScreamTracker documentation, so I should be able to handle the conversion myself.
Next up I intend to have a good crack at the Richard Joseph format. (I remember Diggers in particular with some fondness.)
-
geez, this is great news.
please let us know if you're OK that we host the file. :)
-
You mean you'd do that? Cool! I was worried I'd have to beg. :)
Strictly speaking, they're not 'true' conversions, because the Jason Page format is so unusual, but AFAICT they sound more or less exactly the same and they're a whole lot more compatible. The main disadvantage is that the sound quality is only possible by a rather large (100s of KBs) file size.
-
IT'S READY! ;D
I uploaded the S3M conversions to the AMP FTP, under the filename 'Jason_Page.zip'.
In the archive are the soundtracks to Empire Soccer 94, Fire and Ice (incl. Xmas special), Nipper vs. The Kats, Uridium 2 and Virocop AGA.
Note: According to Hall of Light (http://hol.abime.net/1576), the Virocop music was composed by Lee Banyard.
Jason Page is one of those formats where every file is divided into 'subsongs', and my converter makes each one of those into a separate file, so in some cases there are many .s3m files for each .jpn one. The subsong is indicated by a suffixed hyphen and the number.
Be aware that a few of the files (fire and ice-7-1 for example) exceed the ScreamTracker 64,000 byte sample limit. This shouldn't cause problems for well-written software (my player had no trouble), but watch out all the same.
Off to write loads of documentation now... :(
-
...Aaand I've found the first bug. >:(
As a result, half the Uridium 2 tunes appear to be missing.
It was a pure coincidence that I even discovered that in the first place, never having played Uridium 2, but while writing the documentation, I needed a .JPN file to refer to, and I happened to pick that one, and I happened to glance at the sequence data, and I happened to notice that there was more of it than there should have been.
Anyway, I've fixed it (I hope!), along with a lesser bug which meant a few volume slides were slightly glitchy, and I'll upload a replacement archive soon.
-
OK, 'Jason_Page_2.zip' is now in FTP (9 MB - woo!). Please let me know if anything seems obviously glitchy, as I'm not 100% confident.
New to this archive: Hopefully all the Uridium 2 music, and Realms. (Realms was stored in an earlier version of the format, and stuffed with what our friend Jason called 'User Jumps' in the source comments - if the similarity of all the different subsongs is anything to go by, I think this was probably 'incidental' music, with smooth transitions from one subsong to another. I suspect I'll encounter a lot more of that kind of thing when I get my teeth into the Richard Joseph format.)
-
Hi,
I didn't follow very well your work, here, and I'm sorry about that.
The FTP is not open and all files uploded after April are unreachable for the moment, so I can't look at your archive just now. Can you publish the documentation alone, for this Jason Page format ?
Note that there are some things of interrest here (http://lclevy.free.fr/exotica/) (though, not Jason Page, I know).
Sylvain
-
The files on the FTP are out of date, and contain bugs. I sent the latest zip to Crown, so ask him for it. It's not an interview, so you should be safe. ;)
I'm afraid none of the links on that website worked. :(
Yes, I really should get on with writing (let alone publishing!) the documentation. Last time I tried I discovered in the process that I'd been doing it all wrong up to that point! Hopefully that won't happen this time.
-
OK, I've been really lethargic about this, I know. But it looks as if things are finally moving again. Managing to successfully rip the music from an old Archimedes game which I'd been coveting for ages helped a lot with my motivation! Jason Page documentation has once again moved to the top of my list.
As it stands, I'd estimate it's about two-thirds done (and about one-third of that happened in the last few days). The core stuff is all in, but there's a load of appendices to write and lookup tables to calculate. The good news is that I haven't found any more mistakes in my conversions (although I have learned a lot more about a certain feature I decided not to implement, which was satisfying, albeit in a way which helped me make a more informed decision about why I shouldn't implement it).
If all goes to schedule (trust me - it won't), I should have something to show by the end of the week. Warning: the documentation is set to be huge!
Asle: Are you waiting on the documentation so you can write your own converter? If so, I really wouldn't bother - it's a lot of effort, and I've done it all for you.
If there's demand, and now that it's working again, I could upload the up-to-date zip file of all the tunes to the FTP.
-
Hi mate,
thx for the inputs. Could you tell us more on how you've ripped the music from the archimede game?
cheers
-
Oh, it wasn't very interesting, or at least not to this forum. If you really want to know, it was called Terramex, and I believe it was a conversion from a previous game for the BBC Micro. I don't think it was ever ported to the Amiga.
In my rip, I utilised a lot of the techniques I'd learnt when writing my Jason Page converter, which was probably part of the reason why the actual conversion process was so brief when I got down to it (the other being that there was no other known example of that format, which meant I could be extremely selective about what features I chose to implement). The bit which took all the time was preparing the initial documentation and commenting the assembler in order to reverse-engineer the format - and then I procrastinated for weeks while trying not to have to go and write any actual code. (My Jason Page project suffered a similarly protracted work cycle, only worse.)
Anyway, this isn't the place (you can download the result - Digital Symphony format only - here (http://www.iconbar.com/forums/viewthread.php?threadid=11582) if you're really interested). As for Jason Page, I didn't manage to get any work done today for several reasons, such as having had to actually leave the house at one point, but hopefully tomorrow will be brisker.
-
Asle: Are you waiting on the documentation so you can write your own converter? If so, I really wouldn't bother - it's a lot of effort, and I've done it all for you.
A converter ? hum ... why not, however, I must confess I didn't follow every step. While this topic is interesting, I still lack the usual spare time. Anyway, if you've done a converter yourself, maybe I could stick to the rip part ? In any event, I still would like to see the doc :)
If there's demand, and now that it's working again, I could upload the up-to-date zip file of all the tunes to the FTP.
I'm interested, yes. If it's not too much trouble for you, please, upload what you have ;)
Thanks !
Sylvain
-
A converter ? hum ... why not, however, I must confess I didn't follow every step. While this topic is interesting, I still lack the usual spare time. Anyway, if you've done a converter yourself, maybe I could stick to the rip part ? In any event, I still would like to see the doc :)
It would be brilliant if you could find any more examples of this format out there, but I just downloaded everything I've got off the JPN format section of Modland.
If you're in a ripping mood, I'd still like to know what happened to Virocop tune 10 - Modland doesn't have it for some reason!
If there's demand, and now that it's working again, I could upload the up-to-date zip file of all the tunes to the FTP.
I'm interested, yes. If it's not too much trouble for you, please, upload what you have ;)
Consider it uploaded! It's in incoming/Jason_Page.zip. Usual caveats about exceeding S3M 64000 byte sample limit apply, but my player managed them all right. As long as you don't actually try to load them into ScreamTracker, you should be fine.
-
A converter ? hum ... why not, however, I must confess I didn't follow every step. While this topic is interesting, I still lack the usual spare time. Anyway, if you've done a converter yourself, maybe I could stick to the rip part ? In any event, I still would like to see the doc :)
It would be brilliant if you could find any more examples of this format out there, but I just downloaded everything I've got off the JPN format section of Modland.
I trust it's a very complete list ;). If come across some, I'll tell you !.
If you're in a ripping mood, I'd still like to know what happened to Virocop tune 10 - Modland doesn't have it for some reason!
woaw .. well, I'll keep that in mind. There's always this issue of spare time. Some day, why not.
Consider it uploaded! It's in incoming/Jason_Page.zip. Usual caveats about exceeding S3M 64000 byte sample limit apply, but my player managed them all right. As long as you don't actually try to load them into ScreamTracker, you should be fine.
*Juhu* woaw !, very impressive. It is really very accurate ! what a job you did, there. Thanks for sharing :)
Oh, and the 64000 byte limit was breached by Impulse Tracker for S3M anyway (as well as 16 bits samples). So, it's standard fare :)
Sylvain
-
Merry Christmas! Have a present. ;D
95KB and over 14,000 words... are you man enough? ;)
Enjoy a bit of not-so-festive reading from me! 8)
-
Holy fisting cow,
that's quite a hefty load of chars for describing just ONE module format! Appears to be the work of your lifetime, eh? ;)
Anyway, deep respect for investing this much love and care into this and big thanks for sharing it with us, swirlythingy.
Wishing you all a Merry Christmas, fellas!!! ;D
-
Yeah, as Deus said, you've really put a lot of efforts into this. superb work.
and merry xmas to all of you guys. :)