Try Try USF Central 2.0, now featuring links that work!

USF - Nintendo Ultra 64 Sound Format

brute force ROMhacking since 2004
Greetings, guest, won't you sign the guestbook?
FAQ NEW!
If you're familiar with PSF you'll immediately recognize USF: it's an attempt to do the same thing with the Nintendo 64. For the uninitiated...

USF is a file format which contains all the data needed to play a song from an N64 game. Once the song has been ripped into a USF file you can load it up in a player (such as the 64th Note Winamp Plugin) and listen to the music.
USF Specification

Ripping USFs is a nontrivial task. The gist of it is you fiddle with an N64 ROM until you get it doing nothing but playing music, then you run it through a series of utilities I've written to remove unused data. You can use a SIG file I've generated for the N64's standard library, libultra to aid you in navigating N64 ROMs with IDA, or you can generate your own based on other libraries you might have with my N64 OBJ to PAT parser. someone42 put together a more complete set of SIG files as well.
In answer to the question I read a lot, I cannot foresee an automated USF ripping program. Also I will not teach you N64 ROM hacking. If you can isolate a game's music code I can help you with the rest of the USF-creation process, but there are basics I just don't have the patience (or skill, probably) to teach.

Differences from PSF

PSF ripping is aided by the fact that PS games are segmented into files, and it is usually possible to isolate the sound code fairly thoroughly. N64 games are one huge chunk of code, and very little navigation aid is available beyond what can be determined from the use of library calls. Once a game has been hacked to play only the song the ripper requests it is then reduced to the minimum code and data needed to do so. Unfortunately it is likely that non-music code remains in the USF rip, which serves no purpose other than to slow down the entire system. This depends on the skill of the ripper.
As there is no standard N64 EXE format, as there is for PS, I had to come up with a way of quickly loading a bit of code without having to go through the entire N64 boot process. For this I include a save state in the file. This also aids in working with games which are compressed, I can work directly with the uncompressed data in RAM via the savestate rather than figuring out how it fits into the ROM.
PSF files are internally compressed. USF files use a sparse storage scheme, in which only data which is not zero is stored. Any unused data in the ROM or save state is replaced with zeroes (as with PSF). This brings file size down by a lot (the elimination of zero data is the primary purpose for PSF's compression) but also allows for a more efficient external compression of the files, for example putting the whole soundtrack to a game in a single RAR archive.

Current Sets

GameSizeTracksbyStatus/LinkLast UpdatedNotes
Super Mario 641000 KB38hcscomplete9/25/04
PilotWings 64666 KB31hcscomplete9/25/04
Goldeneye542 KB58someone42complete10/10/04
Legend of Zelda: Ocarina of Time1.83 MB105hcscomplete9/26/04
Starfox 64781 KB45someone42complete10/22/04
F-Zero X8.66 MB!20hcscomplete9/25/04
Legend of Zelda: Majora's Mask2.15 MB118hcscomplete9/26/04
The New Tetris6.67 MB16zoopdcomplete10/1/04
Ogre Battle 641.56 MB61zoopdcomplete10/13/04Works very well and much faster with Audio HLE
Super Smash Bros.1.10 MB47zoopdcomplete10/2/04
Tetrisphere3.14 MB23zoopdcomplete10/2/04
Magical Tetris Challenge6.68 MB15zoopdcomplete10/4/04
Perfect Dark1.74 MB117zoopdcomplete01/13/05
Wonder Project J 2399 KB76hcscomplete10/15/04
Mario Kart 64840 KB29Parasytecomplete10/9/04
Space Station: Silicon Valley807 KB30hcscomplete10/19/04
Banjo Kazooie846 KB> 173someone42tagging in progress10/26/04
Beetle Adventure Racing1.75 MB16Parasytecomplete10/22/04
Castlevania 642.37 MB106Parasytetagging in progress10/13/04
Bust-A-Move '99800 KB20Parasyteunresolved player problem10/20/04
Castlevania 64 - Legacy of DarknessParasytetagging in progress10/20/04
Glover1.27 MB60hcscomplete01/13/05
Rayman 22 MB173Parasytetagging in progress10/22/04
Zool - Majou Tsukai Densetsu1.29 MB87hcscomplete enough01/07/05
Quest 64415 KB44hcscomplete10/23/04
Note: certain tracks in Super Mario 64 have the wrong tempo
Note: certain tracks in LOZOOT are missing short intros
Note: certain tracks in LOZOOT could not be dumped
Note: certain tracks in LOZOOT are pieces of the Hyrule Field song
Note: Sets marked "tagging in progress" are already in the process of being tagged, please stop sending me your versions of those!

If you're working on a USF let me know and I'll add you to the list!

Other USF mirrors: A big playlist

64th Note

64th Note logo
64th Note is a USF plugin for
Winamp, based on Project64 by Zilmar and Jabo and Azimer's HLE Audio Plugin. It requires major CPU and memory resources, 300 MHz and 64 MB are the minimum for the least-intensive USF sets, but requirements vary greatly between sets.

Download current version:
64th Note v0.08 installer
64th Note v0.08 binary
64th Note v0.08 source
Read Me!
Winamp.com Plugin page
It is strongly recommended that you use the most recent version!
64th Note now uses NSIS to install without much user effort, however this will not work (yet) if you don't have Winamp installed.

Development

The source to 64th Note and various other tools, can be found here and here



You are requested to report any errors you encounter or improvements you suggest to halleyscometsoftware@hotmail.com
Last updated 03/24/05.
A production of Halley's Comet Software