Support for demo versions?

Hello everyone. I’ve found your project because I have a long-standing interest in source ports and engine recreations of various games.

As you all know, the demo version of Heroes of Might and Magic III contains one single-player scenario which is generally similar to its counterpart in the full game, except for a 28 turn limit. What seems to be a bit less well known is that there are also demo versions for Macintosh and Linux (the latter having been developed by LokiGames). The demo distributions’ file names are heroes_3_complete_demo.sit and for Mac and Linux respectively.

Recently I took interest in possible extras that can be obtained from non-IBM PC demo or shareware versions of games, and decided to check out the demos of HoMM3 too.

From the readme supplied with the Linux demo it appears that the turn limit was doubled to 56 turns, making the demo scenario more beatable. While I have not found any info on limits from the Mac demo, the scenario there definitely has differences compared to the Windows version. For example, it does not mention the four weeks limit in the opening message, unlike the regular Windows demo version. The starting castle also seems to have more buildings, and the player starts with a random female Knight, whereas a male Knight seems to always be the starting character in the Windows demo.

I tried to replace the Windows demo scenario with the Mac one (I used StuffIt Expander to unpack the Mac demo distribution), but the demo is hardcoded to only play its original scenario.

However, I managed to run the Mac demo files with the current stable release of VCMI (v0.99). The demo scenario seems to work quite well, except for the following:
[ul]]when starting a new single-player game, a graphical artifact shows up which seems to be made of borders for the scenario selection menu. Pressing Enter loads the demo scenario./:m]
]the demo includes only a limited number of music tracks, with all castles playing the Stronghold theme for example. VCMI ignores this, so the music often does not play at all./:m]
]the console shows a lot of error messages related to missing game data, most of which seem to no affect game play./:m][/ul]I was able to play both the Windows and the Mac demo maps, but only with the Mac demo data files. Trying to launch VCMI with the Windows demo data results in a crash shortly after the start of the game.

I think it would be a neat feature if the demo data support were properly implemented in the project, in particular regarding the Mac demo which appears to include extras from the Complete edition such as new neutral monsters etc.

It’s nice idea to have demo assets support. Though what actually need to be done with assets is they must be unpacked to check what’s exactly there and what’s not. It’s possible that we can combine them too if one have something others don’t have.

From what I see Mac complete demo have on my testing map:

[ul]]All graphics for adventure map objects/:m]
]All graphics for town screen, but only Castle, Necropolis and Dungeon has backgrounds./:m]
]Creatures of Castle, Necropolis and Dungeon for sure have all animations./:m]
]Overall only 3 towns have full assets I suppose./:m]
]Some of creatures from other towns also have full set of animations, but not all of them./:m]
]All spell icons in place and probably animations too./:m][/ul]
So what’s we need in that case it’s some mod that disable all towns except 3 and qualify all working creatures from another towns as neutrals.

We need code to be able disable some things anyway so it’s can be done.

It’s possible, look for my ban-mod as example.
By the way, where this demo we are talking about can be downloaded?

Here for example: … -III-Demo-[Mac]

Yeah that would certainly work. Now we just need a way to find incomplete assets in some automated way. Or we need to make CAnimation not crash when assets doesn’t exist.

Again thanks for pointing out to the Mac demo.

I don’t have time to create limiting mod for demo myself at moment, but I end up using it in my hosted vcmi servers experiment. Looks like it’s have everything server-side might need and it’s make it possible to keep this thing legal.

BTW I re-uploaded them to my server:

Would be nice if disabled towns and creatures were replaced on maps if placed there by a random town/ random same level creature.

This way all custom maps would be playable with demo version.

Also as far as vcmi mod map format goes this could also be nice to have . If someone disables forge in mods but vcmi made map would have it placed on map alternative to forcing the mod on would be to replace the town.

Anyway cool stuff with the demo.

Does anybody know where the demo can be officially downloaded? Just putting the demo on some random server is unfortunately a copyright violation (the copyright holders distributing it for free doesn’t mean that others are allowed to do so as well).

I don’t know what is Apple policy about software, but demo is always free to use and I can’t recall any restrictions in such cases (I’ve read windows demo warranty and there no restrictions about sharing demo) . BTW, who handles 20 years old software? Even original creators: NWC cease to exists long time ago.

Yes, free to use. That does not mean free to distribute.

Copyright doesn’t work that way round. The default is not “do whatever you want” and then you add restrictions. The default is “You are not allowed to do anything with it”. Unless the license says that you are allowed to redistribute the software it is a copyright violation to do so.

And about 20 years: copyright extends 70 years after the original author’s death. NWC ceased to exist but that doesn’t mean that everything they created is now free for everybody. Quite the opposite actually.

My interest in this topic is for the Debian vcmi package. It would be great if there was a legally okay source to download the demo from.

So you must ask Ubisoft about hosting Mac demo.

That will be a waste of time.

Yes, so my argument is:

Right now it is just as illegal (because of copyright reasons) to distribute the demo (except if you are ubisoft or whomever else they gave permission) as it is to distribute the full game.

So I wonder how useful it is to add support for the demo in these circumstances.

If somebody is pirating homam3, then they can actually do that with the full version and not pirate the demo instead. Unless there is a license from ubisoft that says otherwise, downloading the demo from an unauthorized source is just as illegal as downloading the full game.

If there was a way to download the demo legally from somewhere, I’d of course all be for supporting it by vcmi.

I think you should really ask Ubi what they say about statut of this demo. I’m completely sure they are treating is as abandonware. So, take your turn.

Anybody is free to do so. I encourage you to try. It is already loads of work trying to find somebody responsible. The last time I tried, I did so by phone, email and letter. The latter never got any response, the former two were unable to get me in contact with anybody who could give me concrete answers.

My only experience where ubisoft was actually doing something was, when they sent my web hoster take-down notices because I hosted videos on my server that showed off videos of my own homam3 engine-reimplementation which used their assets. So no, this is far from abandonware (depending on your personal definiton). They might not distribute the original game anymore but they still have their lawyers going after people infringing on their copyright. That this happened to me is proof of that.

I wish you the best of luck!

This is true for most countries, yes. But while it’s in theory illegal it’s kind of the point of a demo (as with freeware/shareware in general) to be distributed as widely as possible. That’s the reason why a website like Fileplanet can be in existence since more than 20 years. (according to their footer)

Downloading from “unauthorized sources” is not illegal (in most jurisdictions). That’s why people use sharehosters and streaming pages where the server operator bears the legal risk.

If FilePlanet seems like a dubious place to link to, you may want to consider the Internet Archive.

That’s wonderful!

Here is how to extract H3BITMAP.LOD, H3SPRITE.LOD, VIDEO.VID and the other files from the demo without having to execute the h3demo.exe on Linux:

$ md5sum h3demo.exe
33e40e8236126f63bc6f8f70568c379d  h3demo.exe
$ dd if=h3demo.exe skip=1 ibs=130731
$ Microsoft Cabinet archive data, 98134327 bytes, 17 files
$ cabextract -F Disk1/
$ unshield Disk1/

In summary, what’s happening here is: h3demo.exe is a “InstallShield self-extracting archive” which contains a cab archive at byte position 130731 until the end of file. So we extract that part of the file and store it in That archive contains a single directory called Disk1 with a couple of stuff inside but we are only interested in Despite its name that file is not a cab archive but an InstallShield file, so we use unshield to extract that file as well.


The lod files from the demo are incomplete (not surprising). Here is the log I get when trying to start vcmi with the lod files from the demo:

Creating console and configuring logger: 1
The log file will be saved to "/home/josch/.cache/vcmi/VCMI_Client_log.txt"
	Initialization: 1
	Data loading: 13
	Mod handler: 0
	Mod filesystems: 12
Basic initialization: 28
Initialized logging system based on settings successfully.
[log level] ai => not set
[log level] animation => not set
[log level] bonus => not set
[log level] global => trace
[log level] network => not set
Error: campaign movies was not found!
Error: campaign music was not found!
Loading settings: 29
Found 3 render drivers
	opengl (active)
Check display mode: requested 800 x 600; available up to 1920 x 1080 
Created renderer opengl
	Initializing screen: 105
	Initializing video: 0
Initializing screen and sound handling: 5
		Bonus type handler: 1
terminate called after throwing an instance of 'std::runtime_error'
  what():  Resource with name DATA/TENTCOLR and type TEXT wasn't found.


And if I add a Data/tentcolr.txt with the content from the full game, the game starts but freezes during the 3DO logo video playing in the very beginning. strace says that it’s stuck at a futex() call waiting:


Seems that vcmi is caught in an endless loop here: … .cpp/#L323


Since that function seems to parse CRTRAITS.TXT I uploaded the file from the demo for your convenience. Maybe somebody notices something odd that makes the parser fail.

Just in case there is Mac demo and it’s have all adventure map bitmaps and 3 towns so it’s fully functional in VCMI out-of-box. If legal problems can be somehow bypassed then we can use it instead.

Is someone could ask same guy on Web Archive publish it too then it’s could be helpful: … -III-Demo-[Mac]

The only thing I wonder about is there any open source game in Debian that actually do that? Like support downloading and extraction of demo assets.

I know winetricks request to manually download files and put them somewhere in some cases, but I suppose their legal status is dubious.

Why is it important if there is anything in Debian doing that? Isn’t this topic independent of the operating system vcmi is run on?

Anyways, here the Debian situation: for Debian it doesn’t matter whether the assets come from a source that you have to pay money for or a source that you do not have to pay money for. In case of this demo, the content is still non-free and vcmi would remain in the archive section it is in right now (contrib).

As for downloading assets, Debian has a tool that is used by multiple engines called game-data-packager. It even already supports Heroes of Might and Magic 3 (but not yet the Demo but uses the full game as its source).

Hosting provided by DigitalOcean