========================================================== ====================== empty space ======================= ========================================================== 004A88F9 - unused code 004A88FC : sidebar buttons fix 004A8930 : ini fix 004A8960 : savegame fix #1 004A89A0 : savegame fix #2 ========================================================== ======================== new code ======================== ========================================================== ---- CODE FOR FIXING SMALL MAPS CRASH ---- #EIP=004103A2 test eax, C000C000h jz short 004103C4 xor eax, eax jmp short 004103C4 |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=004343DD jmp 004103A2 |offset: 247DD E9 C0 BF FD FF -OK- ---- CODE FOR LONG SIDEBAR HACK ---- #EIP=00454184 push 0F0FFFFh mov eax, 0F0FFFFh |offset: 44584 68 FF FF F0 00 B8 FF FF F0 00 ---------------- #EIP=00465E40 nop mov edx, [ebp+76] |offset: 56240 90 8B 55 76 ---- CODE FOR FIXING SIDEBAR BUTTONS ---- #EIP=004A5ADD jmp 004A88FC |offset: 95EDD E9 1A 2E 00 00 ---------------- #EIP=004A5B17 nop (*6) |offset: 95F17 90 90 90 90 90 90 ---------------- #EIP=004A5BA0 nop (*6) |offset: 95FA0 90 90 90 90 90 90 ---------------- #EIP=004A88FC mov eax, ds:50565Ch sub eax, 67h mov ds:5584EC, eax mov eax, ds:50565Ch sub eax, 9Ch mov ds:5584B4h, eax mov eax, ds:50565Ch sub eax, 32h mov ds:558524h, eax :4A8925 jmp 004A5AE2 |offset: 983DC A1 5C 56 50 00 83 E8 67 A3 EC 84 55 00 A1 5C 56 50 00 2D 9C 00 00 00 A3 B4 84 55 00 A1 5C 56 50 00 83 E8 32 A3 24 85 55 00 E9 B8 D1 FF FF -OK- ---- CODE FOR FIXING SIDEBAR POSITION ---- |sbfix0: #EIP=004AB4AD jmp .sbfix1 |offset: 9B88AD E9 D0 D5 FF FF #EIP=004A8A82 sbfix1: mov ebx, ds:50565Ch sub ebx, 140h jmp .sbfix2 |file offset: 98E82 8B 1D 5C 56 50 00 81 EB 40 01 00 00 EB 04 #EIP=004A8A94 sbfix2: jmp 004AB4B2 |file offset: 98E94 E9 19 2A 00 00 -OK- ---- CODE FOR ADDING NEW RESOLUTION TO INI ---- #EIP=004AAD9C jmp .inihack1 |offset: 9B19C E9 8F DB FF FF #EIP=004A8930 inihack1: cmp eax, 1 jnz .not_one mov eax, 1E0h jmp 004AADAC not_one: cmp eax, 2 jnz 004AADA7 mov eax, 400h mov ds:0050565C, eax mov eax, 300h jmp 004AADAC |offset: 98D30 83 F8 01 75 0A B8 E0 01 00 00 E9 6D 24 00 00 83 F8 02 0F 85 5F 24 00 00 B8 00 04 00 00 A3 5C 56 50 00 B8 00 03 00 00 E9 50 24 00 00 -OK- ---- CODE FOR ADDING 1024x768 SETTINGS ---- ; freeing up space taken by obsolete DOS code: #EIP=004AA402 cmp edx, 1E0h jz short 004AA455 |offset: 9A802 FA E0 01 00 00 74 4B #EIP=004AA51E jmp short 004AA564 |offset: 9A91E EB 44 #EIP=004AA564 mov esi, :scr_width |offset: 9A964 8B 35 5C 56 50 00 ---------------- #EIP=004AA740 nop (*10) |offset: 9A1F8 90 90 90 90 90 90 90 90 90 90 ---------------- #EIP=004AA791 mov edx, offset 00541AB8 mov eax, offset 00541C00 xor ecx, ecx xor ebx, ebx jmp 004AA520 #EIP=004AA7A4 push 280 |offset: 9AB91 BA B8 1A 54 00 B8 00 1C 54 00 31 C9 31 DB E9 7C FD FF FF 68 80 02 00 00 -OK- ---------------- #EIP=004AA520 mov esi, :scr_width cmp esi, 400h jz .is_hi push 190h jmp 004AA7A4 is_hi: push 300h push 400h call 004CA1A8 push 300h mov edx, offset 00541B5C mov eax, offset 00541CCC push 400h xor ecx, ecx jmp 004AA7C4 |offset: 9A920 8B 35 5C 56 50 00 81 FE 00 04 00 00 74 0A 68 90 01 00 00 E9 6C 02 00 00 68 00 03 00 00 68 00 04 00 00 E8 61 FC 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 62 02 00 00 -OK- ---- CODE FOR ADDING SEPARATE HI-RES SAVEGAMES ---- [strings] #EIP=004F4F5A SAVEG_HI.%03d SAVEG_HI.* |offset: DD75A 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=00467B39 call 004A8960 |offset: 57F39 E8 22 0E 04 00 ---------------- #EIP=00499F37 call 004A8960 |offset: 8A337 E8 24 EA 00 00 ---------------- #EIP=0049A601 call 004A8960 |offset: 8AA01 E8 5A E3 00 00 ---------------- #EIP=0049B4BA call 004A8960 |offset: 8B8BA E8 A1 D4 00 00 ---------------- #EIP=004A8960 push eax mov eax, :scr_width 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 004F4F5A pop ebx retn savegame: pop eax push 0 push ebx mov ebx, [esp+8] mov [esp+4], ebx mov dword ptr [esp+8], offset 004F4F41 pop ebx retn |offset: 98D60 50 A1 5C 56 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 5A 4F 4F 00 5B C3 58 6A 00 53 8B 5C 24 08 89 5C 24 04 C7 44 24 08 41 4F 4F 00 5B C3 -OK- ------------------ [SAVEGAME.*] #EIP=00467DEC jmp 004A89A0 |offset: 57FBC E9 AF 0B 04 00 #EIP=004A89A0 mov eax, :scr_width cmp eax, 400h jnz short .not_hi mov eax, offset 004F4F68 jmp .end not_hi: mov eax, offset 004F4F4F end: jmp 00467DF1 |offset: 98DA0 A1 5C 56 50 00 3D 00 04 00 00 75 07 B8 68 4F 4F 00 EB 05 B8 4F 4F 4F 00 E9 34 F4 FB FF