GameOverTeleport FTE NoChange

Teleport to a location stored in variables #3356 (map), #3357 (X) and #3358 (Y) when player loses a battle without defined lose-case. Player-character on map will not be set to in-/visible in this variant and stay the way it was before.

The variables need to contain a valid location or the game will crash.

Originally made and first released by KotatsuAkira.

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

Segment 1/3

Offsets

RPG2000
2000-12-27
1.07
2017-09-14
1.62
0046DCB0h
0006D0B0h
0047354Ch
0007294Ch

Sourcecode

__0046DCB0h:
			JMP __0046DCBEh			; Skip first part of FTE-I / FTE-V
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__0046DCBEh:
			MOV EAX, [0049AA48h]
			MOV EAX, [EAX]
			MOV EAX, [EAX+34h]
			MOV DWORD PTR [EAX+0Ch], 1
			MOV EDX, 3356			; MapVariable
			CALL PROC__0046DD10h
			PUSH EAX			; Backup Map
			MOV EDX, 3357			; XVariable
			CALL PROC__0046DD10h
			PUSH EAX			; Backup X
			MOV EDX, 3358			; YVariable
			CALL PROC__0046DD10h
			POP ECX				; Set X
			POP EDX				; Set Map
			PUSH EAX			; Set Y
			MOV EAX, [0049AB50h]
			MOV EAX, [EAX]
			MOV BYTE PTR [EAX+0Ch], 1
			CALL PROC__0047C49Ch
			MOV EAX, [0049ABA4h]
			MOV EAX, [EAX]
			MOV BYTE PTR [EAX+04h], 0
			RET
			NOP
			NOP
__0047354Ch:
			JMP __0047355Ah			; Skip first part of FTE-I / FTE-V
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
__0047355Ah:
			MOV EAX, [004A0A3Ch]
			MOV EAX, [EAX]
			MOV EAX, [EAX+34h]
			MOV DWORD PTR [EAX+0Ch], 1
			MOV EDX, 3356			; MapVariable
			CALL PROC__004735ACh
			PUSH EAX			; Backup Map
			MOV EDX, 3357			; XVariable
			CALL PROC__004735ACh
			PUSH EAX			; Backup X
			MOV EDX, 3358			; YVariable
			CALL PROC__004735ACh
			POP ECX				; Set X
			POP EDX				; Set Map
			PUSH EAX			; Set Y
			MOV EAX, [004A0B38h]
			MOV EAX, [EAX]
			MOV BYTE PTR [EAX+0Ch], 1
			CALL PROC__00482D10h
			MOV EAX, [004A0B8Ch]
			MOV EAX, [EAX]
			MOV BYTE PTR [EAX+04h], 0
			RET
			NOP
			NOP

Bytes

EB0C
90 90 90 90 90 90 90 90 90 90 90 90 A148AA4900 8B00 8B4034 C7400C01000000
BA1C0D0000 E837000000 50
BA1D0D0000 E82C000000 50
BA1E0D0000 E821000000 59 5A 50 A150AB4900 8B00 C6400C01 E89AE70000
A1A4AB4900 8B00 C6400400 C3 90 90
EB0C
90 90 90 90 90 90 90 90 90 90 90 90 A13C0A4A00 8B00 8B4034 C7400C01000000
BA1C0D0000 E837000000 50
BA1D0D0000 E82C000000 50
BA1E0D0000 E821000000 59 5A 50 A1380B4A00 8B00 C6400C01 E872F70000
A18C0B4A00 8B00 C6400400 C3 90 90

Segment 2/3

Offsets

RPG2000
2000-12-27
1.07
2017-09-14
1.62
0046DD10h
0006D110h
004735ACh
000729ACh

Sourcecode

PROC__0046DD10h:
			MOV EAX, [0049ABA4h]		; TLcfgSystem
			MOV EAX, [EAX]
			CALL 00469EE0h			; TLcfgSystem.GetVariable
			RET
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
PROC__004735ACh:
			MOV EAX, [004A0B8Ch]		; TLcfgSystem
			MOV EAX, [EAX]
			CALL 0046F7CCh			; TLcfgSystem.GetVariable
			RET
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP

Bytes

A1A4AB4900 8B00 E8C4C1FFFF
C3 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 90
A18C0B4A00 8B00 E814C2FFFF
C3 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 90

Segment 3/3

Offsets

RPG2000
2000-12-27
1.07
2017-09-14
1.62
0046DD74h
0006D174h
00473610h
00072A10h

Sourcecode

			JMP __0046DCB0h
			NOP
			NOP
			NOP
			NOP
			JMP __0047354Ch
			NOP
			NOP
			NOP
			NOP

Bytes

E937FFFFFF
90 90 90 90
E937FFFFFF
90 90 90 90