DOSContainer framework in Rust.
Go to file
Bas Wiel, van de 6877fca05f Fix typo 2024-06-23 11:50:31 +00:00
.vscode Cleanupt settings.json 2024-02-23 18:33:00 +01:00
docs Bug in manual 2024-05-04 19:26:55 +02:00
src Remove debug statements. 2024-05-12 16:23:47 +02:00
.gitignore Docs updates. 2024-04-14 19:02:22 +02:00
CONTRIBUTING.MD Docs before opening the source repo. 2024-02-23 18:31:33 +01:00
Cargo.lock Updates 2024-06-23 11:33:40 +00:00
Cargo.toml Updates 2024-06-23 11:33:40 +00:00
Jenkinsfile Fix typo 2024-06-23 11:50:31 +00:00
LICENSE Docs before opening the source repo. 2024-02-23 18:31:33 +01:00
README.MD Add pubkey and docs. 2024-06-22 14:38:09 +00:00
pubkey.gpg Add pubkey and docs. 2024-06-22 14:38:09 +00:00
test.yaml Make the comment optional in YAML. Remove the superfluous 'filename' field from the test YAML. 2024-05-03 18:06:34 +02:00

README.MD

DOSContainer the framework

This repository houses the framework of DOSContainer. The DOSContainer project started out over a year ago in response to me becoming aware of community-created "packs" of games. These come in the form of large hard drive images with a menu system layered on top, allowing for an easy end-user experience in playing a large number of retro games in platforms like the IBM-compatible PC and Amiga. While I tip my hat to the creators of these packs in admiration of their skill and dedication, these were not what I was personally looking for. DOSContainer was born.

The version you see here is the newly imagined Rust version. It's mostly a rewrite of what is already there because Bash becomes very unwieldy.

So what is it?

DOSContainer aims to be a tool that sits in the middle between the retro purist who does everything by hand, and the casual gamer who enjoys playing from game-packs. Note that there is absolutely no value judgement in there on my part. Everything goes, I'm just scratching my own personal itch here. Now if I had to try and sell DOSContainer it'd be something along the lines of a declarative solution to generating MS-DOS compatible hard drive images in a reliable and repeatable way. You can very easily mix and match different versions of operating systems, drivers and utilities with your games to see which combination is optimal for you. Just write a configuration YAML, run the script, and there you are.

What is it not?

DOSContainer is not an emulator of any kind, nor is it intended to be usable by anyone besides myself. Yes, I'm selfish like that. I can write YAML and I consider it reasonable for a configuration format. So no graphical interface, or someone else should build that to spit out YAML's for them. I'm open to any suggestion in that regard.

How to use it

At this point? You don't. The core features are not complete yet. Check out the CONTRIBUTING.MD file in the root of the project to find out how you can help.

Yes.. but.. PIRACY!

Indeed. You're not supposed to pirate copyrighted works and all that. Yet I sourced every single file DOSContainer downloads from Archive.org, which offers them in the open and has been proudly doing so for years. Since I'm not really doing anything different, I'm assuming the rights holders don't mind or don't care enough. If you are a rights holder and you don't like what I'm doing, I will cooperate with any reasonable request sent to archive@area536.com to rectify any issues. If you're not a rights holder to any piece of software this project references, you're welcome to not use it but I'm not interested in hearing about it.

Oh and malware!?

It's been brought to my attention that Microsoft Defender does not like the executable that this code builds. I can imagine why that would be the case. The code itself contains bits of x86 machine code that were copied from old operating system boot sectors. Very specifically you can check os.rs for examples of these. This code will end up in data segments of the compiled executable of DOSContainer, and the program writes them out to VHD files to make them bootable. So Defender will likely trigger on these code fragments because of their fingerprints: it's operating system boot loader code, which is high risk for malware. It sits in the data segment of another program altogether, which is a very suspicious place for it to live. And it gets written out to disk image files elsewhere on the system. What are you even doing? It looks like infecting virtual machine image files and I can forgive Defender for interpreting the function of DOSContainer in this manner.

If you don't like DOSContainer or don't trust it, simply don't use it. The reason why I publish the source is so that you can inspect it for yourself and build your own binary copies of it. Trust me, it's fine, but don't take my word for it.

Note that I will not attempt to obfuscate anything DOSContainer does to fool malware detection software. DOSContainer is not malware. It just does very unual things in the context of a modern PC.

Signature for builds and files

Seeing how security is becoming a thing in this context, I will be signing builds and other files cryptographically through GnuPG. The public signing key that I'm using for this is included in this repository in the pubkey.gpg file. You can use it to ascertain that any file you get from me was actually generated by my build environment and has not been tampered with after it was output from there.

A valid cryptographic signature only verifies that GnuPG believes the bits on your machine are identical to the ones that left mine at some point in the past. That is all.