More NSF Requests

Discuss NSF files, FamiTracker, MML tools, or anything else related to NES music.

Moderator: Moderators

ugetab
Posts: 335
Joined: Sat Oct 29, 2005 12:03 am
Contact:

Post by ugetab »

Ninja Gaiden 2 is fixed. It took a fairly extensive debugging process to figure out that the ripper played with the last 16 bytes of the 9000-9FFF range. They were probably attempting to add some extra code, and forgot to restore the original coding. The song plays correctly now.

I should probably start using the Compare feature in my hex editor when attempting any fixes, so I can tell for certain where things are changed, relative to the original data bank.

http://www.angelfire.com/nc/ugetab/
NewRisingSun
Posts: 1510
Joined: Thu May 19, 2005 11:30 am

Post by NewRisingSun »

Here's my updated NSF request list.

Battletoads (fixed channels)
If you mean by "fixed channels" the drum samples, then I guess you're out of luck. I wonder why no one bothers to update the NSF spec to allow for raw DAC output (without halting the song or doing some tricks), as we already have at least three cases where that would be needed.
Abster

Post by Abster »

Yeah, Battletoads & Double Dragon also has this issue. The drum samples in Battletoads make up their own pause theme. If the drums aren't part of the NSF specification, then how come NSFs exist that carry them with no issue? (Some of the Nekketsu games, sunsoft games, etc)
Speedy Boris
Posts: 13
Joined: Thu Dec 01, 2005 9:32 am

Post by Speedy Boris »

NewRisingSun
Posts: 1510
Joined: Thu May 19, 2005 11:30 am

Post by NewRisingSun »

If the drums aren't part of the NSF specification, then how come NSFs exist that carry them with no issue?
Because they don't use raw PCM, but DPCM.
ArnoldRimmer83
Posts: 40
Joined: Sun Oct 09, 2005 11:22 pm

Post by ArnoldRimmer83 »

That rip of arcade Punch Out is pretty interesting. Did that game use similar sound hardware to the Nes?
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

ArnoldRimmer83 wrote:That rip of arcade Punch Out is pretty interesting. Did that game use similar sound hardware to the Nes?
Yeah, it uses the NES CPU (2A03). And Donkey Kong 3 used 2 of them.
ugetab
Posts: 335
Joined: Sat Oct 29, 2005 12:03 am
Contact:

Post by ugetab »

I did the mappy land rip, and was forced to use banking because the music init and music data partially share the same bank. I didn't include any SFX tracks.
Guest

Post by Guest »

Thanks!
User avatar
Quietust
Posts: 1918
Joined: Sun Sep 19, 2004 10:59 pm
Contact:

Post by Quietust »

http://www.qmtpro.com/~nes/nsf/battletoads_pcm.zip - Battletoads, reripped with RAW PCM (and properly ordered tunes)

May not work with all NSF players, since its INIT routine loops forever instead of returning, but it is supported by the latest build of Nintendulator 0.965 (which fixed a bug in the NSF BIOS to preserve the X register during the PLAY routine interrupt).

It doesn't include the "pause music", though - apparently, it's not part of the music engine.
Last edited by Quietust on Fri May 15, 2009 10:23 am, edited 1 time in total.
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.
Abster

Post by Abster »

Hmmmm. Doesn't work with the FCE Ultra emulator. I'm not into using winamp plugins that much.
ugetab
Posts: 335
Joined: Sat Oct 29, 2005 12:03 am
Contact:

Post by ugetab »

Then use Nintendulator. The NSF works fine in the emulator or the Winamp plugin(which is a touch less responsive than the emulator), so choose the one you want to use. If NotSoFatso/FCE(UXD)(SP) won't work, it's because of an NSFSpec error that hasn't been corrected within the emulators, not because it was ripped wrong. I can't fix the error with my level of understanding, so I'm also at the mercy of skilled programmers in this matter.
Knurek
Posts: 137
Joined: Tue Jan 31, 2006 5:43 am

Post by Knurek »

Abster wrote:Hmmmm. Doesn't work with the FCE Ultra emulator. I'm not into using winamp plugins that much.
Doesn't work with NSFPlug and Nestopia either...
Guest

Post by Guest »

Does Nintendulator call the play routine before the init routine has a chance to return?
User avatar
Quietust
Posts: 1918
Joined: Sun Sep 19, 2004 10:59 pm
Contact:

Post by Quietust »

Anonymous wrote:Does Nintendulator call the play routine before the init routine has a chance to return?
Yes, though it gives it about 4 frames to return before it 'gives up' (by means of a watchdog timer).

The method by which I ripped the RAW PCM samples is not technically supported within the NSF spec, though it is simple enough to add support for it.

The NSF also is unoptimized (weighing in at a full 32KB), mainly because my NSF optimizer (NSFtool) chokes on it. As-is, it complains that all 20 tunes are bad because the INIT routine never returns. If I hack the NSF to call the raw PCM routine at the end of the Play routine only when a sample is waiting to play (as well as hack the sample playback routine to take out the delay loop), it STILL complains since the PLAY routine takes longer than 1 frame to return.

In order to optimize this NSF, I'd need a special tool that allows the init routine to loop forever.
Quietust, QMT Productions
P.S. If you don't get this note, let me know and I'll write you another.
Post Reply