Skip to content

Aikku93/ulcplayer-nds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ulcplayer-nds

Nintendo DS player for ulc-codec.

Screenshot

Details

As a proof of concept of the decoding complexity of ulc-codec, a Nintendo DS demonstration was made. CPU usage is around 35% (ARM7) for 32728Hz @ 128kbps (M/S stereo). Note that this is entirely a proof of concept; decode time for BlockSize=2048 (default for encoding tool) is 1-2 frames, so usage in real applications would need some form of threading to avoid excessive lag. On top of that, streaming audio requires data to be read from card periodically, potentially causing underrun issues; underrun is generally unrecoverable and tends to crash the player.

To use this player, you must:

  • Have devKitPro installed and ready to build NDS programs (if compiling from source)
  • For streamed audio (no recompilation necessary):
    • Use an interface that supports DLDI (eg. DeSmuME or hardware)
    • Add your tracks into a folder named "ulc" (see demo file)
    • If desired, metadata (track name, artist name, and cover art) may be added via the AddMetadata.py script
  • For pre-compiled audio:
    • Add tracks in arm9/source/TrackListings.s

By default, the player uses a quadrature oscillator for [IM]DCT routines, and supports both mono and stereo files and any block size up to 2048.

Authors

  • Ruben Nunez - Initial work - Aikku93

Acknowledgements

Pre-built Demo (Last update: 2022/09/18)

Files:

Featuring:

  • Sefa & Crypton - Lastig (as pre-compiled track)
  • Dr. Rude & RATKID - Self Esteem (as streamed audio)