Author Topic: Jason Page  (Read 43104 times)

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Jason Page
« 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!

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #1 on: May 03, 2010, 15:50:04 »
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, 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.

Offline Crown

  • Administrator
  • Hero Member
  • *****
  • Posts: 593
  • Cryptoburners^AMP
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #2 on: May 03, 2010, 20:07:04 »
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

Offline Crown

  • Administrator
  • Hero Member
  • *****
  • Posts: 593
  • Cryptoburners^AMP
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #3 on: May 04, 2010, 11:56:24 »
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

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #4 on: May 05, 2010, 10:42:06 »
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.)

Offline Crown

  • Administrator
  • Hero Member
  • *****
  • Posts: 593
  • Cryptoburners^AMP
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #5 on: May 05, 2010, 14:00:55 »
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
« Last Edit: May 05, 2010, 15:38:20 by Crown »

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #6 on: May 06, 2010, 09:18:54 »
Excellent!  I'll email them now.

You can contact me at:

martin [dot] bazley [at] blueyonder [dot] co [dot] uk

Offline Crown

  • Administrator
  • Hero Member
  • *****
  • Posts: 593
  • Cryptoburners^AMP
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #7 on: May 06, 2010, 17:18:51 »
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.  :)
« Last Edit: May 06, 2010, 17:24:00 by Crown »

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #8 on: May 06, 2010, 19:42:11 »
Most wonderful news indeed!  I'll get to work on it now. :)

Offline Crown

  • Administrator
  • Hero Member
  • *****
  • Posts: 593
  • Cryptoburners^AMP
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #9 on: May 07, 2010, 08:55:49 »
Good luck my friend....  :)

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #10 on: May 19, 2010, 19:46:15 »
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:

Code: [Select]
  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:

Code: [Select]
  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. :(

Offline Asle

  • Administrator
  • Hero Member
  • *****
  • Posts: 1 055
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #11 on: May 19, 2010, 21:45:54 »
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

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #12 on: June 18, 2010, 21:49:03 »
<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.)

Offline Crown

  • Administrator
  • Hero Member
  • *****
  • Posts: 593
  • Cryptoburners^AMP
    • View Profile
    • Amiga Music Preservation
Re: Jason Page
« Reply #13 on: June 19, 2010, 09:06:59 »
geez, this is great news.

please let us know if you're OK that we host the file.  :)

Offline swirlythingy

  • Full Member
  • ***
  • Posts: 109
  • Bad blood? What bad blood?
    • View Profile
    • Kingfisher Corner
Re: Jason Page
« Reply #14 on: June 19, 2010, 19:46:42 »
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.