VOGONS


WarCraft: Refurbished (unofficial MS-DOS patch)

Topic actions

First post, by genomelak

User metadata
Rank Newbie
Rank
Newbie

Hello!

I recently tested the remastered version of WarCraft: Orcs & Humans and was pleased to learn that it contained several Quality of Life (QoL) improvements. Most notably, units can be selected through simplified drag select and commands can be issued through right clicks. It did however not run on MS-DOS nor have an animated war room so naturally I had to refund it.

Since I have absolutely no respect for my own time, I decided to implement the QoL improvements in the original MS-DOS release, which I purchased on CD-ROM back in the 90’s and still own. I’ve named this project WarCraft: Refurbished. So far it features simplified drag select, contextual command dispatch, health bars for damaged units, unit grouping and a bunch of other things making its interaction model similar to the one in the remastered version.

The work is published through the GitHub platform through which the MS-DOS patch can be downloaded. It's currently compatible with the original CD-ROM retail release version 1.21 and version 1.22h. It has not been tested with the GOG release or the Battle.net release and I'd appreciate help testing compatibility with those versions.

Hope that you find this interesting!

Reply 2 of 28, by dr_st

User metadata
Rank l33t
Rank
l33t

Awesome. Will definitely pick this one up for testing. After all, the lack of these QoL features is 95% of why Warcraft1 is unplayable compared to Warcraft2.

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 4 of 28, by auron

User metadata
Rank Oldbie
Rank
Oldbie

i'm seeing gameplay balancing changes in that changelog. perhaps there would be value in a seperate build that purely adds quality of life improvements?

Reply 5 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie
auron wrote on 2025-01-15, 13:23:

i'm seeing gameplay balancing changes in that changelog. perhaps there would be value in a seperate build that purely adds quality of life improvements?

I got a bit excited and started implementing changes that essentially makes the game more similar to the sequel. Other people have raised concerns about such changes in other forums as well so I think I eventually will need to make those changes optional. Thank you for your feedback!

Reply 6 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie
dr_st wrote on 2025-01-15, 10:15:

Awesome. Will definitely pick this one up for testing. After all, the lack of these QoL features is 95% of why Warcraft1 is unplayable compared to Warcraft2.

The original MS-DOS version essentially became unplayable for me after testing the Remastered version and seeing how much of a difference the interaction model does.

Reply 7 of 28, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie

Just to make sure I understood this right, you disassembled the original DOS binary of the game, added new features and rebuilt the EXE, and the patch you provide transforms the old EXE into the new one? Or are the new features added by hacking them into the original EXE, like what we did in the Dune 2 patch a while ago?

DOS Games Archive | Free open source games | RGB Classic Games

Reply 8 of 28, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

Nice. Been waiting this for last 31 years. Never got into those Warcraft1/Dune2 game controls. But love Warcraft2/CnC stuff.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.

Reply 9 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie
MrFlibble wrote on 2025-01-15, 16:42:

Just to make sure I understood this right, you disassembled the original DOS binary of the game, added new features and rebuilt the EXE, and the patch you provide transforms the old EXE into the new one? Or are the new features added by hacking them into the original EXE, like what we did in the Dune 2 patch a while ago?

I'm not quite familiar with how the Dune 2 patch was done but I'll have a look at it!

For this patch, I started out by disassembling the original binary in order to map out existing functionality. From that, I was able to patch the game's bytecode for simple control flow and data changes. I was also able to write new functionality, leveraging the game's existing functionality (like drawing functions and i/o) . This was done mostly by capturing carefully selected calls and redirecting them to some free space (about 3kB) in the last code segment where I placed the bytecode of my assembly. The binary was never rebuilt, only patched which made it quite straight-forward to write a patching utility!

This was all done by hand up until I started writing support for multiple versions of the game binary when this process quickly got unmanageable. I therefore spent some time writing an automated system that compiles all changes for each specific game version, generating a set of diffs that are encoded into the patching utility itself 😀

Reply 10 of 28, by MrFlibble

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for the explanation!

genomelak wrote on 2025-01-15, 17:35:

I'm not quite familiar with how the Dune 2 patch was done but I'll have a look at it!

Robert Crossfield disassembled the binary and provided some comments, and the OpenDUNE team also independently disassembled the binary and provided info as well, then they identified functions that were of interest or contained errors, and came up with various changes to fix the problems. All changes were implemented via hex-editing the original binaries (there are several versions and regional releases of Dune 2), so the patched EXEs are basically the same as the originals, except for a few local changes of several bytes here and there.

From what I understand, your approach is a much more sophisticated version of what we did. BTW, are you familiar with this project? It uses statistical recompilation to "auto"-port several DOS games to Windows & Linux, including Warcraft.

DOS Games Archive | Free open source games | RGB Classic Games

Reply 11 of 28, by Tree Wyrm

User metadata
Rank Newbie
Rank
Newbie

Ah, how wonderful. I like warcraft 1 more than the sequel, strangely enough, but poorly aged controls always kept me from replaying it. Thanks!

Reply 12 of 28, by liqmat

User metadata
Rank l33t
Rank
l33t

Awesome. Looking forward to trying this out.

Last edited by liqmat on 2025-01-16, 08:59. Edited 1 time in total.

Reply 13 of 28, by chinny22

User metadata
Rank l33t++
Rank
l33t++

I think the animated war room was fixed?

Funny enough I replayed Warcraft 1 last year, takes a bit to readjust but can get used to the combined mouse + keyboard commands for unit control.
but lack of control groups has always been my main annoyance with both Warcraft 1 and 2.

Didn't know about the Dune2 patch! I could never get into that game with individual commands, even Warcraft at least let you select 4 units

genomelak wrote on 2025-01-15, 14:29:
auron wrote on 2025-01-15, 13:23:

i'm seeing gameplay balancing changes in that changelog. perhaps there would be value in a seperate build that purely adds quality of life improvements?

I got a bit excited and started implementing changes that essentially makes the game more similar to the sequel. Other people have raised concerns about such changes in other forums as well so I think I eventually will need to make those changes optional. Thank you for your feedback!

Yes please, Also may I suggest adding the version number to the title screen, always nice to have a quick reference of what version a game is.

Reply 14 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie
MrFlibble wrote on 2025-01-15, 17:49:
Thanks for the explanation! […]
Show full quote

Thanks for the explanation!

genomelak wrote on 2025-01-15, 17:35:

I'm not quite familiar with how the Dune 2 patch was done but I'll have a look at it!

Robert Crossfield disassembled the binary and provided some comments, and the OpenDUNE team also independently disassembled the binary and provided info as well, then they identified functions that were of interest or contained errors, and came up with various changes to fix the problems. All changes were implemented via hex-editing the original binaries (there are several versions and regional releases of Dune 2), so the patched EXEs are basically the same as the originals, except for a few local changes of several bytes here and there.

From what I understand, your approach is a much more sophisticated version of what we did. BTW, are you familiar with this project? It uses statistical recompilation to "auto"-port several DOS games to Windows & Linux, including Warcraft.

I'm familiar with the concept of static recompilation but not with this particular project. It seems awesome!

Reply 15 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie
chinny22 wrote on 2025-01-16, 00:47:
I think the animated war room was fixed? […]
Show full quote

I think the animated war room was fixed?

Funny enough I replayed Warcraft 1 last year, takes a bit to readjust but can get used to the combined mouse + keyboard commands for unit control.
but lack of control groups has always been my main annoyance with both Warcraft 1 and 2.

Didn't know about the Dune2 patch! I could never get into that game with individual commands, even Warcraft at least let you select 4 units

genomelak wrote on 2025-01-15, 14:29:
auron wrote on 2025-01-15, 13:23:

i'm seeing gameplay balancing changes in that changelog. perhaps there would be value in a seperate build that purely adds quality of life improvements?

I got a bit excited and started implementing changes that essentially makes the game more similar to the sequel. Other people have raised concerns about such changes in other forums as well so I think I eventually will need to make those changes optional. Thank you for your feedback!

Yes please, Also may I suggest adding the version number to the title screen, always nice to have a quick reference of what version a game is.

Did they fix the war room animation? I remember reading something about the victory sequence being fixed in WarCraft II... maybe they fixed both?

Reply 16 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie

The patch is now fully customizable as of version 0.9.0.

Reply 17 of 28, by chinny22

User metadata
Rank l33t++
Rank
l33t++
genomelak wrote on 2025-01-16, 14:41:

Did they fix the war room animation? I remember reading something about the victory sequence being fixed in WarCraft II... maybe they fixed both?

Not sure I was basing it on this video, and actually it's only the briefing not the map.
https://youtu.be/S8UHIHtfBOc?si=_pJ7QtdgwQ3_6wst

Honestly only reason I'd think about getting the remaster is so I can play my brother on steam.
When playing solo I'm sticking with the original versions which is why I love you made this patch

Reply 19 of 28, by genomelak

User metadata
Rank Newbie
Rank
Newbie
chinny22 wrote on 2025-01-17, 00:55:
Not sure I was basing it on this video, and actually it's only the briefing not the map. https://youtu.be/S8UHIHtfBOc?si=_pJ7Qtd […]
Show full quote
genomelak wrote on 2025-01-16, 14:41:

Did they fix the war room animation? I remember reading something about the victory sequence being fixed in WarCraft II... maybe they fixed both?

Not sure I was basing it on this video, and actually it's only the briefing not the map.
https://youtu.be/S8UHIHtfBOc?si=_pJ7QtdgwQ3_6wst

Honestly only reason I'd think about getting the remaster is so I can play my brother on steam.
When playing solo I'm sticking with the original versions which is why I love you made this patch

Wow! They clearly fixed it! Maybe they did learn a thing or two from their past mistakes?