Individually Bootable VHDs for Each Game
-
- Posts: 21
- Joined: Sun Oct 04, 2020 1:04 pm
Re: Individually Bootable VHDs for Each Game
Now I need to whittle it down to just the games that "mattered", at least for me anyway
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
Problem is the launcher comes after having setup the memory. You cannot chose XMS or EMS after you booted and launched the launcher. To make this work, you would have to pick the game in a boot menu and have that set the memory settings and possibly directly into the game.sid wrote: ↑Wed Oct 07, 2020 5:33 amThe better way might be to use a launcher which decide which individually memory setting are needed for the game (3 possibilities as mentioned before) and rename the relevant confignoems.sys to the global config.sys with autostart in autoexec and reboot the pc as an example. After quitting the game the config.sys has to be restored.Caldor wrote: ↑Fri Sep 25, 2020 10:57 am
But making individual VHDs for each game, it seems the VHD might as well include the system, at least if its DOS which I am thinking is the main intent anyway. DOS does not really take up more than a disk if its just to boot a game. A DOS 6.22 or 7.1 bootdisk can be made the same way I made the FreeDOS bootdisk. Especially when also adding sysctl and such to make the configurations even more specific.
But since there are thousands of DOS games, I still think it would make more sense to have several games on each VHD, making it into different collections, and maybe let each VHD have a DOS menu for launching these games. A good option for this is Launchbox for DOS I think.
https://forums.launchbox-app.com/files/ ... l-edition/
I mean, I guess the launcher could rename files as you mentioned... hmm... yes I guess that could work. Just always have 3 sets of configuration files ( or however many might be needed for the games on that VHD), and then just copy them and make them into the active autoexec and config.sys file. But should it then launch the game after rebooting? Swapping the config files around, would only work if its possible to reboot from a script and also have it launch the game. I guess... well, I think it would be overcomplicating things, but it could be done so that instead of launching a game it would copy in the boot files requires, and then edit the autoexec.bat file and add some lines specific for the game being launched, and also add lines to copy back the regular config files that launches the launcher on boot when quitting the game. If you just directly reset, it would then boot into that same game though, which would be a bit confusing I think.
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
Oh yeah... that does seem like it should work for everything.sid wrote: ↑Wed Oct 07, 2020 5:47 pmWow! Sounds like a perfect solution for all games!flynnsbit wrote: ↑Wed Oct 07, 2020 4:54 pm You mean something like this?
https://www.youtube.com/watch?v=tmSFSXE ... e=youtu.be
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
There are a lot of abandonware sites and there is the exodos collection. There are also a lot of the classic games on GOG, and they might be wrapped in an emulator. Sometimes it is a problem if its using ScummVM, but the ones that use DOSBox should not be a problem, you can just take the game files and use those.Tchucolate wrote: ↑Wed Oct 07, 2020 10:07 am Im wondering, can anyone recommend some sites, where these old DOS games can be downloaded. Ideally, these would be as raw folders and not wrapped in some kind of emulator. Though if the emulator were in a sibling folder that would not be too much of an issue.
I'd like to start making compilation VHDs, but I want to get on with getting the games in there and working, rather than searching the net for good sources of working games.
- Captain FPGA
- Top Contributor
- Posts: 373
- Joined: Sun Apr 11, 2021 9:19 pm
- Has thanked: 195 times
- Been thanked: 25 times
Re: Individually Bootable VHDs for Each Game
I tried a litany of settings in both TDS and the Mister menu but nothing works. I just want to play this game with peace of mind. Don't worry about space I've got a 1TB micro SD card with 600+ GB free (been filling her up)
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
- Captain FPGA
- Top Contributor
- Posts: 373
- Joined: Sun Apr 11, 2021 9:19 pm
- Has thanked: 195 times
- Been thanked: 25 times
Re: Individually Bootable VHDs for Each Game
Think I speak for a lot of folks when I say we'll understand if you can't finish. We all have busy lives after all, it was thoughtful of you to even consider this at all.Bas wrote: ↑Tue Aug 24, 2021 8:14 pm I've been doing this manually for a while. Now constructing a build pipeline that takes a config file, OS binaries and game binaries to cobble together a VHD. Works nicely and is a very kids-friendly way of packaging DOS games, but I hardly have time anymore these days and between my package mgt project and this.. progress is incredibly slow.
I do hope it doesn't get too busy and you'll get to provide as many single VHD titles as your heart desires. Again, keeping my fingers crossed for a working Duke Nukem.
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
But... it just seems like a problematic solution. If you have 50+ games like this, it can become pretty annoying setting up. It becomes a lot of VHDs to browse. I already have some 20 VHDs, and already it seems like a lot to browse through, and the UI for the AO486 core is not really designed for it.
Maybe instead it could be different collections of games. Maybe based on developers or genres. With a boot menu like the 300 best games collection and such.
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
I'm looking to categorize and symlink according to a few different cross-sections, borrowing metadata from the eXoDOS collection.
The actual build pipeline currently runs on my home lab Jenkins box on FreeBSD. As soon as I have reasonable code working I'll push to GitHub under BSD license. That'll be some time though.
Re: Individually Bootable VHDs for Each Game
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
There is the TOP 300 collection, which is just some of the DOS games... but there are thousands of DOS games, so it could quickly become rather overwhelming. But one of the tools released could fix that, because it should be possible with a script inside a BAT file, to switch VHDs and such, and control it all from one big boot menu.
But the advantage of boot disks and using the shared drive is the space needed. Because each game would only need the size of the games files. VHDs usually end up being larger than they need to be for each specific game.
I did recently try DOSBOX Pure, and it has an interesting feature, supporting ZIP files and booting from a ZIP file. I tried this using ZIP files from the ExoDOS collection. Works quite well, I think its just the game files zipped and then each zip file containing a BAT file with a specific name, which handles how the game should be run.
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
After this, Linux can mount the partition and use its own tools to drop files in there. I'm now working on the partitioning, so making reasonable progress for a change.
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
A problem with this approach is that the VHD or whatever the zip is booted from would probably not really support every possible game. DOSBox has some settings that just pretty much works for all games. Hmmm... probably too complicated to implement I guess. Just seems nice if it would be possible to run games from zip files in that way. It would also make DOS 6.22 more than enough as you would not really need bigger than 2gb partitions if you run each game on its own.
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
I'm between jobs right now so I have time and am making good progress now. I'll be open sourcing my work when my new job starts but I hope to get something real going and show it before that. Job starts October 3rd, so I'll report back around then.
-
- Top Contributor
- Posts: 1311
- Joined: Mon Jul 06, 2020 9:37 pm
- Has thanked: 634 times
- Been thanked: 308 times
Re: Individually Bootable VHDs for Each Game
Edit: Actually after thinking about it, I could probably write a single script myself to do this if I knew the command line syntax to launch titles with specified ROM's, or VHD's in ao486's case. Or maybe one of those existing fancy front ends would work like Launchbox since Linux is on the MiSTer.
Edit 2: I think this is the thread I am looking for: viewtopic.php?t=2493
-
- Top Contributor
- Posts: 1441
- Joined: Mon May 25, 2020 7:54 pm
- Has thanked: 497 times
- Been thanked: 467 times
Re: Individually Bootable VHDs for Each Game
Try this one: viewtopic.php?t=4470thorr wrote: ↑Fri Sep 23, 2022 10:05 pm Edit 2: I think this is the thread I am looking for: viewtopic.php?t=2493
CRT SCR$ Project - building a collection of high-quality photos of CRT displays
CRT ART Books - retro-gaming books with authentic CRT photos
- Caldor
- Top Contributor
- Posts: 930
- Joined: Sat Jul 25, 2020 11:20 am
- Has thanked: 112 times
- Been thanked: 111 times
Re: Individually Bootable VHDs for Each Game
Could you share your tools? I might be able to help at some point creating VHDs. I do have a large collection of DOS games and am familiar with scripting and coding.
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
1. Documenting things so that they're understandable to all who can work with Rust.
2. Finish the implementation of FAT16 either by using an existing crate, or by coding the bare minimum myself.
The main issue here is in point 2. Like I said, the tool now creates a disk image of any size up to the old ~528MB LBA limit and deploys a single primary partition on there that fills the "disk". When using MS-DOS 6.22, these images work fine. I can format the partition, Scandisk doesn't complain about anything anymore, and after a FORMAT /S, the system boots from them smoothly.
Existing Rust crates for implementing FAT, however, do not follow Microsoft very closely but base off other implementations like the Linux vfat driver or other people's reverse engineering efforts. Those efforts all had the focus of using FAT in production in some sort of form, on modern systems. What we're doing here, is reimplement FAT as it worked decades ago as if we were flashed back to that time period and none of those modern systems exist yet.
TLDR: I need a way to do what MS-DOS 6.22's FORMAT /S does, but independently from MS-DOS, so that I can integrate that into a CI/CD build pipeline. The sad bit: Microsoft doesn't document any of that in a sufficiently detailed way and FreeDOS has drifted too far away from it, and I'm still an absolute n00b at programming things that are this low-level.
The steps after that:
3. Formulate a sort of recipe/metadata format that can be read by a CI/CD pipeline and used to write the game + support files like mouse drivers, tweaked DOS extenders etc. to the image, and compose files like CONFIG.SYS and AUTOEXEC.BAT in an automated way. The way I see this now, Ansible looks like a decent candidate for doing this. A specific role could abstract away the nitty-gritty, and we'd end up with a simple-to-write YAML manifest per game. Now I've been living and breathing Ansible in my day job for years, so I really hope to get over the FAT bump soon.
4. Run all of these manifests through a pipeline script. The result, effectively, should be a 1-to-1 mapping of YAML manifest to a resulting VHD.
Why do it this way? Reduction of toil. Anyone and everyone can duplicate this, tweak the YAML, the Ansible role or the Rust codebase for the image generator, and auomatically generate new VHD's on the spot. This takes out masses of manual toil that must be repeated whenever someone finds an improvement, the core evolves in some incompatible way, or someone figures out how to run a particular game that didn't work before.
-
- Posts: 313
- Joined: Thu Sep 16, 2021 10:54 pm
- Has thanked: 841 times
- Been thanked: 51 times
Re: Individually Bootable VHDs for Each Game
Congratulations, you're doing a great and invaluable job!Bas wrote: ↑Mon Sep 26, 2022 8:33 am I will share my work-in-progress by the end of this week. Initially I had wanted to open-source the toolbox when it reaches a minimally viable state, so that it'd be at least structurally sane and usable for a minimal purpose. I probably won't achieve that goal before next Sunday. I'm now focusing on a few things:
1. Documenting things so that they're understandable to all who can work with Rust.
2. Finish the implementation of FAT16 either by using an existing crate, or by coding the bare minimum myself.
The main issue here is in point 2. Like I said, the tool now creates a disk image of any size up to the old ~528MB LBA limit and deploys a single primary partition on there that fills the "disk". When using MS-DOS 6.22, these images work fine. I can format the partition, Scandisk doesn't complain about anything anymore, and after a FORMAT /S, the system boots from them smoothly.
Existing Rust crates for implementing FAT, however, do not follow Microsoft very closely but base off other implementations like the Linux vfat driver or other people's reverse engineering efforts. Those efforts all had the focus of using FAT in production in some sort of form, on modern systems. What we're doing here, is reimplement FAT as it worked decades ago as if we were flashed back to that time period and none of those modern systems exist yet.
TLDR: I need a way to do what MS-DOS 6.22's FORMAT /S does, but independently from MS-DOS, so that I can integrate that into a CI/CD build pipeline. The sad bit: Microsoft doesn't document any of that in a sufficiently detailed way and FreeDOS has drifted too far away from it, and I'm still an absolute n00b at programming things that are this low-level.
The steps after that:
3. Formulate a sort of recipe/metadata format that can be read by a CI/CD pipeline and used to write the game + support files like mouse drivers, tweaked DOS extenders etc. to the image, and compose files like CONFIG.SYS and AUTOEXEC.BAT in an automated way. The way I see this now, Ansible looks like a decent candidate for doing this. A specific role could abstract away the nitty-gritty, and we'd end up with a simple-to-write YAML manifest per game. Now I've been living and breathing Ansible in my day job for years, so I really hope to get over the FAT bump soon.
4. Run all of these manifests through a pipeline script. The result, effectively, should be a 1-to-1 mapping of YAML manifest to a resulting VHD.
Why do it this way? Reduction of toil. Anyone and everyone can duplicate this, tweak the YAML, the Ansible role or the Rust codebase for the image generator, and auomatically generate new VHD's on the spot. This takes out masses of manual toil that must be repeated whenever someone finds an improvement, the core evolves in some incompatible way, or someone figures out how to run a particular game that didn't work before.
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
Whew, it's been this long!? Alright... Progress update. Things are starting to work. I have a few autobuilding game images now that I'd like to share. They're here and the list will grow slowly:
https://code.area536.com/DOSContainers/games
As I add more games, including more complicated ones, my build script will mature into a state that's ready for prime time and I'll open source it sometime probably the beginning of 2024.
-
- Top Contributor
- Posts: 468
- Joined: Sun May 24, 2020 7:17 pm
- Has thanked: 35 times
- Been thanked: 99 times
Re: Individually Bootable VHDs for Each Game
hi
i think sierra games are a good choice !!!
-
- Top Contributor
- Posts: 1441
- Joined: Mon May 25, 2020 7:54 pm
- Has thanked: 497 times
- Been thanked: 467 times
Re: Individually Bootable VHDs for Each Game
There already is a Sierra games-only vhd on the archive.
CRT SCR$ Project - building a collection of high-quality photos of CRT displays
CRT ART Books - retro-gaming books with authentic CRT photos
-
- Top Contributor
- Posts: 623
- Joined: Fri Jan 22, 2021 4:36 pm
- Has thanked: 80 times
- Been thanked: 324 times
Re: Individually Bootable VHDs for Each Game
My point isn't to generate packs. I'm deliberately splitting them all up one by one and generating build-scripts for them so anyone can easily make any kind of customized spins of them. The reason? Because I can, and because I deeply dislike huge "packs" of hundreds of games in a single disk image. The end result of this will be thousands of images of individual games so you can pick and choose, also including variants and patched versions. Scratching my own itch, so to say.
-
- Top Contributor
- Posts: 1441
- Joined: Mon May 25, 2020 7:54 pm
- Has thanked: 497 times
- Been thanked: 467 times
Re: Individually Bootable VHDs for Each Game
Sure, sure, I know all about niche projects. Still, the Sierra pack is reasonably...contained, so to speak. Could save some time.
I think I'm ok with my TDC based by-year collections, but will definitely grab all you (and whoever contributes later) can convert too. There's never too many ways to play DOS games
CRT SCR$ Project - building a collection of high-quality photos of CRT displays
CRT ART Books - retro-gaming books with authentic CRT photos