Sunday, February 15, 2015

FMod - AbiatharOS

Today, I was doing some Windows deployments and reading about Windows PE (the boot images). I read that it's possible to create custom boot images, and I thought that sounded pretty interesting, so I checked it out. After some tinkering with the Deployment and Imaging Tools Environment console and some wrestling with out-of-date documentation, I managed to create a boot image that launches Abiathar.

Surprisingly, Abiathar actually worked - to some extent. I could create new level sets and mess with them all I wanted, but as soon as I tried to open or save (both of which open a Windows common dialog), Abiathar crashed immediately and the VM I was using rebooted. Also, since most items in the Help menu try to open a web browser and there is none in WinPE, nothing happens.

Before going into Visual Studio, I messed with the image some more and was able to change the WinPE desktop background picture from its blank purple to the Abiathar logo. I also successfully created an ISO file and booted from it in VirtualBox.

I spent some time poking around the code of Abiathar and determined that it wouldn't be too hard to get it working stably in WinPE. The following issues need to be addressed:

  • Where to load the config files from. Obviously, burning one into the image doesn't allow for much configurability. I rigged up a means of scanning all writable drives for a config file, and it works reasonably well.
  • What to do with the Help menu. I just had Abiathar detect whether it's running in PE and hide a bunch of menus if they would do bad things. The update checker is similarly disabled.
  • How to open and save files. I'm imagining a very basic home-grown file browser and an interface to switch between the real dialog and my custom one depending on PE-ness. (I want to keep these as the same code base.)
  • How to playtest the levels. I burned the portable version of DOSBox into the image and added a menu option for it if running in PE mode.
This might be a huge waste of time, but it's pretty fun. And who knows, maybe a lightweight bootable level editing CD might be a nice thing to have around.

No comments:

Post a Comment