Individually Bootable VHDs for Each Game

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

The boot process sets up the core speed itself and everything else for me. No Interaction required other than picking standard pc at startup. What CPU speed do you get with the preset you use?

User avatar
HerrBerzerk
Posts: 240
Joined: Tue Feb 01, 2022 1:45 pm
Has thanked: 102 times
Been thanked: 31 times

Re: Individually Bootable VHDs for Each Game

Unread post by HerrBerzerk »

Bas wrote: Wed Jan 03, 2024 3:31 pm

The boot process sets up the core speed itself and everything else for me. No Interaction required other than picking standard pc at startup. What CPU speed do you get with the preset you use?

It starts as "User defined" with 90MHz L1&L2 ON

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

That should be fine. The sysctl program that runs inside the core's DOS environment flips the L1 to off and the CPU to 56Mhz. That does not reflect in the menu while it's running though.

I guess my main question right now is whether the Lemmings VHD works without any twiddling on the MiSTer side of things. It does for me but I don't like to claim success from n=1. If we get a few more successful tests here, I'll know what to do for the others and release them too in short order. Spending some quality time away from home with the family right now though, so I won't be able to do anything significant until the beginning of next week.

User avatar
HerrBerzerk
Posts: 240
Joined: Tue Feb 01, 2022 1:45 pm
Has thanked: 102 times
Been thanked: 31 times

Re: Individually Bootable VHDs for Each Game

Unread post by HerrBerzerk »

Bas wrote: Thu Jan 04, 2024 6:53 pm

I guess my main question right now is whether the Lemmings VHD works without any twiddling on the MiSTer side of things. It does for me but I don't like to claim success from n=1. If we get a few more successful tests here, I'll know what to do for the others and release them too in short order.

Unless I don't do something wrong, it does not work for me. I have to slow down the frequency manually, otherwise I can not select Music in the menu.

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

I pushed a few buttons from my phone. You'll find a new Lemmings build up on my website right now. This one should drop the core down to 30Mhz. instead of the earlier 56MHz. Lemmings isn't exactly CPU-hungry so we could go all the way down if need be. I haven't been able to test this one myself but I hope it'll work better for you!

User avatar
HerrBerzerk
Posts: 240
Joined: Tue Feb 01, 2022 1:45 pm
Has thanked: 102 times
Been thanked: 31 times

Re: Individually Bootable VHDs for Each Game

Unread post by HerrBerzerk »

I'm sorry, I tested several times now, but it is not configuring the system to allow music on Lemmings for me automatically. Perhaps someone else will test and give it a try?

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

What happens if you break out to DOS and twiddle the sysctl.exe itself manually? It's in C:\DRIVERS\AO486. If you hit a spot where it does work for you, I'll put it into my builds of Lemmings.

rcblanke
Posts: 7
Joined: Thu Feb 09, 2023 7:45 pm
Been thanked: 8 times

Re: Individually Bootable VHDs for Each Game

Unread post by rcblanke »

Hi Bas, thanks for your efforts to streamline the VHD creation process! I just tested a few games on MiSTer, most seem to work. BTW a couple of the games cannot be downloaded because the game.zip is missing in the website link (for example, 'Another World').

Lemmings is failing because of a typo in autoexec.bat (C:\DIVERS\... instead of C:\DRIVERS\...)

Will try to make a summary of my findings for all available games, tomorrow.

Regards,
Ronald

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Hi Ronald,
Good find on Lemmings! That's somethiing I could quickly fix online so a new build will be up in about 15 minutes from now (you'll see that the build is new when the post date of my DOSContainer releases page flips from the 6th of January to the 9th). The file for Another World is present on the FTP server so that shouldn't really be a problem unless there's something wonky with the FTP service (will check when I get home).

Thanks for testing!!

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Did some catching up to @NML32's homework. A whole slew of additions made the list today. I haven't been able to test them all myself yet, but the ones I did pull through PCEM worked just fine. I still have some work to do on enabling CD-ROM games, but I'm getting there. Day job gets in the way, as it tends to do.. ;-)

New additions:

  • Altered Destiny
  • The Black Cauldron (+remake)
  • Bio Menace 1, 2 and 3
  • Bust-a-Move
  • Cannon Fodder
  • Where in the World is Carmen San Diego?
  • Gold Rush!
  • Codename Iceman
  • King's Quest I
  • King's Quest I SCI
  • King's Quest II
  • King's Quest III
  • King's Quest IV (cracked)
  • King's Quest V
  • Laura Bow 1
  • Laura Bow 2
  • Loom (floppy)
  • Leisure Suit Larry 1 VGA
  • Leisure Suit Larry 5
  • Manhunter 1 & 2
  • Asterix & Obelix
  • The Oregon Trail Deluxe
  • Police Quest I - IV
  • Teenage Mutant Ninja Turtles
  • Tyrian

Thanks for all the work @NML32!

rcblanke
Posts: 7
Joined: Thu Feb 09, 2023 7:45 pm
Been thanked: 8 times

Re: Individually Bootable VHDs for Each Game

Unread post by rcblanke »

I have updated RealLarry's compatibility chart with my findings.

AmintaMister
Posts: 294
Joined: Thu Sep 16, 2021 10:54 pm
Has thanked: 766 times
Been thanked: 47 times

Re: Individually Bootable VHDs for Each Game

Unread post by AmintaMister »

Bas wrote: Tue Jan 09, 2024 6:26 pm

Did some catching up to @NML32's homework. A whole slew of additions made the list today. I haven't been able to test them all myself yet, but the ones I did pull through PCEM worked just fine. I still have some work to do on enabling CD-ROM games, but I'm getting there. Day job gets in the way, as it tends to do.. ;-)

New additions:

  • Altered Destiny
  • The Black Cauldron (+remake)
  • Bio Menace 1, 2 and 3
  • Bust-a-Move
  • Cannon Fodder
  • Where in the World is Carmen San Diego?
  • Gold Rush!
  • Codename Iceman
  • King's Quest I
  • King's Quest I SCI
  • King's Quest II
  • King's Quest III
  • King's Quest IV (cracked)
  • King's Quest V
  • Laura Bow 1
  • Laura Bow 2
  • Loom (floppy)
  • Leisure Suit Larry 1 VGA
  • Leisure Suit Larry 5
  • Manhunter 1 & 2
  • Asterix & Obelix
  • The Oregon Trail Deluxe
  • Police Quest I - IV
  • Teenage Mutant Ninja Turtles
  • Tyrian

Thanks for all the work @NML32!

Thanks for your great and precious work!

I would like contribute too, I'm on MacOS, can you take a look at the issue I've opened on Gitlab?

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

For the possibly wider community of Mac users: something I wasn't aware of, but macOS switched to ZSH a few major releases ago and that won't work. You must use Bash for the framework script. Bash can be installed through Homebrew (https://brew.sh). Once you have Homebrew up and running, it's a matter of running 'brew install bash', making the 'build.sh' script executable 'chmod +x build.sh' and then invoking the build script directly by calling ./build.sh <game.yaml>. The shebang in build.sh will take care of finding Bash on its own. It might be needed to log out and back in after installing Bash the first time.

None of this will change your default user shell or impact the rest of your system in any way. Bash is simply added as an option. Scripts that don't want to use it, won't even notice it's there.

AmintaMister
Posts: 294
Joined: Thu Sep 16, 2021 10:54 pm
Has thanked: 766 times
Been thanked: 47 times

Re: Individually Bootable VHDs for Each Game

Unread post by AmintaMister »

Bas wrote: Wed Jan 10, 2024 9:49 am

For the possibly wider community of Mac users: something I wasn't aware of, but macOS switched to ZSH a few major releases ago and that won't work. You must use Bash for the framework script. Bash can be installed through Homebrew (https://brew.sh). Once you have Homebrew up and running, it's a matter of running 'brew install bash', making the 'build.sh' script executable 'chmod +x build.sh' and then invoking the build script directly by calling ./build.sh <game.yaml>. The shebang in build.sh will take care of finding Bash on its own. It might be needed to log out and back in after installing Bash the first time.

None of this will change your default user shell or impact the rest of your system in any way. Bash is simply added as an option. Scripts that don't want to use it, won't even notice it's there.

Thanks a lot!

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Macs kinda suck though. Bash is limited to 3.x by default, which is not good enough. Check this out for a fix:

https://medium.com/@sisiliang/watch-out ... bcabcfc549

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

I got a heads-up this morning that a number of links on the release page were broken. They're fixed now!

AmintaMister
Posts: 294
Joined: Thu Sep 16, 2021 10:54 pm
Has thanked: 766 times
Been thanked: 47 times

Re: Individually Bootable VHDs for Each Game

Unread post by AmintaMister »

Bas wrote: Thu Jan 11, 2024 10:33 am

I got a heads-up this morning that a number of links on the release page were broken. They're fixed now!

Hi! Your FTP is not working these days...

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Firewalls, NAT and the FTP protocol are fun like that! I'm on IPv6 myself so I didn't even notice anything was broken, but things are back up on IPv4 as well now. Thanks for the notification.

Note to self: implement proper monitoring.

User avatar
NML32
Posts: 296
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 280 times
Been thanked: 50 times

Re: Individually Bootable VHDs for Each Game

Unread post by NML32 »

Is there a breakdown of the settings used for each a0486 CPU Preset?
I'd like to use sysctl.exe to set the CPU to match some of the presets.

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Added another update from NLM32 yesterday!

User avatar
NML32
Posts: 296
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 280 times
Been thanked: 50 times

Re: Individually Bootable VHDs for Each Game

Unread post by NML32 »

@Bas
Call of Cthulhu - Shadow of the Comet needs DEVICEHIGH=C:\DOS\EMM386.exe i=e000-efff D=48
Is there a way to add custom settings to EMM386? I'm trying to add D=48 to the EMM386 line.

Thanks.

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Not yet, unfortunately. It's not that hard to add such a feature, so I'll add it to my list of todo's. You may have noticed a bit of a slowdown on my end though, that's my day job and other obligations getting in the way. You can track the issue here:

https://gitlab.com/doscontainer/framework/-/issues/29

Probably superfluous to mention this, but everyone is most welcome to contribute patches if I'm going too slow.

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

I managed to code the requested feature just now. Builds of the existing set of games seem to be working just fine. You can now add an additional parameter to the YAML files called "emm386params". Specify a string there, and it will be added behind EMM386.EXE/SYS. The assumption here is that you know what you're doing when you need this one, so no hand-holding from the framework. If you don't include this setting, the framework does something generally sensible (it sets i=e000-efff) and leaves it at that.

Note: added an external dependency on the printf utility. Tested on Linux and FreeBSD. Should work on Mac as well but untested there. Incremented framework version to 0.0.3.

User avatar
NML32
Posts: 296
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 280 times
Been thanked: 50 times

Re: Individually Bootable VHDs for Each Game

Unread post by NML32 »

Bas wrote: Mon Jan 29, 2024 3:23 pm

I managed to code the requested feature just now. Builds of the existing set of games seem to be working just fine. You can now add an additional parameter to the YAML files called "emm386params". Specify a string there, and it will be added behind EMM386.EXE/SYS. The assumption here is that you know what you're doing when you need this one, so no hand-holding from the framework. If you don't include this setting, the framework does something generally sensible (it sets i=e000-efff) and leaves it at that.

Note: added an external dependency on the printf utility. Tested on Linux and FreeBSD. Should work on Mac as well but untested there. Incremented framework version to 0.0.3.

Thank you!!
I'll check it out when I get home.
The CD verssion of Call of Cthulhu - Shadow of the Comet needs D=48. The floppy versions were okay with the default settig.

I appricate the quick update. :)

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

CD images were not an original concern for this tool The problem: they are separate from the VHD file and generally are a pain to package alongside with the VHD. The tool should be sweet and simple: select a VHD, boot, play.

CD images add a complexity to this. The what-if here: let's introduce something of a convention by putting all CD images in /media/fat/games/AO486/CD by default and allow the user to override this path for their own builds?

The CD image itself can be its own distfile just like the game's other elements. The framework already handles multiple distfiles. What the framework does NOT handle, is packaging both a VHD and a CD image into the final build. So that still needs some work.

The name of the CD image also needs to be encoded into the VHD and hence the YAML for the hosted OS to be able to mount it on its own. The download would then consist of a ZIP-file that contains a VHD in the archive's root, and the CD image in the CD subdir. Extract the ZIP-file in /media/fat/games/AO486 and the rest should be automatic.

User avatar
NML32
Posts: 296
Joined: Sun May 24, 2020 6:57 pm
Has thanked: 280 times
Been thanked: 50 times

Re: Individually Bootable VHDs for Each Game

Unread post by NML32 »

Bas wrote: Mon Jan 29, 2024 3:23 pm

I managed to code the requested feature just now. Builds of the existing set of games seem to be working just fine. You can now add an additional parameter to the YAML files called "emm386params". Specify a string there, and it will be added behind EMM386.EXE/SYS. The assumption here is that you know what you're doing when you need this one, so no hand-holding from the framework. If you don't include this setting, the framework does something generally sensible (it sets i=e000-efff) and leaves it at that.

Note: added an external dependency on the printf utility. Tested on Linux and FreeBSD. Should work on Mac as well but untested there. Incremented framework version to 0.0.3.

When I add emm386params: i=e000-efff D=48
This is what is added to the config.sys DEVICEHIGH=C:\DOS\EMM386.EXE i=e000-efff\ D=48

a \ is added between each space.

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

I'm starting to get annoyed by my own choice of Bash as the language for this script... but it's fixed and the previously new dependency on printf is also gone from the script.

User avatar
limi
Top Contributor
Posts: 636
Joined: Sun May 24, 2020 6:53 pm
Has thanked: 145 times
Been thanked: 445 times

Re: Individually Bootable VHDs for Each Game

Unread post by limi »

Eventually, you will end up using Python (hello from AmigaVision, where everything is either Python or AmigaShell) 😅

Bas
Top Contributor
Posts: 550
Joined: Fri Jan 22, 2021 4:36 pm
Has thanked: 70 times
Been thanked: 256 times

Re: Individually Bootable VHDs for Each Game

Unread post by Bas »

Initial attempt at this was in Rust, and that still isn't abandoned. I deeply dislike how Mtools is taking liberties with MBR data structures to such an extent that MS-DOS 4.00 and lower are very iffy to downright broken right now even though I want to support systems down to the IBM XT as faithfully as possible. That means going down all the way to MS-DOS 2.00 with hard disk support. Mtools won't give me that. Oh and parsing YAML from Bash is like pulling teeth on a rabid warthog.

I would really love for DOSContainer to become a neat single statically compiled binary that you can just run from the MiSTer itself.. but it's called a hobby for a reason, right? ;-)

cursedverses
Posts: 156
Joined: Sun May 24, 2020 9:13 pm
Has thanked: 158 times
Been thanked: 22 times

Re: Individually Bootable VHDs for Each Game

Unread post by cursedverses »

Bas wrote: Tue Jan 30, 2024 2:28 pm

Oh and parsing YAML from Bash is like pulling teeth on a rabid warthog.

My mind has been boggling with how that was working out - I'll have to look at how you did it at some point! It's been a while since I got heavy with Bash script.

Post Reply