"The High Command's maps never change... Never!" (Ilya Kormiltsev)
The Royal Reward project has been started to work around the aforementioned inconvenience.
First, while the OpenKB project has achieved some progress in research, its development and release progress leaves much to be desired.
Second, GPL belongs in the dustbin of history.
We are considering IUP for the map editor and similar GUI tools.
We are in search of a permissive-license graphical game engine that works best for a step-by-step, mostly keyboard-controlled game. (There are a few options we are currently considering which this margin is too narrow to contain.)
To build, run meson build && cd build && ninja
on the command line.
build/mod <path-to-original-game-installation>
is the interactive tool that installs new maps.
If you are unable to run the game, consult Modena's help page regarding the steps needed to clear the cache directory.
Let's assume you have the original game at c:\Users\BelovedMe\Downloads\KB
and already have DOSBox installed.
Install WSL (old way: cmd.exe
-> "Run as administrator", wsl --install
; new way: find WSL in the Windows Store).
It comes with Ubuntu, complete with Git and a C++ compiler. In the Ubuntu terminal, run:
sudo apt-get install meson libboost-filesystem-dev
git clone https://github.com/treeswift/royalreward
cd royalreward
meson build && cd build && ninja
build/mod /mnt/c/Users/BelovedMe/Downloads/KB
You only need to do it once. Lines beginning with sudo
will ask for your just-chosen password.
To re-generate a game, enter the Ubuntu terminal again and re-type (or re-paste):
~/royalreward/build/mod /mnt/c/Users/BelovedMe/Downloads/KB
You can pin Ubuntu
and DOSBox
to the taskbar (right click -> "Pin") for convenience.
meson
, git
and boost
are available from Macports. Particularly, port install boost
(may need sudo
).
Since Macports use /opt/local
as system prefix (as opposed to /usr/local
, the Meson default on POSIX systems),
set prefix
to /opt/local
in meson build
:
meson build -Dprefix=/opt/local
The rest is exactly as above. (Note that Modena for Mac only supports the DOS[Box] version of the game so far, NOT the SheepShaver Mac OS 9 version that comes on floppy disk images.)
The following builds of the original title have been confirmed to work with Modena unharmed by Modena:
Format | Size | SHA256 (sha256sum ) |
Comment |
---|---|---|---|
KB.EXE |
79839 | c9fcc7e9bc61fc73703e0b3f26b618db7e648b820485af9e4b9f2696dd6a40c0 | compressed |
KB.EXE |
113184 | 0fbf467782619bb85334d45e5b1cbd5ab01172da1cfb53737ad5b8ee5e4814e8 | uncompressed |
KB.EXE |
79863 | 0b63149cf14d6f7e352f2c2ad538d8210d470b1a36d612287419e22f142a6f12 | compressed |
KB.EXE |
113216 | c75f54062e450d2212fd56fd555666421d2e83177690881092854ec7db8955e2 | uncompressed |
KB.EXE |
113718 | 5e72b627c1e3645fd68e87a74882b3ee4630fc9b01e1d8f598abcc7c60a35d1e | uncompressed |
Since the geography of the game is known to be pretty stable, this list is very unlikely to be exhaustive.
A minor yet necessary tweak: no flying-and-mountable units are now available from stationary tribes until Desertia, and no undead-and-self-populating units are available from such tribes until Polynesia. The tweak is coupled to the unit description matrix — in other words, it would still make sense in other scenarios, but only as long as the special capabilities of units stay the same (cosmetic changes aside). The gameplay on modified maps is now similar to the original experience to a very high degree.
The third occurrence of the fortress-to-continent LUT (that our manual search had initially overlooked) seems to govern the fugitive-to-continent correspondence ("Last Seen") on the contract screen. We can now, therefore, relocate fortresses between continents without breaking it.
What next? Probably an INI file to rule the map/mission generator.
Fortress and port lookup tables are now searched for (with a 12.5% permutation tolerance) rather than replaced at fixed offsets. This should satisfy most of the builds in the wild, unless they are packed by archivers not yet known to us.
build/ham <path-to-binary>
is a new tool for finding lookup table offsets in an executable file.
P.S. If you obtained your copy of the game on a floppy image, mounting one on Linux is
mount -o loop <disk.img> <empty-folder>
It's gotten to the point at which it's more rewarding to play it than to tinker with it, and it's going to be like that for a while. I like the ascetic counterintuitiveness of the new labyrinths; I absolutely love the new Desertia, now more of an impact crater than a caldera.
Pics taken at seed=3
and seed=2
(zoomed in to avoid copyrighted imagery):
Also, I have promises to keep and lines to code before I sleep.
My next steps towards the long-term goal will most likely involve writing a GUI generator-analyzer tool, at the same time trying out a sufficiently permissive-licensed GUI library (I have promising candidates) in the process. Following the urban theme introduced by Modena (as well as the Swiss theme introduced by "Lenin's Prize"), I am going to call this next tool Geneva.
For now,
Other than that… Pray for Ukraine and Russia. Pray for Israel and the Middle East. Pray for the United States.
Antony Bulatovich is a saint, and the world is a book.
Dina Talaat is beautiful.
Everything contributed to this repository has been released into the public domain worldwide. (If your jurisdiction does not recognize public domain, these four boxes may be of some use.)
King's Bounty is a title released by (and has long been a registered trademark of) New World Computing. We DO NOT distribute the original game. It used to be available on GOG.
We relied on the following information sources to learn more about the original game:
Everything contributed to this repository is released into the public domain. It means that the only right you retain regarding your contribution is the right to establish the fact that you have been the author; you cannot in any way limit or restrict how your contribution is being used.
The exact legal wording we use is the Unlicense License.
Public domain allows unlimited redistribution and/or creation of derivative works. You are therefore free to fork this repo and license your fork on your own terms, or build a software package and distribute it on your own terms. Just keep in mind that it won't in any way restrict anyone's freedom to use the contents of this original repository.