SimCity 4 Deluxe

SimCity 4 Deluxe

SmokeStack 2015년 12월 22일 오후 2시 42분
Cannot get SimCity 4 Deluxe to run on Windows 8.1
To start this, I'd like to get it out there that I am not computer savvy at all.

I remember really enjoying this game in middle school, so I bought it when I saw it 75% off.
I downloaded the game, and tried playing it just like every other Steam game I have.

SimCity 4 Deluxe opens to a black screen for about 2 seconds, then returns to my desktop as if nothing happened. It's icon sits on my taskbar like it's running, but when I hover my mouse over it, all I see is a miniatured black screen. If I click on it, I get the black screen again and then back to my desktop shortly thereafter. I can't close it from the taskbar. I have to open task manager and kill it from there.

I've been running through forum for a few hours. I've read through these.
http://steamcommunity.com/app/24780/discussions/0/494631967657814350/
http://steamcommunity.com/sharedfiles/filedetails/?id=279736936

I'm frustrated with my inane understanding of computers, and I'm left wondering why I can't play my purchased Steam game. Perhaps there's no easy fix, but that's exactly what I'm looking for.

Any help is much appreciated.

Thanks,
nick246
< >
22개 댓글 중 16-22개 표시
Nadlug 2016년 1월 3일 오후 2시 13분 
Glad to have helped. but really you shoudl just thank the guy who came up with that guide, I havent suggested anything that wasent listed in the guide.
Speeder 2016년 1월 31일 오전 10시 23분 
Note: SC4 has two major common issues:

1) it uses DirectDraw, and Windows 8 and Windows 10 have buggy DirectDraw, some people "fixed" it by using Wine or other DirectDraw re-implementations.

2) The game was designed to be multi-threaded, but it wasn't design to withstand all the broken and stupid decisions hardware and OS makers had regarding timing, as the OS shift the game around in the cores, the timing functions report erroneous values and confuse the game and make it crash.

You can use multiple cores, I for example play SC4 with all 8 cores enabled, but you MUST use the option to do that, if you leave on automatic, windows keep shifting the game around the cores, crashing it, if you tell the game to choose 8 cores, it will lock itself down with each thread on a different core, and stop crashing.

Unfortunately, HyperThreading makes this a problem (I have a 4core processor with HyperThreading, the game runs better when using 4 cores for me, but when I tell it to use 4 cores sometimes it decides to use 4 logical cores next to each other, this result in it using only 2 real cores, and leaving 2 real cores unused).
The Muppet Surgery Special 2016년 1월 31일 오전 10시 24분 
Speeder님이 먼저 게시:
Note: SC4 has two major common issues:

1) it uses DirectDraw, and Windows 8 and Windows 10 have buggy DirectDraw, some people "fixed" it by using Wine or other DirectDraw re-implementations.

2) The game was designed to be multi-threaded, but it wasn't design to withstand all the broken and stupid decisions hardware and OS makers had regarding timing, as the OS shift the game around in the cores, the timing functions report erroneous values and confuse the game and make it crash.

You can use multiple cores, I for example play SC4 with all 8 cores enabled, but you MUST use the option to do that, if you leave on automatic, windows keep shifting the game around the cores, crashing it, if you tell the game to choose 8 cores, it will lock itself down with each thread on a different core, and stop crashing.

Unfortunately, HyperThreading makes this a problem (I have a 4core processor with HyperThreading, the game runs better when using 4 cores for me, but when I tell it to use 4 cores sometimes it decides to use 4 logical cores next to each other, this result in it using only 2 real cores, and leaving 2 real cores unused).

The game was designed to be multi-threaded, however, they have not implemented thread-safe code. That is why it crashes on multi-core/proc. It increases the likehood of the faults being reached.

You can try setting CORE AFFINITY on the exe in the process manager. Saves messing with any files or disabling things.
The Muppet Surgery Special 님이 마지막으로 수정; 2016년 1월 31일 오전 10시 25분
Speeder 2016년 1월 31일 오전 10시 32분 
The game is thread safe, I am very familier with its coding, in fact if you examine the game with Process Explorer, you will see it spawn several critical sections and mutexes, also there is a great GDC talk in 1999 by Paul Pedriana (the game engine programmer), explaining about the game framework, and thread safety was a concern already. (Sim City 3000 was already multi-threaded and thread-safe).

The game use both Critical Sections from MS, Mutexes, and the ocasional semaphore, also it has a custom implementation of Atomic Operations (like the ones in the newest C standard).

Every time the game must allocate, decallocate, or do I/O, it uses a Critical Section.

Also for extra safety, on top of Critical Sections, the game has recursive lock count, and some debug guards, the game dumps a exception report if somehow a Critical Section is violated.
The Muppet Surgery Special 2016년 1월 31일 오전 10시 33분 
Speeder님이 먼저 게시:
The game is thread safe, I am very familier with its coding, in fact if you examine the game with Process Explorer, you will see it spawn several critical sections and mutexes, also there is a great GDC talk in 1999 by Paul Pedriana (the game engine programmer), explaining about the game framework, and thread safety was a concern already. (Sim City 3000 was already multi-threaded and thread-safe).

The game use both Critical Sections from MS, Mutexes, and the ocasional semaphore, also it has a custom implementation of Atomic Operations (like the ones in the newest C standard).

Every time the game must allocate, decallocate, or do I/O, it uses a Critical Section.

Also for extra safety, on top of Critical Sections, the game has recursive lock count, and some debug guards, the game dumps a exception report if somehow a Critical Section is violated.

If it was thread-safe then it wouldn't crash with concurrency. Plain and simple.

Timing is also part of concurrency management, synchronisation. They failed at it.
The Muppet Surgery Special 님이 마지막으로 수정; 2016년 1월 31일 오전 10시 34분
Speeder 2016년 1월 31일 오전 10시 42분 
The game relies on Windows QPC, and RDTSC for timing.

They didn't failed at it, when the game was launched...

Problem with RDTSC: Multi-Core processors can get RDTSC grossly out of sync, this may result in your physics crashing due to divide by zero when it try to calculate something that is time dependent, and end with time different being zero (ie: you did physics update on one core, then the next time you update physics, the core changed, but the difference between them was the same as the time that passed, thus RDTSCNew - RDTSCOld = 0, then you do some formula like acceleration = velocitychange/deltatime and end with a divide by zero).

Problem with QPC: Microsoft and Intel tried to fix the RDTSC problem by developing new time counting chips and whatnot, and a new API that tried to return only synced results between all cores and CPUs, but it never worked properly, and QPC has a ambiguous fallback system, when QPC detects something is out of sync, it can change its timing source without warning, this mean that if you compare QPC results between frames, you might get grossly different results, having nothing to do with each other, since they used different clock sources.

Also QPC is allowed to use RDTSC internally anyway, returning to the first problem.

Also, SC4 was made when RDTSC returned clock count only, at every processor clock, it summed 1 in a counter, and returned that on RDTSC, after Intel discovered people were using RDTSC for timing, they developed a new RDTSC that instead tried to count time.

SC4 ASM code, when launching the game, runs several loops of some algorithm, and do RDTSC before and after, and also use a normal time tracking funciton, then it divides the RDTSC/Time to figure the processor clock.

But currently, RDTSC does NOT reflect the processor clock, thus RDTSC/time returns a bogus result that makes little sense, but SC4 team could not know of that, since the new RDTSC system was invented after the game was released. (and is also why Microsoft begs people to use QPC, not RDTSC directly).
aecrouch7413 2016년 2월 11일 오후 8시 11분 
I just got the game an it works fine. I'm on Windows 8.1. I would check compatibility or your security settings as well.
< >
22개 댓글 중 16-22개 표시
페이지당 표시 개수: 1530 50

게시된 날짜: 2015년 12월 22일 오후 2시 42분
게시글: 22