========================================================== ====================== empty space ======================= ========================================================== 004A8A09 - unused code 004A8A0C : sidebar buttons fix 004A8A40 : ini fix 004A8A70 : savegame fix #1 004A8AB0 : savegame fix #2 ========================================================== ======================== new code ======================== ========================================================== ---- CODE FOR FIXING SMALL MAPS CRASH ---- #EIP=004103A2 test eax, 0C000C000h 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=0043439D jmp 004103A2 |offset: 2479D E9 00 C0 FD FF -OK- ---- CODE FOR LONG SIDEBAR HACK ---- #EIP=004541F4 push 0F0FFFFh mov eax, 0F0FFFFh |offset: 445F4 68 FF FF F0 00 B8 FF FF F0 00 ---------------- #EIP=00465E90 nop mov edx, [ebp+arg_62] |offset: 56290 90 8B 55 76 -OK- ---- CODE FOR FIXING SIDEBAR BUTTONS ---- #EIP=004A5BED jmp 004A8A0C |offset: 955BD E9 1A 2E 00 00 ---------------- #EIP=004A5C27 nop (*6) |offset: 96027 90 90 90 90 90 90 ---------------- #EIP=004A5CB0 nop (*6) |offset: 95680 90 90 90 90 90 90 ---------------- #EIP=004A8A0C mov eax, :scr_width sub eax, 67h mov ds:sellbutn_x, eax mov eax, :scr_width sub eax, 9Ch mov ds:reprbutn_x, eax mov eax, :scr_width sub eax, 32h mov ds:mapbutn_x, eax jmp 04A5BF2 |offset: 98E0C A1 BC 56 50 00 83 E8 67 A3 EC 84 55 00 A1 BC 56 50 00 2D 9C 00 00 00 A3 B4 84 55 00 A1 BC 56 50 00 83 E8 32 A3 24 85 55 00 E9 B8 D1 FF FF -ok- ---- CODE FOR FIXING SIDEBAR POSITION ---- |sbfix0: #EIP=004AB5BD jmp .sbfix1 |offset: 9B9BD E9 D0 D5 FF FF #EIP=004A8B92 sbfix1: mov ebx, :scr_width sub ebx, 140h jmp .sbfix2 |file offset: 98F92 8B 1D BC 56 50 00 81 EB 40 01 00 00 EB 04 #EIP=004A8BA4 sbfix2: jmp 004AB5C2 |file offset: 98FA4 E9 19 2A 00 00 -ok- ---- CODE FOR ADDING NEW RESOLUTION TO INI ---- #EIP=004AAEA4 jmp .inihack1 |offset: 9B2A4 E9 A3 DB FF FF #EIP=004A8A40 inihack1: cmp eax, 1 jnz .not_one mov eax, 1E0h jmp loc_4AAEB4 not_one: cmp eax, 2 jnz loc_4AAEAF mov eax, 400h mov ds:dword_5056BC, eax mov eax, 300h jmp loc_4AAEB4 |offset: 98E40 83 F8 01 75 0A B8 E0 01 00 00 E9 65 24 00 00 83 F8 02 0F 85 57 24 00 00 B8 00 04 00 00 A3 BC 56 50 00 B8 00 03 00 00 E9 48 24 00 00 -OK- ---- CODE FOR ADDING 1024x768 SETTINGS ---- #EIP=004AA502 cmp edx, 1E0h jz short loc_4AA555 |offset: 9A902 81 FA [E0] 01 00 00 [74] 4B #EIP=004AA61E jmp short 004AA664 |offset: 9AA1E EB 44 ---------------- #EIP=004AA664 mov esi, :scr_width |offset: 9AA64 8B 35 BC 56 50 00 ---------------- #EIP=004AA840 nop (*10) |offset: 9AC40 90 90 90 90 90 90 90 90 90 90 ---------------- #EIP=004AA891 mov edx, offset dword_541AB8 mov eax, offset dword_541C00 xor ecx, ecx xor ebx, ebx jmp 004AA620 |004AA8A4 push 280 |offset: 9AC91 BA B8 1A 54 00 B8 00 1C 54 00 33 C9 33 DB E9 7C FD FF FF 68 80 02 00 00 ---------------- #EIP=004AA620 mov esi, :scr_width cmp esi, 400h jz 004AA638 push 190h jmp 004AA8A4 |offset: 9AA20 8B 35 BC 56 50 00 81 FE 00 04 00 00 74 0A 68 90 01 00 00 E9 6C 02 00 00 ---------------- #EIP=004AA638 push 300h push 400h call sub_4CA2B8 push 300h mov edx, offset 00541B5C mov eax, offset 00541CCC push 400h xor ecx, ecx jmp 004AA8C4 |offset: 9AA38 68 00 03 00 00 68 00 04 00 00 E8 71 FC 01 00 68 00 03 00 00 BA 5C 1B 54 00 B8 CC 1C 54 00 68 00 04 00 00 33 C9 E9 62 02 00 00 -OK- ---- CODE FOR ADDING SEPARATE HI-RES SAVEGAMES ---- [strings] #EIP=004F4FAA SAVEG_HI.%03d SAVEG_HI.* |offset: DD9AA 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=00467B89 call sub_4A8A70 |offset: 57F89 E8 E2 0E 04 00 ---------------- #EIP=0049A047 call sub_4A8A70 |offset: 8A447 E8 24 EA 00 00 ---------------- #EIP=0049A711 call sub_4A8A70 |offset: 8AB11 E8 5A E3 00 00 ---------------- #EIP=0049B5CA call sub_4A8A70 |offset: 8B9CA E8 A1 D4 00 00 ---------------- #EIP=004A8A70 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 004F4FAA pop ebx retn savegame: pop eax push 0 push ebx mov ebx, [esp+8] mov [esp+4], ebx mov dword ptr [esp+8], offset 004F4F91 pop ebx retn |offset: 98E70 50 A1 BC 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 AA 4F 4F 00 5B C3 58 6A 00 53 8B 5C 24 08 89 5C 24 04 C7 44 24 08 91 4F 4F 00 5B C3 ------------------ [SAVEGAME.*] #EIP=00467E3C jmp loc_4A8AB0 |offset: 5823C E9 6F 0C 04 00 #EIP=004A8AB0 mov eax, :scr_width cmp eax, 400h jnz short .not_hi mov eax, offset 004F4FB8 jmp .end not_hi: mov eax, offset 004F4F9F end: jmp 00467E41 |offset: 98EB0 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 A1 BC 56 50 00 3D 00 04 00 00 75 07 B8 B8 4F 4F 00 EB 05 B8 9F 4F 4F 00 E9 74 F3 FB FF