Version 0.5 preview

General discussion about tracking, help and support.
User avatar
HertzDevil
Posts: 475
Joined: Thu Apr 23, 2015 7:39 pm
Location: Hong Kong SAR
Contact:

Re: Version 0.5 preview

Postby HertzDevil » Mon Nov 09, 2015 5:56 pm

At standard speed the following pattern data does not load any waveform to the N163 memory from 0.4.0 to 0.5.0 beta 5:

Code: Select all

     # : Namco 1
ROW 00 : C-3 00 . G06
ROW 01 : ... .. . ...
This happens whenever the current row does not have enough ticks for the row delay to take place; CChannelHandlerN163::HandleNoteData is called twice on the same tick from CChannelHandler::PlayNote, the first of which handles the C-3 note, and the second of which handles the next blank row, clearing m_bLoadWave immediately before any wave is loaded. This bug might not appear if the pattern is created in FamiTracker then played in the same instance, since previewing any instrument loads the wave of that instrument into the N163 memory, but this can alternatively be replicated by creating another instrument with the same wave position as instrument 00, previewing instrument 00, changing the instrument index of the note to 01, then playing. Exported NSFs do not have this issue as the first wave of the N163 instrument right after reading its parameters.

EDIT: What is the correct behaviour of the 7xy tremolo on the VRC6 sawtooth channel when the volume exceeds 31? In all versions since 0.2.7, this pattern will cause the volume to drop to 2 when the tremolo causes an underflow:

Code: Select all

     # : Sawtooth     fx2
ROW 00 : C-3 00 6 719 V01
The reason is an integer sign mismatch in CVRC6Sawtooth::RefreshChannel():

Code: Select all

// ...
unsigned int TremVol = GetTremolo();
int Volume = (m_iSeqVolume * (m_iVolume >> VOL_COLUMN_SHIFT)) / 15 - TremVol;
// Volume could be negative here already because CChannelHandler::CalculateVolume() is not used
Volume = (Volume << 1) | ((m_iDutyPeriod & 1) << 5); // negative ints fill higher bytes with 1s
if (Volume < 0)
   Volume = 0; // volume is zero, duty information is essentially discarded
// ...
if (m_iSeqVolume > 0 && m_iVolume > 0 && Volume == 0)
   Volume = 2; // incorrect clipping for volumes 32 - 63 if 7xy underflows
// ...
The code above is from version 0.4.6. In the 0.5.0 betas, when using any 64-step volume sequence on the sawtooth channel, the outputted volume warps to 63 if the volume after processing the tremolo drops below 0. Exported NSFs clip the volume at 34 for 16-step volume sequences, and 1 for 64-step ones, the latter of which is clearly the correct behaviour, but the former I am not sure.
refactoring 0cc-famitracker

User avatar
y479021776
Posts: 5
Joined: Tue Sep 15, 2015 2:06 pm

Re: Version 0.5 preview

Postby y479021776 » Fri Nov 27, 2015 12:20 pm

This beta version have a glitch.
Output to NES file and open it,the sound..................fix it,please...

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: Version 0.5 preview

Postby Stratelier » Sun Nov 29, 2015 6:32 pm

y479021776 wrote:This beta version have a glitch.
Output to NES file and open it,the sound..................fix it,please...

Explain better please or no fix.

But seriously, you need to tell us exactly what you're doing and in what order so we can duplicate the results. Or, if you have the ability to record video, record a stream of you doing it and show us the link. THEN we can figure out what's actually going on here and what to do about it. Otherwise, we really can't help you.

User avatar
za909
Posts: 79
Joined: Tue May 12, 2015 12:10 pm
Location: Hungary

Re: Version 0.5 preview

Postby za909 » Sun Nov 29, 2015 8:39 pm

ROM export is completely broken. There isn't much to elaborate on that in my opinion...unless the person can go ahead and debug the engine to see where it dies... Oh and I also don't understand why VRC7 NSFs interpret the Sxx effect differently. It insta-silences channels by setting the frequency to zero, instead of triggering the release like it used to, which is how it still is in the tracker itself.

User avatar
HertzDevil
Posts: 475
Joined: Thu Apr 23, 2015 7:39 pm
Location: Hong Kong SAR
Contact:

Re: Version 0.5 preview

Postby HertzDevil » Mon Nov 30, 2015 1:47 pm

The ROM export relies on a constant ASM loader near the end of the file, defined by NSF_CALLER_BIN in Driver.h, which translates to:

Code: Select all

01:FF80:78        SEI
01:FF81:D8        CLD
01:FF82:AD 02 20  LDA $2002
01:FF85:10 FB     BPL $FF82
01:FF87:AD 02 20  LDA $2002
01:FF8A:10 FB     BPL $FF87
01:FF8C:A2 00     LDX #$00
01:FF8E:8A        TXA
01:FF8F:9D 00 02  STA $0200,X
01:FF92:E8        INX
01:FF93:D0 FA     BNE $FF8F
01:FF95:A9 0F     LDA #$0F
01:FF97:8D 15 40  STA $4015
01:FF9A:A9 0A     LDA #$0A
01:FF9C:8D 10 40  STA $4010
01:FF9F:A9 00     LDA #$00
01:FFA1:A2 00     LDX #$00
01:FFA3:A0 00     LDY #$00
01:FFA5:20 08 80  JSR $8008
01:FFA8:A9 80     LDA #$80
01:FFAA:8D 00 20  STA $2000
01:FFAD:A9 00     LDA #$00
01:FFAF:8D 01 20  STA $2001
01:FFB2:4C B2 FF  JMP $FFB2
01:FFB5:20 0B 80  JSR $800B
The two JSR instructions, pointing to the INIT and PLAY routines of the FamiTracker NSF driver, are valid only if PACKAGE was defined while compiling the driver headers, which would inject 8 fixed bytes at the beginning of the driver code for identifying the driver version ("FTDRV \x02\x0A"). Modifying these two JSR $8000 and JSR $8003 would make the NES ROM work properly, because for some reason the beta build does not contain this identifier in the driver headers.
refactoring 0cc-famitracker

Lord Nightmare
Posts: 6
Joined: Tue May 12, 2015 5:56 am

Re: Version 0.5 preview

Postby Lord Nightmare » Tue Dec 01, 2015 3:12 am

Where can I get the source code of the 0.5 preview?
(I.e. as per GPLV2 Section 3)

LN

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: Version 0.5 preview

Postby Stratelier » Wed Dec 02, 2015 4:38 am

Source code is typically released after the corresponding binary.

This is partly because jsr is the sole programmer behind the official builds, unlike repository-based projects where the source is released first then the binaries and installers are built from that.

User avatar
Sky Yoshi
Posts: 985
Joined: Tue Nov 03, 2015 8:09 am
Location: Japan Osaka (。-`ω-)
Contact:

Re: Version 0.5 preview

Postby Sky Yoshi » Sat Dec 12, 2015 9:46 am

The download count has reached 2000.
Why this has occured?
Edit 1 : Make it easy to understand.
Last edited by Sky Yoshi on Sat Dec 12, 2015 3:12 pm, edited 1 time in total.
I'm Sky Yoshi and I'm a Japanese Tracker.
I am back from 5 months of absent!
Check out my Links to see what I do!
Do you wanna be pointless? Click here!

User avatar
Dr. Merio
Posts: 680
Joined: Mon Apr 20, 2015 6:25 pm
Location: On your screen
Contact:

Re: Version 0.5 preview

Postby Dr. Merio » Sat Dec 12, 2015 2:37 pm

Sky Yoshi wrote:I was here to watch the effect list but it looks like the download time has reached 2000.
WHY?

What do you even mean?

Avoid making useless post please, and if you're asking for help, be clear about what's the problem you're having. Your post doesn't tell us anything and as it stands, it's just a waste of time. Use either the Wiki or 0.4.6's help file to see the effects list if that's what you meant, and PLEASE make sure your questions don't have a clear answer before asking anything.
My current avatar is why we need bigger avatars. >:C
Check out my YouTube channel!
[Dropbox (my FT stuff)]

User avatar
Sky Yoshi
Posts: 985
Joined: Tue Nov 03, 2015 8:09 am
Location: Japan Osaka (。-`ω-)
Contact:

Re: Version 0.5 preview

Postby Sky Yoshi » Sat Dec 12, 2015 3:13 pm

Dr. Merio wrote:
Sky Yoshi wrote:I was here to watch the effect list but it looks like the download time has reached 2000.
WHY?

What do you even mean?

Avoid making useless post please, and if you're asking for help, be clear about what's the problem you're having. Your post doesn't tell us anything and as it stands, it's just a waste of time. Use either the Wiki or 0.4.6's help file to see the effects list if that's what you meant, and PLEASE make sure your questions don't have a clear answer before asking anything.

Edited the post to make it easy to understand.
I'm Sky Yoshi and I'm a Japanese Tracker.
I am back from 5 months of absent!
Check out my Links to see what I do!
Do you wanna be pointless? Click here!


Return to “General Talk”

Who is online

Users browsing this forum: No registered users and 3 guests