Homebrew NDS Music Player

  • Thread starter Thread starter KazoWAR
  • Start date Start date
  • Views Views 48,650
  • Replies Replies 197
  • Likes Likes 2
kazo I think I may have seen you asking for a corrupted array somewhere...

Backslashes as suggested aren't cross platform, but rather just slashes (/), also, why didn't you just read the current dir into a variable?

/* read a directory */
char cur_dir;

function read_dir() {
cur_dir = (Path.GetPathRoot(filePaths[0]) + "/data/NDS Music Player/");
}

if (!Directory.Exists( read_dir(cur_dir) )
{
doesn't exists..
}

else
{
does exist..
}

Assuming directory.exists is a custom function which will look into the given directory inside.

Of course this is pseudo C, but the "directory seek" should happen once you call read_dir();, this might not be correct at all, but I think it is a good idea..
 
WORKS LIKE A CHARM
biggrin.gif

somethime the menu freeze but that is no prob for me
tongue.gif

your like a God KazoWAR
tongue.gif
xd
 
This is very nice, I've been wanting something like this for a while.

Some issues I ran into:
- When playing a new BGM, some tracks of the old one don't stop playing until they're overwritten by the new BGM's, so the start of the new BGM sounds ugly.
- In fact, there is no way at all to stop playing something.
- Some BGMs crash at Loading WAVEARC1, the last step. One BGM that does this consistently is the very first SSEQ in The Legend of Zelda: Spirit Tracks.
- SPS Maker crashed on Professor Layton and the Unwound Future for me.
- My Pokémon Ranger 3 ROM had an "é" character in it, this caused an error when trying to load it in NDS Music Player (it showed up as Pok?mon).

EDIT: - Pressing Left/Right to navigate the file list lets me scroll right past the last entry and into black space (this doesn't crash the homebrew, though).

EDIT2: - Sonic Colours produces 10 SPSs, though they all work more or less, in SONICCOLORS 2.sps the main instrument in 2act1, 2act2, 6act1 and 6act2 fail to play.
 
Prof. 9 said:
This is very nice, I've been wanting something like this for a while.

Some issues I ran into:
- When playing a new BGM, some tracks of the old one don't stop playing until they're overwritten by the new BGM's, so the start of the new BGM sounds ugly.
- In fact, there is no way at all to stop playing something.
- Some BGMs crash at Loading WAVEARC1, the last step. One BGM that does this consistently is the very first SSEQ in The Legend of Zelda: Spirit Tracks.
- SPS Maker crashed on Professor Layton and the Unwound Future for me.
- My Pokémon Ranger 3 ROM had an "é" character in it, this caused an error when trying to load it in NDS Music Player (it showed up as Pok?mon).

EDIT: - Pressing Left/Right to navigate the file list lets me scroll right past the last entry and into black space (this doesn't crash the homebrew, though).

EDIT2: - Sonic Colours produces 10 SPSs, though they all work more or less, in SONICCOLORS 2.sps the main instrument in 2act1, 2act2, 6act1 and 6act2 fail to play.

thanks for the info, ill look in to it.
 
Really sir, I owe you.

There's just 2 little things I encountered:
1: Sometimes when I load a sequence while playing another one, it halts at something with wavearc.
2: Theres no é's allowed for games, (like pokémon) it displays that it can't find the file.

Gr.Villermen
 
Great work, man =D
Most musics play awesome, some don't work.

You should improve the way you find the SDAT, though. It's too slow, and it doesn't detect multiple SDAT files (For example I can only play music from the minigames in the NSMB ROM because their SDAT is first in the ROM).

You could use this code from NSMB Editor DS to read the Nitro Filesystem. Or implement your own.

(Please note that my code is licensed under the GPL)
 
Dirbaio said:
Great work, man =D
Most musics play awesome, some don't work.

You should improve the way you find the SDAT, though. It's too slow, and it doesn't detect multiple SDAT files (For example I can only play music from the minigames in the NSMB ROM because their SDAT is first in the ROM).

You could use this code from NSMB Editor DS to read the Nitro Filesystem. Or implement your own.

(Please note that my code is licensed under the GPL)

I think you used the old version, look for v1.0 link near end of original post.
 
***EDIT 1***
Worked out stopping the sequence. Push X to stop sequence altogether. Also now properly free the sequence when a new sequence is played, so no more out of memory crashes, unless the seq+bnk+war is > 3.75MB or so. (limit of ram in DS).

http://dl.dropbox.com/u/20737085/NDS_Music_Player_1.0.rar

KazoWar: Feel free to base future code off of this version, or merge in the changes to your code base.

***EDIT 2***
Loop start/end implemented. Some sequences just stopped suddenly without it.
 
Started looking a little further into this SEQ player. As a result, less tracks now sound like crap, because per SEQ channel ADSR settings are now supported. (You will notice this quite a bit in FF4, along with a few other games.) Also hit an instance where the master volume was set to 0, and of course, the player does NOT reset it back to default on new track start. Fixed (Noticed this with Final Fantasy Fables: Chocobo Tales). Also, loop is actually implemented correctly now. (caused a few tracks to never start playing.) (Noticed this with FF4).

http://dl.dropbox.com/u/20737085/NDS_Music_Player_1.0b.rar
 
KazoWAR said:
Dirbaio said:
Great work, man =D
Most musics play awesome, some don't work.

You should improve the way you find the SDAT, though. It's too slow, and it doesn't detect multiple SDAT files (For example I can only play music from the minigames in the NSMB ROM because their SDAT is first in the ROM).

You could use this code from NSMB Editor DS to read the Nitro Filesystem. Or implement your own.

(Please note that my code is licensed under the GPL)

I think you used the old version, look for v1.0 link near end of original post.

Yes, you're right, sorry
tongue.gif

I see now the multiple SDAT issue is fixed. Cool
smile.gif


Still, I see now the thing itself is not standalone. Could you make it standalone again as in the first version?
biggrin.gif
If not, it kind of looses the point of being a DS app...
 
caitsith2 said:
Started looking a little further into this SEQ player. As a result, less tracks now sound like crap, because per SEQ channel ADSR settings are now supported. (You will notice this quite a bit in FF4, along with a few other games.) Also hit an instance where the master volume was set to 0, and of course, the player does NOT reset it back to default on new track start. Fixed (Noticed this with Final Fantasy Fables: Chocobo Tales). Also, loop is actually implemented correctly now. (caused a few tracks to never start playing.) (Noticed this with FF4).

http://dl.dropbox.com/u/20737085/NDS_Music_Player_1.0b.rar
I went and took a look at it. It looks good so far. I have only 2 concerns.

1. Some sounds terminate incorrectly. For the best example of this, listen to SEQ_TOWN2_D.sseq in a Pokemon Diamond or Pearl rom.
2. There is no Square support. None of the songs that use 8-bit sounds from the system itself will play correctly. The best example of this is any and all GB Sounds themes in HGSS. Not even VGMtrans has this support and if it is added to this, that would be awesome and this program would be complete in my eyes.
 
caitsith2 said:
Songs that use multiple Wave Archives are now playing back correctly, other than if they are using commands not yet implemented. Club House Games is a good example of a game that has SSEQ using multiple wave archives.

http://dl.dropbox.com/u/20737085/NDS_Music_Player_1.0c.rar
Yay. I'm in bed atm on my 3DS, so I'll check it out in the morning (if my computer doesn't die when I insert the SD card, that is.)
 

Site & Scene News

Popular threads in this forum