CustomSaveLoadPatch

Addon for Better AEP that allows to directly save to and load from a save-slot when using the call-save command. ID has to be stored in variable #3351, load-mode is activated just like in BAEP by setting variable #3350 to 1.

Additionally, when variable #3352 is set to something, it is automatically changed to 0 or 1, depending on if a savefile exists on that ID, #3353 and #3354 then receive party-leader's level and HP respectively if possible.

Originally made and first released by Cherry.

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

Offsets

RPG2000
2000-12-27
1.07
00469EF8h
000692F8h
RPG2003
1.0.8.0
1.0.8.0
0048B3B0h
0008A7B0h

Sourcecode

			JMP __0046EC44h
__00469EFDh:
			(...)
			JMP __00491416h
__0048B3B5h:
			(...)

Bytes

E9474D0000
E961600000

Segment 2/12

Offsets

RPG2000
2000-12-27
1.07
---
---
RPG2003
1.0.8.0
1.0.8.0
00491380h
00090780h

Sourcecode

(Segment doesn't exist in this version.)
			RET

Bytes

--
C3

Segment 3/12

Offsets

RPG2000
2000-12-27
1.07
0046EC02h
0006E002h
RPG2003
1.0.8.0
1.0.8.0
004913C4h
000907C4h

Sourcecode

PROC__0046EC00h:
			PUSH EBX
			PUSH ESI
			MOV EBX, EAX
			MOV EAX, [0049ABA4h]
			MOV EAX, [EAX]
			MOV EDX, 3351
			CALL PROC__00469EE0h
			MOV [EBX+58h], EAX
			JMP __0046EE7Fh
PROC__0046EC1Dh:
			CMP BYTE PTR [EAX+04h], 5
			JNE __0046EC33h
			MOV EAX, [0049AECCh]
			MOV EAX, [EAX]
			CMP BYTE PTR [EAX+50h], 1
			JNE __0046EC33h
			RET 0008h
__0046EC33h:
			MOV EAX, EDI
			JMP __0046B538h
PROC__0046EC3Ah:
			PUSH EBX
			PUSH ESI
			PUSH EDI
			MOV EDI, ECX
			JMP __00469EFDh
			CMP EDX, 3352
			JNE PROC__0046EC3Ah
			PUSHAD
			MOV EAX, [0049AE40h]
			MOV EAX, [EAX]
			MOV EDX, ECX
			CALL PROC__004935F8h
			POPAD
			MOV ECX, [0049ACACh]
			MOV ECX, [ECX]
			CMP DWORD PTR [ECX+08h], 0
			JE __0046ECA9h
			PUSHAD
			PUSHAD
			INC EDX
			MOV ECX, [ECX+14h]
			CALL PROC__0046EC3Ah
			POPAD
			PUSHAD
			INC EDX
			INC EDX
			MOV ECX, [ECX+18h]
			CALL PROC__0046EC3Ah
			POPAD
			PUSH ECX
			MOV EAX, [0049ACE8h]
			MOV EAX, [EAX]
			MOV EDX, 99
			CALL PROC__00482A78h
			POP ECX
			MOV EDX, [ECX+10h]
			CALL PROC__00483124h
			POPAD
			MOV ECX, 1
			JMP PROC__0046EC3Ah
__0046ECA9h:
			XOR ECX, ECX
			JMP PROC__0046EC3Ah
			db 0, 0, 0
PROC__004913C4h:
			PUSH EBX
			PUSH ESI
			MOV EBX, EAX
			CMP BYTE PTR [EBX+0Ch], 0
			JMP __004913D5h
			MOV EAX, EBX
			CALL PROC__00491264h
__004913D5h:
			MOV EAX, [004CDC7Ch]
			MOV EAX, [EAX]
			MOV EDX, 3351
			CALL PROC__0048B398h
			MOV [EBX+58h], EAX
			JMP __004914EBh
			NOP
PROC__004913EFh:
			CMP BYTE PTR [EAX+04h], 5
			JNE __00491405h
			MOV EAX, [004CDFCCh]
			MOV EAX, [EAX]
			CMP BYTE PTR [EAX+50h], 1
			JNE __00491405h
			RET 0008h
__00491405h:
			MOV EAX, EDI
			JMP __0048CE04h
PROC__0049140Ch:
			PUSH EBX
			PUSH ESI
			PUSH EDI
			MOV EDI, ECX
			JMP __0048B3B5h
			CMP EDX, 3352
			JNE PROC__0049140Ch
			PUSHAD
			MOV EAX, [004CDF20h]
			MOV EAX, [EAX]
			MOV EDX, ECX
			CALL PROC__004A5484h
			POPAD
			MOV ECX, [004CDD8Ch]
			MOV ECX, [ECX]
			CMP DWORD PTR [ECX+08h], 0
			JE __0049147Bh
			PUSHAD
			PUSHAD
			INC EDX
			MOV ECX, [ECX+14h]
			CALL PROC__0049140Ch
			POPAD
			PUSHAD
			INC EDX
			INC EDX
			MOV ECX, [ECX+18h]
			CALL PROC__0049140Ch
			POPAD
			PUSH ECX
			MOV EAX, [004CDDC8h]
			MOV EAX, [EAX]
			MOV EDX, 99
			CALL PROC__004B4870h
			POP ECX
			MOV EDX, [ECX+10h]
			CALL PROC__004B6D34h
			POPAD
			MOV ECX, 1
			JMP PROC__0049140Ch
__0049147Bh:
			XOR ECX, ECX
			JMP PROC__0049140Ch
			db 72, 3, 0, 0, 8

Bytes

53 56 8BD8 A1A4AB4900 8B00 BA170D0000 E8CBB2FFFF
894358 E962020000
80780405 7510
A1CCAE4900 8B00 80785001 7503
C20800

8BC7 E9FEC8FFFF
53 56 57 8BF9 E9B9B2FFFF
81FA180D0000 75EE
60 A140AE4900 8B00 8BD1 E89D490200
61 8B0DACAC4900 8B09 83790800 0F843B000000
60 60 42 8B4914 E8C1FFFFFF
61 60 42 42 8B4918 E8B5FFFFFF
61 51 A1E8AC4900 8B00 BA63000000 E8E03D0100
59 8B5110 E883440100
61 B901000000 EB91
33C9 EB8D
00 00 00
53 56 8BD8 807B0C00 EB07
8BC3 E88FFEFFFF
A17CDC4C00 8B00 BA170D0000 E8B29FFFFF
894358 E9FD000000
90 80780405 7510
A1CCDF4C00 8B00 80785001 7503
C20800

8BC7 E9F8B9FFFF
53 56 57 8BF9 E99F9FFFFF
81FA180D0000 75EE
60 A120DF4C00 8B00 8BD1 E857400100
61 8B0D8CDD4C00 8B09 83790800 0F843B000000
60 60 42 8B4914 E8C1FFFFFF
61 60 42 42 8B4918 E8B5FFFFFF
61 51 A1C8DD4C00 8B00 BA63000000 E806340200
59 8B5110 E8C1580200
61 B901000000 EB91
33C9 EB8D
48 03 00 00 08

Segment 4/12

Offsets

RPG2000
2000-12-27
1.07
0046EE9Ah
0006E29Ah
RPG2003
1.0.8.0
1.0.8.0
00491506h
00090906h

Sourcecode

			5 NOPs
			5 NOPs

Bytes

90 90 90 90 90
90 90 90 90 90

Segment 5/12

Offsets

RPG2000
2000-12-27
1.07
0046EECDh
0006E2CDh
RPG2003
1.0.8.0
1.0.8.0
---
---

Sourcecode

			5 NOPs
(Segment doesn't exist in this version.)

Bytes

90 90 90 90 90
--

Segment 6/12

Offsets

RPG2000
2000-12-27
1.07
0046EEFBh
0006E2FBh
RPG2003
1.0.8.0
1.0.8.0
00491567h
00090967h

Sourcecode

			JMP __0046EF11h
			20 NOPs
			JMP __00491580h
			2 NOPs

Bytes

EB14
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90
EB17
90 90

Segment 7/12

Offsets

RPG2000
2000-12-27
1.07
0046EF26h
0006E326h
RPG2003
1.0.8.0
1.0.8.0
00491595h
00090995h

Sourcecode

			5 NOPs
			5 NOPs

Bytes

90 90 90 90 90
90 90 90 90 90

Segment 8/12

Offsets

RPG2000
2000-12-27
1.07
0046EFDAh
0006E3DAh
RPG2003
1.0.8.0
1.0.8.0
---
---

Sourcecode

			JMP __0046EFF4h
			26 NOPs
(Segment doesn't exist in this version.)

Bytes

EB1A
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90
--

Segment 9/12

Offsets

RPG2000
2000-12-27
1.07
0046F020h
0006E420h
RPG2003
1.0.8.0
1.0.8.0
---
---

Sourcecode

			5 NOPs
(Segment doesn't exist in this version.)

Bytes

90 90 90 90 90
--

Segment 10/12

Offsets

RPG2000
2000-12-27
1.07
0047AC55h
0007A055h
RPG2003
1.0.8.0
1.0.8.0
004A2627h
000A1A27h

Sourcecode

			MOV BYTE PTR [EAX+51h], 0
			MOV BYTE PTR [EAX+51h], 0

Bytes

C6405100
C6405100

Segment 11/12

Offsets

RPG2000
2000-12-27
1.07
0047B862h
0007AC62h
RPG2003
1.0.8.0
1.0.8.0
004A36FEh
000A2AFEh

Sourcecode

			CALL PROC__0046EC1Dh
			2 NOPs
			CALL PROC__004913EFh
			2 NOPs

Bytes

E8B633FFFF
90 90
E8ECDCFEFF
90 90

Segment 12/12

Offsets

RPG2000
2000-12-27
1.07
004971B0h
000965B0h
RPG2003
1.0.8.0
1.0.8.0
---
---

Sourcecode

			CALL PROC__0046EC00h
(Segment doesn't exist in this version.)

Bytes

E84B7AFDFF
--