Want early access to new videos and some behind the scenes content? Consider becoming a channel member ruclips.net/channel/UCQvW_89l7f-hCMP1pzGm4xwjoin Other videos you might enjoy: ruclips.net/video/DvJLIWAGno4/видео.html ruclips.net/video/ILY7tYdIS2Y/видео.html ruclips.net/video/JyWeSVG8hVw/видео.html
Thanks for the input - RUclips titles are hard, I may swap several in and out depending on the performance. I'd be curious to know why you didn't like this specific title?
Its interesting, but I'm curious as a layman, what is the purpose? Are they trying to prevent reverse engineering? Are they trying to stop pirating? Or are they trying to prevent people from playing without having B.net?
"Why is my VM talking to me!?" Oh man. Years ago now, I started a windows 10 install, got interrupted, closed it and stuffed it into my backpack. I figured it'd go into sleep mode, so I sure was shocked about 10 minutes later when my backpack started yelling at me as I was walking down the street. I get that it's probably good for accessibility, but an installer speaking unprompted sure is jarring.
This happened to me in the middle of a meeting. Sadly, I found that "Oh no, the voices are back!" was not the humorous interlude I thought it would be...
I have vivid memories of guessing the key as a kid. I was joking with a friend saying "don't worry, we'll just try all combinations". Starting with all zeroes and incrementing only the last digit by 1 each time. Turns out, this worked with the final digit being "3". What was more interesting, is that after discovering this, we found this trick (and variations of) worked on many different games.
I have a similar memory that I had all but forgotten. Went to stay with my grandparents and brought the CD with me to install there but didn't have the key. Was frustrated and upset so I just spammed letters and numbers and got it on a few tries... Thought it was a miracle at the time 😂
That's probably the only practical usefulness of it, that it informed you: hey, your laptop woke up from sleep in your backpack and it's overheating - roasting itself in there. There was (not sure if it still is) a bug with Sleep function in Windows and laptops kept "waking up" and overheated like in an oven in neat-closed backpacks.
THAT CD KEY THING EXPLAINS SO MUCH. I swore I once “guessed” a CD-Key as a kid. It turns out I might just have gotten lucky with the last number? Nice to know it is possible to just spam numbers and possibly have it work! Lolol
Yeah the technique they're using is called a checksum. It's not meant for security, it's meant to be used as error detection when transmitting/receiving data. If the data changed but the checksum didn't, there's an error somewhere in the message. This can be used for things like checking if the contents of a file have been tampered with by including a checksum of the file's contents in the file, assuming the user wasn't smart enough to fix the checksum while they were tampering with the data. If the program knows a file isn't supposed to change no matter what, they can keep a hard-coded copy of the checksum and detect if you changed the file even if you fixed the file's internal checksum. Of course, a smart user can just find the code that checks this and bypass it or edit the program's copy of the checksum to match the hacked file too...
@@nathanbaggs Not sure sure, today everything is Plug n' Play. Back in the day I recall spending hours slightly adjusting memory allocation in dos to get games to run in a stable manner, after all we only had 16 mb (and we had a lot for that time). I ended up memorizing what settings I needed for every game I wanted to play. Today you just hit the game icon on your phone and if it doesn't work you uninstall and try the next one.
@@nathanbaggs Ironically, mounting CD images is far simpler now than it was in the simpler old days. Windows 10 can mount certain types of image files without 3rd party software.
@@beidero DOS was kind of annoying like that. There's that Bill Gates quote floating around about 640kb being enough for everybody that gets quoted out of context. He wasn't saying that that is all you'd ever need, he was talking about how to divide that first 1mb of RAM as the computers a the time could address fewer bits at once than later machines. That sort of nonsense didn't pop up again until hardware manufacturers could make more RAM than a 32bit processor could address at once. I remember spending so much time trying to figure out how to get enough stuff loaded into high memory that the low memory would be enough to run my favorite games. Later on DOS4GW was developed that made it a lot easier.
the fun thing is that if you look closely, the "old graphics" on the remastered version actually don't look the same as the original, in part maybe because the new one was made to support zooming in and out, as well as widescreen vs. 4:3 ratios, so likely isn't considering the canvas it draws to as a fixed number of pixels
At first the classic graphics looked absolutely horrible when Blizzard released the remastered version with REALLY ugly upscaling. They improved it a bit since then, but it still doesn't look as good as SC BW 1.16.1 or before with a good ddraw.dll replacement.
the utter misery of everyone and their dog requiring a game launcher.... i was pretty loathe to hop on the steam bandwagon and that is actually providing some value to the end user. hell no dawg i'm not going to have 3 or 4 game launchers so you can "synergise your brand". just like i'm not subscribing to 5 streaming services to watch 1 show on each service.
agreed,tho as legally i cant get StarCraft any other way it is what it is,i also hate how they promote their other games into my face when i only litteraly care about StarCraft,someone told me StarCraft characters appear in heroes of the storm,but all i got was some random world of warcraft character so 1 minute after installing it i deleted it,so if i could play StarCraft without a launcher it would sure feel refreshing but i guess you gotta do what you gotta do
@@theicyphoenix_7745 I dont know how come you installed a whole ass game just to open it for a minute then uninstall it, when the tutorial is literally James Raynor from Starcraft 1 & 2.
Welp you support monopolies then, other launchers are competition to steam, i get it you want maximum convinience but i take one extra click over giving valve control over the entire market, they already hold an absurd 72% market share globaly, meaning they are close to the point where At&t were hit with anti monopoly regulation by the us government. But iguess gaben good trumps any other argument.
Very interesting comparison. I also hate when launchers require you to run the game from within them instead of direct from the exe file - which is why I quite like GOG - it allows that.
@@maryrose2676I think steam is a terrible launcher for a couple reasons. But then again it doesn't have much competition. Personally I like playnite over every launcher out. I have all my GOG, console, and steam games on it.
@@bluetooth2677 I play with a lot of mods, Steam's native mod support is what drew me in. But I agree. For games without mod support, I don't use steam. Personally, the best game launcher I have is my games folder. Playnite seems interesting. Looking at it now. Thanks for mentioning it.
Storm was not an engine but a sort of abstraction mechanism for OS-specific stuff: reading files (including files from inside compressed MPQs), memory management, dispatching window messages, manipulating textual strings, etc. You can find various lists on the Internet that match function ordinals to their 'real' names. It was also used by other Blizzard games like Diablo and WarCraft, albeit with some modifications between games (Storm.dll from one game would not be a drop-in replacement for the other game).
The first modder-made MPQ extractors took advantage of storm to do the extractin'. Anyway, just wanted to also point out it's called "Storm" cause "Blizzard". lol. It might seem obvious for most people but it took me literally years to figure that one out. Got helped by "Heroes of the Storm" getting named like that.
2:39 I like how you censored the actual key part of the CD-key, it's hilarious :P I'd guess you can't legally protect a single digit key, but you never know!
Nice view! I do have to point out that you're comparing version 1.04 (I think, this was the first BroodWar version) to version 1.16 or something like that (too lazy to check the exact version) So what they provided might actually by the original one with the latest patch before the remaster. I do remember they had to patch it at one point for the colors to work ok on Windows 7 and later for example. And they also fixed A LOT of exploits that were still working in version 1.04. And multiplayer improvements. So, can't say I'm that surprised they're very different. They probably have something anti-cheating too.
The updated version he got from BattleNet would be the same version number as the latest Remastered patch, so 1.23.10 or whatever, because the modern free version is just Remastered with the new graphics and some other features disabled. This can be pretty obvious from the fact that the free version has a massively bloated file size compared to older versions, because it still includes all the Remastered files. I believe that a lot of the differences between it and the last legacy version, 1.16.1 from 2009, actually go back to the 1.17 and 1.18 patches that were released in 2017 during the run-up to Remastered’s release. Most mods ever made for the game need 1.16.1 or an earlier version, even many newer ones made after the new patches, because the new patches broke a bunch of things and were more difficult to mod than the earlier versions.
At the time when sc came out most developers knew that their games would be cracked and warezed before it hit the shelves anyway, so most implementations had the same spirit as how locks only keep honest thieves out.
@@rnts08 They also knew that most people who had internet connections were connecting via dialup and may or may not have the ability to connect to their servers in order to authenticate. Even later on when cbroadband became more common, people pitched an absolute fit when always on connections were required to play games that they'd bought. And with good reason, pirated copies didn't require that.
Great Stuff! New series idea: disassembling all the software that tells you it cannot run on older Windows if it is really true or just a marketing tactic. Keep it up :)
@@nathanbaggs pretty sure it worked just to enter the game (single-player), to acces the battle-net we used BNGatewayEditor to edit the server list and add our private servers though
The anti-debugger and obfuscation methods are truly sad given the trend in the industry to screw over consumers. Blizzard is actually among the worst when it comes to honoring purchases, having yanked at least two games so far.
Nathan's correct, any form of digital media deserves some form of 'anti-piracy', you wouldn't like it if your product you worked hard on could be stolen with a simple 'copy and paste'. 20 years ago you wouldn't have applied todays trends and tropes to what at the time was genuine anti-piracy. I think you're also forgetting that a lot of these classic developers/publishers were smaller (relatively) teams with passion for their work, they're now massive corporations who only answer to shareholders. Again, if I asked you 20 years ago what you thought of Blizzard, you would've told me Starcraft was great and that they absolutely smashed it out the park with Warcraft III. You're retroactively judging a company for something they wouldn't do for 15~20 years. Let's all stop pretending that Blizzard (or Ubisoft or GameFreak or Raven and so on) are the same people/company they were 10/20/30 years ago, unfortunately we have lived long enough to see them become bereft of passion and or be blinded by money, only to be pumping out the same old formulaic crap. No hate, I just think there's an important perspective you're ignoring. Hopefully this makes sense.
Me who have never seen this channel before and got this video show up in "suggested" section, thinking this video would be about changes made about some campaign missions or units stats or something more in terms of gameplay: "INTERESTING". Also me who have watched whole video while I have never had any experience with any coding: "I like your funny words magic man".
I believe I’ve seen client sdk run while playing either D4 or WoW, so you’re right about that running on the modern games, very interesting to see these videos 😁
Starcraft is a balls to the walls test of wits. Not for the feint of heart. It was lucky hit accident made by an unlikely group of nerds who loved RTS. That era is long gone and will never be back. Now it only resides as a memory and for the real nerds. Maven's Haven and Katan's Lair were kickass on kali.
glDrawElementsBaseVertex was introduced in OpenGL 3.2 released in 2009, so definitely an updated drawing pipeline. Would be very interested to see the API trace of the original running in OpenGL mode
This is absolutely fascinating mate, thank you for sharing. I grew up playing starcraft, online one of my favorite maps was probavly "PTWTC" and tarpit D lol, also Evolves and cat and mouse
Interestingly about the CD KEY, its either Starcraft or Diablo 1 (possibly both), the key 1234567890 (and repeat till it fills the text fields) works. I remember trying it for giggles when I was a wee lad, and it worked.
French player here. They completely changed the French translation with the Remaster. Now, the translation is more literal and less evocative, and sometimes completely nonsensical. It also messed up keyboard shortcuts.
I think the changes make sense. DirectDraw is pretty much obsolete at this point, plus it had compatibility problems with modern Windows version, especially on Vista and 7. So redoing the rendering in something more modern, that also leverages the power of modern GPUs makes sense. Plus it enables some of the new graphical effects in the rematster. I guess it was already developed for the remaster and backported, or the "new" version is just remaster without the new graphics. After all, you can switch between them on the fly. I don't know why D3D9 instead of 10 or 11, maybe because it has less overhead? OGL maybe for the OSX Version, but on the other hand OpenGL support is legendary broken on Mac devices for years. And because you can also play in the online ladder, those obfuscation techniques also makes sense. Not everbody looks into the executables to learn about it like you, but to find weaknesses to cheat.
0:05 It’s a cultural phenomenon. Phenomena is plural. “It’s a cultural phenomena.” makes as much sense as “Look at that trees.”. Just proving we’re paying attention!
Yeah, I was trying to play Starcraft in Windows 9x and figured, I might as well play the original version. Was pretty bummed to find that the "original version" was not the remaster, except with locked to the original graphics mode... and to make that even more annoying, you are still made to download all of the HD graphics. So they did the same as they did to Warcraft III, made a remaster that replaced the original and removed some of the nice features the original game had. Like supporting older OS and taking up a LOT less space. At least with Diablo 2 they did not replace the original game. I guess they noticed that fans got displeased having the game they had already paid for practically removed. Diablo 1, Warcraft II and Diablo 2 should all still be able to run, even using their original Battle Net and such.
Hi, do you think you could RE a game called Space Empires IV, there are a couple of quirks I would love to fix/change on a modern system, happy to elaborate further if interested. I think the game was written in Delphi. Also, what limits are there to Ghidra, can you do a tutorial video at some point though no rush? Great video otherwise, loved SC1.
@@nathanbaggsDiablo, D2, StarCraft, Warcraft 2 and 3 all use storm.dll. its primary use is reading the MPQ files used to store game data for these games, though the DLL also contains functions relating to networking, memory management, and such.
@@Bobbias WoW also used Storm until Wrath of the Lich King when they changed the rendering engine to allow for higher quality rendering on in-game cutscenes when you don't have control of the camera.
@@Bobbias It's actually pretty funny in the WoW case. The terrain generation is the War3 map render just expanded on with larger maps. Terrain features and pathing maps are added to original 2004 vanilla WoW just like map makers did for War3 and TFT custom maps. In theory if War3 could handle WoW map sizes you could just port the terrain over 1-to-1 because the maps are encoded the same way War3 encodes maps, too. Turns out when you give fans the keys to the kingdom with reverse engineering Storm.dll and .mpq files for six years, people knew how to edit WoW day 1.
You can run the old version with DX11 or Open GL with WineD3D For Windows. Super helpful for old games using parts of direct draw/3d that are no longer supported.
You can still find unofficial downloads for the last “old” version, 1.16.1 from 2009, which still works fine but is missing both any new features and new issues that were introduced with the newer patches and Remastered from 2017 onward. The current free version is literally just Remastered with the paid features disabled.
Possibly more interesting information on the CD key thing, especially for other games... back in the day I was a poor kid in a poor household, and I wanted to play half-life. I acquired a copy from a friend but they wouldn't give me their CD key as they played counter strike all the time... so out of desperation I used my Starcraft CD key and it worked. I always wondered how many other games it would have worked for...
I love watching reverse engineering videos, even though I only have an amateur ability in C/C++ (I’m a PLC programmer; similar, but simplified, sort of). But I feel like the more I watch of these, the more I can learn by osmosis… that’s the plan anyways 😭
I wouldn't be NOP spamming through that sub routine 10:15 I would be starting with 0043fc and changing JNS to JNZ Short LAB_1000440f JNZ Short (for short jumps) and Long (for long jumps) to reference assembly lines will simplify your experience. Just my two cents.
The conclusion seems rather vague for the basic viewer. So the old one is using DirectX5 and the new one DirectX9/OpenGL and is completely remade into the newer rendering engines? Which also is difficult since the game needs to be exactly the same as the old one in terms of gameplay.
The gameplay between the remaster and the original is close, but there's some minor differences under the hood that result in some different functions. Easiest comparison is calling them rounding errors; for 99.9% of players there is no difference. For people that mess around with the functionality of the game in some hacked custom maps, there are a couple things that do not work as they should in the remaster.
I bet the engine was separated in two parts, one that dealt with the operating system and the other that just produced frame buffers using the CPU. If he could find a way to skip the anti-debugger protection , he would land on the reminiscent code of the Storm engine. Remember that the game is entirely 2D and basically made without any acceleration at all. Besides a BitBlt copying rects of pixels from one buffer to another.
@@sintanan469 I think the rounding errors are because they changed compilers and didn't pay attention to the change in behavior of the floating point math library. That's very typical.
@@nathanbaggs You're going to run into the Storm.dll and MPQ files again with Diablo. Diablo 1 is when Blizzard created their archive system used for most their games. As far as my understanding of it, it was with Overwatch when they finally changed from the original MPQ archive file to their newer version of MPQ and stopped using Storm.dll to translate between the MPQ archive and the game's executable.
The original Starcraft had issues with Windows 7, the colors were all glitched. It took them a while but eventually they released a patch that fixed it. Maybe that's the point when they changed the renderer. It was long before it became free. I remember the original worked on a non-3D accelerated graphics card, many games from that era had so ugly graphics in software rendered mode, Starcraft somehow managed to get much more out of it. And it came out in 1997 so the guy uploaded it to the archive messed it up. A 32 bit game in 1993? The developers must had a time machine to get a copy of Windows 95.
This is likely correct and relates to Windows 7 and DirectDraw. If I remember correctly, I believe Windows 7 didn't handle DirectDraw by default without users using compatibility mode or altering settings in directdiag
I remember for whatever insane reason if you first terminated Explorer.exe prior to launching Starcraft and you NEVER alt-tabbed, it worked fine. The glitched colors were in the initial loading screen but then fixed themselves.
Okay, now I'm curious if the free version is the same version that was included with the Starcraft 2 deluxe box. It included a copy of Starcraft on a USB thumb drive (shaped like Raynor's dog tag)
sorry about the lateness of my comment but have you tried pc emu, instead of using a full vm just for running windows 7? if the game you are taking a look at is from before xp anyways, might as well use an emulator. there are quite a few and one of them focuses on accuracy, and has many settings to tinker with, like if your emulated computer has a 3dfx voodoo card, and if so which one. it accurately emulates the different 3dfx voodoo cards, so you can quickly test what one card would do over another one without actually buying the hardware or swapping them out/in.
This is cool, thanks! But if you all what to know why "Blizzard" had to remaster SCBW to SC:R ASAP, it was becoming full of hackers and bots, killing games before you could even make them! it was not fun.. PS patch 1.17.0 pre-release, was still SC:BW old code, until 1.80.0 patch was release, "official StarCraft Remaster." And I don't know how you figure this is not "OG SC" because if this was true maps that people made won't not work at all. Remaster also allowed newer Mac PCs and newer Windows OS PC to work.
You need a goal with RE so I normally start with trying to answer a question “how does the ai work?”, “how does the rendering work?”, etc. As a practical starting point can’t go wrong by starting with strings
Having starcraft on my list of games to play in the future , since I kinda have no clue what or where to download a free full version with full content I thought you were going to show some stuff removed from free version well good to know thats not the case.
It’s simply said… newer games now and days are blah and boring… older games are more playable and fun and had an amazing story. that means games like Starcraft, Zelda oot, halo, Mario 64 are the goats…
You said the original game used DirectX, but iirc StarCraft was also released on Mac, so that means they must have used a different API for that version. Are there traces of that in the original version?
I would expect the mac version to use OpenGL, although I'll admit to not looking into it. Given the time frame I would expect it to be old school fixed function pipeline OpenGL - so still different to this new version
The video is fascinating, however, its more like a bug bounty documentation than a comparison of the old and the new releases, but, still its a good video anyway.
i would really like to see Network Q rally < old 95 windows game made to run for modern computers no unlocking just trying to get it to run :P and not stop on stage 2 which it does under arcade level 1 or 2 i think.. anyways two things to work out if you want that sort of Challange.
Want early access to new videos and some behind the scenes content? Consider becoming a channel member ruclips.net/channel/UCQvW_89l7f-hCMP1pzGm4xwjoin
Other videos you might enjoy:
ruclips.net/video/DvJLIWAGno4/видео.html
ruclips.net/video/ILY7tYdIS2Y/видео.html
ruclips.net/video/JyWeSVG8hVw/видео.html
Not the best video title. I watch you because I like your content but if I saw this without knowing your channel I wouldn't click it.
Thanks for the input - RUclips titles are hard, I may swap several in and out depending on the performance. I'd be curious to know why you didn't like this specific title?
Its interesting, but I'm curious as a layman, what is the purpose? Are they trying to prevent reverse engineering? Are they trying to stop pirating? Or are they trying to prevent people from playing without having B.net?
I suspect they’re trying to stop people cheating
this new crew at blizzard your giving them more credit than they deserve, the more you dig into the new code the more youll understand why i say such.
These reverse engineering videos on older games are fascinating.
Glad you're enjoying them (:
Also my favorite content on this channel!
We'd of had it gold if the source code disk for starcraft 1 was leaked instead of returned.
"Why is my VM talking to me!?"
Oh man. Years ago now, I started a windows 10 install, got interrupted, closed it and stuffed it into my backpack. I figured it'd go into sleep mode, so I sure was shocked about 10 minutes later when my backpack started yelling at me as I was walking down the street.
I get that it's probably good for accessibility, but an installer speaking unprompted sure is jarring.
Computers should only speak when spoken to
@@nathanbaggs Not even then in my opinion.
This happened to me in the middle of a meeting.
Sadly, I found that "Oh no, the voices are back!" was not the humorous interlude I thought it would be...
I have vivid memories of guessing the key as a kid. I was joking with a friend saying "don't worry, we'll just try all combinations". Starting with all zeroes and incrementing only the last digit by 1 each time. Turns out, this worked with the final digit being "3". What was more interesting, is that after discovering this, we found this trick (and variations of) worked on many different games.
A few people have shared stories like this, which is fascinating. Thanks!
I have a similar memory that I had all but forgotten. Went to stay with my grandparents and brought the CD with me to install there but didn't have the key. Was frustrated and upset so I just spammed letters and numbers and got it on a few tries... Thought it was a miracle at the time 😂
That's probably the only practical usefulness of it, that it informed you: hey, your laptop woke up from sleep in your backpack and it's overheating - roasting itself in there. There was (not sure if it still is) a bug with Sleep function in Windows and laptops kept "waking up" and overheated like in an oven in neat-closed backpacks.
i only ever "guessed" the key for quake 3 arena. just hold g and it worked.
THAT CD KEY THING EXPLAINS SO MUCH. I swore I once “guessed” a CD-Key as a kid.
It turns out I might just have gotten lucky with the last number?
Nice to know it is possible to just spam numbers and possibly have it work! Lolol
I was really hoping someone would comment saying they tried this all those years a go (looks like you're not the only one!) (:
Yeah the technique they're using is called a checksum. It's not meant for security, it's meant to be used as error detection when transmitting/receiving data. If the data changed but the checksum didn't, there's an error somewhere in the message.
This can be used for things like checking if the contents of a file have been tampered with by including a checksum of the file's contents in the file, assuming the user wasn't smart enough to fix the checksum while they were tampering with the data.
If the program knows a file isn't supposed to change no matter what, they can keep a hard-coded copy of the checksum and detect if you changed the file even if you fixed the file's internal checksum. Of course, a smart user can just find the code that checks this and bypass it or edit the program's copy of the checksum to match the hacked file too...
Worked the same with credit card numbers ;)
@@alexxx4434 Credit cards just follow the Luhn Algorithm with the added check that the first digit identifies which type of card it is.
111-1111-1112
VM: What is my purpose?
Nathan: You run an old game in which I will only be looking for the rendering code.
VM: Oh my God.
I would feel some sort of mechanical sympathy for my VM, if VirtualBox didn't keep crashing (:
if VMs are butter bot does that make containers meseeks?
@@nathanbaggs Virtual Box is not a proper emulator, but a virtualization thingie. You need something like pcem.
As long as the butter is passed all is well.
Everything is open source if you can read asm.
I really like these deep technical dives on code like this.
Thanks! They take a long time to make but I've been pretty overwhelmed by the positive response
*source available
it's a lost art nowadatys
Everything is fine and dandy as long as you never make me write in Assembly again.
Man that starcraft opening sound, classic. Also mounting cd images, haven't done that for years
It was a simpler time
@@nathanbaggs Not sure sure, today everything is Plug n' Play. Back in the day I recall spending hours slightly adjusting memory allocation in dos to get games to run in a stable manner, after all we only had 16 mb (and we had a lot for that time). I ended up memorizing what settings I needed for every game I wanted to play. Today you just hit the game icon on your phone and if it doesn't work you uninstall and try the next one.
Daemon tools, or Alcohol 120% , remember those tools? ❤
@@nathanbaggs Ironically, mounting CD images is far simpler now than it was in the simpler old days. Windows 10 can mount certain types of image files without 3rd party software.
@@beidero DOS was kind of annoying like that. There's that Bill Gates quote floating around about 640kb being enough for everybody that gets quoted out of context. He wasn't saying that that is all you'd ever need, he was talking about how to divide that first 1mb of RAM as the computers a the time could address fewer bits at once than later machines. That sort of nonsense didn't pop up again until hardware manufacturers could make more RAM than a 32bit processor could address at once.
I remember spending so much time trying to figure out how to get enough stuff loaded into high memory that the low memory would be enough to run my favorite games. Later on DOS4GW was developed that made it a lot easier.
the fun thing is that if you look closely, the "old graphics" on the remastered version actually don't look the same as the original, in part maybe because the new one was made to support zooming in and out, as well as widescreen vs. 4:3 ratios, so likely isn't considering the canvas it draws to as a fixed number of pixels
At first the classic graphics looked absolutely horrible when Blizzard released the remastered version with REALLY ugly upscaling. They improved it a bit since then, but it still doesn't look as good as SC BW 1.16.1 or before with a good ddraw.dll replacement.
@@theshinken How to replace ddraw.dl?
the utter misery of everyone and their dog requiring a game launcher.... i was pretty loathe to hop on the steam bandwagon and that is actually providing some value to the end user. hell no dawg i'm not going to have 3 or 4 game launchers so you can "synergise your brand". just like i'm not subscribing to 5 streaming services to watch 1 show on each service.
Yes I agree it's the same with steaming services - everyone wants their slice of the pie
It's the enshittification. Everything must be a cable-TV subscription instead of a Box product.
agreed,tho as legally i cant get StarCraft any other way it is what it is,i also hate how they promote their other games into my face when i only litteraly care about StarCraft,someone told me StarCraft characters appear in heroes of the storm,but all i got was some random world of warcraft character so 1 minute after installing it i deleted it,so if i could play StarCraft without a launcher it would sure feel refreshing but i guess you gotta do what you gotta do
@@theicyphoenix_7745
I dont know how come you installed a whole ass game just to open it for a minute then uninstall it, when the tutorial is literally James Raynor from Starcraft 1 & 2.
Welp you support monopolies then, other launchers are competition to steam, i get it you want maximum convinience but i take one extra click over giving valve control over the entire market, they already hold an absurd 72% market share globaly, meaning they are close to the point where At&t were hit with anti monopoly regulation by the us government.
But iguess gaben good trumps any other argument.
Very interesting comparison. I also hate when launchers require you to run the game from within them instead of direct from the exe file - which is why I quite like GOG - it allows that.
I get why they do it but I don’t want a different launcher for every game I play
@@nathanbaggsI just make a shortcut of the gog .exes and launch them from steam.
@@maryrose2676I think steam is a terrible launcher for a couple reasons. But then again it doesn't have much competition.
Personally I like playnite over every launcher out. I have all my GOG, console, and steam games on it.
@@bluetooth2677 I play with a lot of mods, Steam's native mod support is what drew me in. But I agree. For games without mod support, I don't use steam. Personally, the best game launcher I have is my games folder. Playnite seems interesting. Looking at it now. Thanks for mentioning it.
@@bluetooth2677why do you think it is terrible? I'm sincerely curious
Storm was not an engine but a sort of abstraction mechanism for OS-specific stuff: reading files (including files from inside compressed MPQs), memory management, dispatching window messages, manipulating textual strings, etc. You can find various lists on the Internet that match function ordinals to their 'real' names. It was also used by other Blizzard games like Diablo and WarCraft, albeit with some modifications between games (Storm.dll from one game would not be a drop-in replacement for the other game).
The first modder-made MPQ extractors took advantage of storm to do the extractin'. Anyway, just wanted to also point out it's called "Storm" cause "Blizzard". lol. It might seem obvious for most people but it took me literally years to figure that one out. Got helped by "Heroes of the Storm" getting named like that.
thank god you censored the key, now i have no idea what it might've been
Got to be careful with information like that
😂
2:39 I like how you censored the actual key part of the CD-key, it's hilarious :P
I'd guess you can't legally protect a single digit key, but you never know!
These videos are still really interesting even when you only understand 10% of the content
Nice view!
I do have to point out that you're comparing version 1.04 (I think, this was the first BroodWar version) to version 1.16 or something like that (too lazy to check the exact version)
So what they provided might actually by the original one with the latest patch before the remaster. I do remember they had to patch it at one point for the colors to work ok on Windows 7 and later for example. And they also fixed A LOT of exploits that were still working in version 1.04. And multiplayer improvements. So, can't say I'm that surprised they're very different. They probably have something anti-cheating too.
Thanks for the insight, I'll admit to not going too deep on version comparison. It was whatever version i could find for both 1998 and 2017
@@nathanbaggs Yeah, it's still interesting, nevertheless.
The updated version he got from BattleNet would be the same version number as the latest Remastered patch, so 1.23.10 or whatever, because the modern free version is just Remastered with the new graphics and some other features disabled. This can be pretty obvious from the fact that the free version has a massively bloated file size compared to older versions, because it still includes all the Remastered files.
I believe that a lot of the differences between it and the last legacy version, 1.16.1 from 2009, actually go back to the 1.17 and 1.18 patches that were released in 2017 during the run-up to Remastered’s release. Most mods ever made for the game need 1.16.1 or an earlier version, even many newer ones made after the new patches, because the new patches broke a bunch of things and were more difficult to mod than the earlier versions.
Ghidra naming all the functions "FUN" does indeed make it more enjoyable.
Always love old implementations of license keys!
I get the feeling it's something they felt they needed to include but didn't put a lot of effort into
What if they explicitly made low effort in that place in a move against capitalization?
At the time when sc came out most developers knew that their games would be cracked and warezed before it hit the shelves anyway, so most implementations had the same spirit as how locks only keep honest thieves out.
@@rnts08 They also knew that most people who had internet connections were connecting via dialup and may or may not have the ability to connect to their servers in order to authenticate. Even later on when cbroadband became more common, people pitched an absolute fit when always on connections were required to play games that they'd bought. And with good reason, pirated copies didn't require that.
Great Stuff! New series idea: disassembling all the software that tells you it cannot run on older Windows if it is really true or just a marketing tactic. Keep it up :)
That CD-key trick sure would have blown my 12yo mind.
Imagine the 'playground cred' this would have gotten me! Infinite Starcraft keys!
A few people have shared stories about guessing a valid key, at least now we know why (:
i remember putting a random number for the serial in 1999 and it worked, finally now i know why
I was really hoping someone would comment saying they tried this all those years a go (:
@@nathanbaggs pretty sure it worked just to enter the game (single-player), to acces the battle-net we used BNGatewayEditor to edit the server list and add our private servers though
@@nathanbaggs I also remember putting 3's or 1's and it worked perfectly every time :)
The anti-debugger and obfuscation methods are truly sad given the trend in the industry to screw over consumers. Blizzard is actually among the worst when it comes to honoring purchases, having yanked at least two games so far.
They have to do something to prevent cheaters though right?
@@nathanbaggs true but then what happens when they become the cheaters? :)
Nathan's correct, any form of digital media deserves some form of 'anti-piracy', you wouldn't like it if your product you worked hard on could be stolen with a simple 'copy and paste'. 20 years ago you wouldn't have applied todays trends and tropes to what at the time was genuine anti-piracy.
I think you're also forgetting that a lot of these classic developers/publishers were smaller (relatively) teams with passion for their work, they're now massive corporations who only answer to shareholders.
Again, if I asked you 20 years ago what you thought of Blizzard, you would've told me Starcraft was great and that they absolutely smashed it out the park with Warcraft III. You're retroactively judging a company for something they wouldn't do for 15~20 years.
Let's all stop pretending that Blizzard (or Ubisoft or GameFreak or Raven and so on) are the same people/company they were 10/20/30 years ago, unfortunately we have lived long enough to see them become bereft of passion and or be blinded by money, only to be pumping out the same old formulaic crap.
No hate, I just think there's an important perspective you're ignoring. Hopefully this makes sense.
Me who have never seen this channel before and got this video show up in "suggested" section, thinking this video would be about changes made about some campaign missions or units stats or something more in terms of gameplay: "INTERESTING".
Also me who have watched whole video while I have never had any experience with any coding: "I like your funny words magic man".
0:14 those transitions are giving me chills
I don't think people will complain if you make longer videos. Really interesting stuff.
I didn't understand much but I like the video
I LOVE these videos, I wish they were 40 mins plus
Back in the day, I always used 2222-22222-2223 or 3333-33333-3332 cd-key (can't remember which one worked) - but it didn't allow BNET access.
I thought this would be about how the in game experience is different. As in if the campaign or some graphics or something is different.
1:50 Just go 123456789123 or something. Starcraft CD-Keys werent exactly bulletproof.
Well yes. I noticed that right away since the in-game fonts didn't render how they rendered in the 1.16.x version of the game
I believe I’ve seen client sdk run while playing either D4 or WoW, so you’re right about that running on the modern games, very interesting to see these videos 😁
Amazing content! It's so impressive how you can scan obfuscated code like this
Starcraft is a balls to the walls test of wits. Not for the feint of heart. It was lucky hit accident made by an unlikely group of nerds who loved RTS.
That era is long gone and will never be back. Now it only resides as a memory and for the real nerds. Maven's Haven and Katan's Lair were kickass on kali.
glDrawElementsBaseVertex was introduced in OpenGL 3.2 released in 2009, so definitely an updated drawing pipeline.
Would be very interested to see the API trace of the original running in OpenGL mode
It didn’t occur to me till after filming that there’s probably an OpenGL renderer for the original as it was also release on mac
Absolutely great vids. Love this combination of learning, nostalgia and a hint of sarcasm 😂
if I remember correctly from the lan parties as a kid, we always used 1 followed by just 0 to get it working on all pcs
This is absolutely fascinating mate, thank you for sharing. I grew up playing starcraft, online one of my favorite maps was probavly "PTWTC" and tarpit D lol, also Evolves and cat and mouse
It was quite interesting to watch about it!
Thanks for the video!
The blur at 2:40 got me
Interestingly about the CD KEY, its either Starcraft or Diablo 1 (possibly both), the key 1234567890 (and repeat till it fills the text fields) works. I remember trying it for giggles when I was a wee lad, and it worked.
Would be interesting to learn how their anti-debugging techniques work, exactly.
French player here. They completely changed the French translation with the Remaster. Now, the translation is more literal and less evocative, and sometimes completely nonsensical. It also messed up keyboard shortcuts.
That’s a shame, did you go back to the original?
@@nathanbaggs No, I don't know how to do it, if it's even possible.
I think the changes make sense. DirectDraw is pretty much obsolete at this point, plus it had compatibility problems with modern Windows version, especially on Vista and 7. So redoing the rendering in something more modern, that also leverages the power of modern GPUs makes sense. Plus it enables some of the new graphical effects in the rematster. I guess it was already developed for the remaster and backported, or the "new" version is just remaster without the new graphics. After all, you can switch between them on the fly. I don't know why D3D9 instead of 10 or 11, maybe because it has less overhead? OGL maybe for the OSX Version, but on the other hand OpenGL support is legendary broken on Mac devices for years.
And because you can also play in the online ladder, those obfuscation techniques also makes sense. Not everbody looks into the executables to learn about it like you, but to find weaknesses to cheat.
Great video. How did you get dark mode in Ghidra?
2:06 "Excuse me a moment while I just crack this game, now that tiny little roadblock is out of the way I'll continue with what I was doing"
0:05 It’s a cultural phenomenon. Phenomena is plural. “It’s a cultural phenomena.” makes as much sense as “Look at that trees.”. Just proving we’re paying attention!
If i could go back to the day i first played starcraft i would. Hardly any games match it in my childhood
Same dude and the cinematics were otherworldly, So many nights spent in dark rooms finishing maps to the end.
An assembly tutorial for Apple Silicon would be really interesting, in your unique style
Yeah, I was trying to play Starcraft in Windows 9x and figured, I might as well play the original version. Was pretty bummed to find that the "original version" was not the remaster, except with locked to the original graphics mode... and to make that even more annoying, you are still made to download all of the HD graphics.
So they did the same as they did to Warcraft III, made a remaster that replaced the original and removed some of the nice features the original game had. Like supporting older OS and taking up a LOT less space.
At least with Diablo 2 they did not replace the original game. I guess they noticed that fans got displeased having the game they had already paid for practically removed. Diablo 1, Warcraft II and Diablo 2 should all still be able to run, even using their original Battle Net and such.
I still have the original and add on on cd
Hi, do you think you could RE a game called Space Empires IV, there are a couple of quirks I would love to fix/change on a modern system, happy to elaborate further if interested. I think the game was written in Delphi.
Also, what limits are there to Ghidra, can you do a tutorial video at some point though no rush? Great video otherwise, loved SC1.
I think diablo also uses storm
Ah interesting, thanks!
@@nathanbaggsDiablo, D2, StarCraft, Warcraft 2 and 3 all use storm.dll. its primary use is reading the MPQ files used to store game data for these games, though the DLL also contains functions relating to networking, memory management, and such.
@@Bobbias WoW also used Storm until Wrath of the Lich King when they changed the rendering engine to allow for higher quality rendering on in-game cutscenes when you don't have control of the camera.
@@sintanan469 ahh, I somehow completely blanked on that one.
@@Bobbias It's actually pretty funny in the WoW case. The terrain generation is the War3 map render just expanded on with larger maps. Terrain features and pathing maps are added to original 2004 vanilla WoW just like map makers did for War3 and TFT custom maps. In theory if War3 could handle WoW map sizes you could just port the terrain over 1-to-1 because the maps are encoded the same way War3 encodes maps, too.
Turns out when you give fans the keys to the kingdom with reverse engineering Storm.dll and .mpq files for six years, people knew how to edit WoW day 1.
man that start up sound of the installer nostalgia
You can run the old version with DX11 or Open GL with WineD3D For Windows.
Super helpful for old games using parts of direct draw/3d that are no longer supported.
Maybe i am mistaken, but I swear there was a different free version that just ran straight away without all the online nonsense?🤔
You can still find unofficial downloads for the last “old” version, 1.16.1 from 2009, which still works fine but is missing both any new features and new issues that were introduced with the newer patches and Remastered from 2017 onward. The current free version is literally just Remastered with the paid features disabled.
11:15 - Actually all the people with decades of experience left blizzard.
Possibly more interesting information on the CD key thing, especially for other games... back in the day I was a poor kid in a poor household, and I wanted to play half-life. I acquired a copy from a friend but they wouldn't give me their CD key as they played counter strike all the time... so out of desperation I used my Starcraft CD key and it worked. I always wondered how many other games it would have worked for...
Also worth noting, I still remember my Starcraft CD key by memory to this day. xD
I love watching reverse engineering videos, even though I only have an amateur ability in C/C++ (I’m a PLC programmer; similar, but simplified, sort of). But I feel like the more I watch of these, the more I can learn by osmosis… that’s the plan anyways 😭
Having the original Star Craft 1 code would be nice. Shame that guy some years ago returned it to Blizzard. I'd've loved to see that
I wouldn't be NOP spamming through that sub routine 10:15 I would be starting with 0043fc and changing JNS to JNZ Short LAB_1000440f JNZ Short (for short jumps) and Long (for long jumps) to reference assembly lines will simplify your experience. Just my two cents.
The conclusion seems rather vague for the basic viewer.
So the old one is using DirectX5 and the new one DirectX9/OpenGL and is completely remade into the newer rendering engines? Which also is difficult since the game needs to be exactly the same as the old one in terms of gameplay.
The gameplay between the remaster and the original is close, but there's some minor differences under the hood that result in some different functions. Easiest comparison is calling them rounding errors; for 99.9% of players there is no difference. For people that mess around with the functionality of the game in some hacked custom maps, there are a couple things that do not work as they should in the remaster.
I bet the engine was separated in two parts, one that dealt with the operating system and the other that just produced frame buffers using the CPU.
If he could find a way to skip the anti-debugger protection , he would land on the reminiscent code of the Storm engine.
Remember that the game is entirely 2D and basically made without any acceleration at all.
Besides a BitBlt copying rects of pixels from one buffer to another.
@@sintanan469 I think the rounding errors are because they changed compilers and didn't pay attention to the change in behavior of the floating point math library.
That's very typical.
I wish I was able to do all the stuff you did in the beginning to install the original!
OMG I freakin love SC!!!! And I love your vids!! What a perfect match.
These nostalgic games seem to be hitting the mark at the moment
8😁What would be nice to do is taken them to the latest 3D APIs, even adding at least partial Raytrace, as an academic exercise
Do you think you can RE diablo? This may be interesting!
It's on my list (:
@@nathanbaggs Nice! Btw this video was great!
@@nathanbaggs You're going to run into the Storm.dll and MPQ files again with Diablo. Diablo 1 is when Blizzard created their archive system used for most their games. As far as my understanding of it, it was with Overwatch when they finally changed from the original MPQ archive file to their newer version of MPQ and stopped using Storm.dll to translate between the MPQ archive and the game's executable.
You can just dump the process when its running and load that into IDA/Ghidra, their packer is not a big obstacle
Funnily enough I did try this but ghidra just spun for hours trying to process it, presumably I did something wrong
The original Starcraft had issues with Windows 7, the colors were all glitched. It took them a while but eventually they released a patch that fixed it. Maybe that's the point when they changed the renderer. It was long before it became free. I remember the original worked on a non-3D accelerated graphics card, many games from that era had so ugly graphics in software rendered mode, Starcraft somehow managed to get much more out of it. And it came out in 1997 so the guy uploaded it to the archive messed it up. A 32 bit game in 1993? The developers must had a time machine to get a copy of Windows 95.
This is likely correct and relates to Windows 7 and DirectDraw.
If I remember correctly, I believe Windows 7 didn't handle DirectDraw by default without users using compatibility mode or altering settings in directdiag
Indeed I'd love a comparison between the free one and the last patch of the original.
I remember for whatever insane reason if you first terminated Explorer.exe prior to launching Starcraft and you NEVER alt-tabbed, it worked fine. The glitched colors were in the initial loading screen but then fixed themselves.
your things you do
i love them
Don't get a copy strike. You make some of the informative and entertaining stuff on this forsaken platform. Keep it up.... for posterity.
I'm pretty careful not to give away anything that would have any impact on existing games or developers. The game is free after all
I find this video very interesting as a video game developer.
P.S. I am developing a Civ like video game.
I never thought that "anti-debugging" is a thing 😮
Okay, now I'm curious if the free version is the same version that was included with the Starcraft 2 deluxe box. It included a copy of Starcraft on a USB thumb drive (shaped like Raynor's dog tag)
Would be interesting to see
eyyyy! I spent a large portion of my life playing UMS maps lol
sorry about the lateness of my comment but have you tried pc emu, instead of using a full vm just for running windows 7? if the game you are taking a look at is from before xp anyways, might as well use an emulator. there are quite a few and one of them focuses on accuracy, and has many settings to tinker with, like if your emulated computer has a 3dfx voodoo card, and if so which one. it accurately emulates the different 3dfx voodoo cards, so you can quickly test what one card would do over another one without actually buying the hardware or swapping them out/in.
Brood war is still the best competitive rts ever and wont be topped any time soon. They accidentally made a near perfect game.
This is cool, thanks!
But if you all what to know why "Blizzard" had to remaster SCBW to SC:R ASAP, it was becoming full of hackers and bots, killing games before you could even make them! it was not fun..
PS patch 1.17.0 pre-release, was still SC:BW old code, until 1.80.0 patch was release, "official StarCraft Remaster."
And I don't know how you figure this is not "OG SC" because if this was true maps that people made won't not work at all.
Remaster also allowed newer Mac PCs and newer Windows OS PC to work.
I'd love to see how a battle vs the anti-debug software might take place!
Whilst it would be fun to see how far I could push it I'm keen to not give away anything that would let people cheat in still active games
@@nathanbaggs An old game, or other software with similar self-preservation techniques would still be cool!
Storm gate now makes more sense for the new game made by OG starcraft2 developers
Really good analysis! Do you have a route on how to start the reverse engineering part in video games?
You need a goal with RE so I normally start with trying to answer a question “how does the ai work?”, “how does the rendering work?”, etc. As a practical starting point can’t go wrong by starting with strings
@@nathanbaggs thanks!
Having starcraft on my list of games to play in the future , since I kinda have no clue what or where to download a free full version with full content I thought you were going to show some stuff removed from free version well good to know thats not the case.
I wish I had focused my career differently, I'd love to be able to do stuff like this.
Oh well.
Heroes of the *Storm* is suddenly making a lot more sense now 😅
Starcraft Remastered has "dynamic lighting" so there is a reason probably maybe that it has renderer thing idk.
hmmm
@@KingLich451 Is there something a miss?
Impressive - You know your stuff.
I hope Epic will hire you, so they finally fix anticheat for Linux and I can play fortnite and such.
Thanks! 🙂
"Why is my virtual machine talking to me?"
за 12 минут узнал больше, чем за 4 года в университете.
If google translate worked for me then I’m glad you enjoyed it!
It’s simply said… newer games now and days are blah and boring… older games are more playable and fun and had an amazing story. that means games like Starcraft, Zelda oot, halo, Mario 64 are the goats…
Back in the day Blizzard sued people to hell for reverse engineering Starcraft
I still have my original cd of starcraft with code and all.
You said the original game used DirectX, but iirc StarCraft was also released on Mac, so that means they must have used a different API for that version. Are there traces of that in the original version?
StarCraft.
@@woldemunster9244 I blame my spell checker
In the video, he also looks at OpenGL for the new version. Probably used OpenGL back then, too.
I would expect the mac version to use OpenGL, although I'll admit to not looking into it. Given the time frame I would expect it to be old school fixed function pipeline OpenGL - so still different to this new version
It wasn’t ”also released” on Mac, the same release, the same CDs and all, worked on both Mac and Windows.
I pretend to understand what I saw.
If you wanted to see if they were different, couldn't you just hash both of them and compare?
I'm more interested in how they are different
The video is fascinating, however, its more like a bug bounty documentation than a comparison of the old and the new releases, but, still its a good video anyway.
I think the free version of Starcraft Brood War got a downgrade in graphics. It looks so blurry compared right now.
If I was Blizzard I would be knocking on your door offering you a job. Too bad Blizzard is no more.....the people who made it great are long gone.
i would really like to see Network Q rally < old 95 windows game made to run for modern computers no unlocking just trying to get it to run :P and not stop on stage 2 which it does under arcade level 1 or 2 i think.. anyways two things to work out if you want that sort of Challange.
Very interesting! :)
Please do sc2, my favourite game of all time