Jump to content
Null 45

SC4 Graphics Options - a DLL that sets the game's rendering mode and resolution options.

30 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

Features

  • Custom resolutions can be configured without command line arguments.
  • Supports borderless full screen mode without requiring a launcher.
  • Supports changing the game's rendering driver without a command line argument.
  • Allows full screen mode to use 32-bit color.
  • Allows the game's intro to be disabled without a command line argument.
  • Allows pausing on focus loss to be enabled without a command line argument.

This DLL cannot change the game's full screen resolution, it will always match your monitor. If you want to run a full screen window at something other than your monitor's resolution you need to use an external window scaling program such as Magpie.

Download: https://community.simtropolis.com/files/file/36091-sc4graphicsoptions/

Source Code: https://github.com/0xC0000054/sc4-graphics-options

System Requirements

Installation

  1. Close SimCity 4.
  2. Copy SC4GraphicsOptions.dll and SC4GraphicsOptions.ini into the Plugins folder in the SimCity 4 installation directory.
  3. Configure the graphics options, see the Configuring the plugin section.

Configuring the plugin

  1. Open SC4GraphicsOptions.ini in a text editor (e.g. Notepad).
    Note that depending on the permissions of your SimCity 4 installation directory you may need to start the text editor with administrator permissions to be able to save the file.

  2. Adjust the settings in the [GraphicsOptions] section to your preferences.

  3. Save the file and start the game.

Settings overview:

EnableIntroVideo controls whether the game's intro video will be played on startup, defaults to true. Setting this to false is equivalent to the -Intro:off command line argument.

PauseGameOnFocusLoss controls whether the game will be paused when it looses focus, defaults to false. Setting this to true is equivalent to the -gp command line argument.

Driver the driver that SC4 uses for rendering, the supported values are listed in the following table:

Driver Notes
DirectX SC4's default hardware renderer. Because this renderer targets DirectX 7, a DirectX wrapper (e.g. dgVoodo 2 or DxWrapper) is required for resolutions above 2048x2048.
OpenGL An unfinished hardware renderer. simmaster07's SCGL project aims to replace this renderer with a new one targeting OpenGL 3.0.
SCGL          simmaster07's replacement for SC4's OpenGL renderer. This is an alias for the OpenGL entry above.
Software The renderer SC4 uses when no supported hardware renderer is available.

WindowWidth the width of SC4's window when running in windowed or full screen mode. This is ignored for the borderless full screen mode. The minimum value is 800, values above 2048 with the DirectX driver require the use of a DirectX wrapper.

WindowHeight the height of SC4's window when running in windowed or full screen mode. This is ignored for the borderless full screen mode. The minimum value is 600, values above 2048 with the DirectX driver require the use of a DirectX wrapper.

ColorDepth the color depth that SC4 uses, in bits per pixel. The supported values are 16 and 32.

WindowMode the window mode that SC4 uses, the possible values listed in the following table:

Window Mode Notes
Windowed                        Runs the game in windowed mode, the window size is set by the WindowWidth and WindowHeight values above. Equivalent to the -w command line parameter. Screen resolutions larger that 2048x2048 in DirectX mode require the use of a DirectX wrapper.
FullScreen Runs the game in exclusive full screen mode, the window size is set by the WindowWidth and WindowHeight values above. Equivalent to the -f command line parameter. Screen resolutions larger that 2048x2048 in DirectX mode require the use of a DirectX wrapper.
BorderlessFullScreen Runs the game a window that covers the entire screen. Screen resolutions larger that 2048x2048 in DirectX mode require the use of a DirectX wrapper.
Borderless An alias for the BorderlessFullScreen option above.
   
  Troubleshooting
 

The plugin should write a SC4GraphicsOptions.log file in the same folder as the plugin.
The log contains status information for the most recent run of the plugin.

If you would like to make voluntary contributions to support me in continuing to create more content for SimCity 4, I accept donations via PayPal: https://paypal.me/0xC0000054

Thanks to the few people who have donated to me.

  • Like 2

Share this post


Link to post
Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Release version 1.2.0, which fixes an issue with the borderless full screen mode failing to hide the task bar on some systems.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    I loaded this in as a lark, not expecting it to work. Lo and behold, I've finally got full screen, after years of being squashed into a little box. The work you guys are doing is really amazing, fixing problems that most of us have given up hope of ever getting solved. Everything I've tried has worked on W7. So far, the only thing that hasn't(for me) is editing the cheat list, but I'm pretty sure it's something I'm doing wrong. Again, kudos and keep up the good work. It's like playing a whole new game.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Using this DLL and exiting to region produces this? Do you know how to fix this?

    Here option I'm using in .ini file

    Driver=DirectX
    WindowWidth=2560
    WindowHeight=1600
    ColorDepth=32
    WindowMode=Windowed

     

     

    Capture8.png

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    1 hour ago, sardor555 said:

    Using this DLL and exiting to region produces this?

    Your image failed to upload.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    2 hours ago, sardor555 said:

    Do you know how to fix this?

    AFAIK there's no solution. It is a known glitch with high resolutions. I think it starts to appear around 2000px. At least on my experience, only in big city tiles.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Greetings!

    My configuration is as follows:

    SC4 version 1.1.641.1 (Digital copy from GOOG Games)

    Core i7 8700-K

    1TB M/2 SSD

    32GB RAM

    Most importantly: using a Nvidia Gefoce GTX 1060 6GB

    When the PC goes to screensaver and i come back, i come to this, rendering SC4 useless:

    image.png.82e26b94d613cc7bc04aac0b09f186c4.png

     

    Any suggestions? i thought about using MouseJiggler to keep the computer from entering scrensaver.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    2 hours ago, grebe48 said:

    Any suggestions?

    Are you using a DireectX wrapper, e.g. dgVoodoo?

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    i am. That exact one you linked. I didn't change any settings in it, however, as i was afraid to mess with it and i thought that it was "pre-configured."

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    3 hours ago, grebe48 said:

    i am.

    Then I guess it is just a SC4 limitation. I doubt Maxis tested having the screensaver kick in while the game was running, and even if they did the OS behavior may have changed in the 20+ years since the game was released.

    • Like 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    FTA: i run it in windowed mode because I have two monitors and can use the other for streaming video while playing. LOL

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Hi, I'm at a loss here....

    I've tried to research this, but I'm just not finding a reason or solution.  Should I start a new thread, or could you all help me here?

    This is the problem:

    I finally got an SSD drive.  I reinstalled Windows 10, and Steam and SC4.  These awesome new DLL's were working great on the previous install, but they just won't work now.  I drop SC4GraphicsOptions.dll and ini and the cpu options files into the plugins folder, adjust the ini file to show no intro and keep the other settings, and then nothing happens.  It doesn't switch to 1920x1080, and the Intro runs.  I even reinstalled Windows 10 again, to no avail.  I tried the files in the other plugins folder.  Nuthin.  Everything works as normal if I use the Launch Options.

    Any idea what's up?

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    2 hours ago, Simcity4.FoSho said:

    Any idea what's up?

    You probably need to reinstall the Microsoft Visual C++ 2022 x86 Redistribute. Most Win 10 installs will have it present, but that may not be the case for a fresh install.

    • Like 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    With the plugin installed (even if I set Enabled=false in the ini), the game briefly shows the region view at full resolution (5120x2880), but only on a small fraction of the screen, and then CTDs.

    Even if I set the resolution in the ini to 1920x1080 and the renderer to Software (or another configuration which should not cause a problem), the same thing happens.

    Any idea what might be going wrong?

    Also, is the SCGL renderer included or do we need to compile and install that separately?

    screeny.jpg

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    3 minutes ago, Luna said:

    Any idea what might be going wrong?

    Unfortunately, I do not. The fact that the game gets to the region screen indicates that you are using a DirectX wrapper when in DirectX mode, it would CTD on startup if that wasn't the case.

    Is your monitor's native resolution 5120x2880, or are you using other software (e.g. NVIDIA Surround or AMD Eyefinity) to combine multiple monitors into a single virtual monitor?

    14 minutes ago, Luna said:

    Even if I set the resolution in the ini to 1920x1080 and the renderer to Software (or another configuration which should not cause a problem), the same thing happens.

    You would also need to change the WindowMode option to Windowed, it defaults to FullScreen.

    12 minutes ago, Luna said:

    Also, is the SCGL renderer included or do we need to compile and install that separately?

    SCGL has to be compiled and installed separately.

    • Like 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    15 minutes ago, Null 45 said:

    The fact that the game gets to the region screen indicates that you are using a DirectX wrapper when in DirectX mode, it would CTD on startup if that wasn't the case.

    Correct, I use Proton, so it would be wrapped by wined3d (at least until dxvk starts supporting DX7).

    3 minutes ago, Null 45 said:

    Is your monitor's native resolution 5120x2880, or are you using other software (e.g. NVIDIA Surround or AMD Eyefinity) to combine multiple monitors into a single virtual monitor?

    My monitor is 4k, but the desktop runs at 5k and downscales the output since I do 150% DPI scaling. (I'm on X11; I'm not sure if Wayland uses the same hack to accomplish fractional scaling.)

    Also, I did figure out one thing: part of my problem was because I forgot to remove the -CustomResolution:enabled launch argument. Windowed mode now works, though it is slow. Fullscreen mode still goes 5k regardless of the ini, though it will lock up now instead of CTDing.

     

    Does this plugin accomplish anything if you're fine using CLI options and don't want to use SCGL? Because if not, I'm just going to go back to my old setup.

    • Like 1

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    18 minutes ago, Luna said:

    Does this plugin accomplish anything if you're fine using CLI options and don't want to use SCGL?

    It adds borderless full screen support when using that INI option, and patches the game's full screen mode to use 32-bit color.

    21 minutes ago, Luna said:

    Fullscreen mode still goes 5k regardless of the ini

    In full screen and borderless full screen the window size parameters in the INI file are ignored.

    • Thanks 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    9 hours ago, Null 45 said:

    It adds borderless full screen support when using that INI option, and patches the game's full screen mode to use 32-bit color.

    In that case, I'll keep using it. By using Valve's Gamescope to emulate a 1080p monitor to run the game in, I'm able to run it fullscreen at a compatible resolution (runs faster than windowed mode and no CTDs) while being able to easily choose between windowed and fullscreen without restarting the game.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Hello! I had a hard time trying to understand why this and some other plugins from the same author quietly fail to load on a freshly installed and clean Windows 11 Pro x64 24H2 until I installed Visual C++ 2022 x86 redist, and it worked. Would it maybe make more sense to mention that the dependency isn't only required for Windows 7 but basically for everybody? Just to save the posterity from the pain and suffering.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Release verion 1.3.0, which allows full screen mode to use custom resolutions. This does not apply to the borderless window mode, it will always use a window size that matches the primary monitor resolution.

    • Like 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    So, I tried reinstalling the Visual C++ 2015-2022 x86 redist several times, even uninstalling and reinstalling and restarting the computer. The dll mod keeps showing a small, windowed program, with none of the changes in the .ini files (resolution, intro, etc.) applied to it. Even setting the .ini to false doesn't work. Is there something wrong with the installation? I use sc4pac to manage the dll plugin and my SimCity 4 is the steam edition.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    3 hours ago, Seraphor96 said:

    Is there something wrong with the installation?

    Did you install a DirectX wrapper like DgVoodoo? Those are typically required due to SC4's age. That being missing is the only thing I can think of that would cause SC4 to CTD before it fully creates its window.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    10 hours ago, Null 45 said:

    Did you install a DirectX wrapper like DgVoodoo? Those are typically required due to SC4's age. That being missing is the only thing I can think of that would cause SC4 to CTD before it fully creates its window.

    I have resolved the issue. It turns out the dll and the ini needs to be in the right root folder. I have also installed DgVoodoo just in case. Thank you for your help! It works perfectly now!

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Hi guys, super sorry, but i'm having trouble getting this to work...

    I have installed dgvoodoo2 and that seems to work but with these settings:

    Enabled=True
    EnableIntroVideo=False
    Driver=DirectX
    WindowWidth=2560
    WindowHeight=1440
    ColorDepth=32
    WindowMode=FullScreen

    i get this outcome in the log file:

    SC4GraphicsOptions v1.2.0
    9:17:30 PM No such node (GraphicsOptions.EnableIntroVideo)

    any idea what i'm doing wrong to get this???

    Thanks a bunch, just want to start playing with all the cool new things after many years away.

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    8 hours ago, Cpt_Jones said:

    any idea what i'm doing wrong to get this???

    The only thing I can think of is the [GraphicsOptions] header being missing, it is in your post.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    On 6/19/2025 at 12:54 PM, Null 45 said:

    Release verion 1.3.0, which allows full screen mode to use custom resolutions.

    What's the idea behind this? This caught me off guard a bit. Here's what I did:

    1. On Linux using Wine, I usually run the game using launch parameters in fullscreen (neither -w nor -f), which works fine. I could never get the windowed mode to work on my end, but in fullscreen, the game runs inside a Wine window anyway.
    2. I installed the DLL, configured for fullscreen in the INI. The game is very choppy/sluggish in region view. That's because I didn't adjust the WindowWidth and WindowHeight parameters, so the DLL switched to borderless fullscreen (which just seems to perform poorly using Wine, on my end).
    3. I uninstalled the DLL. Trying to launch the game as in 1., the game launches in windowed mode, which I had never configured (and doesn't work on my end – I get stuck on a black window). To resolve that, I deleted the file "SimCity 4.cfg", so I lost my in-game graphics settings as a result.

    In hindsight, everything would have worked if I had adjusted the resolution. Though perhaps, the DLL could stick to non-borderless fullscreen in 2. when the WindowWidth or WindowHeight exceed the screen size.

    • Like 1

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     
    48 minutes ago, memo said:

    What's the idea behind this?

    It is intended to allow forcing exclusive full screen to run at something other than the monitor's native resolution, e.g. making a 4K (3840x2160) monitor run the game in exclusive full screen at 1920x1080.

    1 hour ago, memo said:

    Though perhaps, the DLL could stick to non-borderless fullscreen in 2. when the WindowWidth or WindowHeight exceed the screen size.

    Fair enough. The borderless fullscreen fallback code has been present since the initial commit, and I don't recall why I wrote it that way. The other resolution correction doesn't change the user's selected mode.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    No matter what I do, I can't get this to work. I've tried installing through SC4pac, installing manually, double-checked that the DLL and INI are in the same folder, reinstalled VCredist... yet the result is always the same. Vanilla resolution, intro appears even if I set it to false in the INI. And absolutely no log files appear either.

    EDIT: turns out sc4pac as a whole isn't working. No idea why, but at least it's not this mod specifically. Sorry for bothering

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    1 hour ago, HaruhiSuzumiya said:

    EDIT: turns out sc4pac as a whole isn't working. No idea why, but at least it's not this mod specifically. Sorry for bothering

    When you install the DLL Mod using an INI file, be sure to read and follow the instructions that appear on the screen to complete the installation.


    Federal Republic of SiculiaFederal Republic of Sonora

       Ain Member  Wiki

    NAM Team - Co-developer of Pedestian Revolution Mod - Railway Department (Hybrid Railway | HRW Expert) - MTA Member - BAT Creator

    Ulisse Wolf YouTube Channel - Ulisse Wolf Mastodon Profile

    Share this post


    Link to post
    Share on other sites

    Sign In or register to comment...

    To comment in reply, you must be a community member

    Sign In  

    Already have an account? Sign in here.

    Sign In Now

    Create an Account  

    Sign up to join our friendly community. It's easy!  

    Register a New Account


    ×

    Thank You for the Continued Support!

    Simtropolis depends on donations to fund site maintenance costs.
    Without your support, we just would not be in our 24th year online!  You really help make this a great community. *:thumb:

    But we still need your support to stay online. If you're able to, please consider a donation to help us stay up and running. This helps sustain a platform where we can share our community creations for years to come.

    Make a Donation, Get a Gift!

    Expand your city with the best from the Simtropolis Exchange.
    Make a Donation and get one or all three discs today!

    STEX Collections

    By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

    Each donation helps keep Simtropolis online, open and free!

    Thank you for reading and enjoy the site!

    More About STEX Collections