
**********************
Goldeneye 64 USF Rip
by someone42
Completed 10-Oct-2004
**********************

Thanks for downloading the USF rip of the original definitive first-person-shooter for the N64.

Included files other than the MiniUSFs:
oneloop.bat - Sets timing for one loop (no repeat)
twoloops.bat - Sets timing for two loops (repeat)
ge.m3u - A Winamp playlist for your convenience
readme.txt - This file
ge.usflib - The usflib for the miniusfs, don't delete this!

Note: You must be using 64th Note v0.05 or better to play this set!

It is fine to turn on "Recompiler CPU". However, because Goldeneye 64 uses certain effects that are not high-level emulated, turning "Audio HLE" on will result in some missing sounds.

The tracks are grouped by where they occur in missions. The "1xx" tracks are the 20 mission tracks, and the "2xx" tracks are the "X" versions of the mission tracks. The "3xx" tracks are miscellaneous tracks.

If you are wondering where "Surface 1 X" went, well "Surface 2 X" is actually duplicated in the internal track list, so I believe "Surface 1 X" is exactly the same as "Surface 2 X". Because of that I just deleted it. Apart from that, every mission track has a corresponding "X" track.

Note about "304 Citadel": According to Andrew Limmy, Gameshark hackers who unconvered (parts of???) the (infamous) level Citadel got this as the music, so it can be attributed to Citadel.

Thanks goes to: Adam Gashlin (hcs) for the USF format, the development team of Project64 for Project64, zoopd for the batch ripping program, Andrew Limmy for some track titles and Rareware for such a great game.

My e-mail address is:
***Replace "moomail" with "hotmail"***
someone42_000 at moomail dot com
***Replace "moomail" with "hotmail"***














<nothing-to-see-here>
(that means you don't have to read it, but you probably won't listen to me anyway...)

---
[gemusicmod-list.txt - Andrew Limmy's music number->track list]

80024337 00??
[If you're interested, above is the gameshark code which can access all the music.]

01 Mission Death (beta)
02 Goldeneye Theme Song
03 Train
04 Depot
05 "The Basement"
06 Citadel
07 Facility
08 Control
09 Dam
0A Frigate
0B Archives
0C Silo
0D "Unsquare Water Dance"
0E Streets
0F Bunker A
10 Bunker B
11 Statue
12 Control Elevator 
13 Cradle
14 Sound Effects Only
15 Caverns Elevator 
16 Egypt
17 Mission Select
18 007 Watch Theme (Paused)
19 Aztec
1A Caverns
1B Mission Death
1C Surface B
1D Train
1E Sound Effects Only
1F Facility X
20 Found Traveylan's Train
21 Control X
22 Caverns X
23 Dam X
24 Frigate X
25 Streets X
26 Silo X
27 Sound Effects Only
28 Train X
29 Bunker A X
2A Bunker B X
2B Jungle
2C Nintendo and Rareware
2D Statue
2E Aztec X
2F Egypt 
30 Cradle X

31 Ending Theme
32 Runway
33 Runway Plane
34 Surface 2
35 Bungeee!
36 Multiplayer Death (beta)
37 Jungle
38 Runway X
39 Surface A
3A Multiplayer Death
3B Surface X
3C Captured!
3D Captured!
3E Frigate beta
3F Nothingness
40 Sound Effects only
41 Sound Effects only
42 Sound Effects only
43 Sound Effects only

---
[numbers.txt - My original and incomplete music number->track list]

All the music by Graeme Norgate & Grant Kirkhope
Except for elevator music which is by Robin Beanland
Sound system by Graham Smith

title artist game genre year copyright usfby length fade comment volume

0x0 - nothing???
0x1 - Death (no guitar strum)
0x2 - Intro
0x3 - Train
0x4 - Depot
0x5 - Unknown1
0x6 - Unknown2
0x7 - Facility
0x8 - Control
0x9 - Dam
0xA - Frigate
0xB - Archive
0xC - Silo
0xD - Unknown3
0xE - Streets
0xF - Bunker 1
0x10 - Bunker 2
0x11 - Statue
0x12 - Elevator
0x13 - Cradle
0x14 - nothing???
0x15 - Elevator 2
0x16 - Egypt
0x17 - Briefing
0x18 - Watch
0x19 - Aztec
0x1A - Caverns
0x1B - Death (alternate)
0x1C - Surface 2
0x1D - Train (bomb set)
0x1E - nothing???
0x1F - Unknown4
0x20 - Depot (something) (Weird?! EQ things go up to full when this is loaded in winamp)
0x21 - Unknown5
0x22 - Unknown6 (caverns multiplayer?)
0x23 - Unknown7
0x24 - Unknown8
0x25 - Unknown9
0x26 - Silo (something)
0x27 - nothing???
0x28 - Unknown10
0x29 - Bunker 2 (place about to be blasted to smitherines by goldeneye)
0x2A - Bunker 1 (alarm went off)
0x2B - Unknown11 (I think this might be a duplicate)
0x2C - Heartbeat (after death, thing you hear when you first start game)
0x2D - Statue (bomb set)
0x2E - Aztec (shuttle about to launch)
0x2F - Unknown12 (egypt multiplayer?)
0x30 - Cradle (final chase)
0x31 - Ending
0x32 - Runway
0x33 - Runway (escape in plane)
0x34 - Unknown13 (something to do with surface 2?)
0x35 - Bungee jumping
0x36 - Death (alternate, just guitar strum)
0x37 - Jungle
0x38 - Unknown14
0x39 - Surface
0x3A - Death (alternate, quicker)
0x3B - Unknown15 (might be duplicate)
0x3C - Surface 2 (caught)
0x3D - Statue (some event? caught?)
0x3E - Unknown16 (something to do with silo?)
0x3F - (Does not seem to work)
Anything above 0x3F is redirected to 0x1

---
[notes.txt - Random information]

At 0x70006094 I have patched:
lui $a0, 0x8000
lw $a0, 0x603C($a0)

Note that 7000603C is actually code, but our savestate is after that bit of code so it is never executed.

So:
savestate = gemusic-main.pj
trace begin = 0x70006094
song value offset = 0x8000603C
spend 3000 alists
do reset on new data read

---
[patch.txt - Just some stuff I patched into the ROM]

sub_80002958:
addiu	$sp,0xFFE0
sw	$ra,0x14($sp)
sw	$a0,0xC($sp)
sw	$a1,0x10($sp)

lui	$t0,0x8006
addiu	$t0,0xE718
lui	$t2,0x8000
or	$t2,$a2
sw	$t2,0x0($t0)
sh	$a3,0x4($t0)

jal	0x7000F108 ; AlAudioFrame
nop

lui	$a0,0x802E ; offset of OSTask structure
addiu	$a0,0xB768
li	$t1,2
sw	$t1,0x0($a0) ; type
li	$t1,0
sw	$t1,0x4($a0) ; flags
lui	$t1,0x8002
addiu	$t1,0x0D90
sw	$t1,0x8($a0) ; ucode_boot
li	$t1,0xD0
sw	$t1,0xC($a0) ; ucode_boot_size
lui	$t1,0x8002
addiu	$t1,0x2280
sw	$t1,0x10($a0) ; ucode
li	$t1,0
sw	$t1,0x14($a0) ; ucode_size
lui	$t1,0x8006
addiu	$t1,0xD020
sw	$t1,0x18($a0) ; ucode_data
li	$t1,0x800
sw	$t1,0x1C($a0) ; ucode_data_size
li	$t1,0
sw	$t1,0x20($a0) ; dram_stack
sw	$t1,0x24($a0) ; dram_stack_size
sw	$t1,0x28($a0) ; output_buff
sw	$t1,0x2C($a0) ; output_buff_size
sw	$t1,0x38($a0) ; yield_data_ptr
sw	$t1,0x3C($a0) ; yield_data_size
lw	$t1,0xC($sp)
sw	$t1,0x30($a0) ; data_ptr
lw	$t1,0x10($sp)
lw	$t1,0($t1)
slli	$t1,$t1,3
sw	$t1,0x34($a0) ; data_size
jal	0x7000E60C ; osSpTaskLoad
nop

li	$a0,4
lui	$a1,0x8006
addiu	$a1,0xE6E0
li	$a2,0xEEEE
jal	0x8000DC50 ; osSetEventMesg
nop

lui	$a0,0x802E
jal	0x7000E76C ; osSpTaskStartGo
addiu	$a0,0xB768

lw	$ra,0x14($sp)
addiu 	$sp,0x20
jr	$ra
nop

80002950: 00000000 00000000 27BDFFE0 AFBF0014
80002960: AFA40004 AFA50008 3C088006 2508E718
80002970: 3C0A8000 01465025 AD0A0000 A5070004
80002980: 0C003C42 00000000 3C04802E 2484B768
80002990: 24090002 AC890000 24090000 AC890004
800029A0: 3C098002 25290D90 AC890008 240900D0
800029B0: AC89000C 3C098002 25292280 AC890010
800029C0: 24090000 AC890014 3C098006 2529D020
800029D0: AC890018 24090800 AC89001C 24090000
800029E0: AC890020 AC890024 AC890028 AC89002C
800029F0: AC890038 AC89003C 8FA90004 AC890030
80002A00: 8FA90008 8D290000 AC890034 0C003983
80002A10: 00000000 3C04802E 0C0039DB 2484B768
80002A20: 8FBF0014 27BD0020 03E00008 00000000

AC A4 00 00 = sw 	$a0, ($a1)

[bah, the assembly and machine code don't match at the moment.]

---

<I TOLD YOU THERE WAS NOTHING TO SEE>

</nothing-to-see-here>
