Emulation Environments

An emulation environment describes a complete emulation setup:


The current EaaS implementation of an emulation environment has the following structure:

<emulationEnvironment xmlns="http://bwfla.bwl.de/common/datatypes">

    <!-- Header -->

    <!-- UI Options-->

    <!-- Drive Definitions -->

    <!-- Bindings -->

    <!-- Native Config -->



This schema is not stable and may be updated. With introduction of version tags the EaaS framework may provide compat layers and/or automated conversion.

Header Section

The emulation environment’s header components define fields common to all emulators:

  • id (string, REQUIRED) : unique identifier of the environment
  • description: descriptive information
    • title (string, REQUIRED)
    • os (string, REQUIRED)
  • arch (enumeration, resource spec): currently supported only be Qemu: i386, ppc
  • emulator (string, REQUIRED): a EaaS EmulatorBean implementation. An emulator bean integrates a specific emulator into the framework.
    • Supported beans:
      • BasiliskII (example)
      • Beebem (example)
      • DosBox (examples: [Doom](./examples/doom.env))
      • Hatari (example: [Atari](.examples/hatari_tOS206us.env))
      • Kegs (example)
      • PceAtari (example)
      • PceIbmPc (example)
      • PceMacPlus (example)
      • Qemu (examples: [Dos 6.2](./examples/dos620_cdrom.env), [Win 3.11](./examples/win311.env))
      • SheepShaver (examples: [MacOS9](./examples/macos9.env))
      • ViceC128 (example)
      • ViceC64 (example)


<emulationEnvironment xmlns="http://bwfla.bwl.de/common/datatypes">
        <title>Microsoft DOS 6.20 (CD-ROM)</title>
    <emulator bean="Qemu" />

    <!-- ... -->

UI Options

The UI Options allow to configure presentation features.

  • HTML5: HTML5 presentation options
    • pointer_lock (boolean): Enables the HTML5 pointer lock (more information here. Useful if the emulator or the operating system do not support absolute mouse positions (e.g. Windows 3.11).
    • clientKbdLayout (String): the user’s keyboard layout.



Drive Definitions

Drive definitions define usable drives of for an emulation environment. Drives may have empty data tags (e.g. to define an empty CDROM drive to be bound by a workflow) or predefined data sources (c.f. the Bindings section).

  • data (string, OPTIONAL): URL to a data source. Supported URL types are: http, nbd, binding, file.
  • type (Enumeration): Drive types: cdrom, floppy, disk, iso
  • iface, bus, unit: Emulator / bean specific, sees examples.

Example, defining three drives (floppy, cdrom and disk). The floppy and cdrom drive are unbound yet:




Bindings describes/defines data sources.

  • id (string, REQUIRED): ID of the binding to be referenced within an environment.
  • url (string, REQUIRED): URL to a data source.
  • access (Enumeration): copy or cow (copy on write).

Example, creates a new “main_hdd” binding to be used with a drive. The url references to an image file stored in the configured image-archive:

<binding id="main_hdd">

Native Config

The native config allows to pass emulator specific options to the emulator. See SheepShaver examples.