Topic: Disable 16-bit Display Mode (hex edit fix)  (Read 549 times)

0 Members and 2 Guests are viewing this topic.

Offline USFTethys

  • Lt. Junior Grade
  • *
  • Posts: 9
Disable 16-bit Display Mode (hex edit fix)
« on: June 23, 2024, 01:24:45 pm »
Greetings once again all.

Here has been a pretty nagging issue for me for a while, to have to change the desktop display from 32-bit true color to the 16-bit high color "required" to run SFC3. Well, the truth of the matter is that, 32-bit true color works just fine, because I just tested it. And I'm here to give you all the information you need to liberate yourself from this annoyance, once and for all!

If you have not read my first topic regarding changing the empires hex colors, you should do so now, because there are some basic explanations there.

Now that you have the necessary programs, open your hex editor and load the file SFC3.exe

Navigate to hexadecimal location: 0x010EC

Change the value: 75 07 -> 90 90

Save the file and change your display mode back to 32-bit, and enjoy never having to deal with this pestilence ever again.

Explanation:
Code: [Select]
004010E8  83 7D B0 10             cmp     dword ptr [ebp-50h], 10h ; Compare Two Operands
004010EC  75 07                   jnz     short loc_4010F5 ; Jump if Not Zero (ZF=0)

Compare extended base pointer and 10h (which is just hex for the number 16)
Jump to loc 4010F5 if the number does not match 10h (16)
loc_4010F5 runs the error checks for the graphics engine and textures, and changes the al register for use later on

loc_4010EC we changed from jnz to no operation. So it will skip the comparison to 10h (16-bit mode), basically. I tested one battle in a saved game, everything went on fine.