. - .
 
Hively Tracker
News ::  About ::  Forum ::  Download ::  Tunes ::  Screenshots ::  Competition ::  Links
 
. - .
. - .
 
User 
Password 
Create new account
 
. - .

. - .
 
Cool Sites
 
. - .

. - .
 
Link to us
 
. - .

. - .
  Forums > Hively Tracker Support > Hively replay bugs

Page: 1 2 3 4

Hively replay bugs

pieknyman
Posted: 2007-01-13 11:45:17
Occasional visitor
Posts: 27

Member since:
2007-01-13 11:33:20
Hi,

1. There is a bug I found in the hively replay that prevents correctly playing long songs:

uint8 hvl_tune::ht_PosJump should be uint16 as ht_PosNr is also uint16!

For example "The Magic Box" AHX by Tommy Jansson doesn't ever reach it's end as it has 799 order positions.

http://www.exotica.org.uk/tunes/archive/AHX-AbyssHighestExperience/Tommy.lha

2. There's a minor issue with playtime counting, too:

uint16 hvl_tune::ht_PlayingTime could be uint32

You'll never know when someone creates a song longer than 21 minutes. :)

Cheers!


http://dhost.info/pieknyman
Xeron
Posted: 2007-01-13 14:20:14
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Thanks, I'll merge in those changes for the next release :)

Edit: And I have now.

AHX forever!
pieknyman
Posted: 2007-01-16 09:25:54
Occasional visitor
Posts: 27

Member since:
2007-01-13 11:33:20
Hello there again!

I noticed that some AHX tunes tend to crash the replay. Like "UggaBugga" by W!G or "Mluppy Lips" by Hardfire. The latter has even an information saying it unfortunately crashes DeliTracker... ;)

The reason is their tracks use non-existing samples. By mistake I suppose.

Here's a quick fix for this:

change
if( Instr )

to
if( Instr && Instr LESSOREQUAL ht->ht_InstrumentNr)

in hvl_process_step

Cheers! And sorry for the three empty posts...

http://dhost.info/pieknyman
Xeron
Posted: 2007-01-16 09:58:41
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Ahh cool, thanks. I'll update the replayer source.

I've been meaning to get around to fix that problem in the forum.

AHX forever!
spotUP
Posted: 2007-01-16 13:38:54
Moderator
Posts: 197

Member since:
2006-12-15 18:06:32
hey, great work pieknyman! :D
i noticed that some tracks crashed tunenet, and it bugged me, maybe this is the answer.

http://www.uprough.net
Samurai_Crow
Posted: 2007-01-16 16:40:20
Occasional visitor
Posts: 23

Member since:
2007-01-16 00:52:06
I've noticed in the editor that if you have a note that starts in one block that's transposed and ends in the next block that isn't, it "untransposes" in the middle of the note. Maybe the trasnpose should be passed to note player stuff as a parameter instead of accessing the playlist's transpose variable directly? (I haven't looked at the code that's causing this.) I can send you an example module if you need it.
Xeron
Posted: 2007-01-16 18:25:59
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Thats the behaviour of AHX since always.
AHX forever!
m0d
Posted: 2007-01-17 12:22:11
Occasional visitor
Posts: 28

Member since:
2006-12-22 09:27:17
Xeron said:
Thats the behaviour of AHX since always.


Yup.

http://m0d.untergrund.net/
pieknyman
Posted: 2007-01-17 15:01:19
Occasional visitor
Posts: 27

Member since:
2007-01-13 11:33:20
Hi,

1. In hvl_mixchunk() it is needed to check whether delta{i} (and rdelta{i}) is non-zero, as some AHX's crash with division-by-zero when counting the "cnt" variable.

2. In hvl_process_frame():
...
if( voice -> vc_NewWaveform )
{
int8 *AudioSource;
AudioSource = ht -> ht_WaveformTab[voice -> vc_Waveform];
if( voice -> vc_Waveform != 3-1)
AudioSource +=
(voice vc_FilterPos - 0x20)*(0xfc+0xfc+0x80*0x1f+0x80+0x280*3);
...

it is required to check if voice->FilterPos is in the range from 32 to 64, otherwise some AHX tunes using filtering crash the player going into the weeds. However I'm not completely sure if it's the right place to check that.

Nevertheless, with all these corrections I presented all AHX tunes from Modland now seem to play okay! ;)

Cheerio.



http://dhost.info/pieknyman
spotUP
Posted: 2007-01-17 15:21:26
Moderator
Posts: 197

Member since:
2006-12-15 18:06:32
pieknyman rewlorz!
http://www.uprough.net
Xeron
Posted: 2007-01-17 22:10:55
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Great work pieknyman! Thanks.. You'll get a greeting in the sinescroller in Hively for this. Unfortunately, at the moment you'd need OS4 to see it. But well, take my word for it, it'll be there :-)

BTW, what did you do if FilterPos < 32? Did you just treat it as if it was 32?

AHX forever!
exobuzz
Posted: 2007-01-17 22:44:43
Moderator
Posts: 56

Member since:
2006-12-14 18:21:01
I noticed the division by zero problem when I first ported the replayer to 68k. PPC by default doesn't cause an exception and I assume x86 too as it was originally based on the c replayer which surely was tested on x86 ? hmm.

Thanks for your other improvements. Perhaps you could help optimise the replayer a bit? Would be nicer if it performed better
exobuzz
Posted: 2007-01-17 22:45:24
Moderator
Posts: 56

Member since:
2006-12-14 18:21:01
I really should look at getting the about window running on 68k. Then I could also enjoy the scroller!
pieknyman
Posted: 2007-01-18 09:13:24
Occasional visitor
Posts: 27

Member since:
2007-01-13 11:33:20
Xeron said:
BTW, what did you do if FilterPos < 32? Did you just treat it as if it was 32?

No, I've just discarded values below 32 and above 64. I think the filter code needs to be investigated, why it produces these invalid values in the first place.

exobuzz said:
I noticed the division by zero problem when I first ported the replayer to 68k. PPC by default doesn't cause an exception and I assume x86 too as it was originally based on the c replayer which surely was tested on x86 ? hmm.

Actually Hively's mixing code is different from WinAHX. :P And it does crash on Windows.

exobuzz said:
Thanks for your other improvements. Perhaps you could help optimise the replayer a bit? Would be nicer if it performed better

I didn't dig into this that much (just to fix up an XMPlay plugin). But if I see something to improve, I'll let you know.

http://dhost.info/pieknyman
pieknyman
Posted: 2007-01-18 14:55:11
Occasional visitor
Posts: 27

Member since:
2007-01-13 11:33:20
Edit: it turned out that valid vaules for vc_FilterPos are 1 to 63. Some tunes put negative vaules, other higher than 63, so it's still needed to check it.
http://dhost.info/pieknyman
pieknyman
Posted: 2007-01-18 16:53:23
Occasional visitor
Posts: 27

Member since:
2007-01-13 11:33:20
This replay routine is really far from perfect. No leading samples can be heard in Pink's "Klisje pa klisje" for example. I think it's a different problem to that filtering issue...
http://dhost.info/pieknyman
Xeron
Posted: 2007-01-18 16:53:32
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Yeah, I was pretty sure it should be able to go lower than 32.
AHX forever!
Xeron
Posted: 2007-01-18 16:54:27
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Oh, and the mixing routine is different, but the way it calculates and uses the deltas should be absolutely identical.
AHX forever!
exobuzz
Posted: 2007-01-18 22:29:16
Moderator
Posts: 56

Member since:
2006-12-14 18:21:01
I can't see anything obviously wrong either. Looking at the ahx player and yours, if delta is 0 then it sets it to one. Unless its somewhere in your code where Voice->PlantPeriod does not get set to 1 when it should ? There is nothing in the windows source in the mixing to check for 0 delta so I assume delta is never 0 ?
Xeron
Posted: 2007-01-19 09:02:40
Supreme Being
Posts: 448

Member since:
2006-12-13 11:34:00
Hmm.. maybe I just need to set the Deltas to 1 in my InitSubSong? I reckon that would do it.
AHX forever!

Page: 1 2 3 4
 
. - .