📅 2025-05-15
· ✍️ Bas v.d. Wiel
·
🏷
design
After finishing the first implementation of HwSpec, I started working on handling
the Manifest configuration file. These two are what should make DOSContainer work
like magic for the end user, so they’d better be good. As it turns out, things aren’t at
that point just yet. Some musings on the design and how DOSContainer will reconcile the
facts of what you have (HwSpec) with what you want (Manifest) in an optimal way.
Read more...
📅 2025-05-12
· ✍️ Bas v.d. Wiel
·
🏷
design
At the time of this writing, the HwSpec format does not concern itself with storage media. The
reason for this is simple, but it may also be wrong: storage is currently a concern for Manifest. The
Manifest determines everything that has to do with the application or game and the disk image
it will create. However, this determination is a leftover from when DOSContainer didn’t yet have a
concept of HwSpec. Some thoughts..
Read more...
📅 2025-05-12
· ✍️ Bas v.d. Wiel
·
🏷
design
, documentation
Hardware specifications are one key part of a complete DOSContainer configuration. Manifests
are the other, but we’ll get to that. Hardware specifications, or HwSpec for short declares
to DOSContainer what your retro PC hardware looks like. In it, you specify exactly what devices
you have in your real or emulated system so that DOSContainer can take this into account when
configuring applications and games to run on your system. It means DOSContainer will configure
your game to use CGA graphics if that’s all you have, even if the game itself can do better. This
article explains the first draft of the HwSpec TOML file format and shows a couple of
complete examples that define a real IBM PC and a 1983 IBM XT.
Read more...
📅 2025-05-11
· ✍️ Bas v.d. Wiel
·
🏷
design
Loading and parsing configuration files is a key component of DOSContainer. The chosen
file format for configuration is TOML, for simplicity. Rust’s community produced a crate
specifically to read and write this format, so yay! But unfortunately for me, this is far
from ideal. One of my project’s base principles is that I only want to write code if I
absolutely have to. If I can borrow functionality from a community crate, that’s what I’ll do.
Read more...