PicPointerPatch 2.5b

Redirects the target-ID of picture-commands for show, move and delete to the value of a variable if the ID specified in the command is above 10000 (e.g. 10647 equals variable #0647 as ID-source).

Also, if target-ID is set above 50000 in the show-command, the next variable will manipulate the last four characters in the specified filename to feature a number between 0 and 9999 instead (e.g. 50823 equals variable #0823 as ID-source and #0824 as name-manipulator, "Filename" will become "File1234" if the variable has a value of 1234).

This version contains some unused garbage, especially a placeholder-pattern for an integer-parameter that gets forced to display four digits. In show-command with ID above 50000, the last four bytes of the filename are replaced without the need of such. Also, the version for 2003-1.08 replaces the names of the fonts used ingame (this part is excluded here).

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

Offsets

RPG2000
2000-12-27
1.07
00424794h
00023B94h
RPG2003
1.0.8.0
1.0.8.0
004355E0h
000349E0h

Sourcecode

PROC__00424794h:
			NOP
			NOP
			NOP
			NOP
			CALL PROC__0045E524h
			CMP EAX, 10000
			JA __004247A5h
			RET
__004247A5h:
			SUB EAX, 10000
			MOV EDX, [0049ABA4h]
			MOV EDX, [EDX]
			MOV EDX, [EDX+24h]
			CMP EDX, EAX
			JAE __004247BCh
			XOR EAX, EAX
			RET
__004247BCh:
			MOV EDX, [0049ABA4h]
			MOV EDX, [EDX]
			MOV EDX, [EDX+28h]
			DEC EAX
			SHL EAX, 2
			MOV EAX, [EAX+EDX]
			RET
DATA__004247CFh:
			db '%.4d', 0					; Garbage
__004247D4h:
			CALL PROC__0045E524h
			CMP EAX, 50000
			JA __004247E8h
			CMP EAX, 10000
			JA __00424806h
			RET
__004247E8h:
			SUB EAX, 50000
			MOV EDX, [0049ABA4h]
			MOV EDX, [EDX]
			MOV EDX, [EDX+24h]
			CMP EDX, EAX
			JA __004247FFh
__004247FCh:
			XOR EAX, EAX
			RET
__004247FFh:
			CALL PROC__0042482Fh
			JMP __0042481Ah
__00424806h:
			SUB EAX, 10000
			MOV EDX, [0049ABA4h]
			MOV EDX, [EDX]
			MOV EDX, [EDX+24h]
			CMP EDX, EAX
			JB __004247FCh
__0042481Ah:
			MOV EDX, [0049ABA4h]
			MOV EDX, [EDX]
			MOV EDX, [EDX+28h]
			DEC EAX
			SHL EAX, 2
			MOV EAX, [EAX+EDX]
			RET
			NOP
			NOP
__0042482Fh:
			PUSH EAX
			PUSH ECX
			PUSH ESI
			SUB ESP, 8
			MOV EDX, [0049ABA4h]
			MOV EDX, [EDX]
			MOV EDX, [EDX+28h]
			SHL EAX, 2
			NOP
			NOP
			NOP
			NOP
			MOV ESI, [EAX+EDX]
			CMP ESI, 9999
			JA __00424884h
			MOV EAX, [EBX+0Ch]
			MOV EAX, [EAX-04h]
			CMP EAX, 4
			JB __00424884h
			LEA ECX, [ESP+04h]
			PUSH ECX
			XOR ECX, ECX
			MOV [ESP+04h], ESI
			LEA EDX, [ESP+04h]
			MOV EAX, DATA__004247CFh			; Garbage
			CALL PROC__0042488Ch
			MOV ECX, [EBX+0Ch]
			MOV EDX, [ECX-04h]
			SUB EDX, 4
			MOV ESI, [EAX]
			MOV [ECX+EDX], ESI
__00424884h:
			ADD ESP, 8
			POP ESI
			POP ECX
			POP EAX
			RET
			NOP
__0042488Ch:
			NOP
			MOV DWORD PTR [ESP+0Ch], 30303030h		; 0 0 0 0
			MOV ECX, 10
			MOV EAX, [EDX]
			MOV [ESP-04h], EAX
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Fh], DL
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Eh], DL
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Dh], DL
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Ch], DL
			MOV EAX, [ESP+04h]
			MOV ECX, [ESP]
			MOV [ESP+04h], ECX
			ADD ESP, 4
			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
PROC__004355E0h:
			NOP
			NOP
			NOP
			NOP
			CALL PROC__0047967Ch
			CMP EAX, 10000
			JA __004355F1h
			RET
__004355F1h:
			SUB EAX, 10000
			MOV EDX, [004CDC7Ch]
			MOV EDX, [EDX]
			MOV EDX, [EDX+24h]
			CMP EDX, EAX
			JNC __00435608h
			XOR EAX, EAX
			RET
__00435608h:
			MOV EDX, [004CDC7Ch]
			MOV EDX, [EDX]
			MOV EDX, [EDX+28h]
			DEC EAX
			SHL EAX, 2
			MOV EAX, [EAX+EDX]
			RET
DATA__0043561Bh:
			NOP						; Garbage
			NOP
			NOP
			NOP
			db 5, '.4d', 0					; Garbage
PROC__00435624h:
			CALL PROC__0047967Ch
			CMP EAX, 50000
			JA __00435638h
			CMP EAX, 10000
			JA __00435656h
			RET
__00435638h:
			SUB EAX, 50000
			MOV EDX, [004CDC7Ch]
			MOV EDX, [EDX]
			MOV EDX, [EDX+24h]
			CMP EDX, EAX
			JA __0043564Fh
__0043564Ch:
			XOR EAX, EAX
			RET
__0043564Fh:
			CALL PROC__0043567Fh
			JMP __0043566Ah
__00435656h:
			SUB EAX, 10000
			MOV EDX, [004CDC7Ch]
			MOV EDX, [EDX]
			MOV EDX, [EDX+24h]
			CMP EDX, EAX
			JB __0043564Ch
__0043566Ah:
			MOV EDX, [004CDC7Ch]
			MOV EDX, [EDX]
			MOV EDX, [EDX+28h]
			DEC EAX
			SHL EAX, 2
			MOV EAX, [EAX+EDX]
			RET
			NOP
			NOP
PROC__0043567Fh:
			PUSH EAX
			PUSH ECX
			PUSH ESI
			SUB ESP, 8
			MOV EDX, [004CDC7Ch]
			MOV EDX, [EDX]
			MOV EDX, [EDX+28h]
			SHL EAX, 2
			NOP
			NOP
			NOP
			NOP
			MOV ESI, [EAX+EDI]
			CMP ESI, 9999
			JA __004356D4h
			MOV EAX, [EBX+0Ch]
			MOV EAX, [EAX-04h]
			CMP EAX, 4
			JB __004356D4h
			LEA ECX, [ESP+04h]
			PUSH ECX
			XOR ECX, ECX
			MOV [ESP+04h], ESI
			LEA EDX, [ESP+04h]
			MOV EAX, [DATA__0043561Bh]			; Garbage
			CALL PROC__004356DCh
			MOV ECX, [EBX+0Ch]
			MOV EDX, [ECX-04h]
			SUB EDX, 4
			MOV ESI, [EAX]
			MOV [ECX+EDX], ESI
__004356D4h:
			ADD ESP, 8
			POP ESI
			POP ECX
			POP EAX
			RET
			NOP
PROC__004356DCh:
			NOP
			MOV DWORD PTR [ESP+0Ch], 30303030h		; 0 0 0 0
			MOV ECX, 10
			MOV EAX, [EDX]
			MOV [ESP-04h], EAX
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Fh], DL
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Eh], DL
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Dh], DL
			XOR EDX, EDX
			DIV ECX
			ADD DL, 48
			MOV BYTE PTR [ESP+0Ch], DL
			MOV EAX, [ESP+04h]
			MOV ECX, [ESP]
			MOV [ESP+04h], ECX
			ADD ESP, 4
			RET
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP
			NOP

Bytes

90 90 90 90 E8879D0300
3D10270000 7701
C3

2D10270000 8B15A4AB4900 8B12 8B5224 3BD0 7303
33C0 C3

8B15A4AB4900 8B12 8B5228 48 C1E002 8B0410 C3
25 2E 34 64 00
E84B9D0300
3D50C30000 7708
3D10270000 771F
C3

2D50C30000 8B15A4AB4900 8B12 8B5224 3BD0 7703
33C0 C3

E82B000000
EB14
2D10270000 8B15A4AB4900 8B12 8B5224 3BD0 72E2
8B15A4AB4900 8B12 8B5228 48 C1E002 8B0410 C3 90 90
50 51 56 83EC08 8B15A4AB4900 8B12 8B5228 C1E002 90 90 90 90 8B3410 81FE0F270000 7732
8B430C 8B40FC 83F804 7227
8D4C2404 51 33C9 89742404 8D542404 B8CF474200 E816000000
8B4B0C 8B51FC 83EA04 8B30 893411 83C408 5E 59 58 C3 90 90

C744240C30303030 B90A000000 8B02 894424FC 33D2 F7F1 80C230 8854240F 33D2 F7F1 80C230 8854240E 33D2 F7F1 80C230 8854240D 33D2 F7F1 80C230 8854240C 8B442404 8B0C24 894C2404 83C404 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 90 90 90 E893400400
3D10270000 7701
C3

2D10270000 8B157CDC4C00 8B12 8B5224 3BD0 7303
33C0 C3

8B157CDC4C00 8B12 8B5228 48 C1E002 8B0410 C3 90 90 90 90
05 2E 34 64 00
E853400400
3D50C30000 7708
3D10270000 771F
C3

2D50C30000 8B157CDC4C00 8B12 8B5224 3BD0 7703
33C0 C3

E82B000000
EB14
2D10270000 8B157CDC4C00 8B12 8B5224 3BD0 72E2
8B157CDC4C00 8B12 8B5228 48 C1E002 8B0410 C3 90 90

50 51 56 83EC08 8B157CDC4C00 8B12 8B5228 C1E002 90 90 90 90 8B3410 81FE0F270000 7732
8B430C 8B40FC 83F804 7227
8D4C2404 51 33C9 89742404 8D542404 B81B564300 E816000000
8B4B0C 8B51FC 83EA04 8B30 893411 83C408 5E 59 58 C3 90 90

C744240C30303030 B90A000000 8B02 894424FC
33D2 F7F1 80C230 8854240F 33D2 F7F1 80C230 8854240E
33D2 F7F1 80C230 8854240D 33D2 F7F1 80C230 8854240C
8B442404 8B0C24 894C2404 83C404 C3

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

Segment 2/13

Offsets

RPG2000
2000-12-27
1.07
004887E6h
00087BE6h
RPG2003
1.0.8.0
1.0.8.0
004AF71Eh
000AEB1Eh

Sourcecode

			CALL PROC__004247D4h
			CALL PROC__00435624h

Bytes

E8E9BFF9FF
E8015FF8FF

Segment 3/13

Offsets

RPG2000
2000-12-27
1.07
00488875h
00087C75h
RPG2003
1.0.8.0
1.0.8.0
004AF7AFh
000AEBAFh

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E81ABFF9FF
E82C5EF8FF

Segment 4/13

Offsets

RPG2000
2000-12-27
1.07
00488884h
00087C84h
RPG2003
1.0.8.0
1.0.8.0
004AF7BEh
000AEBBEh

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E80BBFF9FF
E81D5EF8FF

Segment 5/13

Offsets

RPG2000
2000-12-27
1.07
00488968h
00087D68h
RPG2003
1.0.8.0
1.0.8.0
004AF7CDh
000AEBCDh

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E827BEF9FF
E80E5EF8FF

Segment 6/13

Offsets

RPG2000
2000-12-27
1.07
004889DEh
00087DDEh
RPG2003
1.0.8.0
1.0.8.0
004AF84Ah
000AEC4Ah

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E8B1BDF9FF
E8915DF8FF

Segment 7/13

Offsets

RPG2000
2000-12-27
1.07
004889EEh
00087DEEh
RPG2003
1.0.8.0
1.0.8.0
004AF8CCh
000AECCCh

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E8A1BDF9FF
E80F5DF8FF

Segment 8/13

Offsets

RPG2000
2000-12-27
1.07
00488A5Eh
00087E5Eh
RPG2003
1.0.8.0
1.0.8.0
004AF946h
000AED46h

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E831BDF9FF
E8955CF8FF

Segment 9/13

Offsets

RPG2000
2000-12-27
1.07
00488ADDh
00087EDDh
RPG2003
1.0.8.0
1.0.8.0
004AF956h
000AED56h

Sourcecode

			CALL PROC__00424794h
			CALL PROC__004355E0h

Bytes

E8B2BCF9FF
E8855CF8FF

Segment 10/13

Offsets

RPG2000
2000-12-27
1.07
---
---
RPG2003
1.0.8.0
1.0.8.0
004AF966h
000AED66h

Sourcecode

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

Bytes

--
E8755CF8FF

Segment 11/13

Offsets

RPG2000
2000-12-27
1.07
---
---
RPG2003
1.0.8.0
1.0.8.0
004AF9D4h
000AEDD4h

Sourcecode

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

Bytes

--
E8075CF8FF

Segment 12/13

Offsets

RPG2000
2000-12-27
1.07
---
---
RPG2003
1.0.8.0
1.0.8.0
004AF9EDh
000AEDEDh

Sourcecode

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

Bytes

--
E8EE5BF8FF

Segment 13/13

Offsets

RPG2000
2000-12-27
1.07
---
---
RPG2003
1.0.8.0
1.0.8.0
004AFA69h
000AEE69h

Sourcecode

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

Bytes

--
E8725BF8FF