Wednesday, May 29, 2013

Running Streets of SimCity on Windows 7 x64

Okay, well, any fan of the game knows that 'running' is a relative term. The game was always prone to crashing, even back in the day on 32-bit Windows 95 and XP operating systems. But if you're reading this then you probably know that some hot Streets action is worth a few "unrecoverable errors", as the familiar in-game popup goes. I'm going to stamp a big sloppy "YMMV" on this technique, so don't bother asking for troubleshooting help or whatever when these steps don't work for you. My guess is that it will probably get the game running on most computers but your graphics card is going to be the deciding factor.  For the record, my machine's vitals:
  • Windows 7 Home Premium x64
  • Mobile Intel 4 Series Express Chipset
  • Pentium Dual-Core T4400 CPU @ 2.20 GHz
  • 4 GB RAM
Obviously that's more than enough to run Streets. In fact, it's a damn sight too much. But more on that later.  Next up, what you'll need to follow this tutorial:
The bare-bones simple version of the tutorial:
  • Copy the Streets disc to your hard drive.
  • Replace \setup\ensetup.exe with the hacked version above.
  • Install the game using the new ensetup.exe.
  • Reboot. (Important!)
  • Replace the streets.exe file with the pre-patched version.
  • Setup FRAPS to record a 30FPS video and lock the framerate while recording.
  • Run the game with 256 color and "Run as administrator" compatibility options.
  • Once in the game, hold down your Video Capture Hotkey button for several seconds until the FRAPS framerate indicator turns pink and indicates that it is in replay recording mode.
  • Enjoy the nostalgia.
And now, the long version.

There's basically two problems that people run into when trying to play Streets on modern Windows XP and 7 systems. The first is the inability to execute a 16-bit installer on an 64-bit system. The second is that even on a 32-bit copy of Windows XP where you can get Streets to install, there's a problem where the uncapped framerate gets ridiculously high and causes problems - most visibly manifested in an AI glitch where the enemies constantly use the Hopper mod instead of actually driving around. This tutorial will fix both problems.

I created the hacked x64-compatbile ENSETUP.EXE file using the method outlined in this thread, which also summarizes the underlying problem quite nicely:
From about 1995 to 1998 it was common practice for setup programs to launch using a Windows 3.1 16-bit loader stub. This gave installers the ability to package multiple binaries for Win16, Win32s, Win32, and Windows NT for Alpha CPUs. At the time it was a reasonable thing to do since all of these platforms could execute 16-Bit Windows 3.1 applications. Today...64-bit Microsoft Windows [don't] implement the ability to run 16-bit Windows 3.1 applications. The result is that there are many, many 32-bit programs that would run fine on these OSes, but are prevented from installing. 
Indeed. If you try to run the SETUP.EXE file on the Streets CD-ROM, you'll get an error saying that "ENSETUP.EXE is missing or damaged." That's not entirely accurate, though. It's not missing or damaged, it's just a 16-bit installer! Try to execute that file from D:\setup and you'll get the following error message:


So what I did was run that setup file on an x86 Windows 7 machine and then pull the result ._MP file from the system Temp directory and rename it as an .EXE. Presto, we have an installer compatible with x64 machines.

As mentioned in the short tutorial above, you'll need to copy the entire Streets CD to hard disk and replace the old ENSETUP.EXE file with the new, x64 compatible one.  You'll notice the new one is much larger than the old one, which makes sense because it has been unpacked.  I'd recommend running it as administrator when you install the game. After that, be sure to reboot. I tried to skip the rebooting step the first time and continued through the whole process. The game worked fine...until I rebooted. It stopped launching and it never worked again. Had to uninstall and back all the way up to square one.  Don't suffer through that - reboot!

Once you've back in action, you'll probably want to copy the \sound\radio folder from your local copy of the Streets disc onto the installed version in C:\Program Files.  You can also copy the movie files and a lot of other assets as well, but it's not strictly necessary. For some reason Streets makes my disc drive sound like a buzzsaw when it access content on the D:\ drive, so the more that's on my hard disk the better.  Up to you, though.

The next step is to apply the Voodoo Rush Fix patch.  Normally you would just download it here (or, backed up here for posterity), copy it to the same folder that contains Streets.exe in your C:\Program Files installation directory, and execute it. But since it, too, is a 16-bit executable and doesn't even work with the same Temp folder extract trick as the main installer, you're out of luck. Except you're not, because I've already patched Streets.exe on an x86 system and provided it for upload above. So drop that sucker in place of the original.

A note here. This is all assuming you're using the "1.0" initial release of the game. I think that the later SIM Mania compilations have the Streets.exe file already patched, but I'm not sure. My copy is deep in the closet and I don't feel like digging. For the record, though, my original release version of Streets had a Streets.exe file with a size of 3,321 KB pre-patch. The patched .EXE is 3,338 KB.

Now you have Streets installed and patched. This fixes the first of the two problems mentioned above, but if you set your shortcut to 256 color mode and run as administrator, you'll get the too-familiar crazy hoppy AI glitch. That's where FRAPS comes in. You see, Streets runs at a very high framerate on modern systems - in the hundreds of frames per second, if not thousands. For some reason this wreaks havoc on the AI and also makes the physics and car handling way worse than Streets ever was - and we all know it wasn't too hot to begin with. What we're going to do is use FRAPS as a cheapo CPU stepdown tool to throttle the game down to a sane 30FPS. You could probably use a real CPU stepdown tool, but this method works and I can't be bothered to figure out another method. So, install FRAPS, and set up your options to look like this:


The pertinent options are to set the capture speed to 30FPS and lock framerate while recording. The other settings like fullsize/halfsize and loop buffer length are kind of up to you, but I found those settings stressed out my machine the least. But I haven't tested much. Anyway, you're going to boot up the game and then hold down your video capture hotkey - in my case SHIFT+F9 - for a few seconds until FRAPS starts recording a short replay buffer. The framerate indicator should turn pink in fullscreen mode or a sort of light blue in windowed mode. This is great because it will force Streets to run at 30FPS but it won't consume your hard drive space with a worthless multi-gigabyte video as you play.  The replay buffer feature was added in a recent (at the time of this writing) version of FRAPS, so you may need to update/upgrade if you're running an old version.

Some caveats. The game doesn't run perfectly. Sometimes FRAPS hogs too many resources and the game gets kind of choppy for a few seconds. You still get the occasional "unrecoverable error" just like the good old days. I also haven't done much testing between forcing windowed mode with -w on the shortcut arguments or running in fullscreen. Of course in windowed mode you can see everything in the correct aspect ratio, but my gut instinct is that you get more crashes that way.

But the game works! And for a few nights of mindless mayhem and rocking, thumping, jangling Jerry Martin tunes, isn't it worth it?

You'll see stuff over the internet (thanks to Wikipedia's article on the game) about using a Glide wrapper. To be honest, I had no luck with that route using nGlide - even though the program claims to support Streets once you apply the Voodoo Rush Fix patch. In fact, I had the game working and I tried nGlide to see if it would fix the framerate problem and eliminate the need for FRAPS. nGlide broke the game - it would crash every time it changed from the car garage engine to the in-game 3D engine - and I had to start over. So, yeah, screw Glide wrappers.

Hopefully this guide was helpful to you. Streets 'fans' know that this was a fun game buried beneath a lot of problems. It wasn't perfect, but most people have a skewed image of it due to the Hopper AI bug and the other problems caused by the uncapped framerate. If I'm missing any important steps let me know, but I'm not going to bother helping you with tech support so don't bother. If there's sure-fire ways to improve these steps, though, let me know about that, too.

In the coming weeks I'll hopefully have an article up on HardcoreGaming101, and when that happens that article will probably link here for a more detailed explanation. It will be good to help open the internet's collective eyes and give the game a fair shake.


22 comments:

gernot66 said...

thanks dude for providing your infos!
actually i haven't tested it on my win7 x64, BUT i try to run it now successfully under wine on my macbook (osx 10.6). it runs anyway fine under wine as well as simcopter (wherefore sc2k win itself acts weird). one thing i'm still wondering about, what is the difference between the patched .exe and the original? further could this method you used to install the game prob. used for other obsolate programs/games as well?

typicalgeek said...

You're welcome! Like I said, the patched .EXE is what you get after applying the "Voodoo Rush Patch" that Maxis released in 1997 to fix some Glide/3DFX problems. The patch is a 16-bit installer and you can't hack it to run on modern systems, so I supplied the STREETS.EXE file with the patch already applied - snagged from an older machine.

And yeah, I think this method would definitely work for other games with 16-bit installers.

Thanks for the comment!

gernot66 said...

thanks that sounds good.
i forgot to note that both games run absolutely fine with wine. no joke, i played in simcopter all 30 missions without a single error message, of which i know that they will even appear under the best conditions (and as faster the machine is as more often they happen, simcopter runs with win7 x64, but you can't play 10 seconds without a error and also streets seems not to fail) in a original windows environment, this was really surprising. i really wonder to what this issue is bound and wished not only because of streets or copter that wine would exist for windows, even if one could think it's useless. and yes, to have a x86 machine with a win '98/ME can be handy for a gamer...

typicalgeek said...

It's unfortunate how much less stable Streets is than Copter. And it doesn't really make any sense - Streets came out after Copter, and should have more bugfixes.

Joel Harbin said...

I did everything you said to do but sadly no matter what, after about a few minutes of playing the game it says "Streets of Sim City has stopped working". This is an error message from windows not the game itself. No matter what it happens no later than 5 minutes into the game. I'm not talking about the "Streets of Sim City has an unexpected error and must close", I remember that from back in the day. Is there anything to fix that?

typicalgeek said...

If you followed the steps, I sadly don't have any more advice for you. Everyone's computer is slightly different! Too bad the game is so buggy. If you do ever figure out a fix, though, be sure to share it for future reference!

Joel Harbin said...

dang. :/ Well looks like I'll have to go with an XP emulator because I'm pretty sure it works there.

Unknown said...

the STREETS.EXE isnt working for me, the hud is completely sky blue any ideas?

Ph'lip The-King (Futurking) said...

STREETS.EXE : Sorry, this file is infected with a virus

Only the owner is allowed to download infected files.

typicalgeek said...

Your virus scanner is giving you a false positive. Don't know what to tell you other than that.

Nixill said...

The thing is, though, that virus thing is not an error on the download-end side. That's an error Google itself is throwing up. It shows up for anyone who tries to download it, except you probably.

typicalgeek said...

Ah, I totally misread your comment. I've re-uploaded to Dropbox: https://www.dropbox.com/s/zbs7gkocchwv93q/STREETS.EXE?dl=0

Anonymous said...

Using your patched .exe worked to get the installer operational for both Streets and SCURK. However, for whatever reason the 'load game' and
'player's choice' options do not work on my home menu. Not sure if this is some weird fluke or if there's a fix available...

gernot66 said...

i got news for you, recently i play "Streets" and "SimCopter" with the heöp of "DXWnd" which is a good all in one solution. it's ordinally ment to play fullscreen games in a window, but it also helps to run old games. it reduces the "unrecoverable errors" to a minimum and for "Streets" you can get rid of the bumping cars with a limitation of the framerate. set to the proper dx version it opens in a free scalable window in mostly proper colors (apart from the text). it's overall now real fun to play these old games.
check out my clips:
https://www.youtube.com/watch?v=Uyh_1Yyg7Pk

Anonymous said...

Hey man. Just wanted to thank you for this blog (I know it's been a really long time, hope you still read this). I used the 2 steps above to get Streets working on my Windows 8 computer! This brings back so many memories when I was growing up!

a eskpert said...

This is my favourite game ever. Thank you for making this possible.

Anonymous said...

vodoo rush patch doeant work with it

mrorange33 said...

I have a hard copy on CD Rom, but the disc is completely scratched and some files are unreadable. I would really love to play this game since the last time i played it back in 05.

Unknown said...
This comment has been removed by the author.
Unknown said...

I am trying to run Streets of Sim on an HP Compaq Presario C700 laptop OS Win7 Home 32bit. I went through the simple instructions above. I got as far as setting up Fraps. But Fraps won't let me change the "loop buffer lengh". Also after getting to this point. Streets of Sim still will not load from the hard drive. I have copied over the whole cd to the hard drive and the hacked versions of ensetup.exe and streets.exe and the game is still looking for the files on the cd in the drive and giving me an error message that it can't find the cd in the drive and stops. Ether I am doing something wrong or there is a problem with your setup.

Classic Gamer74 said...

I can't get Frapps to run during this game. It will run during just about every other game I own except this one. Any help you can provide?

queenestedahms said...

Casino, Slots, and Table Games - JTG Hub
JTG offers the best 이천 출장마사지 in slot machines and table games in Las 광주 출장마사지 Vegas and the Strip. It offers over 충청남도 출장샵 1200 slot machines 광양 출장마사지 and 서산 출장마사지 3D table games to choose from.