Author Topic: [Help] about a TP3 module  (Read 4344 times)

cybfree

  • Guest
[Help] about a TP3 module
« on: April 18, 2011, 01:14:49 »
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.
Code: [Select]
lea module,a0
lea samples,a1
jsr inittp
[...]

inittp:
move.l a0,tp_data
move.l a1,tp_samples
move.w d0,tp_patternnumber ; !!! d0 = $140
bsr tp_init
rts
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
« Last Edit: April 18, 2011, 01:16:37 by cybfree »

Offline Asle

  • Administrator
  • Hero Member
  • *****
  • Posts: 1 032
    • View Profile
    • Amiga Music Preservation
Re: [Help] about a TP3 module
« Reply #1 on: April 18, 2011, 09:14:31 »
Hey,

 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 ?
Sylvain

cybfree

  • Guest
Re: [Help] about a TP3 module
« Reply #2 on: April 18, 2011, 14:48:51 »
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.

Code: [Select]
; routine in tp_init
; d1=pattern start = $140
tp_otherpattern:
 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 ?)
strange