How much work does it take to get the Windows 95 version of SimCity 2000 working on a modern windows PC? 💭 All views are my own 💭
Пікірлер: 1 100
@nathanbaggs2 ай бұрын
Want early access to new videos and some behind the scenes content? Consider becoming a channel member kzfaq.info/love/QvW_89l7f-hCMP1pzGm4xwjoin
@ShishakliAusАй бұрын
Excuse me sir but, I'm having trouble finding the link to your patreon...
@lukusridley5 ай бұрын
I love that this channel doesn't shy away from the fact that reverse engineering consists mainly of the emotion of being face down on your desk for hours while nothing works - the unglamorous truth!
@magnusm44 ай бұрын
Makes you wonder why people waste their time torturing them selves hacking a game just to be an asshole instead of using that skill to either make fun mod, their own damn game or anything else that's actually useful.
@Ztygs4 ай бұрын
@@magnusm4 99.9% of the players you run into with an aimbot or wallhack etc are not the people who created that hack/tool, they're simply idiots who bought that from someone with the actual skills of creating it. Selling hacks is unfortunately a big business because a lot of people don't care about how/why they win, they just wanna win.
@jansenart04 ай бұрын
Don't forget about talking to an inanimate rubber duck.
@cya1no4 ай бұрын
Or the fact that you have to get pirated version to play an old game.
@vinesauceobscurities4 ай бұрын
You say that but there's always going to be someone out there that's determined enough to dig into old code, or even rebuild the game in modern code. Years ago there was in fact an open source RE project, OpenSC2K, that could run on Windows, but EA issued a DMCA takedown on the project back in 2018, supposedly because it was infringing copyright through the use of assets that the dev probably didn't legally get. Still, EA pulling this crap is rich give how it's barely done anything with the SimCity IP for years besides the mobile BuiltIt. That also applies to all the pre-EA Maxis-era games, which may as well be abandonware at this point.
@map-reduce5 ай бұрын
Well I'll be danged, this was my baby. I ported this from the Windows version, and it was one of the very first Windows 95 games ever published. What a fun blast from the past, I'm glad it popped up in my feed. It was interesting to see that you initially had palette problems, as those bedeviled me because the way the palette mapping was handled between WinG (which the Windows version used) and CreateDIBSection was slightly different. I don't remember all the details, but it took me weeks to get it right and not fall in to "pink mode" during various states (that's what you were seeing before you set the correct bitmap path.) Not sure what was up with the save game code, that came directly from the Windows version with no modification that I recall, so I don't take responsibility :D
@aspuzling5 ай бұрын
When you say the "Windows" version, do you mean Windows 3?
@map-reduce5 ай бұрын
@@aspuzling Yes, Windows 3, sorry. Very old habits :D
@soundspark5 ай бұрын
Definitely got a lot of enjoyment out of the game back in the day.
@bstoppel15 ай бұрын
If that code came from the win3.1 version, I'm going to assume it was asking for the 16-bit file dialog which no longer exists.
@ciscornBIG5 ай бұрын
Thank you for your work. I loved sc2k win95 as a kid. It was so cozy.
@kkinfl95825 ай бұрын
Have you released this patch anywhere? I’m sure many people would appreciate the work you did.
@monkeylicker6385 ай бұрын
He is not the first person to make this patch, there are some online that I've used and everything works. For example, SC2000X or "SimCity 2000 Open Source Patcher" and the SimCity 2000 Compatability Patcher.
@Sameer.Trivedi5 ай бұрын
Yeah he should put this on PC gaming wiki
@nightchicken35175 ай бұрын
I ran into this problem in August, I don't know c yet, so I put it on hold, so I definitively want it public
@LeonBlade5 ай бұрын
Someone said that a patch exists online somewhere already. I'd be willing to create a patch, but I don't know where to get the file. The archive link has already been taken down, lol.
@heroclix0rz5 ай бұрын
Don't think it would be legal. But he should hit up GOG about it.
@mme7255 ай бұрын
honestly after the GRAPHICS folder registry thing, I was feeling there was going to be a running theme of everything being registry failures. So your save/load problem I was sure was going to be it loading a NULL path for the directory it would save to/load from. Fascinating dive as usual 👍
@leviathanx08155 ай бұрын
He could as well just create a Windows XP VM, install the game and export the registry entries at that point..... But going the easy route isn't creating content 😅
@RandomUser24015 ай бұрын
@@leviathanx0815probably would‘ve taken more time than quickly inspecting the not found key errors
@lorenkuhn38065 ай бұрын
He deliberately ignored that option to show the function patching technique. It's all well prepared and scripted. From an educational standpoint it's a nice touch.
@RandomUser24015 ай бұрын
@@lorenkuhn3806 probably would‘ve taken more time than quickly inspecting the not found key errors
@RandomUser24015 ай бұрын
@@rich1051414 probably would‘ve taken more time than quickly inspecting the not found key errors
@lexisnep5255 ай бұрын
When a programmer approaches a problem instead of an IT engineer, the solution is sometimes completely different. I’m an IT professional and it’s really fascinating how you approach this. I’d be messing with virtualization or compatibility layers instead, myself.
@dsihacker015 ай бұрын
My thought was literally "If he is running a VM anyways, why not run a sim2000 only VM?"
@Stinktierchen5 ай бұрын
@@dsihacker01 Because he runs it in a VM for security reasons and for stability reasons. The whole purpose of him was, to make the game run on a normal system of a normal user. VMs are used as a tool here, nothing else.
@cynic55815 ай бұрын
@@StinktierchenIs that the purpose? Because all he says is “I want to play SC2000 but being released in 1993 will it even run on a Windows 11 machine?”. Maybe you saw an unedited version of the video where he said he wants to run it natively in Windows 11?
@fritzcolburn5 ай бұрын
@@cynic5581 It's literally in the first 11 seconds of the video
@Poldovico5 ай бұрын
My first thought was "betcha Wine runs it"
@stefan25645 ай бұрын
I would spend good money if you made a tutorial series on how to use each of these tools, general techniques of the trade, etc. This is a fantastic series and I’ve tried looking into this problem myself but didn’t get anywhere near what you’ve accomplished here because the tools are very intimidating
@GeorgeMixalis5 ай бұрын
Agree
@darkfoxfurre5 ай бұрын
That's a lot of effort using the nuclear option. If memory serves; Sim City 2000 uses Install Shield for its installer. Install Shield was 16 bit; because then you could use the same installer to package your files for 16-bit or 32-bit applications. It'd work for everything from Windows 3.1 to XP. All you'd need to do is use a 32bit or 64bit replacement for the 16bit Install Shield to get the game installed properly. In Windows 10, I don't need any compatibility settings enabled for it to run perfectly.
@ReneManqueros5 ай бұрын
what about installing the game on a vm with win95 then exporting the generated reg keys as part of a new install process
@tnmrvc5 ай бұрын
This, and there's many ways to do it, I guess the point of this video was to show how one would go about taking a shot at getting something like this to run, and explaining how it works and what tactic to use basically, which I'm not against, but I get the same feeling of ''omg why not just run this on an period correct PC''
@ReneManqueros5 ай бұрын
@@tnmrvc his method is how we used to crack software years ago, look for the dialog that triggers the key entry window and backtrack from that, then change the jumps to insteaf take you to the full version
@PatrykWolowiec5 ай бұрын
@@ReneManqueros Yeah as amazing as this all is... I think there was a far easier way to figure this out. Use a Win95 VM, dump the registry, install the game, play it once, dump the registry again, diff it with the previous version. Copy the installed files and registry entries into Win11. Done. Or at least that's how I would have gone about it.
@siymann5 ай бұрын
@@PatrykWolowiecyes this was a really long winded way to work out something that could easily be fixed using tools like psexec etc
@seritools5 ай бұрын
Correction: 16bit windows execuables are supported (ish) in any 32-but Windows version, but not 64-bit. This includes Windows 10 32bit. Only the OS/2 subset support concluded with Win2000.
@thetinpin5 ай бұрын
WineVDM adds a transparent layer of Win16 compatibility to 64-bit Windows. Old apps function very well with it, including Simcity 2000! Apps run like they are natively supported.
@plusplusplus98375 ай бұрын
This was my favorite of your low level videos so far, which is a high bar to clear because I thought the others were great too. Thanks for explaining all the Win32 Syscalls - basically all my programming has done on posix compliant OSes so I would be completely lost without you explaining all of them.
@chernobyl1695 ай бұрын
From 6:16, I immediately knew the culprit was the Windows File Dialog system. It was obvious; when you save or load, what do you EXPECT to see, as a user? A file dialog! In this case it seems like there is another missing registry entry to specify the default save game folder, which was silently failing and causing the file dialog callback to be undefined. Note that your dialog box opened in the default "Desktop" folder, which didn't exist in Windows 95.
@michaelchristianrusso5 ай бұрын
He should have been able to see a simple registry query using Procmon, shouldn't he? I imagine that would have been the path of least resistance and the first to check. If you read the getopenfilename function arguments that he fixes at the end, it seems that the game originally used a hook to customize the save/load explorer interface; I'm guessing that this might not have been compatible with Windows 11 anymore, so by nulling out that hook, it seems to have worked.
@TatsuZZmage5 ай бұрын
desktop existed in 95 its before 95 that it didn't exist.
@viell885 ай бұрын
@@TatsuZZmage True. But there were third party shells prior to 95, such as Norton Desktop for Windows 3.x which provided a Macintosh-like desktop.
@Smogne5 ай бұрын
I knew 'cause I had Sim City 2000 windows edition as a kid. Ah, good memories... those disks are long gone though. Last time I dabbled in the win32 GUI lib was back in 2012 in college (wrote a simple single window application in C as a test and I actually remember using the hook variable. I think you can use it to attach the dialog to a specific window, blocking it until the dialog is closed); was nice realizing that Sim City 2k uses it on most of it's functionalities.
@navsingh94065 ай бұрын
I think he was referring to the location of the desktop folder. If memory serves me right in Win98 it was located in C:\Windows\Desktop (or maybe in system32, its been a while lol) and for Win2k and above it was moved into C:\Users\xxx\Desktop @@TatsuZZmage
@arashikou66615 ай бұрын
Thank you for this! I really appreciate your patient explanation style and the way you take us through your thought process. Including the paths you explored that _didn’t_ work is equally educational as the successes and really important for showing people how to persevere.
@SaraMorgan-ym6ue5 ай бұрын
if your want to play sim city 2000 your in for a computer science lesson kid🤣🤣🤣🤣🤣
@vidal97475 ай бұрын
If something can't be bought it should be public domain. No matter their 30 years of rights. It should be immediately be voided if they do not sell something they started selling for over a year.
@borisyeltsin66065 ай бұрын
Bum fights
@Cinkodacs5 ай бұрын
Thank Disney for that. If they did not lobby for century long copyright laws we might just have had the chance to have a slightly more sane system. Or not, most people will not care about literally anything until it actually hurts them, and even will not do anything about it.
@ZappyOh5 ай бұрын
@@I_DENOUNCE_THE_TALMUD ???
@Mostlyharmless19855 ай бұрын
Maxis literally doesn’t exist except as a zombie hidden in a closet somewhere in EA.
@thelakeman25385 ай бұрын
If only IP laws were sane, reasonable, and based on consistent logic and were not tools for monopolization or lawyers' employment.
@xdan0x5 ай бұрын
For some reason I felt like subscribing to your channel at around the 4 minuet mark... 🤔
@43ann5 ай бұрын
another BANGER. So much can be learned with these videos.
@bzuidgeest5 ай бұрын
So great, that he could just have used the 32 installer installshield executable for setup and get it running in one go. It was cringe worthy. As a tool demo it's nice, but the only way to get it running? No way. Fixing the setup would have worked using a vm w95 would have worked. Using a Linux vm with wine would have worked.
@Anthestudios5 ай бұрын
I must confess, the final part with the file handler went a bit over my head, but this is a great learning resource for how to look 'inside' programs. Thank you!
@bigedwerd5 ай бұрын
Would it have been easier to debug along with a Windows 98 VM? The tools would be older but I assume the game would have ran properly and hit those variables you were looking for. This was awesome to watch. I wish I had this talent.
@bryede4 ай бұрын
That was kind of my thinking. Let the game install somewhere that it works and do a before/after compare of the registry and the install directories.
@Roxor1285 ай бұрын
After watching this, I tested it out in WINE. Both the Windows 3.1 and Windows 95 versions install fine, though they complain about a lack of 256-colour support, and the music doesn't work, but they otherwise work. DOS version in DOSBox works perfectly.
@leucome5 ай бұрын
I also did try on wine right after the video it worked fine on first try. For the music if I remember correctly it was was CD audio track or midi. In that case we may need a soft-synth installed. The one I got only had games files no audio but there are midi files.
@pierssegal59105 ай бұрын
AFAIK WINE/Proton is generally far more reliable for old Windows games than modern Windows is.
@GSBarlev5 ай бұрын
The problem for me with WINE is that WINE through Wayland doesn't support window decorations, meaning the various menus are not usable. I believe I ended up just settling for the DOS version, but the only way to run SimTower that I've found is through pcem (or one of its forks).
@Smogne5 ай бұрын
@@pierssegal5910 Gotta agree; to run old windows games on Linux i just went straight to Proton and manage to run all of the ones I wanted. Pretty good software Valve is making (very close to a "plug in play" solution for game compatibility).
@leucome5 ай бұрын
@@GSBarlev Wine windows decoration work fine with Plasma Wayland. I did not knew there was wayland desktop without decoration for wine. It is such a weird choice from whomever developed that.
@NewAgeSoldier5 ай бұрын
There is an option of running DOSBox with Windows 3.1 or 95 so you can mount a CD virtually for 16-bit support. I've done this for several of my older computer games.
@HansLemurson5 ай бұрын
I've run games running Win 3.1 in DOSbox, but I've never done Win 95 in DOSbox. Any special tricks or caveats for getting Win95 working in DOSbox?
@tuckster275 ай бұрын
dosbox-x has more support for windows 95 than other forks@@HansLemurson
@darmoktalk5 ай бұрын
Yes, this had me questioning the whole framing of this video as is this was some kind of problem that required such an overly complicated solution. There just shouldn't be a reasonable expectation for it to run natively OOTB nowadays, and the whole "playing dumb" aspect of the video confused me.
@brostenen5 ай бұрын
I have gotten my self periode correct hardware. It is the best way to do it.
@baipizhu4 ай бұрын
You can also install 32-bit windows up through Windows 10. I just tried this on Windows 8.1 32-bit running in hyper-v. It prompts for NTVDM, which I guess is also for 16-bit software support. The file system support is still broken though. You would need to patch it if you wanted to save or load a file. African swallow is also "broken" as it is unlimited speed and years go by in seconds.
@BrunoValads5 ай бұрын
Your work here is extremely important for game preservation
@udirt5 ай бұрын
how nice, i feel like in 1996, hanging out with the CS students at the computer store :-) and it's so relaxing to listen to you. i know how all the "looking at this, we can see..." included some searching, but it's so calming to always just hear the successful end result. i'll keep that in mind for my own work!
@jmckinney00405 ай бұрын
I freaking love this content! It's getting old games to work and showing your detective process of how to debug through getting them to work. Can I get any better! Thank you so much keep it coming! Please!
@azmrblack5 ай бұрын
People like you are absolutely vital to the community - you invest your time to make titles we once loved playable again, and you get no compensation except for the joy of making it work. Being abe to step thru ASM in a decompiler & debugger is a very keen skill. From COUNTLESS people, THANK YOU, from the bottom of our hearts!
@chesthairascot37435 ай бұрын
Dude, that was a super intuitive explanation. Always down to see old game patching videos.
@HinkHall5 ай бұрын
I love these videos you make they're to the point and give SO much info
@Mackinstyle5 ай бұрын
A heads up: Windows has never made it easier to have CDs without having a CD drive. In a lot of cases, it has first-class support for simply mounting the disk image (eg. .iso) directly. In some really picky cases, you can use Daemon Tools that entirely emulates there being a CD drive with a CD in it.
@ScottWinterringer5 ай бұрын
yup. this was one of the first easy hurdles they just ignored.
@thebeckofkevin5 ай бұрын
I think when he says 'track down an original cd version' he is saying an actual physical cd. If you're holding a disk in your hand, no amount of Daemon Tools is going to help. That said, I'm certain its easier to find an iso than everything he did here. I'd actually say finding a physical disk and buying a cd drive is easier than working through this process.
@ScottWinterringer5 ай бұрын
@@thebeckofkevin I agree
@MrEdrftgyuji5 ай бұрын
Or you could just buy a USB CD drive for next to nothing.
@WackoMcGoose5 ай бұрын
@@thebeckofkevin I crashed into this problem when trying to get _3D Ultra Lionel TrainTown_ working in DxWnd with in-game music, which requires the CD in the drive (and I have both a CD drive and an original game disc, so no issues on that front). The problem is, DxWnd didn't want to play nice with forwarding the CD as-is, and because the game music is stored on disc in _multi-track audio CD format_ (.bin/.cue), it was impossible to rip to ISO. Eventually I said "fsck it" and played as-is, no DxWnd, just accepting the janky 4:3-to-16:9 fullscreen stretch (which, to Win10's credit, the game worked nearly flawlessly with no modification to the executable)... and then I said "sudo fsck it" and _edited the music in in post_ for the playthrough on my other channel.
@PluMGMK4 ай бұрын
Very nice, I hadn't realized that the DOS release on GOG was an inferior version and that there was a native Windows one… One thing, you said the NE format was only supported until Win2000. I think it was actually supported on all 32-bit Windows versions, up to Windows 10. It's when you go 64-bit that you have a problem, because Microsoft didn't want the bother of supporting 16-bit code on a 64-bit kernel (even though it's technically possible and Linux does it with a few kludges).
@Engy_Wuck4 ай бұрын
there's no way in the hardware to run 16bit code once you entered 64bit. This was an intentional decision by AMD when depeloping amd64/x64. So you'd have to leave the 64bit world, go back to i386, to be able to execute 16bit code. Or alternatively implement some sort of VM for the 16bit code.
@PluMGMK4 ай бұрын
@@Engy_Wuck I'm afraid you're incorrect. There is no problem setting up a 16-bit code segment to run *Protected Mode* 16-bit code, such as Win16 applications like the setup program in this video. This is what Wine does, and I've done it myself in a little Linux program I was messing around with a few years ago. What you cannot run is 16-bit *Real Mode* code, such as DOS applications, which try to do segment arithmetic. These are provided for in Virtual-8086 mode, which like you said was deliberately removed by AMD from the 64-bit architecture.
@RokasSondaras5 ай бұрын
I been following for 2 about two months, but you keep bringing more to the table. :) great video.
@luigideff5 ай бұрын
This is so cool to watch and learn! I hope you continue doing this kind of in depth analysis and fixing of games/programs! Cheers
@Phdyaux5 ай бұрын
Great vid. I have a feeling that Raymond Chen mentioned this bug in an old blog. As he worked on the Win 95 compatibility team he fixed up little things like this. I bet there was a patch in win 95 that fixed it.
@Eyetrauma5 ай бұрын
I believe that bug was for the original SimCity (non-2000), and dealt with windows 3.1’s memory management.
@sonarun5 ай бұрын
I am an amateur programmer at best, but damn I love this content so much. Something about it just hits all the right dopamine receptors.
@stickguy91095 ай бұрын
Same ahah
@ActionGamerAaron5 ай бұрын
Only depressing for me knowing that so many classic games are having to be worked so hard to play when 99% of people in this same situation would give up and not get to experience the game.
@spaceghostmiid5 ай бұрын
i’m not even a programmer, just a compsci enthusiast, i love this style of content.
@nojuanatall32814 ай бұрын
This is where console ports and emulators can be the solution. That is if the game was ever ported to a console. The state of PC gaming can be both amazing and horrible depending on what you want to play.
@LundisQuie5 ай бұрын
I just watch the whole video and I loved it! Expecially since SimCity 2000 was something both me and my step-dad used to play. I would suggest though adding a soft non-copyrighted track to videos like this. It helps a lot in elevating the content and makes it more pleasant to watch, expecially since everything else is fantastic
@jnonymous4 ай бұрын
Thanks for showing and explaining the reverse engineering process, including the tools you use, and the conclusions you make along the way. I've always been curious about it, and witnessing your process and what you're able to do with the tools, it's enlightening and inspiring for this C++ game programmer. I look forward to learning more on your channel. I've subscribed. Thank you!
@TheRealJoelKolb5 ай бұрын
Very interesting. But did you ever consider spinning up a Windows 2000 VM to install and run the game and capturing data from there? I feel like that would've taken a lot of struggle and guesswork out of the process of getting it working in Windows 11.
@DE-GEN-ART5 ай бұрын
thats what i said hes running VM's, just play the game on an older version of windows.
@hairyballbastic89435 ай бұрын
he wouldn't make such an epic video though 😢
@gregorymorse84235 ай бұрын
Decompiling the installer script is just as good
@GGRS5 ай бұрын
These videos are very cool, thanks for all the time and effort these must take dude :)
@JoeTheis5 ай бұрын
This is an insane level of detailed spelunking, but also presented in an entertaining and informative way. Bravo!
@SaraMorgan-ym6ue5 ай бұрын
yeah it would be simple to just run a virtual machine with windows 98
@RobertAdairWorkshop4 ай бұрын
I still have Simcity 2000 on an old Acer Acerpower DX4 that I bought new way back in 1996 but I haven't played it in years. Maybe 20 years. Oof. Your video brought back some good memories!
@HansLemurson5 ай бұрын
Last year I was playing Sim City 2000 a bunch, and got a Windows version mostly working (animations would often freeze, though). I forget the whole process. But I found, interestingly enough, that the DOS version "felt" a little better to play. Something about the UI in the DOS version felt better to me even though I'd never played that as a kid.
@EspyMelly5 ай бұрын
Preservation of old games is becoming a harder and harder issue as we move forward.
@PsRohrbaugh5 ай бұрын
Preservation of everything is becoming harder. You can go to the library and get a newspaper from 1800. But a KZfaq video from 2 years ago? Good luck.
@Glitched_Starman5 ай бұрын
This is really awesome! I look forward to when I can come back to this and understand everything that's been explained 👍
@alberts60965 ай бұрын
best videos on youtube for me currently. you do amazing job.
@liveyourdreammedia5 ай бұрын
nice video. Old games I personally like to run on Linux. much higher success rate compared to try and make windows listen to what the user wants xD but the fact you fix it yourself is just awesome
@Royaleah5 ай бұрын
Brings me back to trying to play the DOS version, but I couldn't because I couldn't get enough free low ram with the cd driver installed. It ran great in OS/2 as I could give it more low ram than DOS could in total.
@robertoso87965 ай бұрын
oh man, you're gonna get me in so much trouble when i start making changes i shouldn't make. i genuinely appreciate it
@JoeCole_social3 ай бұрын
So I just discovered this channel. And now my day is wrecked as I am hooked. Thanks for your work! I’m a hobbyist low level coder and this type of hacking is so darn educational.
@nathanbaggs3 ай бұрын
Awesome! Thank you!
@outervale5 ай бұрын
My god, this video is excellent. The way you break down your thought process and document it is wonderful for someone looking to learn ethical hacking and modding. Thank you.
@Peter_Morris5 ай бұрын
Wow this video is WAAAY different than what I thought it would be. But wow, it is so much better than I thought, as well. Very interesting and informative.
@nathanbaggs5 ай бұрын
Glad you liked it!
@user-mc7ez6lm4x5 ай бұрын
Fantastic. Nostalgic. I've never actually wrote something complete for win32 and mfc, but I remember those save and load dialogues and how we had to call them.
@MrTheog19895 ай бұрын
This channel is awesome and I can't wait to see more videos like this!
@xero1105 ай бұрын
I love this kind of stuff. In the last few years so many old games are now playable in modern OS's. It sure would be nice if an Internet Archive download of this patched version became available.
@forbiddenera5 ай бұрын
"I decized to spin up a Win11 vm to play the game" .. because you couldn't just spin up a Win95 vm instead?
@lostguy3629 күн бұрын
Exactly my reaction
@JucheGang4 ай бұрын
Awesome video! Detailed, engaging, and concise!
@AmodeusR5 ай бұрын
I came here thinking I would see some classic old game gameplay and ended up receiving a reverse engineer free workshop xD
@Luxalpa5 ай бұрын
I didn't watch the entire video but here's two tips in case you didn't mention them: DosBox for old 16 bit executables (I played SimCity Enhanced that way, works perfectly!) and also Sysinternals ProcMon for finding out the reason for these issues. It tells you all the files and registry keys that the process tries to contact (also if those were successful or failed) and so you usually know pretty quickly (without any IDAing) which files and registry keys you are missing.
@executor324 ай бұрын
WineVDM (AKA OTVDM) is a better solution for 16-bit Windows executables, as it lets you run them natively without needing to set up DOSBox and Windows 3.1. With WineVDM I was able to install SC2K just fine using its installer from the CD, but I still ran into the save/load crash as that's a separate issue.
@sujimayne5 ай бұрын
Your videos are so well done, I love it.
@tcr74 ай бұрын
Wow. I haven't even thought about SimCity 2000 in probably 20 years. I studied some rudimentary computer programming when I was in high school (people were still playing SimCity 2000 back then), so I knew just enough to be impressed by your skills and to understand how little I know. This was very impressive. I felt as though I was watching a master performing their craft. Thanks for the memories of both programming and SimCity 2000!
@GeomancerHT5 ай бұрын
In modern windows computers, at least on windows 10, if you double click a cd/dvd image, it will automatically load it on a virtual drive.
@puskasis5 ай бұрын
"why is it so hard to play old games?" because it's against the interest of video game and console companies that you can play old titles. if they let you do that (or not doing anything against it), you gonna spend less time with new titles and will buy less new games, and they don't like that idea. so they even intentionally try to eradicate those options, like suing emulator creators. i actually grateful for the PC platform, as (for now) this is the only platform when they can't tell you how you use it. edit: by the way, great video, i learned a lot
@KopperNeoman5 ай бұрын
And you can't even lie that it's about profits - reselling old stuff like this is easy money. It's all about THE MESSAGE.
@drelephanttube2 ай бұрын
I fn love your videos dude, thanks for sharing the knowledge!
@kylehc154 ай бұрын
im glad you are working on getting it to work on modern system we need more people like you doing this kind of thing
@slippydouglas5 ай бұрын
Alternatively, of you're a Mac person who wants to play the old Mac version, that was 3 CPU architectures ago (before Apple Silicon 1. Intel, 2. PowerPC, and 3. Motorola 68K), so you'd just emulate System 7 on something like Basilisk II. Because modern computers are fast. Also, I don't understand why he's trying to debug the binary to figure out how to install the game. Just install in a Windows 2000 VM, take a snapshot of the filesystem before and after, use some CLI tool to spit out the filesystem and diff the before & after (I'm a Mac/Linux person, not terribly proficient in Windows command line, but Win 2000 was based on NT so there's little reason why you couldn't use fairly modern CLI tools), then copy all files it added to the newer Win 11 VM. Edit: I guess you'd have to dump the registry to text file too, and diff that. There must be tools for that.
@TradieTrev5 ай бұрын
That was my sediment also, what's the old saying though? There's many ways to skin the cat lol
@leucome5 ай бұрын
Just to see what would happen I installed it on Linux/Wine after watching this video. It installed normally with the setup.exe then the it ran fine on first try. Though I am not that surprised Wine is usually more compatible with legacy games.
@Bukkarooo5 ай бұрын
Very interesting to see what it took to get it cooperative with modern Windows 11. The save/load aspect especially tricky, as the rest seemed like things that may have been resolved if the SETUP program was actually able to do its thing. I know I would have just spun up a Win95 VM and run the setup and game in there, but it was actually really cool to see the steps you took to identify and fix the different errors. It took a long time to identify things, but it's interesting to see how "few" changes need to be made to essentially port it to run natively.
@kozad865 ай бұрын
I probably have weeks of my teen years wrapped up in SC2K - it was a blast, but I def like the newer stuff with all the detail I wish could have been possible in that older game (Cites: Skylines is a great example).
@Mtaalas5 ай бұрын
Why the hell hasn't GOG hired you already... damn man! I just hope you could run a Patreon and use that to take some time to create real patches for these old software out there, so that people could get them running somewhat easily if they still own them. You'd do a huge service to archiving of these games and keeping them running!
@sonarun5 ай бұрын
Serioulsy, they should hire him, post the code, and he can get all of the subs and money just from creating this amazing content.
@cho4d5 ай бұрын
@@sonarun something tells me he makes this content for fun and they couldn't afford him
@LeonBlade5 ай бұрын
People say this type of comment a lot of things. This guy's job isn't to patch games, and I doubt he'd want to do it for a living.
@Bozebo5 ай бұрын
Potential legal issues. Just having this vid up instead means someone else might do that legwork open source.
@Mtaalas5 ай бұрын
@@Bozebo you can always create a piece of software that patches other piece of software and you don't need a license to distribute that patch. You can't obviously distribute the software you don't own license for, but patches and patchers are completely fair game.
@scratchos98165 ай бұрын
funny how it works good in Wine 9.0-rc1 on Linux. Just have to play the game in the virtual desktop that wine has or it won't work and click on the task bar to get the window bar up and resize it to get the window the way you want it. The only problem is the window that has all the controls will not display on top of the city window so you can't have the city window fullscreen. this is a cool way to play it on an modern OS. But i'd say the best way if you have the hardware. Is to use 86box have it emu an 3dfx 3000 and install win98 and can run it in 1080p as long as you have the 3dfx 3000 drivers installed and play a lot more old school games like the 1st need for speed. BWT grate video
@smokeysky5 ай бұрын
wow i learned so much, plus i had a good laugh XD subscribed
@porsche911c5 ай бұрын
I loved watching this! It definitely brought up childhood memories of spending HOURS trying to get a new game to run on our Windows ME system...
@Chrs20215 ай бұрын
It would have been easier to load a windows 98 vm install the game and extract the registry keys.
@Book_Bird5 ай бұрын
I’m so impressed by how you pull in expertise at every turn in this video. If you don’t mind sharing, I’d love to know what kinds (categories may be the better word) of development know-how you drew from, and how you built those skills in the first place
@StaticFreq4 ай бұрын
Truly awesome. Well done, sir!
@sapo-san80545 ай бұрын
bro I'm not interested on playing SimCity 2000 BUT I admire your dedication and I aspire to have as much technical knowledge as you the day I ever go back to some old game to patch it and play it by myself. Looking at you, road rash 👀 You got my sub, keep up the interesting videos coming :)
@jvgarrote5 ай бұрын
First? Magnificent video, mate
@genemachine025 ай бұрын
Thank you for patching the game! I hope gog is able to release this new and improved version you’ve created. Would be fun to jump back into the game after not having played it in 30 years
@DoctorDalek5 ай бұрын
They never will. GOG is fairly well known for releasing a game with broken compatibility and then never releasing it. I also assume that selling the Windows 95 version also requires a change in licensing with the rights holder.
@bzuidgeest5 ай бұрын
@@DoctorDalekthey don't need to, the gog version is not missing a single feature other than CD audio tracks. The game, dos or windows is exactly the same. You can also just update the installshield installer and install it properly or look at its install script to see every needed key. Maybe he did it as an example of tool use, but he used the most convoluted way possible to do this. Read the comments, you can get it working without modifying a single byte.
@boltonky5 ай бұрын
As an IT person i love the amount of technical effort you have gone too :) reminds me of being younger when i used to program stuff I would of personally run it in a virtual machine but where is the fun in that.
@VladislavRumsh5 ай бұрын
Just got this recommended, subbing right away
@vaendryl5 ай бұрын
tldw: 16bit installers are massive pain in the butt to anyone installing old software. honestly, I'm surprised nobody created a tool for dealing with these. it's a rather well known issue with a lot of old software.
@CakeLancelot5 ай бұрын
winevdm is probably the tool you're wanting - runs most 16bit Windows executables fine, doesn't even have to be installers necessarily.
@Ultimady5 ай бұрын
There is! On PC Gaming Wiki there's a tool called " InstallShield 3 32-bit Generic Installer" that lets Sim City 2000 install as normal. There's also a patch for the save/load crash bug
@davidrmcmahon5 ай бұрын
@@CakeLancelot Just used that to install SC2K, but had the load/save bug. look like I need to save this video for another day!
@vaendryl5 ай бұрын
@@CakeLancelot oh that's nice!
@scratchos98165 ай бұрын
@@davidrmcmahon the save/load works fine on Wine 9.0-rc1 on Linux maybe wine can get a windows port lol
@davidew985 ай бұрын
Since the installer is a 16 installer and the game is a 32 bit executable you should be able to just run the installer through NTVDM. This will allow the program to be installed and you’ll be able to run the program as a 32 a bit executable.
@Daniel15au5 ай бұрын
You'll have to use the 32-bit version of Windows 10 or older, since Windows 11 only comes as a 64-bit version and NTVDM was never rewritten to run on 64-bit systems. It's possible to do, but Microsoft didn't feel a need to do it. IIRC either Windows 7 or Windows 10 made NTVDM an optional component so you'll also have to manually install it.
@executor324 ай бұрын
@@Daniel15au I believe he actually meant OTVDM, which is a port of WineVDM, Wine's NTVDM equivalent, to 64-bit versions of Windows. I tested it myself and the game's installer does indeed run just fine via OTVDM, though obviously the game still has the save/load crash bug.
@TheKrensada5 ай бұрын
Just found your channel. What a great skill set you have.
@Gus_Diaz_834 ай бұрын
I don't know anything about coding or programming (other than old school HTML coding), but I really appreciate your patience here! It's thanks to people like you that I've managed to play classic nostalgic games on Steam! Shout-out to you and every other programmer that works hard to bring old games to full functionality on newer operating systems, so that many of us can all relive older chapters of our lives!
@ShapeyFiend5 ай бұрын
This is a really interesting video. You expect it to be an "OMG game is broken!!1" clickbait but seeing how people get this stuff running properly is very interesting. There are other games like Total Annihilation people have been exe hacking for years and have only really gotten running perfectly recently after lots of community collaboration. In other cases like Caesar 3 they've rebuilt an entirely new engine. It's amazing how enthusiasts keep this stuff alive and even add in lots of functionality that make it look and play better than it even did in the first place on the correct hardware.
@dracenmarx5 ай бұрын
Why didn't you install the game on a Windows 95 VM and exported the registry key to a .reg file? That would have been much easier than the Reverse Engineering
@sloth4urluv5 ай бұрын
Lol, was wondering the same thing. Glad he showed how to view the registry calls though.
@LeonBlade5 ай бұрын
It's mainly just a video to explain how to solve a problem.
@kuromiLayfe5 ай бұрын
and that is why i love the high seas … tons of original versions tend to already have tons of fixes in them to work on all windows versions and majority of the time they are applied by the game launcher itself as it detects what patch to run on what version
@Nakagolas5 ай бұрын
The fact that I know exactly how to do exactly this and I still feel like I know nothing and want to know how to do this makes your videos pretty magical. You seriously make this look a lot more appealing and interesting than it is to do in reality, but the payoff is unlike anything. I'd love to see more, but I really don't want to know a human being does this too often to themselves.
@sanderbos42435 ай бұрын
Love these reverse engineering videos of yours!
@llwellyncuhfwarthen5 ай бұрын
Well I have handled the registry issues multiple times, and I would wager your save/load issue is an associated registry line or registry limiter (May have an issue with the file folder/location pointers being in old dos/win 95 not having extended file name allowances) I don't recall if Sim City had a specific file location/controlled installer and whether you were allowed to cycle/choose where to install and load etc from. It has been a LONG time since I played it. Oh and remember old computer systems had set and default file pathing, and if you failed to set your pathing correct in the autoexec or config file a lot of games would not run.
@TheRobMozza4 ай бұрын
You sir, are a very clerver man, well done! Although ir would of been lovely at the end of your video seeing it load up
@andrewmcallister77815 ай бұрын
That was an epic explaination of how you managed to get it working! Great content!
@PlayingItWrong5 ай бұрын
Nobody tell him about proton, it'll break his heart.
@user-sl6gn1ss8p5 ай бұрын
I'm no expert but maybe don't spin up a Windows *11* VM for a Windows 95 game? : p Seriously though, would it be "controversial" to put this up somewhere as a patch?
@kennethcusmano5 ай бұрын
That was really good work. Kudos
@alexgayer854 ай бұрын
Brilliant! Though since you were playing with VMs anyway, I may as well have just made a Win95 VM and tried it there. 😄
@ac15cr5 ай бұрын
This was an amazing underrated video good job
@JamesStocks5 ай бұрын
Love these videos!
@gerry1980gm5 ай бұрын
It was a good challenge for me, to understand the stuff. The important part was the STDCALL convention.. Stackpointer and to count the parameters right... In the 13th DWORD ...the flags :-) Then flip some bits and voila. Great Content !!! Thank You Nathan !
@straubulous95114 ай бұрын
You just blew my mind. What I thought was going to be easy I realized you know so much more than myself.
@dylantaylor4904 ай бұрын
I still have my boxed copy of this one from my childhood. Im so happy to see it actually working on a modern system even with a patch.
@Fewnity5 ай бұрын
I want more video like that! Very cool video love it!
@dodzhtv4 ай бұрын
watching some of this old functions took me back several years
@adam-xt8te4 ай бұрын
My favourite "look how smart I am" series. If I was gog I would hire you immediately