PDA

View Full Version : Tracker/Playroutine to play tubular.mod


Photon
21 February 2006, 22:44
Hm.

Got some help from Ray Norrish a while back, but haven't cracked this problem yet.

I have

Noisetracker V1.1
Protracker V2.3D
Protracker V3.00B
Protracker V3.10

But none of them can play tubular.mod by Uncle Tom (uploaded to The Zone). :( They play half a bar, then the pointer hangs and the song keeps playing, with bugged loops.

Could some Module Wizard point me to an A500-based tracker, preferably with playroutine, that plays this OK? I'm planning to use it in an A500 demo, you see. ;)

Ray Norrish
22 February 2006, 01:44
I`ve uploaded a promized mod to the zone. Here's how to use it.
I noticed also that the mod kills hearttracker, but plays with a dead interface.. wierd.. wonder if this was some trick?!

Anyway, here's how to use the promized mod, assuming you include the file as a binary at label 'module:'

init:
sf fadeflag ; if you want to play with fades
moveq #0, d0 ; use cia timer
moveq #1,d1 ; fade in
bsr module ; init
move.l d0, songbase ; pointer to song data (if you want to access this)

exit: ; before system close
move.b #1,fadeflag ; if you want to play with fades
bsr module+12
bsr module+8

for your int or beam code:
move #%1111,d0 ; voices
move.b fadeflag,d1 ; if you want to control fade (0/1)
bsr module+4


I haven`t tried to reverse the mod with promizer, as this might remove the dodgy item(s) but if you want it to just play in your demo, this seems to work ok.

Photon
22 February 2006, 21:12
Promizer is a utility? Because I have the Promizer replay and tried it with my module, but it didn't work.


I noticed also that the mod kills hearttracker, but plays with a dead interface.. wierd.. wonder if this was some trick?!

It does this with every tracker I've tried it with.

About Promizer - I want full control over the replay source, especially to be able to optimize the play routine and do what I want with the "wait 4 scanlines" code. Does Promizer take a module, clean it up, and bake the replay binary into it?

[Edit: It _should_ work with the first tracker that called its modules #?.mod instead of mod.#?, anyone know which one this was?]

Ray Norrish
22 February 2006, 21:17
About Promizer - I want full control over the replay source, especially to be able to optimize the play routine and do what I want with the "wait 4 scanlines" code. Does Promizer take a module, clean it up, and bake the replay binary into it?


Pretty much. Give this one a try... it was also fast if I remember also..

Photon
22 February 2006, 21:43
How do I get control over the replay source if the replay is built into the module data??

Tried the promized module with your startup code:

init:
sf fadeflag ; if you want to play with fades
moveq #0, d0 ; use cia timer
moveq #1,d1 ; fade in
bsr module ; init
; move.l d0,songbase ; pointer to song data (if you want to access this)

; lea $dff002,a6

MAIN:
BTST #6,$BFE001
BNE MAIN


exit: ; before system close
move.b #1,fadeflag ; if you want to play with fades
bsr module+12
bsr module+8
RTS
;program stop

int:
movem.l d0-a6,-(SP)
move #%1111,d0 ; voices
move.b fadeflag,d1 ; if you want to control fade (0/1)
bsr module+4
movem.l (SP)+,d0-a6
rts

fadeflag: dc.b 0
even

module:
incdir "dh0:code/library/"
incbin "pmod.tubular"

It doesn't even call the "mt_music" code, I was gonna add that but tested just initing and exiting the module before adding the int. Still it gives an address error, before it reaches the wait-for-left-mouse-loop :S It's assembled to chipmem, and I disassembled the instruction at module: (which bsr module) jumps to, but it's just data. What the? :)

What's wrong with my code?

Ray Norrish
23 February 2006, 00:56
I just lifted the code from an existing demo of mine, and ran the mod through promizer. My code was calling those offsets in the pmod output. I`ll have another look and try it for myself tomorrow.

Photon
23 February 2006, 01:31
You're so helpful :) :) About reversing the mod... if it could somehow be turned into for example a PT3.00b-compatible module that I could modify, that would be even better! Not only do I have the working, optimized and tested playroutine for it, but I can modify the song to fit the future demo better! :)

Jerry
23 February 2006, 18:52
Ok, I think your version of tubular is somehow broken. I could replay your version quite fine in PT 3.61 and MPTracker under windows but could not get it to work with older PT versions. Anyhow, I uploaded a version to the zone which works fine for me in older versions...

Photon
23 February 2006, 22:46
Wow!

You're the greatest, Jerry! :) :) Not only does it work perfectly with my optimized playroutine, but I can load that version of Protracker and play and modify it! Just what I wanted :)


Now, how do I convert the module the way you did? If I could do the same, it would increase the amount of modules that I can select to play in a demo ...

[Edit: Or is it another version you found elsewhere of the same module? :)]

Frog
24 February 2006, 00:05
wasn't it a CIA or VBL choice of replay ?
i already give you a link with some mod-packers players, i thought Prorunner could play all PT2.x mods or even better ThePlayer61A

http://www.amiga-stuff.com/modpackers-download.html

Photon
24 February 2006, 01:02
wasn't it a CIA or VBL choice of replay ?
? What does this refer to? :)

Thanks for the tip, Frog! I tried Prorunner and it packed the module and the replay code looked sensible and actually beat mine by 2 scan lines! (Mine took 3 scanlines (because the Copper did the soundreg-poking), upto 10 max, Prorunner was 4 scanlines upto 8 max. (Can't wait to give this replay the 'cycle treatment' ;))

I just had to set Packedsongformat to 1.

As I said Prorunner worked right off. Been trying out a bunch of these players and packers in my tiny bits of spare time, maybe I'll check out ThePlayer6.1A tomorrow.

Hey guys... thanks a bunch for helping me out!

Frog
24 February 2006, 06:13
if i'm not wrong, old players generally use VBL timing, later some player use CIA timing and thus if you use CIA timing some effect must be readapt to VBL timing to work at the same speed otherwise it could result in some slow down in some part.

and yep Prorunner rulez. ThePlayer61A is the latest player so it should be the fastest, it's often used in demo and in lot of games such as Team17 ones... at least it have some special features, watch the doc ;)

Jerry
24 February 2006, 09:36
My module is a different version I found on the net. But I think that the problem is actually a bug in the interpretation of sample information:
If you compare the two files you'll see that the difference is that the working version has 0x01 in the end of each samplefield which is the field for the "length of the repeat/loop" wheras the non-working version has 0x00 there. Both should be considered non-repeat of the sample iirc but somehow don't and lead to the bug. Hope I got it all right.

Would be interesting to know if there's a tracker out there that produces such files...

Photon
05 March 2006, 19:44
It's probably some Protracker version that didn't "take off". Whatever it is, it calls its modules #?.mod instead of mod.#? :)

Tried The Player 6.1 today. Required Asm-One 1.20 or later and had a bunch of include files, but you can't argue with 2-6 raster lines ;) Saved some 7k on the module size, too.

Photon
06 March 2006, 22:10
Fooled around with ProRunner today and with a few simple changes I optimized it down to the same as The Player, min 2 max 6 scanlines. (If anyone's interested :))

Frog
10 March 2006, 21:09
send it to aminet, it could interest some people