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
Gauntlet LegendsJosh W39970.84 KB07/10/2008complete, newer tags614
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 tags2929
Jet Force Geminihcs782.84 MB12/06/2007complete, updated tags3128
Banjo TooieJosh W1996.01 MB11/26/2007complete1224
Bomberman 64: The Second AttackJosh W621.21 MB11/26/2007complete625
Duke Nukem: Zero HourJosh W124.18 MB11/26/2007complete577
Rush 2 - Extreme Racing USAJosh W131.6 MB11/26/2007complete543
San Francisco Rush 2049Josh W121.5 MB11/26/2007complete540
Wipeout 64Josh W102.03 MB11/26/2007complete601
Gloverhcs601.29 MB11/25/2007complete, tag fix2719
1080 SnowboardingUNKNOWNFILE181.84 MB03/08/2007complete1419
Banjo Kazooiesomeone42258935.22 KB03/08/2007complete2770
Castlevania 64Parasyte1062.39 MB03/07/2007complete1754
Kirby 64 - The Crystal ShardsParasyte631.44 MB03/07/2007complete2415
Rayman 2Parasyte1731.46 MB03/07/2007complete1142
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/2006complete2102
Snowboard Kids 2Josh W324.11 MB08/03/2006complete1605
Donkey Kong 64Josh W1783.42 MB07/29/2006complete3855
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/2006complete1521
Cruis'n WorldJosh W143.26 MB06/07/2006complete1719
Mission: ImpossibleJosh W12594.92 KB06/06/2006complete1779
NHL Breakaway 98Josh W34228.06 KB06/06/2006complete1330
BattleTanxJosh W19534.19 KB05/28/2006complete1490
Cruis'n USAJosh W13583.8 KB05/28/2006complete1910
Blues Brothers 2000UNKNOWNFILE13 03/19/2006preliminary 
Dr. Mario 64Josh W24570.41 KB03/10/2006complete, updated tags2927
Pokemon Stadiumhcs721.2 MB03/10/2006complete3339
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+12902
Yoshi's StoryJosh W751.7 MB01/11/2006complete, updated26035
Carmageddon 64Josh W9 01/06/2006preliminary 
Earthworm Jim 3DJosh W15 12/26/2005preliminary 
Paper Mariohcs1663.45 MB12/10/2005complete, fixes4107
Robotech Crystal DreamsUNKNOWNFILE102 12/09/2005preliminary, +1 track 
Chopper Attackhcs151.11 MB12/07/2005complete, faster2454
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 #s2905
Battle Tanx: Global Assaulthcs211.26 MB11/23/2005complete2154
Bomberman 64hcs37866.52 KB11/23/2005complete3013
Bomberman HeroJosh W31837.31 KB11/23/2005complete2418
Diddy Kong RacingUNKNOWNFILE63995.94 KB11/23/2005complete3538
Excitebike 64hcs112.07 MB11/23/2005complete2242
Extreme Ghcs12351.96 KB11/23/2005complete2520
Extreme G XG2hcs23809.65 KB11/23/2005complete2312
Mario Partyhcs732.84 MB11/23/2005complete3087
Mario Party 3Josh W831.69 MB11/23/2005complete2790
Mario Tennishcs661.04 MB11/23/2005complete2808
Mischief Makershcs33673.5 KB11/23/2005complete2617
Shadowgate 64hcs27750.95 KB11/23/2005complete2115
Turok Dinosaur HunterJosh W15349.04 KB11/23/2005complete2437
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/2005complete2916
Mortal Kombat 4Josh W55 09/12/2005preliminary 
Killer Instinct Goldhcs48 07/23/2005preliminary, needs tagging 
Neon Genesis Evangelionhcs243.71 MB07/19/2005complete-ish2961
Blast Corpshcs65506.25 KB07/14/2005complete, fixed tags6855
Dynamix - congrats split demoUNKNOWNFILE1 06/30/2005preliminary 
Dynamix first N64 introUNKNOWNFILE2 06/30/2005preliminary 
Ganbare Goemon - Mononoke Sugorokuhcs492.43 MB06/17/2005complete2824
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/2005complete3432
Wave Race 64 (Shindou Edition)hcs30548.05 KB05/19/2005complete3365
Mystical Ninja - Starring Goemonhcs952.62 MB05/14/2005complete3969
Zool - Majou Tsukai Densetsuhcs871.29 MB04/28/2005complete, updated tags2548
Onegai MonstersUNKNOWNFILE36 03/19/2005preliminary 
Pokemon Puzzle LeagueJosh W73 02/01/2005preliminary 
Perfect Darkzoopd1171.75 MB01/13/2005complete4623
Quest 64hcs44415.13 KB10/23/2004complete2890
Beetle Adventure RacingParasyte161.76 MB10/22/2004complete2597
Starfox 64someone4245781.75 KB10/22/2004complete4987
Bust-A-Move '99Parasyte20 10/20/2004preliminary 
Castlevania 64 - Legacy of DarknessParasyte0 10/20/2004preliminary 
Space Station: Silicon Valleyhcs30807.64 KB10/19/2004complete2719
Ogre Battle 64zoopd601.56 MB10/13/2004complete3058
Goldeneyesomeone4258542.86 KB10/10/2004complete5269
Mario Kart 64Parasyte29850.05 KB10/09/2004complete5028
Magical Tetris Challengezoopd156.68 MB10/04/2004complete2511
Super Smash Bros.zoopd471.1 MB10/02/2004complete4943
Tetrispherezoopd233.15 MB10/02/2004complete2996
New Tetris, Thezoopd166.67 MB10/01/2004complete2881
Legend of Zelda: Majora's Maskhcs1182.15 MB09/26/2004complete5725
Legend of Zelda: Ocarina of Timehcs1051.83 MB09/26/2004complete7724
F-Zero Xhcs208.67 MB09/25/2004complete4501
PilotWings 64hcs31666.25 KB09/25/2004complete3438
Super Mario 64hcs381002.02 KB09/25/2004complete6911
Approx. 352.53 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