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
Wonder Project J 2hcs76418.91 KB02/19/2008complete, newer tags2786
Jet Force Geminihcs782.84 MB12/06/2007complete, updated tags2943
Banjo TooieJosh W1996.01 MB11/26/2007complete958
Bomberman 64: The Second AttackJosh W621.21 MB11/26/2007complete466
Duke Nukem: Zero HourJosh W124.18 MB11/26/2007complete426
Gauntlet LegendsJosh W39970.98 KB11/26/2007complete411
Rush 2 - Extreme Racing USAJosh W131.6 MB11/26/2007complete389
San Francisco Rush 2049Josh W121.5 MB11/26/2007complete397
Wipeout 64Josh W102.03 MB11/26/2007complete442
Gloverhcs601.29 MB11/25/2007complete, tag fix2572
1080 SnowboardingUNKNOWNFILE181.84 MB03/08/2007complete1247
Banjo Kazooiesomeone42258935.22 KB03/08/2007complete2476
Castlevania 64Parasyte1062.39 MB03/07/2007complete1542
Kirby 64 - The Crystal ShardsParasyte631.44 MB03/07/2007complete2145
Rayman 2Parasyte1731.46 MB03/07/2007complete999
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/2006complete1942
Snowboard Kids 2Josh W324.11 MB08/03/2006complete1464
Donkey Kong 64Josh W1783.42 MB07/29/2006complete3567
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/2006complete1391
Cruis'n WorldJosh W143.26 MB06/07/2006complete1586
Mission: ImpossibleJosh W12594.92 KB06/06/2006complete1647
NHL Breakaway 98Josh W34228.06 KB06/06/2006complete1196
Turok 2: Seeds of EvilJosh W23 05/29/2006In Progress 
BattleTanxJosh W19534.19 KB05/28/2006complete1368
Cruis'n USAJosh W13583.8 KB05/28/2006complete1773
Blues Brothers 2000UNKNOWNFILE13 03/19/2006preliminary 
Dr. Mario 64Josh W24570.41 KB03/10/2006complete, updated tags2795
Pokemon Stadiumhcs721.2 MB03/10/2006complete3154
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+12761
Yoshi's StoryJosh W751.7 MB01/11/2006complete, updated25795
Carmageddon 64Josh W9 01/06/2006preliminary 
Earthworm Jim 3DJosh W15 12/26/2005preliminary 
Paper Mariohcs1663.45 MB12/10/2005complete, fixes3921
Robotech Crystal DreamsUNKNOWNFILE102 12/09/2005preliminary, +1 track 
Chopper Attackhcs151.11 MB12/07/2005complete, faster2317
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 #s2733
Battle Tanx: Global Assaulthcs211.26 MB11/23/2005complete2028
Bomberman 64hcs37866.52 KB11/23/2005complete2852
Bomberman HeroJosh W31837.31 KB11/23/2005complete2272
Diddy Kong RacingUNKNOWNFILE63995.94 KB11/23/2005complete3346
Excitebike 64hcs112.07 MB11/23/2005complete2111
Extreme Ghcs12351.96 KB11/23/2005complete2358
Extreme G XG2hcs23809.65 KB11/23/2005complete2181
Mario Partyhcs732.84 MB11/23/2005complete2925
Mario Party 3Josh W831.69 MB11/23/2005complete2655
Mario Tennishcs661.04 MB11/23/2005complete2671
Mischief Makershcs33673.5 KB11/23/2005complete2451
Shadowgate 64hcs27750.95 KB11/23/2005complete1981
Turok Dinosaur HunterJosh W15349.04 KB11/23/2005complete2295
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/2005complete2768
Mortal Kombat 4Josh W55 09/12/2005preliminary 
Killer Instinct Goldhcs48 07/23/2005preliminary, needs tagging 
Neon Genesis Evangelionhcs243.71 MB07/19/2005complete-ish2820
Blast Corpshcs65506.25 KB07/14/2005complete, fixed tags6697
Dynamix - congrats split demoUNKNOWNFILE1 06/30/2005preliminary 
Dynamix first N64 introUNKNOWNFILE2 06/30/2005preliminary 
Ganbare Goemon - Mononoke Sugorokuhcs492.43 MB06/17/2005complete2674
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/2005complete3258
Wave Race 64 (Shindou Edition)hcs30548.05 KB05/19/2005complete3237
Mystical Ninja - Starring Goemonhcs952.62 MB05/14/2005complete3788
Zool - Majou Tsukai Densetsuhcs871.29 MB04/28/2005complete, updated tags2448
Onegai MonstersUNKNOWNFILE36 03/19/2005preliminary 
Pokemon Puzzle LeagueJosh W73 02/01/2005preliminary 
Perfect Darkzoopd1171.75 MB01/13/2005complete4449
Quest 64hcs44415.13 KB10/23/2004complete2758
Beetle Adventure RacingParasyte161.76 MB10/22/2004complete2474
Starfox 64someone4245781.75 KB10/22/2004complete4768
Bust-A-Move '99Parasyte20 10/20/2004preliminary 
Castlevania 64 - Legacy of DarknessParasyte0 10/20/2004preliminary 
Space Station: Silicon Valleyhcs30807.64 KB10/19/2004complete2591
Ogre Battle 64zoopd601.56 MB10/13/2004complete2908
Goldeneyesomeone4258542.86 KB10/10/2004complete5071
Mario Kart 64Parasyte29850.05 KB10/09/2004complete4833
Magical Tetris Challengezoopd156.68 MB10/04/2004complete2382
Super Smash Bros.zoopd471.1 MB10/02/2004complete4720
Tetrispherezoopd233.15 MB10/02/2004complete2871
New Tetris, Thezoopd166.67 MB10/01/2004complete2765
Legend of Zelda: Majora's Maskhcs1182.15 MB09/26/2004complete5498
Legend of Zelda: Ocarina of Timehcs1051.83 MB09/26/2004complete7427
F-Zero Xhcs208.67 MB09/25/2004complete4302
PilotWings 64hcs31666.25 KB09/25/2004complete3285
Super Mario 64hcs381002.02 KB09/25/2004complete6653
Approx. 331.52 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