You Can Only Play This Game By Hacking It

  Рет қаралды 332,229

Nathan Baggs

Nathan Baggs

5 ай бұрын

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
@nathanbaggs
@nathanbaggs 2 ай бұрын
Want early access to new videos and some behind the scenes content? Consider becoming a channel member kzfaq.info/love/QvW_89l7f-hCMP1pzGm4xwjoin
@ShishakliAus
@ShishakliAus Ай бұрын
Excuse me sir but, I'm having trouble finding the link to your patreon...
@lukusridley
@lukusridley 5 ай бұрын
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!
@magnusm4
@magnusm4 4 ай бұрын
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.
@Ztygs
@Ztygs 4 ай бұрын
@@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.
@jansenart0
@jansenart0 4 ай бұрын
Don't forget about talking to an inanimate rubber duck.
@cya1no
@cya1no 4 ай бұрын
Or the fact that you have to get pirated version to play an old game.
@vinesauceobscurities
@vinesauceobscurities 4 ай бұрын
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-reduce
@map-reduce 5 ай бұрын
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
@aspuzling
@aspuzling 5 ай бұрын
When you say the "Windows" version, do you mean Windows 3?
@map-reduce
@map-reduce 5 ай бұрын
@@aspuzling Yes, Windows 3, sorry. Very old habits :D
@soundspark
@soundspark 5 ай бұрын
Definitely got a lot of enjoyment out of the game back in the day.
@bstoppel1
@bstoppel1 5 ай бұрын
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.
@ciscornBIG
@ciscornBIG 5 ай бұрын
Thank you for your work. I loved sc2k win95 as a kid. It was so cozy.
@kkinfl9582
@kkinfl9582 5 ай бұрын
Have you released this patch anywhere? I’m sure many people would appreciate the work you did.
@monkeylicker638
@monkeylicker638 5 ай бұрын
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.Trivedi
@Sameer.Trivedi 5 ай бұрын
Yeah he should put this on PC gaming wiki
@nightchicken3517
@nightchicken3517 5 ай бұрын
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
@LeonBlade
@LeonBlade 5 ай бұрын
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.
@heroclix0rz
@heroclix0rz 5 ай бұрын
Don't think it would be legal. But he should hit up GOG about it.
@mme725
@mme725 5 ай бұрын
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 👍
@leviathanx0815
@leviathanx0815 5 ай бұрын
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 😅
@RandomUser2401
@RandomUser2401 5 ай бұрын
@@leviathanx0815probably would‘ve taken more time than quickly inspecting the not found key errors
@lorenkuhn3806
@lorenkuhn3806 5 ай бұрын
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.
@RandomUser2401
@RandomUser2401 5 ай бұрын
@@lorenkuhn3806 probably would‘ve taken more time than quickly inspecting the not found key errors
@RandomUser2401
@RandomUser2401 5 ай бұрын
@@rich1051414 probably would‘ve taken more time than quickly inspecting the not found key errors
@lexisnep525
@lexisnep525 5 ай бұрын
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.
@dsihacker01
@dsihacker01 5 ай бұрын
My thought was literally "If he is running a VM anyways, why not run a sim2000 only VM?"
@Stinktierchen
@Stinktierchen 5 ай бұрын
@@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.
@cynic5581
@cynic5581 5 ай бұрын
⁠@@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?
@fritzcolburn
@fritzcolburn 5 ай бұрын
@@cynic5581 It's literally in the first 11 seconds of the video
@Poldovico
@Poldovico 5 ай бұрын
My first thought was "betcha Wine runs it"
@stefan2564
@stefan2564 5 ай бұрын
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
@GeorgeMixalis
@GeorgeMixalis 5 ай бұрын
Agree
@darkfoxfurre
@darkfoxfurre 5 ай бұрын
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.
@ReneManqueros
@ReneManqueros 5 ай бұрын
what about installing the game on a vm with win95 then exporting the generated reg keys as part of a new install process
@tnmrvc
@tnmrvc 5 ай бұрын
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''
@ReneManqueros
@ReneManqueros 5 ай бұрын
@@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
@PatrykWolowiec
@PatrykWolowiec 5 ай бұрын
@@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.
@siymann
@siymann 5 ай бұрын
​@@PatrykWolowiecyes this was a really long winded way to work out something that could easily be fixed using tools like psexec etc
@seritools
@seritools 5 ай бұрын
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.
@thetinpin
@thetinpin 5 ай бұрын
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.
@plusplusplus9837
@plusplusplus9837 5 ай бұрын
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.
@chernobyl169
@chernobyl169 5 ай бұрын
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.
@michaelchristianrusso
@michaelchristianrusso 5 ай бұрын
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.
@TatsuZZmage
@TatsuZZmage 5 ай бұрын
desktop existed in 95 its before 95 that it didn't exist.
@viell88
@viell88 5 ай бұрын
​@@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.
@Smogne
@Smogne 5 ай бұрын
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.
@navsingh9406
@navsingh9406 5 ай бұрын
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
@arashikou6661
@arashikou6661 5 ай бұрын
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-ym6ue
@SaraMorgan-ym6ue 5 ай бұрын
if your want to play sim city 2000 your in for a computer science lesson kid🤣🤣🤣🤣🤣
@vidal9747
@vidal9747 5 ай бұрын
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.
@borisyeltsin6606
@borisyeltsin6606 5 ай бұрын
Bum fights
@Cinkodacs
@Cinkodacs 5 ай бұрын
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.
@ZappyOh
@ZappyOh 5 ай бұрын
@@I_DENOUNCE_THE_TALMUD ???
@Mostlyharmless1985
@Mostlyharmless1985 5 ай бұрын
Maxis literally doesn’t exist except as a zombie hidden in a closet somewhere in EA.
@thelakeman2538
@thelakeman2538 5 ай бұрын
If only IP laws were sane, reasonable, and based on consistent logic and were not tools for monopolization or lawyers' employment.
@xdan0x
@xdan0x 5 ай бұрын
For some reason I felt like subscribing to your channel at around the 4 minuet mark... 🤔
@43ann
@43ann 5 ай бұрын
another BANGER. So much can be learned with these videos.
@bzuidgeest
@bzuidgeest 5 ай бұрын
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.
@Anthestudios
@Anthestudios 5 ай бұрын
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!
@bigedwerd
@bigedwerd 5 ай бұрын
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.
@bryede
@bryede 4 ай бұрын
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.
@Roxor128
@Roxor128 5 ай бұрын
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.
@leucome
@leucome 5 ай бұрын
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.
@pierssegal5910
@pierssegal5910 5 ай бұрын
AFAIK WINE/Proton is generally far more reliable for old Windows games than modern Windows is.
@GSBarlev
@GSBarlev 5 ай бұрын
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).
@Smogne
@Smogne 5 ай бұрын
@@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).
@leucome
@leucome 5 ай бұрын
@@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.
@NewAgeSoldier
@NewAgeSoldier 5 ай бұрын
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.
@HansLemurson
@HansLemurson 5 ай бұрын
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?
@tuckster27
@tuckster27 5 ай бұрын
dosbox-x has more support for windows 95 than other forks@@HansLemurson
@darmoktalk
@darmoktalk 5 ай бұрын
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.
@brostenen
@brostenen 5 ай бұрын
I have gotten my self periode correct hardware. It is the best way to do it.
@baipizhu
@baipizhu 4 ай бұрын
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.
@BrunoValads
@BrunoValads 5 ай бұрын
Your work here is extremely important for game preservation
@udirt
@udirt 5 ай бұрын
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!
@jmckinney0040
@jmckinney0040 5 ай бұрын
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!
@azmrblack
@azmrblack 5 ай бұрын
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!
@chesthairascot3743
@chesthairascot3743 5 ай бұрын
Dude, that was a super intuitive explanation. Always down to see old game patching videos.
@HinkHall
@HinkHall 5 ай бұрын
I love these videos you make they're to the point and give SO much info
@Mackinstyle
@Mackinstyle 5 ай бұрын
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.
@ScottWinterringer
@ScottWinterringer 5 ай бұрын
yup. this was one of the first easy hurdles they just ignored.
@thebeckofkevin
@thebeckofkevin 5 ай бұрын
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.
@ScottWinterringer
@ScottWinterringer 5 ай бұрын
@@thebeckofkevin I agree
@MrEdrftgyuji
@MrEdrftgyuji 5 ай бұрын
Or you could just buy a USB CD drive for next to nothing.
@WackoMcGoose
@WackoMcGoose 5 ай бұрын
@@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.
@PluMGMK
@PluMGMK 4 ай бұрын
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_Wuck
@Engy_Wuck 4 ай бұрын
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.
@PluMGMK
@PluMGMK 4 ай бұрын
@@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.
@RokasSondaras
@RokasSondaras 5 ай бұрын
I been following for 2 about two months, but you keep bringing more to the table. :) great video.
@luigideff
@luigideff 5 ай бұрын
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
@Phdyaux
@Phdyaux 5 ай бұрын
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.
@Eyetrauma
@Eyetrauma 5 ай бұрын
I believe that bug was for the original SimCity (non-2000), and dealt with windows 3.1’s memory management.
@sonarun
@sonarun 5 ай бұрын
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.
@stickguy9109
@stickguy9109 5 ай бұрын
Same ahah
@ActionGamerAaron
@ActionGamerAaron 5 ай бұрын
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.
@spaceghostmiid
@spaceghostmiid 5 ай бұрын
i’m not even a programmer, just a compsci enthusiast, i love this style of content.
@nojuanatall3281
@nojuanatall3281 4 ай бұрын
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.
@LundisQuie
@LundisQuie 5 ай бұрын
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
@jnonymous
@jnonymous 4 ай бұрын
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!
@TheRealJoelKolb
@TheRealJoelKolb 5 ай бұрын
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-ART
@DE-GEN-ART 5 ай бұрын
thats what i said hes running VM's, just play the game on an older version of windows.
@hairyballbastic8943
@hairyballbastic8943 5 ай бұрын
he wouldn't make such an epic video though 😢
@gregorymorse8423
@gregorymorse8423 5 ай бұрын
Decompiling the installer script is just as good
@GGRS
@GGRS 5 ай бұрын
These videos are very cool, thanks for all the time and effort these must take dude :)
@JoeTheis
@JoeTheis 5 ай бұрын
This is an insane level of detailed spelunking, but also presented in an entertaining and informative way. Bravo!
@SaraMorgan-ym6ue
@SaraMorgan-ym6ue 5 ай бұрын
yeah it would be simple to just run a virtual machine with windows 98
@RobertAdairWorkshop
@RobertAdairWorkshop 4 ай бұрын
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!
@HansLemurson
@HansLemurson 5 ай бұрын
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.
@EspyMelly
@EspyMelly 5 ай бұрын
Preservation of old games is becoming a harder and harder issue as we move forward.
@PsRohrbaugh
@PsRohrbaugh 5 ай бұрын
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_Starman
@Glitched_Starman 5 ай бұрын
This is really awesome! I look forward to when I can come back to this and understand everything that's been explained 👍
@alberts6096
@alberts6096 5 ай бұрын
best videos on youtube for me currently. you do amazing job.
@liveyourdreammedia
@liveyourdreammedia 5 ай бұрын
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
@Royaleah
@Royaleah 5 ай бұрын
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.
@robertoso8796
@robertoso8796 5 ай бұрын
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_social
@JoeCole_social 3 ай бұрын
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.
@nathanbaggs
@nathanbaggs 3 ай бұрын
Awesome! Thank you!
@outervale
@outervale 5 ай бұрын
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_Morris
@Peter_Morris 5 ай бұрын
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.
@nathanbaggs
@nathanbaggs 5 ай бұрын
Glad you liked it!
@user-mc7ez6lm4x
@user-mc7ez6lm4x 5 ай бұрын
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.
@MrTheog1989
@MrTheog1989 5 ай бұрын
This channel is awesome and I can't wait to see more videos like this!
@xero110
@xero110 5 ай бұрын
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.
@forbiddenera
@forbiddenera 5 ай бұрын
"I decized to spin up a Win11 vm to play the game" .. because you couldn't just spin up a Win95 vm instead?
@lostguy362
@lostguy362 9 күн бұрын
Exactly my reaction
@JucheGang
@JucheGang 4 ай бұрын
Awesome video! Detailed, engaging, and concise!
@AmodeusR
@AmodeusR 5 ай бұрын
I came here thinking I would see some classic old game gameplay and ended up receiving a reverse engineer free workshop xD
@Luxalpa
@Luxalpa 5 ай бұрын
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.
@executor32
@executor32 4 ай бұрын
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.
@sujimayne
@sujimayne 5 ай бұрын
Your videos are so well done, I love it.
@tcr7
@tcr7 4 ай бұрын
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!
@GeomancerHT
@GeomancerHT 5 ай бұрын
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.
@puskasis
@puskasis 5 ай бұрын
"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
@KopperNeoman
@KopperNeoman 5 ай бұрын
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.
@drelephanttube
@drelephanttube 2 ай бұрын
I fn love your videos dude, thanks for sharing the knowledge!
@kylehc15
@kylehc15 4 ай бұрын
im glad you are working on getting it to work on modern system we need more people like you doing this kind of thing
@slippydouglas
@slippydouglas 5 ай бұрын
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.
@TradieTrev
@TradieTrev 5 ай бұрын
That was my sediment also, what's the old saying though? There's many ways to skin the cat lol
@leucome
@leucome 5 ай бұрын
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.
@Bukkarooo
@Bukkarooo 5 ай бұрын
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.
@kozad86
@kozad86 5 ай бұрын
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).
@Mtaalas
@Mtaalas 5 ай бұрын
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!
@sonarun
@sonarun 5 ай бұрын
Serioulsy, they should hire him, post the code, and he can get all of the subs and money just from creating this amazing content.
@cho4d
@cho4d 5 ай бұрын
@@sonarun something tells me he makes this content for fun and they couldn't afford him
@LeonBlade
@LeonBlade 5 ай бұрын
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.
@Bozebo
@Bozebo 5 ай бұрын
Potential legal issues. Just having this vid up instead means someone else might do that legwork open source.
@Mtaalas
@Mtaalas 5 ай бұрын
@@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.
@scratchos9816
@scratchos9816 5 ай бұрын
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
@smokeysky
@smokeysky 5 ай бұрын
wow i learned so much, plus i had a good laugh XD subscribed
@porsche911c
@porsche911c 5 ай бұрын
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...
@Chrs2021
@Chrs2021 5 ай бұрын
It would have been easier to load a windows 98 vm install the game and extract the registry keys.
@Book_Bird
@Book_Bird 5 ай бұрын
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
@StaticFreq
@StaticFreq 4 ай бұрын
Truly awesome. Well done, sir!
@sapo-san8054
@sapo-san8054 5 ай бұрын
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 :)
@jvgarrote
@jvgarrote 5 ай бұрын
First? Magnificent video, mate
@genemachine02
@genemachine02 5 ай бұрын
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
@DoctorDalek
@DoctorDalek 5 ай бұрын
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.
@bzuidgeest
@bzuidgeest 5 ай бұрын
​@@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.
@boltonky
@boltonky 5 ай бұрын
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.
@VladislavRumsh
@VladislavRumsh 5 ай бұрын
Just got this recommended, subbing right away
@vaendryl
@vaendryl 5 ай бұрын
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.
@CakeLancelot
@CakeLancelot 5 ай бұрын
winevdm is probably the tool you're wanting - runs most 16bit Windows executables fine, doesn't even have to be installers necessarily.
@Ultimady
@Ultimady 5 ай бұрын
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
@davidrmcmahon
@davidrmcmahon 5 ай бұрын
@@CakeLancelot Just used that to install SC2K, but had the load/save bug. look like I need to save this video for another day!
@vaendryl
@vaendryl 5 ай бұрын
@@CakeLancelot oh that's nice!
@scratchos9816
@scratchos9816 5 ай бұрын
@@davidrmcmahon the save/load works fine on Wine 9.0-rc1 on Linux maybe wine can get a windows port lol
@davidew98
@davidew98 5 ай бұрын
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.
@Daniel15au
@Daniel15au 5 ай бұрын
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.
@executor32
@executor32 4 ай бұрын
@@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.
@TheKrensada
@TheKrensada 5 ай бұрын
Just found your channel. What a great skill set you have.
@Gus_Diaz_83
@Gus_Diaz_83 4 ай бұрын
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!
@ShapeyFiend
@ShapeyFiend 5 ай бұрын
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.
@dracenmarx
@dracenmarx 5 ай бұрын
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
@sloth4urluv
@sloth4urluv 5 ай бұрын
Lol, was wondering the same thing. Glad he showed how to view the registry calls though.
@LeonBlade
@LeonBlade 5 ай бұрын
It's mainly just a video to explain how to solve a problem.
@kuromiLayfe
@kuromiLayfe 5 ай бұрын
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
@Nakagolas
@Nakagolas 5 ай бұрын
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.
@sanderbos4243
@sanderbos4243 5 ай бұрын
Love these reverse engineering videos of yours!
@llwellyncuhfwarthen
@llwellyncuhfwarthen 5 ай бұрын
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.
@TheRobMozza
@TheRobMozza 4 ай бұрын
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
@andrewmcallister7781
@andrewmcallister7781 5 ай бұрын
That was an epic explaination of how you managed to get it working! Great content!
@PlayingItWrong
@PlayingItWrong 5 ай бұрын
Nobody tell him about proton, it'll break his heart.
@user-sl6gn1ss8p
@user-sl6gn1ss8p 5 ай бұрын
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?
@kennethcusmano
@kennethcusmano 5 ай бұрын
That was really good work. Kudos
@alexgayer85
@alexgayer85 4 ай бұрын
Brilliant! Though since you were playing with VMs anyway, I may as well have just made a Win95 VM and tried it there. 😄
@ac15cr
@ac15cr 5 ай бұрын
This was an amazing underrated video good job
@JamesStocks
@JamesStocks 5 ай бұрын
Love these videos!
@gerry1980gm
@gerry1980gm 5 ай бұрын
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 !
@straubulous9511
@straubulous9511 4 ай бұрын
You just blew my mind. What I thought was going to be easy I realized you know so much more than myself.
@dylantaylor490
@dylantaylor490 4 ай бұрын
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.
@Fewnity
@Fewnity 5 ай бұрын
I want more video like that! Very cool video love it!
@dodzhtv
@dodzhtv 4 ай бұрын
watching some of this old functions took me back several years
@adam-xt8te
@adam-xt8te 4 ай бұрын
My favourite "look how smart I am" series. If I was gog I would hire you immediately
Hacking a 25 Year Old Game To Make It Work
11:26
Nathan Baggs
Рет қаралды 291 М.
How One Developer Continues To Defy The Impossible
18:31
Nathan Baggs
Рет қаралды 137 М.
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 114 МЛН
Sigma Girl Education #sigma #viral #comedy
00:16
CRAZY GREAPA
Рет қаралды 11 МЛН
Conforto para a barriga de grávida 🤔💡
00:10
Polar em português
Рет қаралды 95 МЛН
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 53 МЛН
An Urban Planner Plays Sim City
34:53
City Beautiful
Рет қаралды 2,3 МЛН
I Made A Virus - I Instantly Regretted It
12:44
Nathan Baggs
Рет қаралды 18 М.
I made the stupidest Coding Language ever...
4:47
spooderCode
Рет қаралды 12 М.
Hacking like it's the 90's
20:11
Nathan Baggs
Рет қаралды 6 М.
Reverse Engineering RollerCoaster Tycoon | How does it work?
38:54
Nathan Baggs
Рет қаралды 223 М.
The 100-Year SimCity...
10:03
ambiguousamphibian
Рет қаралды 2,2 МЛН
EA Won't Let Me Play This Game - So I Hacked It
8:49
Nathan Baggs
Рет қаралды 287 М.
Fixing Multiplayer Of A 25 Year Old Game
12:37
Nathan Baggs
Рет қаралды 95 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 773 М.
I Created a Game Engine Just to Optimise This
4:50
Vercidium
Рет қаралды 895 М.
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 114 МЛН