SwitchPointer

In conditional branches that ask for switch #1, replace the ID with the value of variable #3397.

Originally made and first released by bugmenot.

RPG2000
1.00UNKNOWN2000-05-072000-06-192000-07-112000-11-132000-11-152000-12-27
1.07
2001-05-05
1.10
2003-03-27
1.50
2003-06-25
1.51/1.52
2015-07-05
1.60
2015-09-15
1.61
2017-09-14
1.62
RPG2003
1.00UNKNOWN1UNKNOWN21.0.2.1
1.0.2.1
1.0.3.0
1.0.4.0
1.0.5.0
1.0.5.0
1.0.6.0
1.0.6.0
1.0.7.0
1.0.7.0
1.0.8.0
1.0.8.0
1.0.9.1
1.0.9.1
1.101.111.12mp210414

Segment 1/4

Offsets

RPG2000
2000-12-27
1.07
2001-05-05
1.10
2003-03-27
1.50
2003-06-25
1.51/1.52
2015-07-05
1.60
2015-09-15
1.61
2017-09-14
1.62
0047140Ch
0007080Ch
00471318h
00070718h
00476264h
00075664h
00476380h
00075780h
00477198h
00076598h
00477778h
00076B78h
004778F8h
00076CF8h
RPG2003
1.001.0.3.0
1.0.4.0
1.0.5.0
1.0.5.0
1.0.8.0
1.0.8.0
1.0.9.1
1.0.9.1
1.101.111.12mp210414
0048C570h
0008B970h
0048EA90h
0008DE90h
00492B10h
00091F10h
00493AACh
00092EACh
00492CA0h
000920A0h

Sourcecode

			JMP __004715C4h
			JMP __004714D0h
			JMP __0047641Ch
			JMP __00476538h
			JMP __00477350h
			JMP __00477930h
			JMP __00477AB0h
			JMP __0048C728h
			JMP __0048EC48h
			JMP __00492CC8h
			JMP __00493C64h
			JMP __00492E58h

Bytes

E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000
E9B3010000

Segment 2/4

Offsets

RPG2000
2000-12-27
1.07
2001-05-05
1.10
2003-03-27
1.50
2003-06-25
1.51/1.52
2015-07-05
1.60
2015-09-15
1.61
2017-09-14
1.62
004714BBh
000708BBh
004713C7h
000707C7h
00476313h
00075713h
0047642Fh
0007582Fh
00477247h
00076647h
00477827h
00076C27h
004779A7h
00076DA7h
RPG2003
1.001.0.3.0
1.0.4.0
1.0.5.0
1.0.5.0
1.0.8.0
1.0.8.0
1.0.9.1
1.0.9.1
1.101.111.12mp210414
0048C61Fh
0008BA1Fh
0048EB3Fh
0008DF3Fh
00492BBFh
00091FBFh
00493B5Bh
00092F5Bh
00492D4Fh
0009214Fh

Sourcecode

PROC__004714BBh:
			CALL PROC__0045E524h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __004714D6h
			MOV EDX, 3397				; VariableID
			MOV EAX, [0049ABA4h]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00469EE0h			; TLcfgSystem.GetVariable
__004714D6h:
			RET
PROC__004713C7h:
			CALL PROC__0045E424h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __004713E2h
			MOV EDX, 3397				; VariableID
			MOV EAX, [0049ABA4h]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00469DE0h			; TLcfgSystem.GetVariable
__004713E2h:
			RET
PROC__00476313h:
			CALL PROC__00463428h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __0047632Eh
			MOV EDX, 3397				; VariableID
			MOV EAX, [0049FB8Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0046EDD4h			; TLcfgSystem.GetVariable
__0047632Eh:
			RET
PROC__0047642Fh:
			CALL PROC__00463544h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __0047644Ah
			MOV EDX, 3397				; VariableID
			MOV EAX, [0049FB8Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0046EEF0h			; TLcfgSystem.GetVariable
__0047644Ah:
			RET
PROC__00477247h:
			CALL PROC__00463654h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __00477262h
			MOV EDX, 3397				; VariableID
			MOV EAX, [0049FB8Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0046F034h			; TLcfgSystem.GetVariable
__00477262h:
			RET
PROC__00477827h:
			CALL PROC__00463C0Ch
			CMP EAX, 1				; PlaceholderSwitch
			JNE __00477842h
			MOV EDX, 3397				; VariableID
			MOV EAX, [004A0B8Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0046F614h			; TLcfgSystem.GetVariable
__00477842h:
			RET
PROC__004779A7h:
			CALL PROC__00463E08h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __004779C2h
			MOV EDX, 3397				; VariableID
			MOV EAX, [004A0B8Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0046F7CCh			; TLcfgSystem.GetVariable
__004779C2h:
			RET
PROC__0048C61Fh:
			CALL PROC__00474828h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __0048C63Ah
			MOV EDX, 3397				; VariableID
			MOV EAX, [004C2DACh]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00486058h			; TLcfgSystem.GetVariable
__0048C63Ah:
			RET
PROC__0048DF3Fh:
			CALL PROC__004747DCh
			CMP EAX, 1				; PlaceholderSwitch
			JNE __0048DF5Ah
			MOV EDX, 3397				; VariableID
			MOV EAX, [004C5A94h]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00486364h			; TLcfgSystem.GetVariable
__0048DF5Ah:
			RET
PROC__00492BBFh:
			CALL PROC__004795A4h
			CMP EAX, 1				; PlaceholderSwitch
			JNE __00492BDAh
			MOV EDX, 3397				; VariableID
			MOV EAX, [004CCC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B1C8h			; TLcfgSystem.GetVariable
__00492BDAh:
			RET
PROC__00493B5Bh:
			CALL PROC__0047967Ch
			CMP EAX, 1				; PlaceholderSwitch
			JNE __00493B76h
			MOV EDX, 3397				; VariableID
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B398h			; TLcfgSystem.GetVariable
__00493B76h:
			RET
PROC__00492D4Fh:
			CALL PROC__0047967Ch
			CMP EAX, 1				; PlaceholderSwitch
			JNE __00492D6Ah
			MOV EDX, 3397				; VariableID
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B354h			; TLcfgSystem.GetVariable
__00492D6Ah:
			RET

Bytes

E864D0FEFF
83F801 7511
BA450D0000 A1A4AB4900 8B00 E80A8AFFFF
C3
E858D0FEFF
83F801 7511
BA450D0000 A1A4AB4900 8B00 E8FE89FFFF
C3
E810D1FEFF
83F801 7511
BA450D0000 A18CFB4900 8B00 E8A68AFFFF
C3
E810D1FEFF
83F801 7511
BA450D0000 A18CFB4900 8B00 E8A68AFFFF
C3
E808C4FEFF
83F801 7511
BA450D0000 A18CFB4900 8B00 E8D27DFFFF
C3
E8E0C3FEFF
83F801 7511
BA450D0000 A18C0B4A00 8B00 E8D27DFFFF
C3
E85CC4FEFF
83F801 7511
BA450D0000 A18C0B4A00 8B00 E80A7EFFFF
C3
E80482FEFF
83F801 7511
BA450D0000 A1AC2D4C00 8B00 E81E9AFFFF
C3
E89868FEFF
83F801 7511
BA450D0000 A1945A4C00 8B00 E80A84FFFF
C3
E8E069FEFF
83F801 7511
BA450D0000 A17CCC4C00 8B00 E8EE85FFFF
C3
E81C5BFEFF
83F801 7511
BA450D0000 A17CDC4C00 8B00 E82278FFFF
C3
E82869FEFF
83F801 7511
BA450D0000 A17CDC4C00 8B00 E8EA85FFFF
C3

Segment 3/4

Offsets

RPG2000
2000-12-27
1.07
2001-05-05
1.10
2003-03-27
1.50
2003-06-25
1.51/1.52
2015-07-05
1.60
2015-09-15
1.61
2017-09-14
1.62
0048954Bh
0008894Bh
0048945Bh
0008885Bh
0048E657h
0008DA57h
0048E773h
0008DB73h
0048CFE7h
0008C3E7h
0048D9F3h
0008CDF3h
004900BBh
0008F4BBh
RPG2003
1.001.0.3.0
1.0.4.0
1.0.5.0
1.0.5.0
1.0.8.0
1.0.8.0
1.0.9.1
1.0.9.1
1.101.111.12mp210414
004AE767h
000ADB67h
004A9ECBh
000A92CBh
004B75E3h
000B69E3h
004B068Fh
000AFA8Fh
004B9027h
000B8427h

Sourcecode

			CALL PROC__004714BBh
			CALL PROC__004713C7h
			CALL PROC__00476313h
			CALL PROC__0047642Fh
			CALL PROC__00477247h
			CALL PROC__00477827h
			CALL PROC__004779A7h
			CALL PROC__0048C61Fh
			CALL PROC__0048DF3Fh
			CALL PROC__00492BBFh
			CALL PROC__00493B5Bh
			CALL PROC__00492D4Fh

Bytes

E86B7FFEFF
E8677FFEFF
E8B77CFEFF
E8B77CFEFF
E85BA2FEFF
E82F9EFEFF
E8E778FEFF
E8B3DEFDFF
E86F40FEFF
E8D7B5FDFF
E8C734FEFF
E8239DFDFF

Segment 4/4

Offsets

RPG2000
2000-12-27
1.07
2001-05-05
1.10
2003-03-27
1.50
2003-06-25
1.51/1.52
2015-07-05
1.60
2015-09-15
1.61
2017-09-14
1.62
0048956Fh
0008896Fh
0048947Fh
0008887Fh
0048E67Bh
0008DA7Bh
0048E797h
0008DB97h
0048D00Bh
0008C40Bh
0048DA17h
0008CE17h
004900DFh
0008F4DFh
RPG2003
1.001.0.3.0
1.0.4.0
1.0.5.0
1.0.5.0
1.0.8.0
1.0.8.0
1.0.9.1
1.0.9.1
1.101.111.12mp210414
004AE78Bh
000ADB8Bh
004A9EEFh
000A92EFh
004B7607h
000B6A07h
004B06B3h
000AFAB3h
004B904Bh
000B844Bh

Sourcecode

			CALL PROC__004714BBh
			CALL PROC__004713C7h
			CALL PROC__00476313h
			CALL PROC__0047642Fh
			CALL PROC__00477247h
			CALL PROC__00477827h
			CALL PROC__004779A7h
			CALL PROC__0048C61Fh
			CALL PROC__0048DF3Fh
			CALL PROC__00492BBFh
			CALL PROC__00493B5Bh
			CALL PROC__00492D4Fh

Bytes

E8477FFEFF
E8437FFEFF
E8937CFEFF
E8937CFEFF
E837A2FEFF
E80B9EFEFF
E8C378FEFF
E88FDEFDFF
E84B40FEFF
E8B3B5FDFF
E8A334FEFF
E8FF9CFDFF