Page 1 of 7

Individually Bootable VHDs for Each Game

Posted: Mon Sep 21, 2020 7:20 pm
by syltefar
I've been thinking about how to organize the DOS games for my MiSTer.
My current idea is creating a small bootable DOS VHD, clone it for each game I want to run, and install each game in its own VHD. I will end up with a bunch of VHDs, each with a single game, ready to boot.

As far as I can see, this approach has some benefits:
- If a game has special startup needs, I can modify the VHD without breaking any other games.
- Save games will be retained in the VHD and can be backed up.
- Games can be copied to and from the MiSTer individually, which is faster than a big monolithic VHD.

And a drawback:
- I will waste a little bit of space with all the DOS installations on the individual VHDs.

Did someone try this approach? What are the drawbacks I'm not thinking of?

Re: Individually Bootable VHDs for Each Game

Posted: Mon Sep 21, 2020 8:12 pm
by breiztiger
Perhaps you can use hdd software Compressor like drivespace or xtradrive to reduce vhd size

Re: Individually Bootable VHDs for Each Game

Posted: Mon Sep 21, 2020 10:17 pm
by HMPoweredMan
That could work. The only drawback I could see is if you update your configuration... peripheral drivers or the core gets new hardware and needs configured, you'll have to do it for every single VHD

Re: Individually Bootable VHDs for Each Game

Posted: Mon Sep 21, 2020 11:42 pm
by throAU
Hey there

Sounds like a neat idea, however not sure if you realise or not, but the different DOS boot configurations at least can be done with MS-DOS 6.x or FreeDOS (and possibly others such as DR-DOS) via a boot menu (don't ask me how off the top of my head, it's been 25-30 years :D - but it is definitely do-able and the documentation is surely out there somewhere; I remember doing it back in the day with real hardware)

Maybe less overhead than dealing with multiple VHDs?

Re: Individually Bootable VHDs for Each Game

Posted: Tue Sep 22, 2020 2:27 am
by flynnsbit
Better approach is a main VHD that you slot in the primary slot for the OS, and a menu built in to load the right memory setup for the games you are going to play (QEMM + DOS 7.1) seems to be the most compatible. Then in the Secondary slot have a VHD setup with the games you want to play with a front end built in with a batch script on the D: drive (secondary) that auto loads the front end. Then call that from the Autoexec.bat on C:. So no matter what you put in the Primary partition (OS and Memory) the batch and games stay separate on D:. That's how I do it. See here: https://www.youtube.com/watch?v=bMj-ryrTv5w

Re: Individually Bootable VHDs for Each Game

Posted: Tue Sep 22, 2020 4:32 am
by kathleen
syltefar wrote: Mon Sep 21, 2020 7:20 pm I've been thinking about how to organize the DOS games for my MiSTer.
My current idea is creating a small bootable DOS VHD, clone it for each game I want to run, and install each game in its own VHD. I will end up with a bunch of VHDs, each with a single game, ready to boot.

As far as I can see, this approach has some benefits:
- If a game has special startup needs, I can modify the VHD without breaking any other games.
- Save games will be retained in the VHD and can be backed up.
- Games can be copied to and from the MiSTer individually, which is faster than a big monolithic VHD.

And a drawback:
- I will waste a little bit of space with all the DOS installations on the individual VHDs.

Did someone try this approach? What are the drawbacks I'm not thinking of?
From my point of view I'd say, yes why not, not a bad idea at all but personally I won't do that for the simple reason that if it will ease the way you start the games, this manner to proceed will end to something too close to the console and not a computer use like it was back in the day. It is of course my vision of the AO486, I really like this core to face to the same "problems" that I faced 30 years ago on real hardware. Otherwise I'll use DosBox with its scripts to directly play a game w/o knowing what is behind. It a choice of course, you idea is anyway good.

Re: Individually Bootable VHDs for Each Game

Posted: Tue Sep 22, 2020 5:07 am
by throAU
flynnsbit wrote: Tue Sep 22, 2020 2:27 am Better approach is a main VHD that you slot in the primary slot for the OS, and a menu built in to load the right memory setup for the games you are going to play (QEMM + DOS 7.1) seems to be the most compatible. Then in the Secondary slot have a VHD setup with the games you want to play with a front end built in with a batch script on the D: drive (secondary) that auto loads the front end. Then call that from the Autoexec.bat on C:. So no matter what you put in the Primary partition (OS and Memory) the batch and games stay separate on D:. That's how I do it. See here: https://www.youtube.com/watch?v=bMj-ryrTv5w
That would be another way to do it if you can't the bothered figuring out DOS boot menus - just load the appropriate system drive and leave the data drive with your games on it.

Personally I run FreeDOS which has a few different options for different memory configs out of the box, and I have a seperate VHD for D drive for all the games, but it's only been a few days and I never ran FreeDOS before so remains to be seen how compatible it is with games written for MS-DOS. So far so good but...

Re: Individually Bootable VHDs for Each Game

Posted: Tue Sep 22, 2020 6:54 am
by kaz321123
I really love this idea. My windows 95 has 'sim city 2000 special edition' on it now. The sound files sound horrible, but otherwise the game runs correctly.

Not sure how to fix the sound issue, but your idea would be a perfect solution. I'm a complete newbie at this. I got this far because I found someone else's vhd for win95, and went from there. I want to do win98, but I don't know the steps.

Re: Individually Bootable VHDs for Each Game

Posted: Tue Sep 22, 2020 12:00 pm
by syltefar
kathleen wrote: Tue Sep 22, 2020 4:32 am if it will ease the way you start the games, this manner to proceed will end to something too close to the console and not a computer use like it was back in the day.
Yeah, I think you hit the nail on the head, kathleen. I think I *do* want a DOS console, even though that sounds so wrong! :)

I have researched tools for creating the bootable VHDs, and so far I have dd to create a template HD image file, DOSBox to install DOS 6.22, and qemu-img to convert to VHD. I'm documenting my process, if anyone should be interested later.

Re: Individually Bootable VHDs for Each Game

Posted: Tue Sep 22, 2020 3:25 pm
by thera34
@syltefar Your idea sounds to me as a sort of GoG for FPGA "ready on a stick" game on the go. And I like this tbh :) but as @HMPoweredMan, you'd have to cope with config changes, if needed for some updates on all VHDs.
I'm no expert, but maybe for Windows a PowerShell script can be made to mount each vhd at a time, copy/overwrite new files, unmount, next etc Guess for linux similar logic can be applied. As said, just a thought :)

Re: Individually Bootable VHDs for Each Game

Posted: Wed Sep 23, 2020 7:25 am
by Caldor
It could work, but... there are thousands of DOS games, but it seems easier to switch games with one of the many DOS launchers instead of having to use the MiSTer menu to switch games.

But it should ensure that each VHD has a working configuration for that game. But maybe instead they could be for a collection of games? A bit like a CD game collection for the Amiga CD32 or a Cartridge game collection for the C64. So maybe a VHD with all Commander Keen games, or all ID Software games. Would be nice to instead of having a boot menu with 4-5 different configurations, it had one that matched all the games on that VHD.

Re: Individually Bootable VHDs for Each Game

Posted: Wed Sep 23, 2020 12:59 pm
by thera34
Why not include AO486 compatibility list excel file (I see it has a lot of games that can be grouped in a single vhd) as reference maybe ? Think it ca be used as template and make a list on what to put in each VHD ?

Re: Individually Bootable VHDs for Each Game

Posted: Thu Sep 24, 2020 6:12 am
by throAU
Caldor wrote: Wed Sep 23, 2020 7:25 am It could work, but... there are thousands of DOS games, but it seems easier to switch games with one of the many DOS launchers instead of having to use the MiSTer menu to switch games.

There are thousands of DOS games, but back in the day (I ran DOS for gaming back in the 90s) the only real options I ever had to deal with were:

* a config with XMS via himem.sys and no EMS
* a config with XMS and EMS via EMM386
* a config with no memory management for maybe 0.1% of software that used its own memory manager and could don't coexist with himem.sys. the only software I can think of off the top of my head that required this were some old school DOS demoscene demos


You'd only need 2-3 boot options either by picking 3 different boot drives (leaving all your games on a second VHD) or by building a DOS boot menu for different boot configurations.

Re: Individually Bootable VHDs for Each Game

Posted: Thu Sep 24, 2020 9:25 am
by syltefar
throAU wrote: Thu Sep 24, 2020 6:12 am There are thousands of DOS games, but back in the day (I ran DOS for gaming back in the 90s) the only real options I ever had to deal with were:

* a config with XMS via himem.sys and no EMS
* a config with XMS and EMS via EMM386
* a config with no memory management for maybe 0.1% of software that used its own memory manager and could don't coexist with himem.sys. the only software I can think of off the top of my head that required this were some old school DOS demoscene demos

You'd only need 2-3 boot options either by picking 3 different boot drives (leaving all your games on a second VHD) or by building a DOS boot menu for different boot configurations.
That's good to know, maybe I can make the two first as templates, and base everything else on those.

I think part of the reason that I want to go the individual VHD route is that I don't have enough of an overview of DOS to be able to create a couple of boot configs that *just work* with all the games.

Re: Individually Bootable VHDs for Each Game

Posted: Thu Sep 24, 2020 11:47 pm
by SScorpio
There was a big Discord discussion about this about a month ago. The way I thought would work best would be a system VHD and game VHD. The system VHD would have an installation of DOS and any utilities. The benefit of having it separate is you can update drivers, utilities, and configs once and apply across all the game VHDs.

The end of autoexec.bat would run D:\run.bat which would launch the game. To switch games from DOS you just change the secondary VHD and select apply HDD and reset.

For configs you could have multiple config.sys and autoexec.bat pairs. Set an environmental variable and the game VHD's run.bat can check for the right env var. If it's not set it can overwrite the config files (ie: copy config.xms config.sys and copy autoexec.xms autoexec.bat) and just reboot.

The game VHD can even use sysctl.exe to set the CPU speed and enable/disable L1 or L2 cache if a game is speed sensitive.

Re: Individually Bootable VHDs for Each Game

Posted: Fri Sep 25, 2020 10:57 am
by Caldor
I do think a system VHD and a games VHD makes a lot of sense.

There is a thread here sharing some FreeDOS VHDs. But I have ended up spending some time making a FreeDOS bootdisk with a useful collection of tools and memory setups.

This is the thread:
viewtopic.php?f=13&t=843&start=25

This is the bootfloppy:
http://dionysus.dk/software/DOS/AO486_floppy.7z

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/

Its from the developers of Launchbox for Windows, an emulator frontend but made for DOS. The advantage of it is that you can add games and programs to it, but also individual configurations for these games. I know some have f.ex. already added sysctl.exe and DOS32A configurations to it.

Re: Individually Bootable VHDs for Each Game

Posted: Fri Sep 25, 2020 3:45 pm
by throAU
I suspect that being gpl, FreeDOS would permit a distribution of a preconfigured boot VHD with a few different mister specific configs vis the boot menu.

I’m new to freedos but will see what I can nut out with it and maybe upload somewhere?

I remember the basics of what I used to need to run most things back under MS DOS but it was 30 years ago and might take me a little to translate it to freedos. 😂

Re: Individually Bootable VHDs for Each Game

Posted: Tue Oct 06, 2020 3:31 am
by madelk
This might be useful to noone, but I was working a little tonight on something that could batch create some VHDs. Once I get this to a better state I was thinking of running it against the 7000 DOS set and then HDD would be in a good starting state for future tweaking.

There's so much temperamental stuff with these old games that I figure a good starting point followed by some messing around with each game might be the best path. As they get sorted and working they could be sent to archive.org and maybe added to a smokemonster set?

Anyway, here's the start of my script: https://github.com/madelk/expandziptovhd

Re: Individually Bootable VHDs for Each Game

Posted: Tue Oct 06, 2020 10:54 am
by Tchucolate
There are indeed several thousand DOS games, but, like most systems, many of these would not be much cop. I think there is a place across ALL of the MiSTer cores for completionist sets of games, and also for curated.

Personally, as a 50 year old guy, Im not sure if I have time in my life to play several thousand games, or at least hundreds of games on each core, to find "hidden gems". Sad but true. Its a big enough task to play all the "rated" games I did not get to play.

For example, back in the day, I LOVED Infocom text adventures. Here in the UK,they were rare in retail, and I also did not always have the funds to buy them. But I KNOW that if I played the ones I did not have back then, Id have a decent return for my time.

So, I am certainly willing to play through curated sets of games, based maybe on top 10 games, by sales, during the whole 80s - 90s eras. This would, Im sure produce a MUCH more limited set of games, that certainly could be bundled in some way. Im not sure if the data for these charts exist. But Ideally, it would be an agregate of international sales charts, to stop it being to centric to the USA, for instance.

If we were to build a list of such titles, we can then think about different ways to cut the cake. For instance, we can have VHDs which are based on single years, these could be more completionist in nature. OR, single years, only containing top 10 games by sales. These would be much smaller, and more managable VHDs, which (you'd expect) a much higher quality threshold.

Alternatively, we can have VHDs that are themed by type, text adventures, graphical adventures, action, first person, and so on.

Now, is there a place where we can upload such VHDs? Ideally its somewhere that will be long term, free, and with decent tools for managing the files i.e. we HAVE to be able to delete files are old or which are mistakes

I can see 3 main libraries of VHD files
Yearly curated top 10-20 only games i.e. Best of 1989
Yearly completionist compilations i.e. ALL games of 1987
Compilations of game types i.e. Best Text Adventures

If think mosly yearly VHDs make sense, as games in a single year are DESIGNED to run in that eras hardware, so getting a DOS config that works with is more feasible. Some compilations, like text adventures, will almost certainly work on any version of DOS, so are less time period sensitive

I think having a VHD per game would be overkill, but maybe having a compilation as a standalone, with its own bootable DOS, and menu, would be more practical and easier to use than having separate SYSTEM and GAMES disks?

Re: Individually Bootable VHDs for Each Game

Posted: Tue Oct 06, 2020 11:54 am
by madelk
Maybe it's just the fascination of treating a PC like a game console with individual files for each game. Turning something so complex into something that is so plug and play that you pick your game from the Mister menu and it just boots reliably.
Having it work like other hdd based Mister cores would be very cool too, but there just isn't enough space on an 8gb disk. Although, now I think about it... The recent Mister update did allow scripting the mounting of CDs. I bet every game could fit on an 8gb hdd if no CD files were included. The CDs could be separate and mounted as part of the game launching

Re: Individually Bootable VHDs for Each Game

Posted: Tue Oct 06, 2020 12:39 pm
by Tchucolate
Im a PC man since about 1993, when my first job involved setting them up for customer demos, I worked for ICL, which later got swalled into Fujitsu. Are we revisiting the 1992 DOS machine to do work? Are we revisiting it to do 3D rendering on 3D Studio. For me, no. I lived that, and Im happy to use their modern equivalents that are a LOT more capable.

For games, YES, I would welcome a more console like experience, because with the ao486 core and VHD files we can actually have ANY experience we want with these machines. Build a normal working machine of the day, with Word or some kind of database software, or make targeted cores that make games just work.

The PC was a pain compared to consoles, lots of IRQs, hardware conflicts and .bat files, so why would you WANT to go through that pain to play a game. Me, Id rather load say, an RPG compilation VHD and just get on with playing some old classics like Ultima IV.

Get a 64GB MicroSD, and fill it with smaller VHDs that are targetted and I think that would be a good experience for those that want to just revistit or discover some old PC classic games.

Re: Individually Bootable VHDs for Each Game

Posted: Tue Oct 06, 2020 10:23 pm
by buttersoft
madelk wrote: Tue Oct 06, 2020 3:31 am Anyway, here's the start of my script: https://github.com/madelk/expandziptovhd
That's great! The steps don't seem hard to follow. Any catches though? I presume you need to setup the right autoexec.bat and config.sys files, or is this handled in the script?

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 5:02 am
by madelk
buttersoft wrote: Tue Oct 06, 2020 10:23 pm
That's great! The steps don't seem hard to follow. Any catches though? I presume you need to setup the right autoexec.bat and config.sys files, or is this handled in the script?
I just updated them quite a lot tonight. I have a note in the Readme about the boot disk I'm using "8-gb-dos-71-qemm.-7z". I believe I have the scripts working for doom and I want to try something to make it work nicely with cd based games with an auto mount (tomorrow). Once that's done I'm just going to spend some time getting my favourite games to work and upload their patch scripts so others can build them too

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 5:33 am
by sid
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/
The 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.

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 10:07 am
by Tchucolate
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.

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 10:37 am
by sid
Tchucolate wrote: Wed Oct 07, 2020 10:07 am Im wondering, can anyone recommend some sites, where these old DOS games can be downloaded.
I think the exodos collection is the most complete selection of all dos games. Just search for it

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 4:54 pm
by flynnsbit
sid wrote: Wed Oct 07, 2020 5:33 am
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/
The 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.
You mean something like this?

https://www.youtube.com/watch?v=tmSFSXE ... e=youtu.be

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 5:47 pm
by sid
flynnsbit wrote: Wed Oct 07, 2020 4:54 pm You mean something like this?
https://www.youtube.com/watch?v=tmSFSXE ... e=youtu.be
Wow! Sounds like a perfect solution for all games!

Re: Individually Bootable VHDs for Each Game

Posted: Wed Oct 07, 2020 7:50 pm
by Cebion
Google is your friend :) There are hundreds just use the term abandonware :)

Re: Individually Bootable VHDs for Each Game

Posted: Thu Oct 08, 2020 5:08 am
by madelk
I was able to get my scripts to a pretty good state so now they are mostly just per game configs being written. I really didn't expect some of these games to launch at all, or at least to run very poorly. But Dark Forces and Theme Hospital? Wow
20201007_233213.jpg
20201007_233213.jpg (5.02 MiB) Viewed 51473 times