OA Switch

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

This is a special variant based on SROA by bugmenot.

Originally made and first released by KotatsuAkira.

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

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
00499C22h
00099022h
0049C26Eh
0009B66Eh
004A0952h
0009FD52h
004A2516h
000A1916h
004A184Ah
000A0C4Ah

Sourcecode

			dd __SubProc__Order			; 00499DBBh
			dd __SubProc__ATB			; 00499DC2h
			dd __SubProc__Order			; 0049C407h
			dd __SubProc__ATB			; 0049C40Eh
			dd __SubProc__Order			; 004A0AEBh
			dd __SubProc__ATB			; 004A0AF2h
			dd __SubProc__Order			; 004A26AFh
			dd __SubProc__ATB			; 004A26B6h
			dd __SubProc__Order			; 004A19E3h
			dd __SubProc__ATB			; 004A19EAh

Bytes

BB9D4900 C29D4900
07C44900 0EC44900
EB0A4A00 F20A4A00
AF264A00 B6264A00
E3194A00 EA194A00

Segment 2/2

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

			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__Order:
			MOV EDX, 1010				; OrderSwitch
			JMP __ActivateSwitch
__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
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__Order:
			MOV EDX, 1010				; OrderSwitch
			JMP __ActivateSwitch
__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
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__Order:
			MOV EDX, 1010				; OrderSwitch
			JMP __ActivateSwitch
__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
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__Order:
			MOV EDX, 1010				; OrderSwitch
			JMP __ActivateSwitch
__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
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__SubProc__Order:
			MOV EDX, 1010				; OrderSwitch
			JMP __ActivateSwitch
__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

90 90 90 90 90 90 90 90 90 90 90 90 90 90

BAF2030000 EB05
BAF0030000

A1AC2D4C00 8B00 B101 E827C2FEFF
A1AC2D4C00 8B00 E837C8FEFF
8BD0 A1AC2D4C00 8B00 E831C4FEFF
EB5B
90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90

BAF2030000 EB05
BAF0030000

A1945A4C00 8B00 B101 E8E79FFEFF
A1945A4C00 8B00 E8F7A5FEFF
8BD0 A1945A4C00 8B00 E8F1A1FEFF
EB5B
90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90

BAF2030000 EB05
BAF0030000

A17CCC4C00 8B00 B101 E867A6FEFF
A17CCC4C00 8B00 E843ACFEFF
8BD0 A17CCC4C00 8B00 E849A8FEFF
EB5B
90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90

BAF2030000 EB05
BAF0030000

A17CDC4C00 8B00 B101 E8738CFEFF
A17CDC4C00 8B00 E84F92FEFF
8BD0 A17CDC4C00 8B00 E8558EFEFF
EB5B
90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90

BAF2030000 EB05
BAF0030000

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