[Help] about a TP3 module

Started by cybfree, April 18, 2011, 01:14:49

Previous topic - Next topic


hi (first posted on Exotica)

I have just seen this cracktro by Lightforce : http://bitworld.bitfellas.org/demo.php?id=29459

the original music is a TrackerPacker module. When you launch the intro, the first pattern is not the one when you play the TP3 or Mod in deliplayer.
and this pattern is not in the converted version (I think  ???)
I checked the source code, and no other player is used.
The only thing is the flag "choosestart=yes" set in the tp3player : tp_patternnumber (.w) is changed in the init.

lea module,a0
lea samples,a1
jsr inittp

move.l a0,tp_data
move.l a1,tp_samples
move.w d0,tp_patternnumber ; !!! d0 = $140
bsr tp_init

But the value in d0 is not initialized to 0. d0 is changed before (sprites init) and the last value is $140.w
so the music start to this "hidden" pattern.

If I erase "move d0,tp_patternnumber" (d0=0), the real first pattern is played

a pattern is missing in the converted module ?! how to get it ?

see small video here



OK, Prowiz (mine) extracts the "hidden" patterns, if there's any, read "unused" :). Also, we have the original of this music on AMP and there's no unused pattern. So, I trust this rules out the "hidden"/"unused" stuff.
I've looked at this prod, hoping that, maybe, another tiny song was stored. I found none.
My guess would be that the first voice of pattern 0 is replayed. Works quite well if you mute the other 3 channels in Milkytracker :).

What do you think ?


perhaps a "bug" of TP3 player used with a wrong tp_patternnumber.
sometimes, the pattern 0 is not played correctly at the start of the intro, depending of the memory configuration.

; routine in tp_init
; d1=pattern start = $140
movea.l tp_pattadr3,a1 ; if patterns are at $50000
add.w d1,d1 ; d1*2=$280 = 640 bytes
adda.w d1,a1
move.l a1,tp_pattadr ; a1=$50280 position of the selected pattern

if a1 point pattern 0, why at the end it restart at pattern 2 (how?)..., and why mutes 3 voice (where ?)