SA Switch

Replaces the command-functions of status and ATB in the engine's default menu with closing the menu and activating a switch (#1009 and #1008 respectively).

Sourcecode shown here may not fully resemble the original release and is based on SROA.

Originally made and first released by bugmenot.

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/3

Offsets

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
00499C1Ah
0009901Ah
0049C266h
0009B666h
004A094Ah
0009FD4Ah
004A250Eh
000A190Eh
004A1842h
000A0C42h

Sourcecode

			dd __SubProc__Status			; 00499DADh
			dd __SubProc__Status			; 0049C3F9h
			dd __SubProc__Status			; 004A0ADDh
			dd __SubProc__Status			; 004A26A1h
			dd __SubProc__Status			; 004A19D5h

Bytes

AD944900
F9C34900
DD0A4A00
A1264A00
D5194A00

Segment 2/3

Offsets

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
00499C26h
00099026h
0049C272h
0009B672h
004A0956h
0009FD56h
004A251Ah
000A191Ah
004A184Eh
000A0C4Eh

Sourcecode

			dd __SubProc__ATB			; 00499DC2h
			dd __SubProc__ATB			; 0049C40Eh
			dd __SubProc__ATB			; 004A0AF2h
			dd __SubProc__ATB			; 004A26B6h
			dd __SubProc__ATB			; 004A19EAh

Bytes

C29D4900
0EC44900
F20A4A00
B6264A00
EA194A00

Segment 3/3

Offsets

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
00499DADh
000991ADh
0049C3F9h
0009B7F9h
004A0ADDh
0009FEDDh
004A26A1h
000A1AA1h
004A19D5h
000A0DD5h

Sourcecode

__SubProc__Status:
			MOV EDX, 1009				; StatusSwitch
			JMP __ActivateSwitch
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__ATB:
			MOV EDX, 1008				; ATBSwitch
__ActivateSwitch:
			MOV EAX, [004C2DACh]			; TLcfgSystem
			MOV EAX, [EAX]
			MOV CL, 1				; Set ON
			CALL PROC__00485FFCh			; TLcfgSystem.SetSwitch
			MOV EAX, [004C2DACh]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00486618h			; TLcfgSystem.SoundGetDecision
			MOV EDX, EAX
			MOV EAX, [004C2DACh]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00486220h			; TLcfgSystem.SoundPlay
			JMP __00499E4Ch
			NOP
			NOP
__SubProc__Status:
			MOV EDX, 1009				; StatusSwitch
			JMP __ActivateSwitch
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__ATB:
			MOV EDX, 1008				; ATBSwitch
__ActivateSwitch:
			MOV EAX, [004C5A94h]			; TLcfgSystem
			MOV EAX, [EAX]
			MOV CL, 1				; Set ON
			CALL PROC__00486308h			; TLcfgSystem.SetSwitch
			MOV EAX, [004C5A94h]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__00486924h			; TLcfgSystem.SoundGetDecision
			MOV EDX, EAX
			MOV EAX, [004C5A94h]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048652Ch			; TLcfgSystem.SoundPlay
			JMP __0049C498h
			NOP
			NOP
__SubProc__Status:
			MOV EDX, 1009				; StatusSwitch
			JMP __ActivateSwitch
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__ATB:
			MOV EDX, 1008				; ATBSwitch
__ActivateSwitch:
			MOV EAX, [004CCC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			MOV CL, 1				; Set ON
			CALL PROC__0048B16Ch			; TLcfgSystem.SetSwitch
			MOV EAX, [004CCC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B754h			; TLcfgSystem.SoundGetDecision
			MOV EDX, EAX
			MOV EAX, [004CCC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B368h			; TLcfgSystem.SoundPlay
			JMP __004A0B7Ch
			NOP
			NOP
__SubProc__Status:
			MOV EDX, 1009				; StatusSwitch
			JMP __ActivateSwitch
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__ATB:
			MOV EDX, 1008				; ATBSwitch
__ActivateSwitch:
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			MOV CL, 1				; Set ON
			CALL PROC__0048B33Ch			; TLcfgSystem.SetSwitch
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B924h			; TLcfgSystem.SoundGetDecision
			MOV EDX, EAX
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B538h			; TLcfgSystem.SoundPlay
			JMP __004A2740h
			NOP
			NOP
__SubProc__Status:
			MOV EDX, 1009				; StatusSwitch
			JMP __ActivateSwitch
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__ATB:
			MOV EDX, 1008				; ATBSwitch
__ActivateSwitch:
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			MOV CL, 1				; Set ON
			CALL PROC__0048B2F8h			; TLcfgSystem.SetSwitch
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B8E0h			; TLcfgSystem.SoundGetDecision
			MOV EDX, EAX
			MOV EAX, [004CDC7Ch]			; TLcfgSystem
			MOV EAX, [EAX]
			CALL PROC__0048B4F4h			; TLcfgSystem.SoundPlay
			JMP __004A1A74h
			NOP
			NOP

Bytes

BAF1030000 EB13
90 90 90 90 90 90 90 90 90 90 90 90 90 90
BAF0030000

A1AC2D4C00 8B00 B101 E827C2FEFF
A1AC2D4C00 8B00 E837C8FEFF
8BD0 A1AC2D4C00 8B00 E831C4FEFF
EB5B
90 90
BAF1030000 EB13
90 90 90 90 90 90 90 90 90 90 90 90 90 90
BAF0030000

A1945A4C00 8B00 B101 E8E79FFEFF
A1945A4C00 8B00 E8F7A5FEFF
8BD0 A1945A4C00 8B00 E8F1A1FEFF
EB5B
90 90
BAF1030000 EB13
90 90 90 90 90 90 90 90 90 90 90 90 90 90
BAF0030000

A17CCC4C00 8B00 B101 E867A6FEFF
A17CCC4C00 8B00 E843ACFEFF
8BD0 A17CCC4C00 8B00 E849A8FEFF
EB5B
90 90
BAF1030000 EB13
90 90 90 90 90 90 90 90 90 90 90 90 90 90
BAF0030000

A17CDC4C00 8B00 B101 E8738CFEFF
A17CDC4C00 8B00 E84F92FEFF
8BD0 A17CDC4C00 8B00 E8558EFEFF
EB5B
90 90
BAF1030000 EB13
90 90 90 90 90 90 90 90 90 90 90 90 90 90
BAF0030000

A17CDC4C00 8B00 B101 E8FB98FEFF
A17CDC4C00 8B00 E8D79EFEFF
8BD0 A17CDC4C00 8B00 E8DD9AFEFF
EB5B
90 90