Homebrew NDS Music Player

KazoWAR

Well-Known Member
OP
Member
Joined
Aug 12, 2008
Messages
1,952
Trophies
1
Age
35
Location
Winter Haven
XP
2,125
Country
United States
old post
I have here a homebrew I have been working on for the past few days. It uses fincs' SSEQ Player to play the music. I added a file browser that atm is most likey still buggy. browse your cart for a NDS game that uses SSEQ music. press a to open and then it will read for the SDAT data and then build a list of all SSEQs in the SDAT. then browse for the SSEQ to play and press A.

This is like alpha software here, didn't really test for bugs and make it better yet. just excited i got it to actually play the music off the ROMs.

I like to thank fincs' for the SSEQ Player, and KiC, FAST6191, and pleonex for helping me figure out how to access files on a NDS ROM.

[media]pvPCC4dPC1E[/media]


NDS Music Player is a hombrew that uses fincs' SSEQ Player to play SSEQ music off of ROMs on your SD card. You need to run SPSMaker on your computer to generate a SPS file for each game. The SPS files contain info for the game's SDAT files to make loading the music way faster than reading the sdat data directly from the ROM.

Special thanks to caitsith2 and avenir for helping me out.

Download: https://github.com/CaitSith2/SSEQPlayer/raw.../SSEQPlayer.rar
Source: https://github.com/CaitSith2/SSEQPlayer

changelog
Nov 23, 2011
- Modulation now implemented. Merged that change from fincs repository.

Sept 15, 2011
- Automatic play mode added. Push select to enable/disable it.
- Track Fadeout option added. Push Y to make it happen. (Will also happen in auto-play mode after 2 loops of a given sequence.)
- File names with special characters, like Pokémon, no longer cause problems for SPS Maker.
- Pause mode added. Push Start to pause/resume a given sequence.

Sept 14, 2011
- Single track sequence support added.
- seq_bpm bug fixed. Now sequences that expect to be played back at 360 bpm, actually correctly play back at 360 bpm, instead of 240 bpm, queueing up the remaining 120 for a future sequence that expects to be played slower.

Sept 12, 2011
- Avenir implemented support for use with front-ends, like moonshell and the like. Merged those changes in.

Sept 10, 2011
- SPS now have all of the dummy sequence entries removed on load in SSEQPlayer. is no longer skipped.

1.0g: Updated again, this time SSEQPlayer, to make 100% certain that EVERY valid SPS file is correctly listed. As a side effect, if the rom file for which an SPS belongs is moved/deleted, then the SPS is no longer listed in SSEQPlayer.

1.0e: caitsith2 updated SPSMaker to put all SDATs for one game into one SPS, before it was one SPS per SDAT.

1.0d: Fincs added more stuff to his player
smile.gif


1.0c: Another update, add support for multi-wavearcs!

1.0b: caitsith2 has been working on the music player part of this. Now it supports stopping and freeing up memory before playing another song, also there are some other playback fixes concerning looping.

video
[media]Y4H7MloxgLc[/media]
 

avenir

Well-Known Member
Member
Joined
Dec 8, 2010
Messages
375
Trophies
0
XP
93
Country
United States
I know there are several methods to extract .gsf from .gba but playing NDS music was really hard thing...
VGMTrans can lip sseq+sdat to RIFF MIDI, but it is very unstable (too many segmentation fault)...

So this software is really great. Must have!
 

loco365

Well-Known Member
Member
Joined
Sep 1, 2010
Messages
5,457
Trophies
0
XP
2,927
OMG I MUST ADD THIS TO MY FLASHCARD. It's a portable version of VGMTrans! And less buggy! Thank you so much! -Must be front page'd-
 

avenir

Well-Known Member
Member
Joined
Dec 8, 2010
Messages
375
Trophies
0
XP
93
Country
United States
argh... file browser is buggy. paging isn't working.

can you show the file browser code? then I'll see if I can fix.
 

loco365

Well-Known Member
Member
Joined
Sep 1, 2010
Messages
5,457
Trophies
0
XP
2,927
avenir said:
argh... file browser is buggy. paging isn't working.

can you show the file browser code? then I'll see if I can fix.
You mind if I suggest something as well? I notice it takes a long time to find the SDAT. A good idea is that when it find it, it records the offset to an XML file so it won't take as long the second time around.
 

avenir

Well-Known Member
Member
Joined
Dec 8, 2010
Messages
375
Trophies
0
XP
93
Country
United States
Team Fail said:
avenir said:
argh... file browser is buggy. paging isn't working.

can you show the file browser code? then I'll see if I can fix.
You mind if I suggest something as well? I notice it takes a long time to find the SDAT. A good idea is that when it find it, it records the offset to an XML file so it won't take as long the second time around.
indeed good idea. now we need full src ^^
 

KazoWAR

Well-Known Member
OP
Member
Joined
Aug 12, 2008
Messages
1,952
Trophies
1
Age
35
Location
Winter Haven
XP
2,125
Country
United States
avenir said:
argh... file browser is buggy. paging isn't working.

can you show the file browser code? then I'll see if I can fix.

oh darn i forgot to add that to the filebrowser, ill make sure to get it in soon.
 

loco365

Well-Known Member
Member
Joined
Sep 1, 2010
Messages
5,457
Trophies
0
XP
2,927
You were saying that the file browser is buggy? I'd like to say I found a fatal bug. I can't load the .sdat of any files if they are in a folder. They only load properly if I am on the root. I'm running on an AceKard 2i if it matters.

Also, oddly, it can't find my Pokemon Black rom. :\
 

KazoWAR

Well-Known Member
OP
Member
Joined
Aug 12, 2008
Messages
1,952
Trophies
1
Age
35
Location
Winter Haven
XP
2,125
Country
United States
I think I am going to use Team Fail's idea but instead make a PC tool that will scan all the NDS files and make a shortcut type file for each ROM that contains the list of all SSEQ files on the ROM and the offsets for the SSEQ, BANK, and SWARs for each SSEQ. you would still be able to use the original opening a NDS file function, but and added open shortcut function should make it a lot faster, until the open NDS functions are a lot faster and stable.
 

avenir

Well-Known Member
Member
Joined
Dec 8, 2010
Messages
375
Trophies
0
XP
93
Country
United States
Seems I have done 70% of another implementation before you open the source code...
But perhaps mine will be implemented as extlink (no NDS browser) so you might go a little forward...

[edit]
As there are no implementations for sdat, my parseSDAT() is original. (nds-sdat is GPL lol)
sound_data.sdat resolver is provided by loveemu's google code(MIT).
 

loco365

Well-Known Member
Member
Joined
Sep 1, 2010
Messages
5,457
Trophies
0
XP
2,927
KazoWAR said:
I think I am going to use Team Fail's idea but instead make a PC tool that will scan all the NDS files and make a shortcut type file for each ROM that contains the list of all SSEQ files on the ROM and the offsets for the SSEQ, BANK, and SWARs for each SSEQ. you would still be able to use the original opening a NDS file function, but and added open shortcut function should make it a lot faster, until the open NDS functions are a lot faster and stable.
That will work.
biggrin.gif


But, I still have some issues with the file browsing.
 

chyyran

somehow a weeb now.
Developer
Joined
Dec 10, 2009
Messages
2,845
Trophies
1
Location
here
Website
ronnchyran.com
XP
1,076
Country
Canada
Gonna try it now, it looks pretty awesome.

EDIT: The file browser is buggy, and it can't read all the folders on my MSD, including the one with my roms in it.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Mondooooo @ Mondooooo: Just started God of War 2 on the PS2