USF - Nintendo Ultra 64 Sound Format

brute force ROMhacking since 2004
FAQ
Greetings, Guest, won't you sign the Guest Book?
Or visit the forum?
I've got a system for requests set up

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.
You'll see that most USF sets are actually many miniUSF files and a single USFlib file. The USFlib contains data common to all songs (such as sample data or player code), while the miniUSF files contain data specific to each song (the sequence for the song, or bits of code specific to the song). The miniUSF file contains a reference to the USFlib file, and both must be located in the same directory for the player to find the USFlib.
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. The most useful tool is the Interactive Disassembler (IDA). You can use SIG files 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. I've also assembled a Project 64 Save State Loader for IDA which often makes analysis much easier.

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.

Current Sets

TitlerippertrackssizeLast Updatedstatus/linkdownloads
San Francisco Rush - Extreme RacingJosh W16 06/01/2008preliminary 
Chameleon Twist 2Josh W24 05/28/2008preliminary 
Shadow ManJosh W28 05/28/2008preliminary 
International Superstar Soccer 64Josh W15 05/27/2008preliminary 
Turok: Rage WarsJosh W9 05/27/2008preliminary 
Turok 2: Seeds of EvilJosh W19 05/24/2008preliminary 
Wonder Project J 2hcs76418.91 KB02/19/2008complete, newer tags2885
Jet Force Geminihcs782.84 MB12/06/2007complete, updated tags3075
Banjo TooieJosh W1996.01 MB11/26/2007complete1152
Bomberman 64: The Second AttackJosh W621.21 MB11/26/2007complete582
Duke Nukem: Zero HourJosh W124.18 MB11/26/2007complete530
Gauntlet LegendsJosh W39970.98 KB11/26/2007complete523
Rush 2 - Extreme Racing USAJosh W131.6 MB11/26/2007complete498
San Francisco Rush 2049Josh W121.5 MB11/26/2007complete497
Wipeout 64Josh W102.03 MB11/26/2007complete555
Gloverhcs601.29 MB11/25/2007complete, tag fix2676
1080 SnowboardingUNKNOWNFILE181.84 MB03/08/2007complete1372
Banjo Kazooiesomeone42258935.22 KB03/08/2007complete2695
Castlevania 64Parasyte1062.39 MB03/07/2007complete1694
Kirby 64 - The Crystal ShardsParasyte631.44 MB03/07/2007complete2340
Rayman 2Parasyte1731.46 MB03/07/2007complete1095
WCW vs. nWo - World TourJosh W19 01/14/2007preliminary 
Penny RacersUNKNOWNFILE27 09/23/2006preliminary 
Virtual Pro Wrestling 64UNKNOWNFILE29 09/23/2006preliminary 
007 - The World is Not EnoughJosh W18 08/17/2006preliminary 
Super BowlingJosh W20 08/11/2006preliminary 
Pokemon SnapJosh W36694.03 KB08/10/2006complete2058
Snowboard Kids 2Josh W324.11 MB08/03/2006complete1561
Donkey Kong 64Josh W1783.42 MB07/29/2006complete3775
Harvest Moon 64Josh W42 07/08/2006preliminary 
Clay Fighter 63 1/3Josh W42 07/02/2006preliminary 
Last Legion UXJosh W21 06/12/2006preliminary 
Buck Bumblehcs20893.97 KB06/07/2006complete1485
Cruis'n WorldJosh W143.26 MB06/07/2006complete1675
Mission: ImpossibleJosh W12594.92 KB06/06/2006complete1742
NHL Breakaway 98Josh W34228.06 KB06/06/2006complete1288
BattleTanxJosh W19534.19 KB05/28/2006complete1448
Cruis'n USAJosh W13583.8 KB05/28/2006complete1868
Blues Brothers 2000UNKNOWNFILE13 03/19/2006preliminary 
Dr. Mario 64Josh W24570.41 KB03/10/2006complete, updated tags2888
Pokemon Stadiumhcs721.2 MB03/10/2006complete3291
Getter Love!! Cho Renai Party Gamehcs44 02/28/2006preliminary 
Eikou no St AndrewsUNKNOWNFILE16 02/06/2006preliminary 
Top Gear OverdriveJosh W6 02/02/2006preliminary 
Mario Party 2Josh W811.71 MB01/25/2006complete+12859
Yoshi's StoryJosh W751.7 MB01/11/2006complete, updated25964
Carmageddon 64Josh W9 01/06/2006preliminary 
Earthworm Jim 3DJosh W15 12/26/2005preliminary 
Paper Mariohcs1663.45 MB12/10/2005complete, fixes4053
Robotech Crystal DreamsUNKNOWNFILE102 12/09/2005preliminary, +1 track 
Chopper Attackhcs151.11 MB12/07/2005complete, faster2412
Doom 64Josh W24 11/29/2005preliminary 
Quake 64Josh W18 11/27/2005preliminary 
Ridge Racer 64Josh W12 11/26/2005preliminary 
Animal Foresthcs2412.5 MB11/24/2005complete, fixed track #s2857
Battle Tanx: Global Assaulthcs211.26 MB11/23/2005complete2117
Bomberman 64hcs37866.52 KB11/23/2005complete2966
Bomberman HeroJosh W31837.31 KB11/23/2005complete2378
Diddy Kong RacingUNKNOWNFILE63995.94 KB11/23/2005complete3488
Excitebike 64hcs112.07 MB11/23/2005complete2203
Extreme Ghcs12351.96 KB11/23/2005complete2470
Extreme G XG2hcs23809.65 KB11/23/2005complete2274
Mario Partyhcs732.84 MB11/23/2005complete3041
Mario Party 3Josh W831.69 MB11/23/2005complete2747
Mario Tennishcs661.04 MB11/23/2005complete2768
Mischief Makershcs33673.5 KB11/23/2005complete2573
Shadowgate 64hcs27750.95 KB11/23/2005complete2078
Turok Dinosaur HunterJosh W15349.04 KB11/23/2005complete2398
Fire Electric PenUNKNOWNFILE24 11/06/2005preliminary 
Lode Runner 3Dhcs10 11/04/2005preliminary 
AeroGaugeJosh W26 11/01/2005preliminary 
Turok 3 Shadow of OblivionJosh W65 10/27/2005preliminary 
Hybrid Heavenhcs70 10/24/2005preliminary 
Automobili LamborghiniJosh W7 10/22/2005preliminary 
Mario GolfJosh W51 10/22/2005preliminary 
Megaman 64Josh W71 10/22/2005preliminary 
Sim City 2000Josh W41 10/22/2005preliminary 
Conker's Bad Fur DayJosh W146 10/14/2005preliminary 
64 Trump CollectionUNKNOWNFILE35 10/11/2005preliminary 
Snowboard Kidshcs19 10/01/2005preliminary (slow) 
John Romero's Daikatanahcs18 09/26/2005preliminary (a little broken) 
Pokemon Stadium 2hcs97 09/22/2005preliminary 
Pocket Monsters Stadiumhcs21 09/21/2005preliminary 
Duke Nukem 64Josh W2237.76 KB09/12/2005complete2871
Mortal Kombat 4Josh W55 09/12/2005preliminary 
Killer Instinct Goldhcs48 07/23/2005preliminary, needs tagging 
Neon Genesis Evangelionhcs243.71 MB07/19/2005complete-ish2920
Blast Corpshcs65506.25 KB07/14/2005complete, fixed tags6817
Dynamix - congrats split demoUNKNOWNFILE1 06/30/2005preliminary 
Dynamix first N64 introUNKNOWNFILE2 06/30/2005preliminary 
Ganbare Goemon - Mononoke Sugorokuhcs492.43 MB06/17/2005complete2776
Mace - The Dark Agehcs15 06/05/2005experimental rip completer 
Nintama Rantarou 64hcs22 06/02/2005experimental rip complete 
Body Harvesthcs87 05/31/2005preliminary 
Goemon's Great Adventurehcs1782.8 MB05/25/2005complete3381
Wave Race 64 (Shindou Edition)hcs30548.05 KB05/19/2005complete3328
Mystical Ninja - Starring Goemonhcs952.62 MB05/14/2005complete3914
Zool - Majou Tsukai Densetsuhcs871.29 MB04/28/2005complete, updated tags2518
Onegai MonstersUNKNOWNFILE36 03/19/2005preliminary 
Pokemon Puzzle LeagueJosh W73 02/01/2005preliminary 
Perfect Darkzoopd1171.75 MB01/13/2005complete4573
Quest 64hcs44415.13 KB10/23/2004complete2845
Beetle Adventure RacingParasyte161.76 MB10/22/2004complete2562
Starfox 64someone4245781.75 KB10/22/2004complete4919
Bust-A-Move '99Parasyte20 10/20/2004preliminary 
Castlevania 64 - Legacy of DarknessParasyte0 10/20/2004preliminary 
Space Station: Silicon Valleyhcs30807.64 KB10/19/2004complete2680
Ogre Battle 64zoopd601.56 MB10/13/2004complete3017
Goldeneyesomeone4258542.86 KB10/10/2004complete5219
Mario Kart 64Parasyte29850.05 KB10/09/2004complete4967
Magical Tetris Challengezoopd156.68 MB10/04/2004complete2474
Super Smash Bros.zoopd471.1 MB10/02/2004complete4877
Tetrispherezoopd233.15 MB10/02/2004complete2964
New Tetris, Thezoopd166.67 MB10/01/2004complete2850
Legend of Zelda: Majora's Maskhcs1182.15 MB09/26/2004complete5672
Legend of Zelda: Ocarina of Timehcs1051.83 MB09/26/2004complete7654
F-Zero Xhcs208.67 MB09/25/2004complete4443
PilotWings 64hcs31666.25 KB09/25/2004complete3400
Super Mario 64hcs381002.02 KB09/25/2004complete6829
Approx. 346.49 GB transferred

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

Other USF mirrors:
Neil Voss says:

64th Note

64th Note logo
64th Note is a USF plugin for
Winamp, based on Project64 1.6 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.

NOTE: There is a known bug with Winamp 5.5 and all versions of 64th Note. Please use the noted workaround, or an older version, until a new Winamp is available (it is said that 5.51 will fix this bug).
Download beta version:
64th Note v1.2 beta 3 binary
64th Note v1.2 beta 3 source

Download current version:
64th Note v1.1 installer
64th Note v1.1 binary
64th Note v1.1 source
Winamp.com plugin page


There is also a version for foobar2000 now, thanks to the work of Josh W:
foo_input_usf.

It is strongly recommended that you use the most recent version!
64th Note now uses NSIS to install without much user effort.



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