========================================================== ====================== empty space ======================= ========================================================== 004A7FD9 - unused code 004A7FDC : sidebar buttons fix 004A8010 : ini fix 004A8040 : savegame fix #1 004A8080 : savegame fix #2 ========================================================== ======================== new code ======================== ========================================================== ---- CODE FOR FIXING SMALL MAPS CRASH ---- #EIP=004103A2 test eax, 0C000C000h jz short loc_4103C4 xor eax, eax jmp short loc_4103C4 |offset: 7A2 A9 00 C0 00 C0 74 1B 33 C0 EB 17 ---------------- #EIP=004103C4 add esp, 8 pop edi pop esi pop ecx retn |offset: 7C4 83 C4 08 5F 5E 59 C3 ---------------- #EIP=0043432D jmp loc_4103A2 |offset: 2472D E9 70 C0 FD FF ---- CODE FOR LONG SIDEBAR HACK ---- #EIP=00453FE4 push 0F0FFFFh mov eax, 0F0FFFFh |offset: 443E4 68 FF FF F0 00 B8 FF FF F0 00 ---------------- #EIP=00465C10 nop mov edx, [ebp+arg_62] |offset: 56010 90 8B 55 76 ---- CODE FOR FIXING SIDEBAR BUTTONS ---- #EIP=004A51BD jmp 004A7FDC |offset: 955BD E9 1A 2E 00 00 ---------------- #EIP=004A51F7 nop (*6) |offset: 955F7 90 90 90 90 90 90 ---------------- #EIP=004A5280 nop (*6) |offset: 95680 90 90 90 90 90 90 ---------------- #EIP=004A7FDC mov eax, ds:res_x sub eax, 67h mov ds:5584EC, eax mov eax, ds:res_x sub eax, 9Ch mov ds:5584B4, eax mov eax, ds:res_x sub eax, 32h mov ds:558524, eax jmp 004A51C2 |offset: 983DC A1 6C 55 50 00 83 E8 67 A3 EC 84 55 00 A1 6C 55 50 00 2D 9C 00 00 00 A3 B4 84 55 00 A1 6C 55 50 00 83 E8 32 A3 24 85 55 00 E9 B8 D1 FF FF ---- CODE FOR FIXING SIDEBAR POSITION ---- |sbfix0: #EIP=0004AAB7D jmp .sbfix1 |offset: 9AF7D E9 E0 D5 FF FF |sbfix1: #EIP=004A8162 mov ebx, ds:res_x sub ebx, 140h jmp .sbfix2 |file offset: 98562 8B 1D 6C 55 50 00 81 EB 40 01 00 00 EB 04 |sbfix2: #EIP=004A8174 jmp 004AAB82 |file offset: 98574 E9 09 2A 00 00 ---- CODE FOR ADDING NEW RESOLUTION TO INI ---- #EIP=004AA468 jmp .inihack1 |offset: 9A868 E9 A3 DB FF FF #EIP=004A8010 inihack1: cmp eax, 1 jnz .not_one mov eax, 1E0h jmp loc_4AA478 not_one: cmp eax, 2 jnz loc_4AA473 mov eax, 400h mov ds:dword_50556C, eax mov eax, 300h jmp loc_4AA478 |offset: 98410 83 F8 01 75 0A B8 E0 01 00 00 E9 59 24 00 00 83 F8 02 0F 85 4B 24 00 00 B8 00 04 00 00 A3 6C 55 50 00 B8 00 03 00 00 E9 3C 24 00 00 ---- CODE FOR ADDING 1024x768 SETTINGS ---- #EIP=004A9ABF cmp edx, 1E0h jz short loc_4A9B12 |offset: 99EC0 FA E0 01 00 00 74 4B #EIP=004A9BDB jmp short 4A9C1F |offset: 99FDB EB 42 ---------------- #EIP=004A9C1F nop nop mov esi, ds:dword_50556C |offset: 9A01F 90 90 8B 35 6C 55 50 00 ---------------- #EIP=004A9DF8 nop (*10) |offset: 9A1F8 90 90 90 90 90 90 90 90 90 90 ---------------- #EIP=004A9E49 mov edx, offset dword_541AB8 mov eax, offset dword_541C00 xor ecx, ecx xor ebx, ebx jmp 004A9BDD |004A9E5C push 280 |offset: 9A249 BA B8 1A 54 00 B8 00 1C 54 00 31 C9 31 DB E9 81 FD FF FF 68 80 02 00 00 ---------------- #EIP=004A9BDD mov esi, ds:res_x cmp esi, 400h jz 004A9BF5 push 190h jmp 004A9E5C |offset: 99FDD 8B 35 6C 55 50 00 81 FE 00 04 00 00 74 0A 68 90 01 00 00 E9 67 02 00 00 ---------------- #EIP=004A9BF5 push 300h push 400h call sub_4C97C8 push 300h mov edx, offset 00541B5C mov eax, offset 00541CCC push 400h xor ecx, ecx jmp 004A9E7C |offset: 99FF5 68 00 03 00 00 68 00 04 00 00 E8 C4 FB 01 00 68 00 03 00 00 BA 5C 1B 54 00 B8 CC 1C 54 00 68 00 04 00 00 31 C9 E9 5D 02 00 00 ---- CODE FOR ADDING SEPARATE HI-RES SAVEGAMES ---- [strings] #EIP=004F4D2E SAVEG_HI.%03d SAVEG_HI.* |offset: DCB2E 53 41 56 45 47 5F 48 49 2E 25 30 33 64 00 53 41 56 45 47 5F 48 49 2E 2A 00 [SAVEGAME.%03d] #EIP=00467909 call sub_4A8040 |offset: 57D09 E8 32 07 04 00 ---------------- #EIP=00499607 call sub_4A8040 |offset: 89A07 E8 34 EA 00 00 ---------------- #EIP=00499CD1 call sub_4A8040 |offset: 8A0D1 E8 6A E3 00 00 ---------------- #EIP=0049AB8A call sub_4A8040 |offset: 8AF8A E8 B1 D4 00 00 ---------------- #EIP=004A8040 push eax mov eax, ds:0050556C cmp eax, 400h jnz short .savegame pop eax push 0 push ebx mov ebx, [esp+8] mov [esp+4], ebx mov dword ptr [esp+8], offset 004F4D2E pop ebx retn savegame: pop eax push 0 push ebx mov ebx, [esp+8] mov [esp+4], ebx mov dword ptr [esp+8], offset 004F4D15 pop ebx retn |offset: 98440 50 A1 6C 55 50 00 3D 00 04 00 00 75 16 58 6A 00 53 8B 5C 24 08 89 5C 24 04 C7 44 24 08 2E 4D 4F 00 5B C3 58 6A 00 53 8B 5C 24 08 89 5C 24 04 C7 44 24 08 15 4D 4F 00 5B C3 ------------------ [SAVEGAME.*] #EIP=00467BBC jmp loc_4A8080 |offset: 57FBC E9 BF 04 04 00 #EIP=004A8080 mov eax, ds:0050556C cmp eax, 400h jnz short .not_hi mov eax, offset 004F4D3C jmp .end not_hi: mov eax, offset 004F4D23 end: jmp 00467BC1 |offset: 98480 A1 6C 55 50 00 3D 00 04 00 00 75 07 B8 3C 4D 4F 00 EB 05 B8 23 4D 4F 00 E9 24 FB FB FF