March 19, 2019, 06:49:27 *
Welcome, Guest. Please login or register.

Login with username, password and session length
   Home   Help Search Login Register  
Pages: [1]   Go Down
Author Topic: [Help] about a TP3 module  (Read 3970 times)
0 Members and 1 Guest are viewing this topic.
« on: April 18, 2011, 01:14:49 »

hi (first posted on Exotica)

I have just seen this cracktro by Lightforce :

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  Huh)
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
« Last Edit: April 18, 2011, 01:16:37 by cybfree » Logged
Hero Member
Offline Offline

Posts: 1 019

View Profile WWW
« Reply #1 on: April 18, 2011, 09:14:31 »


 OK, Prowiz (mine) extracts the "hidden" patterns, if there's any, read "unused" Smiley. 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 Smiley.

 What do you think ?
« 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.

; 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 ?)
Pages: [1]   Go Up
Jump to:  

Powered by SMF | SMF © 2015, Simple Machines