This outlines when each of the locks is used, so as to hack the table much, much smaller

part of 7F010848 - MP options interface, specificly rollover highlight and selection
//7F010908:	fry all highlighting before revision
BNEZ	V0,7F010AF4
LUI	AT,8003
SW	R0,A8E4 (AT)
LUI	AT,8003
SW	R0,A8E0 (AT)
LUI	AT,8003
SW	R0,A8DC (AT)
LUI	AT,8007
SW	R0,97C8 (AT)
LUI	AT,8007
SW	R0,97CC (AT)
LUI	AT,8007
SW	R0,97D0 (AT)
LUI	AT,8007
SW	R0,97D4 (AT)
LUI	AT,8007
SW	R0,97D8 (AT)
LUI	AT,8007
SW	R0,97DC (AT)
LUI	AT,8007
SW	R0,97E0 (AT)
LUI	AT,8007
SW	R0,97E4 (AT)
LUI	AT,8007
JAL	7F00A39C	;V0=1 if cursor on tab 3
SW	R0,97E8 (AT)
//7F010970:	test if tab 3 selected
BEQ	V0,R0,7F010984
ADDIU	T7,R0,0001
LUI	AT,8003
BEQ	R0,R0,7F010AF4
SW	T7,A8E4 (AT)	;1->8002A8DE4: highlight tab 3
//7F010984:	test if tab 1 selected
JAL	7F00A1E4	;V0=1 if cursor on tab 1
NOP
BEQ	V0,R0,7F0109A4
LUI	AT,8003
ADDIU	V1,R0,0001
LUI	AT,8003
BEQ	R0,R0,7F010AF4
SW	V1,A8DC (AT)	;1->8002A8DC: highlight tab 1
//7F0109A4:	vertical rollover tests
LWC1	F4,A90C (AT)	;F4=8002A90C: vertical screen position
LUI	T9,8003
TRUNC.W.S	F6,F4
MFC1	V0,F6		;V0=(long) screen position
NOP
//7F0109B8:	rollover trigger bypasses for locked MP options
SLTI	AT,V0,0119
BNEL	AT,R0,7F0109E4
SLTI	AT,V0,0105
LW	T9,B55C (T9)	;T9=aim adjustment lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T9,R0,7F0109E4
SLTI	AT,V0,0105
BEQ	R0,R0,7F010AF4
SW	V1,97E8 (AT)
//7F0109E0:	
SLTI	AT,V0,0105
BNEZ	AT,7F010A08
LUI	T0,8003
LW	T0,B558 (T0)	;T0=control style lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T0,R0,7F010A0C	;branch if locked
SLTI	AT,V0,00F1
BEQ	R0,R0,7F010AF4
SW	V1,97E4 (AT)	;1->800697E4: 
//7F010A08:
SLTI	AT,V0,00F1
BNEZ	AT,7F010A30
LUI	T1,8003
LW	T1,B554 (T1)	;T1=health lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T1,R0,7F010A34
SLTI	AT,V0,00DD
BEQ	R0,R0,7F010AF4
SW	V1,97E0 (AT)
//7F010A30:
SLTI	AT,V0,00DD
BNEZ	AT,7F010A58
LUI	T2,8003
LW	T2,B54C (T2)	;T2=character lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T2,R0,7F010A5C
SLTI	AT,V0,00C9
BEQ	R0,R0,7F010AF4
SW	V1,97D8 (AT)
//7F010A58:
SLTI	AT,V0,00C9
BNEZ	AT,7F010A80
LUI	T3,8003
LW	T3,B550 (T3)	;T3=weapon select lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T3,R0,7F010A84
SLTI	AT,V0,00B5
BEQ	R0,R0,7F010AF4
SW	V1,97DC (AT)
//7F010A80:
SLTI	AT,V0,00B5
BNEZ	AT,7F010AA8
LUI	T4,8003
LW	T4,B548 (T4)	;T4=game length lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T4,R0,7F010AAC
SLTI	AT,V0,00A1
BEQ	R0,R0,7F010AF4
SW	V1,97D4 (AT)
//7F010AA8:
SLTI	AT,V0,00A1
BNEZ	AT,7F010AD0
LUI	T5,8003
LW	T5,B544 (T5)	;T5=stage select lock
ADDIU	V1,R0,0001
LUI	AT,8007
BEQL	T5,R0,7F010AD4
SLTI	AT,V0,008D
BEQ	R0,R0,7F010AF4
SW	V1,97D0 (AT)
//7F010AD0:	scenario selected
SLTI	AT,V0,008D
BNEZ	AT,7F010AEC
ADDIU	V1,R0,0001
ADDIU	V1,R0,0001
LUI	AT,8007
BEQ	R0,R0,7F010AF4
SW	V1,97CC (AT)
//7F010AEC:	by default, # players highlighted
LUI	AT,8007
SW	V1,97C8 (AT)	;V1=800697C8: highlight players
//7F010AF4: 
...



+_+

part of 7F010F10 - MP menu constructor
//7F0111E8:	test stage select lock
3C188003	LUI	T8,8003
8F18B544	LW	T8,B544 (T8)
53000004	BEQL	T8,R0,7F011204	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
10000002	BEQ	R0,R0,7F011204	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F011200:	locked
24030070	ADDIU	V1,R0,0070
//7F011204:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0112DC:	test game length lock
3C188003	LUI	T8,8003
8F18B548	LW	T8,B548 (T8)
53000004	BEQL	T8,R0,7F0112F8	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
10000002	BEQ	R0,R0,7F0112F8	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F0112F4:	locked
24030070	ADDIU	V1,R0,0070
//7F0112F8:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0113D0:	test weapon select lock
3C188003	LUI	T8,8003
8F18B550	LW	T8,B550 (T8)
53000004	BEQL	T8,R0,7F0113EC	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
10000002	BEQ	R0,R0,7F0113EC	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F0113E8:	locked
24030070	ADDIU	V1,R0,0070
//7F0113EC:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0114C4:	test character select lock
3C188003	LUI	T8,8003
8F18B54C	LW	T8,B54C (T8)
53000004	BEQL	T8,R0,7F0114E0	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
10000002	BEQ	R0,R0,7F0114E0	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F0114DC:	locked
24030070	ADDIU	V1,R0,0070
//7F0114E0:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0115B8:	test health lock
3C188003	LUI	T8,8003
8F18B54C	LW	T8,B554 (T8)
53000004	BEQL	T8,R0,7F0115D4	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
10000002	BEQ	R0,R0,7F0115D4	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F0115D0:	locked
24030070	ADDIU	V1,R0,0070
//7F0115D4:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0116AC:	test controller style lock
3C188003	LUI	T8,8003
8F18B54C	LW	T8,B558 (T8)
53000004	BEQL	T8,R0,7F0116C8	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
10000002	BEQ	R0,R0,7F0116C8	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F0116C4:	locked
24030070	ADDIU	V1,R0,0070
//7F0116C8:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0117A0:	test aim adjustment lock
3C188003	LUI	T8,8003
8F18B54C	LW	T8,B55C (T8)
53000004	BEQL	T8,R0,7F0117BC	;70->Alpha if locked
24030070	ADDIU	V1,R0,0070
24030070	BEQ	R0,R0,7F0117BC	;FF->Alpha if unlocked
24030070	ADDIU	V1,R0,00FF
//7F0117B8:	locked
24030070	ADDIU	V1,R0,0070
//7F0117BC:	save and do stuff
24030070	JAL	7000441C
24030070	SW	V1,0048 (SP)
...
	
//7F011944:	test stage select lock - name of stage
3C088003	LUI	T0,8003
8D08B544	LW	T0,B544 (T0)
241800A0	ADDIU	T8,R0,00A0
241900A1	ADDIU	T9,R0,00A1
AFA20064	SW	V0,0064 (SP)
AFB80058	SW	T8,0058 (SP)
11000003	BEQL	T0,R0,7F01196C	;70->Alpha if locked
AFB90054	SW	T9,0054 (SP)
10000002	BEQ	R0,R0,7F011970	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F01196C:	locked
24030070	ADDIU	V1,R0,0070
//7F011970:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F0119F0:	test game length lock - name of length
3C188003	LUI	T8,8003
8F18B548	LW	T8,B548 (T8)
240E00A0	ADDIU	T6,R0,00A0
240F00B5	ADDIU	T7,R0,00B5
AFA20064	SW	V0,0064 (SP)
AFAE0058	SW	T6,0058 (SP)
13000003	BEQL	T8,R0,7F011A18	;70->Alpha if locked
AFAF0054	SW	T7,0054 (SP)
10000002	BEQ	R0,R0,7F011A1C	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F01196C:	locked
24030070	ADDIU	V1,R0,0070
//7F011970:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F011A84:	test weapon select lock - name of set
3C0C8003	LUI	T4,8003
8D8CB550	LW	T4,B550 (T4)
240A00A0	ADDIU	T2,R0,00A0
240B00C9	ADDIU	T3,R0,00C9
AFA20064	SW	V0,0064 (SP)
AFAA0058	SW	T2,0058 (SP)
11800003	BEQL	T4,R0,7F011AAC	;70->Alpha if locked
AFAB0054	SW	T3,0054 (SP)
10000002	BEQ	R0,R0,7F011AB0	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F011AAC:	locked
24030070	ADDIU	V1,R0,0070
//7F011AB0:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
	
//7F011B28:	test aim adjustment lock - name of setting
3C0A8003	LUI	T2,8003
8D4AB55C	LW	T2,B55C (T2)
240800A0	ADDIU	T0,R0,00A0
24090119	ADDIU	T1,R0,0119
AFA20064	SW	V0,0064 (SP)
AFA80058	SW	T0,0058 (SP)
11400003	BEQL	T2,R0,7F011B50	;70->Alpha if locked
AFA90054	SW	T1,0054 (SP)
10000002	BEQ	R0,R0,7F011B54	;FF->Alpha if unlocked
240300FF	ADDIU	V1,R0,00FF
//7F011B50:	locked
24030070	ADDIU	V1,R0,0070
//7F011B54:	save and do stuff
0C001107	JAL	7000441C
AFA30048	SW	V1,0048 (SP)
...
