It is currently Sat Dec 16, 2017 11:36 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: incorrect NSF header
PostPosted: Tue Jul 04, 2017 10:46 am 
Offline
User avatar

Joined: Sat Apr 18, 2009 4:36 am
Posts: 260
Location: Russia
All standalone NSF players and NES emulators take extra info from NSF-header.
But i've found Power Blade NSF (http://akumunsf.good-evil.net/)
that indicates VRC6, VRC7 and FDS are using same time:
Image
But Power Blade is just plain 2A03 tune, so i guess NSF have incorrect header info.

Why all the emulators/players take header info but not detect/display what extra chip really work?


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Tue Jul 04, 2017 11:27 am 
Offline

Joined: Fri Sep 22, 2006 9:52 am
Posts: 160
Location: philly
I've seen the same thing in some older NSFs. Wolverine had the same issue-
Image


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Tue Jul 04, 2017 11:32 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2983
Location: Tampere, Finland
Eugene.S wrote:
Why all the emulators/players take header info but not detect/display what extra chip really work?

It's not really easy to detect what extra chips are actually used. You'd have to play through all songs (assuming there are no random elements in them) and check whether they write to any of the audio extension's registers.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Tue Jul 04, 2017 12:07 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19350
Location: NE Indiana, USA (NTSC)
How much of an NSF player's time is spent emulating the 6502, as opposed to generating the audio waveform? Perhaps when a player loads an NSF, it could emulate each track for 20 seconds and log writes made during that time, in effect converting those first seconds to a logged format analogous to VGM from which actual mapper synth writes can be inferred.


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Tue Jul 04, 2017 12:59 pm 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2983
Location: Tampere, Finland
tepples wrote:
How much of an NSF player's time is spent emulating the 6502, as opposed to generating the audio waveform? Perhaps when a player loads an NSF, it could emulate each track for 20 seconds and log writes made during that time, in effect converting those first seconds to a logged format analogous to VGM from which actual mapper synth writes can be inferred.

Still, it would be a flaky solution to what is really a non-issue.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Wed Jul 05, 2017 8:14 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5899
Location: Canada
thefox wrote:
(assuming there are no random elements in them)

There aren't random elements; NSFs are deterministic as far as they don't start using out-of-bounds hardware (e.g. reading the controllers, PPU, open bus areas, etc.) RAM is initialized to 0 before the NSF INIT code runs.

But, yeah, there is no reason to try to detect anything. Just fix the header.


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Wed Jul 05, 2017 8:27 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19350
Location: NE Indiana, USA (NTSC)
rainwarrior wrote:
thefox wrote:
(assuming there are no random elements in them)

There aren't random elements; NSFs are deterministic

I assumed thefox referred to pseudorandom elements, which would cause the NSF not to end or loop within 5 minutes like most NSFs do. Think of a musical improvisation engine that doesn't decide to use a particular expansion until several minutes in.

rainwarrior wrote:
as far as they don't start using out-of-bounds hardware (e.g. reading the controllers, PPU, open bus areas, etc.) RAM is initialized to 0 before the NSF INIT code runs.

Such "out-of-bounds hardware" would include RAM addresses $0101+S through $01FF. From "NSF" on the wiki:
The precise position of the stack on INIT or PLAY is not guaranteed, as the NSF player may need to use the top area of the stack for its own internal purpose. Make sure the tune does not attempt to modify $01F0-01FF directly. (Armed Dragon Villigust did, and was relocated to 2xx for its NSF.)


rainwarrior wrote:
But, yeah, there is no reason to try to detect anything. Just fix the header.

Unless you're writing the tool that audits headers.


Top
 Profile  
 
 Post subject: Re: incorrect NSF header
PostPosted: Wed Jul 05, 2017 8:29 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2983
Location: Tampere, Finland
rainwarrior wrote:
thefox wrote:
(assuming there are no random elements in them)

There aren't random elements;

Could have worded that better. I meant that a randomized song could run infinitely long, making it impractical to play through it. Of course in practice it would be highly unlikely that a song would run for a very long time and only then suddenly decide to write to an expansion audio register. :)

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: Yahoo [Bot] and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group