Page 4 of 7
Re: Individually Bootable VHDs for Each Game
Posted: Wed Nov 29, 2023 3:47 pm
by Bas
Here's a page on my website that I'll be updating as things progress for now:
https://www.area536.com/posts/doscontainer-releases/
This URL won't change for the foreseeable future, so by all means bookmark this if you want the builds. I'm absolutely going to fold under the first C&D I receive of course, but I do honestly wonder how Archive.org does get away with what it is doing because legally it's doing the exact same thing.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 12:39 pm
by Bas
Lemmings and Oh no! More Lemmings are now added (hope to add Xmas Lemmings later today). Had to write a postprocessor feature into the build framework to permit fudging the disk check copy protection in the original Lemmings. It's big missing conceptual features like this that still keep me from open sourcing the build framework right now. The framework is now close to 1000 lines of Bash code with a sprinkling of external utils for good measure and zero documentation.
How to precisely handle CD image files is another big feature I'm still contemplating. I can add IMGSET to the VHD's, but I can't predict where the end user will store their CD images so I'm looking at making that configurable at the build level so that everyone can bake their own VHD builds: have your cake and eat it too. Once that's all done, documented and working in a STABLE way, I promise I will release the whole shebang to the world and accept outside contributions. That'll be something of a New Year's gift from me to the world though, after which I expect to return much of my focus to porting Leisure Suit Larry to the C64.. but that's a whole different story.
Why Lemmings though? Apart from the fact that it's a major classic, Lemmings got priority because my 6 year-old expressed an interest and I don't want to babysit his MiSTer use too much. So that's also a pragmatic factor for me: I'd rather teach him current Linux skills than archaic MS-DOS incantations at this point.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 3:14 pm
by Bas
..and final drop of the day, one of my all-time favorites: Master of Orion.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 4:45 pm
by flynnsbit
Bas wrote: ↑Thu Nov 30, 2023 12:39 pm
Lemmings and Oh no! More Lemmings are now added (hope to add Xmas Lemmings later today). Had to write a postprocessor feature into the build framework to permit fudging the disk check copy protection in the original Lemmings. It's big missing conceptual features like this that still keep me from open sourcing the build framework right now. The framework is now close to 1000 lines of Bash code with a sprinkling of external utils for good measure and zero documentation.
How to precisely handle CD image files is another big feature I'm still contemplating. I can add IMGSET to the VHD's, but I can't predict where the end user will store their CD images so I'm looking at making that configurable at the build level so that everyone can bake their own VHD builds: have your cake and eat it too. Once that's all done, documented and working in a STABLE way, I promise I will release the whole shebang to the world and accept outside contributions. That'll be something of a New Year's gift from me to the world though, after which I expect to return much of my focus to porting Leisure Suit Larry to the C64.. but that's a whole different story.
Why Lemmings though? Apart from the fact that it's a major classic, Lemmings got priority because my 6 year-old expressed an interest and I don't want to babysit his MiSTer use too much. So that's also a pragmatic factor for me: I'd rather teach him current Linux skills than archaic MS-DOS incantations at this point.
This is cool, are you using eXoDOS as the base for where you are getting your games? If so, I wonder if your process could be automated into using exodosconverter (https://github.com/Voljega/ExoDOSConverter) so you can just select the games you want and it output VHDs for each. Here is a vhd creator script that memmaker did if you need that: https://github.com/memmaker/mister_dos_ ... ter/vhd.py
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 4:58 pm
by Bas
I tried basing off eXoDOS but that became more of a hassle than it seemed worth because of subtle differences in many places so I abandoned that. Now I'm pulling every game off archive.org in the most authentic versions I can find, run the installer, write a boot menu for popular hardware choices and pack them up.. so the hard way. By far the most time goes into creating the boot menus because most games are different.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 5:11 pm
by flynnsbit
Bas wrote: ↑Thu Nov 30, 2023 4:58 pm
I tried basing off eXoDOS but that became more of a hassle than it seemed worth because of subtle differences in many places so I abandoned that. Now I'm pulling every game off archive.org in the most authentic versions I can find, run the installer, write a boot menu for popular hardware choices and pack them up.. so the hard way. By far the most time goes into creating the boot menus because most games are different.
Out of anyone on the planet. I know this pain.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 6:17 pm
by HerrBerzerk
Bas wrote: ↑Thu Nov 30, 2023 12:39 pm
Lemmings and Oh no! More Lemmings are now added
Hello, tested some games. Lemmings 1 has strange scrambled graphics with wrong colors on my system and only pc speaker.
Lemmings 2 asks for handbook pages as copy protection and all 3 Lemmings have only PC-Speaker, should have Soundblaster Effects and with enough memory also music.
Masters of Orion doesn't start, "not enough expanded memory". SQ3 and PoP work fine though.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Nov 30, 2023 6:29 pm
by Bas
Thanks! I'll look into these tomorrow!
Re: Individually Bootable VHDs for Each Game
Posted: Mon Dec 04, 2023 11:52 pm
by Newsdee
flynnsbit wrote: ↑Thu Nov 30, 2023 5:11 pm
Out of anyone on the planet. I know this pain.
The ExoDOS comverter was quite useful, but I suppose automating all of it is more work than a fresh install?
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 05, 2023 11:56 am
by Bas
Small update: my silence here means I'm working on my build framework to support versions of MS-DOS 4.01 up to 6.22 and everything in between plus DR/IBM-DOS and Win95/98 DOS in later iterations, a whole slew of mouse drivers and tweaks to those, memory management by QEMM386 as well as EMM386, proper CD-ROM support, etc. I don't always have easy access to my MiSTer, so testing happens in bursts for me. The result that's beginning to surface now is a very quick method to spit out large numbers of VHD's with all sorts of subtle differences between them, so it becomes easy to make reproducible tests to find out which one works best.
By the way, I'm not using eXoDOS because that collection is more often than not "tainted" by all manner of patches and mods that weren't part of the original games. I'm only using their zipfiles in cases where I can't find originals of the games in question. I'm also going to publish many "duplicates" in different stages of patching/expansion from the original vendor. Unpatched versions of games tend to be lost to history, even though they do have relevance.
As soon as I update my website's games page again, I'll add a column to indicate the maturity of the build so you can actually see how much testing was done on each build and if a game even works on MiSter at all. This is all a work in progress between jobs and family life though, so patience is a virtue here..
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 05, 2023 12:43 pm
by akeley
For the best versions I recommend getting Total Dos Collection and Gruby's Floppy Images pack. These will save you a lot of browsing.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Dec 14, 2023 10:15 am
by Bas
I may be going just a little bit overboard here, but my framework now eats YAML instead of raw Bash for game configuration. I'd say something like this looks reasonable for human authors to create:
Code: Select all
metadata:
title: Quest for Glory I
publisher: Sierra OnLine
year: 1989
comment: Original EGA version
diskname: qfg1.vhd
disksize: 10
distfiles:
- name: qfg1.zip
checksum: a470936fed52d6e4cffd0ece2bbc3a9c50ffe0388b9ca89d9edaad90455aac39
drivers:
- CHOICE
- CUTEMOUSE
gamefiles:
- QFG1
OS: MSDOS500
AUTOEXEC: |
PATH=C:\DOS
cd C:\QFG1\DOSK8S
RUN.BAT
CONFIG: |
..as opposed to
Code: Select all
DISKNAME="qfg1.vhd"
DISKSIZE=10
DISKLABEL="QFG1"
declare -A DISTFILES=(
["qfg1.zip"]="a470936fed52d6e4cffd0ece2bbc3a9c50ffe0388b9ca89d9edaad90455aac39"
)
DRIVERS=(
"CHOICE"
"CUTEMOUSE"
)
GAMEFILES=(
"QFG1"
)
OS="MSDOS500"
AUTOEXEC=$(cat << EOF
PATH=C:\DOS
cd C:\QFG1\DOSK8S
RUN.BAT
EOF
)
CONFIG=$(cat << EOF
EOF
)
..and in other news I can now do builds for MS-DOS from version 4.01 up to 6.22 and every official release in between. Gearing up quite nicely for a full release by the end of the year. Oh and I got Windows 3.0 and 3.1 to run as well, but there's a huge number of moving parts in there so that's.. a thing.. for later. My memories of WIN.INI and SYSTEM.INI are a bit rusty.
Re: Individually Bootable VHDs for Each Game
Posted: Thu Dec 14, 2023 6:21 pm
by AmintaMister
Bas wrote: ↑Thu Dec 14, 2023 10:15 am
I may be going just a little bit overboard here, but my framework now eats YAML instead of raw Bash for game configuration. I'd say something like this looks reasonable for human authors to create:
Code: Select all
metadata:
title: Quest for Glory I
publisher: Sierra OnLine
year: 1989
comment: Original EGA version
diskname: qfg1.vhd
disksize: 10
distfiles:
- name: qfg1.zip
checksum: a470936fed52d6e4cffd0ece2bbc3a9c50ffe0388b9ca89d9edaad90455aac39
drivers:
- CHOICE
- CUTEMOUSE
gamefiles:
- QFG1
OS: MSDOS500
AUTOEXEC: |
PATH=C:\DOS
cd C:\QFG1\DOSK8S
RUN.BAT
CONFIG: |
..as opposed to
Code: Select all
DISKNAME="qfg1.vhd"
DISKSIZE=10
DISKLABEL="QFG1"
declare -A DISTFILES=(
["qfg1.zip"]="a470936fed52d6e4cffd0ece2bbc3a9c50ffe0388b9ca89d9edaad90455aac39"
)
DRIVERS=(
"CHOICE"
"CUTEMOUSE"
)
GAMEFILES=(
"QFG1"
)
OS="MSDOS500"
AUTOEXEC=$(cat << EOF
PATH=C:\DOS
cd C:\QFG1\DOSK8S
RUN.BAT
EOF
)
CONFIG=$(cat << EOF
EOF
)
..and in other news I can now do builds for MS-DOS from version 4.01 up to 6.22 and every official release in between. Gearing up quite nicely for a full release by the end of the year. Oh and I got Windows 3.0 and 3.1 to run as well, but there's a huge number of moving parts in there so that's.. a thing.. for later. My memories of WIN.INI and SYSTEM.INI are a bit rusty.
Fantastic declarative solution! I'm looking forward for the tool release, thanks for your precious work!
Re: Individually Bootable VHDs for Each Game
Posted: Thu Dec 14, 2023 9:40 pm
by cursedverses
Is it worth trying FreeDOS with any of these games? I heard the latest version is way more compatible than the previous version...
Re: Individually Bootable VHDs for Each Game
Posted: Fri Dec 15, 2023 6:39 am
by Bas
FreeDOS could be added but there's not much benefit for old games. Will do so once I get all HDD-installable MS versions set up.
Re: Individually Bootable VHDs for Each Game
Posted: Sat Dec 16, 2023 6:19 pm
by Bas
Last tasks before initial release:
- Writing full docs
- Writing unit tests that cover the whole framework
Functionally it looks like we have lift-off on version 0.1 of DOSContainer. Now writing unit tests is crummy business, but fortunately we have generative AI to do a lot of the boring grunt work on that nowadays. Things are looking good for Christmas!
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 12:05 pm
by RealLarry
Things are working better and better, thanks for that handy tool! But, please!, add the parameter /TESTMEM:OFF to himem.sys in config.sys
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 12:06 pm
by Bas
Good one.. of course emulated RAM is always OK.
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 12:18 pm
by Bas
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 12:21 pm
by RealLarry
...already checked, tested and can confirm that it is working with a significant boost. Yikes!
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 1:06 pm
by RealLarry
I see that you have changed "sed" to "gsed". I'm using ArchLinux and there is no gsed; if I change that back to sed in framework.sh, everything is still working...so what's the point of gsed?
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 1:15 pm
by Bas
FreeBSD and its distinction between sed and gsed, which is niche but is also how MacOS works.. which is less niche. Can you report an issue for it? Some tools need a slightly more robust detector.
There's a more serious bug right now that kills the fetching of distfiles for me completely.. that code could also do with some more sanity.
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 2:41 pm
by Bas
Sed detection works. Found some boilerplate in an older script of mine that I could adapt. Now back to the other bugs.. aggravating how Arch does add gawk for AWK.
Re: Individually Bootable VHDs for Each Game
Posted: Tue Dec 19, 2023 3:43 pm
by Bas
Re: Individually Bootable VHDs for Each Game
Posted: Sat Dec 23, 2023 3:19 pm
by Bas
Kudos to @RealLarry for creating a whole bunch of game configurations! They're in the repo:
https://gitlab.com/doscontainer/games
Re: Individually Bootable VHDs for Each Game
Posted: Sat Dec 23, 2023 5:00 pm
by NML32
Thank you for the additions.
I'm getting an error building Terminal Velocity tveloc.yaml
Checksum verification failed for tveloc.zip
Re: Individually Bootable VHDs for Each Game
Posted: Sat Dec 23, 2023 5:19 pm
by RealLarry
NML32 wrote: ↑Sat Dec 23, 2023 5:00 pmI'm getting an error building Terminal Velocity tveloc.yaml
Checksum verification failed for tveloc.zip
Thanks for reporting. This is fixed now. Must have been a problem with in (my) file cache.
Re: Individually Bootable VHDs for Each Game
Posted: Sun Dec 24, 2023 9:52 am
by HerrBerzerk
RealLarry wrote: ↑Sat Dec 23, 2023 5:19 pm
Thanks for reporting. This is fixed now. Must have been a problem with in (my) file cache.
Are the already built containers downloadable somewhere or is the project designed so that everyone has to build their own containers?
Re: Individually Bootable VHDs for Each Game
Posted: Sun Dec 24, 2023 10:33 am
by Bas
For now you build your own. I'm still considering how to connect GitLab pipelines to the repo and have automated builds from there. If you know GitLab CI and/or Docker welk, raise your hand please.
Re: Individually Bootable VHDs for Each Game
Posted: Sun Dec 24, 2023 10:37 am
by HerrBerzerk
Bas wrote: ↑Sun Dec 24, 2023 10:33 am
For now you build your own.
I have to take a deeper look, but I'm afraid not many ppl (incl. me) are able to do this