Skip to content

Aikku93/ulcplayer-gba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ulcplayer-gba

Gameboy Advance player for ulc-codec.

Screenshot

Details

As a proof of concept of the decoding complexity of ulc-codec, a Gameboy Advance demonstration was made. CPU usage is around 65% for 32768Hz @ 128kbps (M/S stereo) (or 70% when using LUT mode for [IM]DCT). Note that this is entirely a proof of concept; decode time for BlockSize=2048 (default for encoding tool) is 2-3 frames, so usage in real applications would need some form of threading to avoid excessive lag.

To use this player, you must:

  • Provide your own SoundData.ulc and modify ulcplayer.s to match.
  • Modify the PATH variable in the Makefile to point to your build tools
  • Compile with a suitable ARM assembler+linker (wholly written in assembly; no compiler needed)

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.

For stereo audio and a maximum block size of 2048 samples, memory usage is 3.1KiB IWRAM code, 24KiB IWRAM data, ~8KiB EWRAM data, and 236 bytes of ROM (or 8.2KiB when using LUT mode).

Note that the colour blending isn't perfect (due to GBA limitations). For best results, the backdrop should have high-contrast detail to mask blending artifacts.

Authors

  • Ruben Nunez - Initial work - Aikku93

Acknowledgements

Pre-built Demo (Last update: 2023/06/04)

WARNING: Flashing lights.

Files:

Featuring:

  • Damian Ray - In My Brain (Rayvolt Remix)
  • Dr. Peacock - Vive La Volta (Sefa Remix)
  • Irradiate - Edge of Infinity (In Our Blood)
  • Juju Rush - Catching Fire
  • Nosferatu & Nolz - Cosmic Conquest
  • Rayvolt - And We Run
  • Re-Style & Runeforce - A New Dawn
  • Re-Style & Vertex - Shadow World
  • Re-Style ft. Cammie Robinson - Feel Alive
  • Runeforce ft. Lune - Lonely Soldier
  • Sefa & Crypton - Lastig
  • Vertex - Collective Paranoia
  • Vertex - Let It Roll
  • Vertex - Radiance

Nintendo DS Player

ulc-codec's decoding library has been ported to NDS. See the project page for more details.