Jump to content
bluedragon012

Ideas for Improving SimCity 4's Performance

15 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

Hey all, First I want to thank you all for helping me last month with getting a new modded playthrough of SimCity 4 going. following Indiana Joe's guide has added a wealth of content that I couldn't even dream of having back about 4 years ago.
 

 

However there is one big thing I've noticed, is the performance of simcity4.. It isn't what you call the best, at times.


I'm aware that, in order to prevent crashing you have to use only one core on multi core systems.. and thus.. that's the limiting factor. As time goes on and cpus change and add even more cores, this game will be harder and harder to run.


A little about my system:
Amd Ryzen7 5800x, 32gb ram, nvidia gtx1060.

A little about me:
-Somewhat technically savvy but coding is something nearly foreign tome. I understand how its done, but I could not do it to save my life. So I may not be fully aware of all the work others have done over the years. I'm also wanting to do a live stream of this game when I finish adding all the building and stuff from that guide.

 

I'm thinking its time to discuss what to do about that.


I'll go first:

The first is a "simple" fix:

Somehow trick SimCity 4 into thinking that  there is only one core.

- Is there a way to make a virtual machine do this? (Initial search results on Google don't provide definitive answers.) if that is something that can be done, Then we could get this game running nice and smooth with modern performance to back it up.

The second is a "Harder" option.

- Go the rout Open Roller Coaster Tycoon 2  did and basically rebuild the game, but still require a legally owned copy and its game files to run.

I'm very much aware that this is probably not the option most peeps want to do. How much do we know about the backend of SimCity 4? How open is the current code of the game? Would EA shut it down if tired?

RCT2 was built in assembly, so I think the project creator knew assembly and formed a way to extract that and read it? I'm not sure, but my point is there a way to do that to this game?

The third option:

- A community effort to get in contact with EA or the original developers of SimCity 4 and see if a 64bit version with modern processor support could be made?

This is probably not going to work unless a lot of folk chip in support somehow, and even then, EA may see no benefit to it even if they re released as a enhanced version for a quick cash grab.

 

I just don't want to see one of my favorite city builders go the way of many other old games: only able to run on systems of the era. All the content made for it gone to waste on sites like this. Its wild in 2 years, this game will be 20 years old!

 

Do you all have other ideas? Are there already tricks like this out there? Did a miss a forum post that is basically this topic?

  • Like 4
  • Thanks 2

Share this post


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

Option 1 would have additional issues brought up from the VM, such as limited graphics memory. There can also be issues with cursor doubling and whatnot. Option 2 has been discussed  in depth before. On several occasions. The most recent attempt at option 3  was by @OrSpeeder concerning trying to get the rights to fix the multiprocessor bug, but there's been no report back yet.

We all wish they would let us fix it, but I get the feeling that EA doesn't want to invest any effort into this game, as they would see it as an admission that the SC games they have made recently are utter failures.

That, or they don't want to give up IP rights on 18 year old software that they still charge $20 for.

  • Like 5
  • Thanks 2

Share this post


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

    Option 1 would have additional issues brought up from the VM, such as limited graphics memory. There can also be issues with cursor doubling and whatnot.

    I sadly don't have the videos in question. But over on Linus Tech tips I swore they made gpu pass through thing? (Eliminating the worry about graphics memory). I'll do some homework on it from other IT peeps I know and more googling.  As for the cursor thing, If you have multi monitor, you can full screen the Virtual Machine on one monitor perhaps? My ubuntu on a VM doesn't seem to have this issue.

     I'm considering testing but Id have to find a method for the VM to think its one big'ol single core processor. 
     

    Quote

    Option 2 has been discussed  in depth before. On several occasions.

    That's good to hear! What's holding a team back from this? Fear of EA lawyers? not being worth the time investment? A need for being paid but opening a legal can of worms with EA?

     

    10 hours ago, Whte_rbt said:

    The most recent attempt at option 3  was by @OrSpeeder concerning trying to get the rights to fix the multiprocessor bug, but there's been no report back yet.

    (Joke proposal): We all collectively twitter bomb/ review bomb with a copy and paste the request to fix the bug and put at the bottom "EA WE ARE TRYING TO FIX YOUR GAME FOR FREE WHICH WILL LEAD TO MORE SALES! DONT YOU WANT MORE MONEY!?" 

    Serious proposal: We do the above politely. 

    • Like 2

    Share this post


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

    The GPU passthru option I have explored previously. To get the passthu working properly I had to be using VM Workstation Player and then use an older card that still has driver support for direct X7 thru to 9.0c. This trick doesn't work using a newer card as the support for direct X7 has been somewhat overwritten by recent developments (DX10-12). Setting the VM to single core is easily do-able, you just need to change the 'virtual CPU' slider in the Player setup menu to '1'. This will restrict the OS that can be installed upon it as more modern OS's usually require dual core as a minimum these days.

    As to option 2, while its been discussed before (hell, I remember having this chat with Nonny), the pool of talent required has never really come together on this site. The closest anyone has come is probably @simmaster07, who was put in the enviable position of being sold a largely unencrypted version of the game by Aspyr for his Mac. After this emerged as news he was hit by EA with some fairly hefty Non-Disclosure legalism. EA's response to this situation is mainly what killed off any hope of building an open source clone.

     The recent discussion of option 3 (here: bottom half of the thread) did bring up the possibility of getting Paul Pedriana or Bob Summerwill to make the pitch to EA for us (They  were members of the original dev team), but updates have been somewhat thin on the ground since that conversation.

    • Like 3
    • Thanks 2

    Share this post


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

    Addition info for Option 1: I believe that an ESXi/vSphere type installation would also give the capacity you are looking for, but will take much more configuration as its intended for commercial/industrial system deployments. I have studied all this stuff again recently as part of my college course, if you need help getting the initial setup configured let me know.

    • Like 3
    • Thanks 1

    Share this post


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

    Apologies for the multiple posts, here's some visual guidance for the number of vCPU's:

    Oracle VM Virtualbox:

    60be00f21a5e8_OracleVMwarecpuslider.jpg.74f91a71c996bc01d7407e3bc1ad8e7c.jpg

    VM Workstation Player:

    60be014b255d0_Workstationcpuslider.jpg.1261b6d82b82ba069d42275c0568783f.jpg

    • Thanks 4

    Share this post


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

    Apologies for the multiple posts, here's some visual guidance for the number of vCPU's:

    ohhh... this looks good. And thanks for replying. I'll look into it closlier when I got some extra time. 
    Perhaps this will kick off some peeps that lurk/ just pass by via google searches here to try some stuff as well.

    • Like 3

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    On 8/17/2021 at 10:05 AM, simmaster07 said:

     

    There is one glimmer of hope though: last year, EA released the source code for Command & Conquer based on the strength of its modding community, even decades after its release. It wouldn't hurt to ask nicely if we could help SC4 out the same way. The trouble is that a lot of the old guard at Maxis are gone now, so I don't know who in Redwood we could even ask.

    THAT! is amazing news about C&C. I remember playing it for countless hours. Such a hit back in the late nineties. It could be a good idea to pitch an opensource SC4 through social media. I'm assuming rights might have been sold for a game nearing 20 years. I think IP rights last no longer than  15 years, (or somewhere like that, thinking pharmaceutical companies have direct competitors (generic firms) that make copies of generic medicines, unless the patent or IP can be extended with new technology. The law is set in a way towards innovation more than protection, I mean you do get baseline protection but only up to X amount of years, so you could ask for the source code to be distributed as abandonware, freely) so the same rules would apply to EA and Maxis, and the software is no longer sold by EA so you're not eating into their revenues as its an older defunct software. I do believe fear is not rational and a 20 year old title rights can be secured easily if the right patent attorney with negotiating software is sought for advise. The only thing they can protect is the copyright of SimCity as a registered trademark.

    • Like 2

    vive ut vivas

    Share this post


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

    It should be noted that the source code to the original SimCity (1989) was released to the public some years ago. It was released under the name "Micropolis" - which was going to be the original name for the game.

    I don't know if we'll ever see the source code to SimCity 4 get released anytime soon (though one can dream and try). It's "too new" and it still is a profitable older title (although you'd have to have the game's assets to play the game once you compile it, so there's potential for more money to be made by EA).

    We'd probably have a better chance at a source code release of SimCity 2000, though. I personally would love to see that one. (I could see it now... Micropolis 2000? Micropolis 2?)

    Micropolis for Unix:  https://github.com/osgcc/SimCity

    • Like 1
    • Thanks 2

    Once you play with NAM installed, one simply cannot go back!

    I'm waiting for the day when someone makes a Faber College lot for SimCity 4  :lol:

    IMG_3716.jpg.7fe0b78e164e258bac5afb32dc9f9588.jpg

     

    Share this post


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

    I have the CPU as you, @bluedragon012, A Ryzen 7 5800X. I also have a 2080 Super and 64 GB of RAM. I have a lot going on at startup and a lot of USB devices plugged in. I want to keep it that way. The problem there is, though, that with SimCity 4 running, I'd get 100% CPU utilization on CPU 0. Task Manager shows me that Human Interface Device Service, also known as hidserv.exe, and Windows Management Instrumentation are taking up a lot of CPU utilization.

    Taskmgr_2021-10-10_12-17-13.jpg.26ec2815640203201a22359e82d26ac6.jpg

    When I opened one of my old cities in SimCity 4 on my new Windows 11 installation, I'd get mouse stutter because CPU 0 was being completely utilized.

    I decided to set the CPU affinity of SimCity 4 to one of the cores that wasn't showing much utilization. I saw that Core 6 was one of those cores. I edited my shortcut target to C:\Windows\System32\cmd.exe /c start "SimCity 4.exe" /affinity 6 "E:\GOG\SimCity 4 Deluxe Edition\Apps\SimCity 4.exe" -CPUPriority:high -w -Intro:Off -CustomResolution:enabled -r3840x2160x32 -d:DirectX -Cursors:fullcolor -UserDir:"E:\SC4Folder\"

    As you can see, I'm not using the CPUCount:1 option that is often recommended to use for SimCity 4. Setting CPU affinity doesn't work when using that option. -UserDir"E:\SC4Folder\" is pointing to my SimCity 4 user directory that is on one of my solid state drives.

    You can in the screenshot below that I took with one of my cities open that Core 6 and Core 0 are not being completely utilized. Thus, I no longer have that stutter from CPU 0 being completely utilized.

    Taskmgr_2021-10-10_12-24-43.jpg.d83e0d13730262e88beb2712be61bdc4.jpg

    If you'd like a tutorial on how to set CPU affinity for an application, you can find one here: https://www.eightforums.com/threads/cpu-affinity-shortcut-for-a-program-create-in-windows.40339/

    I hope this helps! I should note that I'm using dxwrapper to run the game in 4K. On these forums, there are discussions about using wrappers to play SimCity 4 in higher resolutions

    I plan to upgrade to a Ryzen 9 5950X at some point because the Ryzen 5000 series is the end of the road for the AM4 socket.

    Edit: My CPU is overclocked to 4.7 GHz on all cores, but the reason that it's being reported as 4.66 GHz has to do with the fact that I have Virtualization-Based Security enabled so that I can run Windows Sandbox and Microsoft Edge Application Guard. This past week, Virtualization-Based Security has been making the journalistic rounds because it is enabled by default on Windows 11 on OEM systems. It can cause a performance loss of up to 25% in games.

    • Like 3

    Fun fact: Buffalo sauce contains the entire DNA sequence of buffalo, so you can clone buffalo while eating buffalo wings with buffalo sauce at Buffalo Wild Wings in Buffalo, New York. I've never tried it, though.

    Share this post


    Link to post
    Share on other sites
    55 minutes ago, Turnstyled said:

    C:\Windows\System32\cmd.exe /c start "SimCity 4.exe" /affinity 6 "E:\GOG\SimCity 4 Deluxe Edition\Apps\SimCity 4.exe" -CPUPriority:high -w -Intro:Off -CustomResolution:enabled -r3840x2160x32 -d:DirectX -Cursors:fullcolor -UserDir:"E:\SC4Folder\"

    ^ My bold added.

    With your techy knowledge maybe you know for sure if it's really true that -CPUPriority:high in the target line doesn't actually do anything.

    I launch my game by putting the target pointing to a batch file that contains: Start "" /AboveNormal /wait "C:\GOG Games\SimCity 4 Deluxe Edition\Apps\SimCity 4.exe" -CPUCount:1 -w -intro:off -CustomResolution:enabled -r1280x1024x32 When I compared in Task Manager this does actually change the priority whereas the one in the shortcut parameters did not.

    (The /wait is because I also have a second batch file called after quitting the game that backs up any city tiles which have changed to incrementally named folders.)

     

    • Like 2

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


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

    With your techy knowledge maybe you know for sure if it's really true that -CPUPriority:high in the target line doesn't actually do anything.

    Thank you so much! I don't know anything about that. I never checked to see if the priority was high. I'll start using your method of setting the priority!

    • Like 2

    Fun fact: Buffalo sauce contains the entire DNA sequence of buffalo, so you can clone buffalo while eating buffalo wings with buffalo sauce at Buffalo Wild Wings in Buffalo, New York. I've never tried it, though.

    Share this post


    Link to post
    Share on other sites
    13 minutes ago, Turnstyled said:

    I'll start using your method of setting the priority!

    Yay!

    /High is another option ofc, but be sure to never ever set it to /Realtime as that will preempt things like keyboard and mouse response. *;)

    • Like 3

    Chance favors the prepared mind. ― Louis Pasteur  
    Remember, a few hours of trial and error can save you several minutes of looking at the README. -- I Am Devloper (on Twitter)

    Clickable ---> The Best of Cori's Posts  (scroll down a wee bit there)    Something fun: MySimtropolis - Invitation to become a SimCity 4 MySim

    Are you new here? Check out the Introduction and Guide to Simtropolis.

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    8 minutes ago, CorinaMarie said:

    Yay!

    /High is another option ofc, but be sure to never ever set it to /Realtime as that will preempt things like keyboard and mouse response. *;)

    Oh, wow. I'll make sure not to do that!

    • Like 3

    Fun fact: Buffalo sauce contains the entire DNA sequence of buffalo, so you can clone buffalo while eating buffalo wings with buffalo sauce at Buffalo Wild Wings in Buffalo, New York. I've never tried it, though.

    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