Emulation Documentation—PAFDAO Project

Dianne Dietrich Contents

1 Overview4

2 Selection 11

2.1 Examples of determining compatible ...... 14

3 General Emulator Configuration and Setup 18

4 Emulating Apple/ systems with Basilisk II and SheepShaver 19

4.1 Settings...... 20

4.2 ROMs for Apple/Macintosh Emulation...... 21

4.3 File with installed ...... 22

4.4 Running the emulators and loading an artwork...... 23

5 Emulating PC-compatible systems with QEMU 46

5.1 Settings...... 47

5.2 Disk Image File with installed Operating System...... 48

5.3 Running the emulator and loading an artwork...... 49

5.4 Process-level emulation—WineHQ and QEMU user mode...... 56

Appendix A Compiling notes for Basilisk II and Sheepshaver executables 58

1 Appendix B Creating a new disk image file for Basilisk II and SheepShaver and installing an operating system 62

Appendix Installation of QEMU 94

Appendix D Creating a disk image file for the hard disk for QEMU from scratch 95

2 List of Tables

1.1 Recommended emulators for access...... 5

1.2 Emulators tested by project team...... 6

2.1 Recommended starting points for emulators based on system requirements and creation year of work...... 12

4.1 Apple ROMs used by project team for testing and access...... 21

4.2 Disk image files and corresponding installed Macintosh operating systems for Basilisk II and Sheepshaver...... 22

5.1 Disk image files and corresponding installed Windows operating systems for QEMU...... 48

3 1— Overview

The PAFDAO project team explored emulation as a strategy to provide “best feasible access” to works whose system requirements specify now-obsolete hardware and software. Various emulators were tested to determine their suitability for providing access to the materials in the Goldsen collection on contemporary hardware. Emulation requirements were drawn from an analysis of the stated system requirements of individual items in the collection; the project team found that the selected emulators and virtual machines supported the majority of the system requirements indicated by individual artworks in the testbed collection.

This document will describe the emulators chosen by the project team to provide the “best feasible access” to the majority of artworks in the collection.

The specific emulators the project recommends for access are listed in Table 1.1. For each em- ulator listed in the table, this document will provide a description of any auxiliary files needed to access an artwork using the respective emulator with along with step-by-step instructions on their use. Additional notes and caveats drawn from the project team’s experiences will also be included in this documentation. Additional details, such as installation/setup or compiling notes will be included in AppendixA.

4 Emulator Guest System(s) Emulated Basilisk II [1] Macintosh systems with a 68K (generally until 1994a) (includes IIci, Quadra); Macintosh .5 through OS 8.1 SheepShaver [2] Macintosh systems with a PowerPC [3] (1994-2006) processor (in- cludes ); Macintosh System 7.5 through OS 9.0.4 QEMU [4,5] b PC systems with processorsc

Table 1.1: Recommended emulators for access.

It is important to note here additional emulator software that the project team investigated or tested throughout the course of the project. The list of software below includes some projects that appeared, in 2013-2014, to be abandoned or no longer in use. Some software is actively developed, and may be considered as part of a future access strategy, given appropriate resources. Project team notes are included in Table 1.2. Emulators are listed in alphabetical order.

In Computer Science, there is a distinction between “” and “emulation” soft- ware; the project team investigated software that fell under both of these categories and did not limit by one or the other. The project team uses the term “emulation” and “emulator” to connote any strategy of accessing an artwork on a contemporary system using a program that allows one to run an guest operating system, including guest operating systems that may be originally compatible with another hardware platform than the host machine.

aA review of consumer Apple computers (on Wikipedia) suggests that produced up until 1993/1994 would have 68K processors. bWhile QEMU has the capability to emulate multiple systems, the project team used it primarily for emulating PC systems. cThe project team also tested WineHQ for running individual processes without emulating an entire guest operating system; details are provided in section 5.4.

5 Table 1.2: Emulators tested by project team.

Emulator Guest System(s) Emulated Project Team Notes [6] x86 PC emulator (and can be The project team did test out this compiled to include x86-64). software, but found it difficult to run; therefore, the project team did not test it with any of the Goldsen artworks. As it is cur- rently actively developed [7], it may be explored as a future op- tion for access. DOSBox [8] Intel x86 PC. This is mostly geared towards running DOS-based programs, as it emulates a x86 PC with a “DOS-like command prompt.” [9] Its main goal is to get DOS- based games running on current systems. Since the Goldsen art- works require some version of Mi- crosoft Windows, it may not be the ideal method for access. JMESS Same as MESS; below. This is a browser-based port of (Javascript MESS (see entry for MESS). It MESS) [10] appears to be a standalone sys- tem built to interact with a suite of pre-selected games on specific consoles. The project team could not test this with the Goldsen art- works. (Table 1.2 – Continues on page.)

6 Emulator Guest System(s) Emulated Project Team Notes MESS (Multi Many guest systems; see Sup- The project team tested this soft- Emulator Super ported Systems [12] in documen- ware out in 2013 and found it dif- System) [11] tation. Part of MAME project, ficult to get a guest system run- and as of 2014, under active de- ning (and thus, could not test velopment. [13, 14] it with a Goldsen artwork). It may be worth future investiga- tion, as it comes highly recom- mended by an advisor on the grant and it may include CRT emulation. At the time of testing, MESS may not support the Mac- intosh PowerPC architecture; ad- ditional possible limitations were found on a Macintosh emulation site. [15] Mini vMac [16] Early Macintosh systems (from While this seems to still be un- 1984-1996) running 68K proces- der active development as of 2014 sors. [17], the project team noted that its focus appeared to be much earlier Macintosh computers than those indicated in the system re- quirements of the Goldsen collec- tion. This software was not tested by the project team. PearPC [18] PowerPC architecture. Development appears to have stalled since 2011. [19] While this does emulate a PowerPC Macintosh, it only supports OS 10.1 through 10.4. The ma- jority of the Goldsen artworks require older Macintosh systems than this. The project team did not test PearPC for this reason, but notes it could be useful for future work in this area. (Table 1.2 – Continues on next page.)

7 Emulator Guest System(s) Emulated Project Team Notes VirtualBox [20] Virtualizing x86 and The project team did use and AMD64/Intel64. test this software for accessing Windows-based works. Specif- ically, a guest system running Windows2000 was used as a demo (with VirtualBox) because it was rather straightforward to run on the department’s current Macin- tosh laptop. It can be consid- ered a viable alternative to using QEMU to access Windows-based artworks. It is important to note that VirtualBox isn’t technically “emulation” as other software is. [21]

8 References

[1] The Official Basilisk II Home Page. url: http://basilisk.cebix.net/. [2] The Official SheepShaver Home Page. url: http://sheepshaver.cebix.net/. [3] PowerPC - Wikipedia, the free encyclopedia. url: http://en.wikipedia.org/w/ index.php?title=PowerPC&oldid=637595599. [4] QEMU. url: http://wiki.qemu.org/Main_Page. [5] QEMU Emulator User Documentation. url: http://wiki.qemu.org/download/ qemu-doc.html. [6] bochs: The Open Source IA-32 Emulation Project (Home Page). url: http://bochs. .net/. [7] bochs 2.6.7 Release notes. bochs 2.6.7 Release notes. url: http://svn.code.sf.net/ p/bochs/code/tags/REL_2_6_7_FINAL/bochs/CHANGES. [8] DOSBox, an x86 emulator with DOS. url: http://www.dosbox.com/. [9] DOSBoxWiki. url: http://www.dosbox.com/wiki/Main_Page. [10] The Javascript MESS. url: http://jsmess.textfiles.com. [11] Welcome to the MESS Wiki! [MESS]. url: http://www.mess.org/. [12] Supported systems. url: http://www.progettoemma.net/mess/sysset.php. [13] Previous MAME Releases. url: http://www.mamedev.org/oldrel.html (visited on 03/23/2013). [14] Previous MAME Versions - MAMEDEV Wiki. url: http://wiki.mamedev.org/ index.php/Previous_MAME_Versions. [15] MESS [E-Maculation wiki]. url: http://www.emaculation.com/doku.php/mess. [16] Mini vMac - early Macintosh emulator. url: http://www.gryphel.com/c/minivmac/. [17] Gryphel Project News. url: http://www.gryphel.com/c/news/index.html. [18] PearPC - PowerPC Architecture Emulator. url: http://pearpc.sourceforge.net/. [19] PearPC - PowerPC Architecture Emulator - Downloads. url: http://pearpc.sourceforge. net/downloads. [20] Oracle VM VirtualBox. url: https://www.virtualbox.org/.

9 [21] Virtualization – Oracle VM VirtualBox. url: https://www.virtualbox.org/wiki/ Virtualization.

10 2— Emulator Selection

The following should be taken into consideration when selecting an appropriate emulator for an artwork: the work’s original stated system requirements, including any included readme files and onscreen and the year of publication of the work. It may also be necessary to consult the system requirements of the target operating system for additional guidance in setting up the guest system. In cases where system requirements information is unclear or insufficient, the project team offers some guidance drawn from its experience analyzing the files contained on the discs that make up the Goldsen artwork. This is located in Section 2.1. Table 2.1[1,2,3,4] provides an overview of the process of choosing an emulator.

11 Compatible Processor Emulator Year of Art- Contemporaneous Platforma Identified Needed work Operating Sys- temsb Apple/Macintosh Motorola Basilisk II 1996 and before System 7, OS 7.6d 68Kc 1997–1999 OS 8 (8.0-8.6) PowerPCe SheepShaver 1996 and before System 7, OS 7.6 1997–1999 OS 8 (8.0-8.6) 1999–2001 OS 9 (9.0-9.2) PC/Windows n/af QEMU 1994 and before Windows 3.1g 1995–1999 , Windows NT 4.0, Windows 98, Windows 98SE 2000–2001 Windows ME, Windows XP,

Table 2.1: Recommended starting points for emulators based on system requirements and creation year of work.

It is important to note that there are cases where stated system requirements are either miss- ing, incomplete, or ambiguous, and it is difficult to infer from publication year to determine a suitable emulator. In these cases, the project team found the following guidelines helpful:

1. If no information is given, it is possible to look at the filesystems present on the disk to determine whether the work might be compatible with a Macintosh system, a Windows system, or both. The presence of an ISO9660 filesystem indicates that the work might be compatible with PC-based systems, and the presence of an HFS (or HFS+) filesys-

aTaken from System Requirements or inferred by the filesystem present on the disc (i.., HFS partition suggests Macintosh compatibility). bThis chart lists the operating systems the project team researched to be contemporaneous with the years listed and may or may not be the optimal operating system for rendering the work. For Macintosh works, the “Classic Environment” in OS 10.0-10.3 may also be an alternative environment to run a work, though this is not guaranteed to work in all cases. cCan be listed as Mac 68030, Mac 68040, 680x0, Quadra, Mac IIci in system requirements. dThe project team did not obtain retail media for every version of the Macintosh operating systems in the ranges specified. Please see Table 4.2 for the full list of operating systems on disk image files generated by the project team. eCan be listed as PowerPC, G3, G4, Power Macintosh, PowerMac in system requirements. fIt generally doesn’t apply here for emulator selection, but PC processors can be listed as Pentium, Pentium 2 or Pentium II, Intel 80486, 486 in system requirements gThe project team did not obtain retail media for every version of the Windows operating systems in the ranges specified. Please see Table 5.1 for the full list of operating systems on disk image files generated by the project team.

12 tem indicates the work might be compatible with Apple/Macintosh systems. The project team found several examples where the presence or absence of a filesystem was misleading. Ultimately, running the work in an appropriate system (which might be an emulated/virtual system) may be required to make a final determination.

2. Additional documentation may be available within the files contained on the disk image that will help determine additional settings or minimum system requirements.

3. In some cases, it may be necessary to pick a starting point (an emulator and an operating system) and test various configurations until something works.

(a) On Macintosh systems, executables made for the 68K processor will likely work on SheepShaver, but not vice versa (a PowerPC executable will not work on Basilisk II). Running an executable on an incompatible system may or may not result in a helpful error message (there were cases where it simply failed silently) so if “nothing happens” when attempting to run a work on Basilisk II, it is advisable to try switching to SheepShaver first, rather than trying another operating system within Basilisk II. (b) On Windows systems, given the history of supporting legacy code and executables, it is less likely to encounter an error message indicating incompatibility. An error message might indicate that what version of Windows is compatible with the work.

The artwork’s original stated system requirements for hardware and software and any addi- tional relevant documentation should provide the user the best starting point for determining which emulator is appropriate to access the work, and how it should be configured. The fol- lowing examples demonstrate how to use a work’s system requirements to determine a start- ing point for an appropriate emulator (and settings). It is important to note here that the work’s stated system requirements might suggest multiple compatible system configurations, even on the same hardware platform.

13 2.1 Examples of determining compatible emulators

The following section will reproduce actual system requirements in their entirety from works in the Goldsen collection. After each set of system requirements there will be guidance from the project team on how to provide access through an appropriate emulator.

System requirements: Macintosh with 68040 33MHz processor or Power Macin- tosh; 8MB RAM; System 7.0.1 or greater; 5MB free disk space (12MB recom- mended); 640 x 480 or larger monitor with thousands of colors; minimum double speed -ROM drive. (Beyond, 1996)

The system requirements for this work indicate only Macintosh emulators will be compat- ible, and specifically mention that the work runs on both 68K and PowerPC processors, so SheepShaver and Basilisk II will work. The earliest Macintosh system (prepared by the project team) that will work is System 7.5.5. The system requirements also include guest system configuration (i.e., screen resolution, amount of free space needed).

System requirements for accompanying computer disc: Windows 3.1 - 8MB RAM; SoundBlaster compatible ; MAC Version - Mac 68040 (or higher), System 7.1 (or higher). (The body and the object, 1996)

The system requirements for this work indicate Basilisk II or QEMU will work. (It is also likely here that SheepShaver will work, because PowerPC Macintosh systems can run 68K executable files). While Windows 3.1x is stated as a compatible emulator, given Microsoft’s support in subsequent operating systems for legacy executables, it is likely that Windows 95/98/NT/2000 will work as well.

System requirements: This CD-ROM is compatible with Windows (mpc2 with 486 or Pentium chip) and Macintosh (68040 or power PC), it needs 256 colors and a minimum 5 mb of free memory (RAM), although more is better. (1996, Book of Shadows)

The system requirements for this work suggest that Basilisk II, SheepShaver, and QEMU can work, since it is compatible with the two Macintosh processors, 68040 and PowerPC, and a PC-compatible processor, a 486 or Pentium. For the Macintosh, System 7.5.3 was released in 1996,[5] and it would most likely be the earliest Macintosh operating system that will work.h To access the Windows version of the work, it is likely that Windows 95 is the earliest Windows operating system that will be compatible with the work, since it was released in 1995.i hSystem 7.5.3 is also the earliest Macintosh operating system tested by the project team. iIt is possible that Windows 3.1x might also work here, but only if the executable file for the artwork was 16-bit.

14 Examples where a publication year can help determine a suitable emulator

In cases where there is ambiguity, or in cases where the stated system requirements are not written with sufficient detail, it can be helpful to consider the publication year of the artwork, and select an environment contemporaneous with that.

System requirements: System requirements for Macintosh: Macintosh; 8 megabytes of RAM; system 7 or later; 16 bit and 13 inch monitor; CD-ROM drive. (1995, Cyberflesh Girlmonster)

The system requirements for this work indicate that only Macintosh emulators will be com- patible. Even though no specific processors are mentioned (i.e., 68K or PowerPC), it is possible to use the publication date to determine which specific Macintosh emulators might work. Since the publication date was in 1995 it is possible that either Basilisk II (68K) or SheepShaver (PowerPC) could work, though SheepShaver is more likely, as in 1995, the 68K processor had largely been replaced (except for a few Macintosh models) by the PowerPC architecture.

System Requirements: Macintosh with at least 8 megabytes RAM, a color video monitor and a CD-ROM drive. (Culture vs. the Martians, 1998)

Since the specific Macintosh processor isn’t indicated, it will be necessary to consider the year of publication to determine a suitable emulator. In 1998, Apple was manufacturing computers using the PowerPC processor, so SheepShaver is likely to be the optimal Macintosh emulator for this work.

System requirements: Macintosh. (Let’s tell lies, 1999)

While this work’s system requirements does not provide much detail, it is possible to de- termine, from the year of publication, that the work functions in a PowerPC Macintosh. SheepShaver would be the preferred emulator. It is also important in cases where little de- tail is given at the outset, to read any documentation in Readme files (or similar) within the work itself.

15 Examples of determining guest system settings from system re- quirements

System requirements can also indicate various guest system settings. It is important to note that these may need to be cross-checked against the system requirements for the operating system on the guest system to ensure proper functioning of the artwork within emulation.

System requirements: Pentium processor with 32 MB RAM, 8 CD drive, 16 bit color display, sound card, Windows NT 4.0 or better or Windows 2000. (Divine Comedy Digital, 1998)

These requirements indicate the guest system should be set up with at least 32MB of RAM; it should also have 16-bit color and have sound enabled. It is important to note that Windows NT has a minimum RAM requirement of 12 MB,[6] and Windows 2000 has a minimum ram requirement of 32 MB,[7] which should also be taken into consideration when setting up the guest system.

System requirements for IBM PC: Windows 95 or NT, 16 MB RAM, monitor set at 640 x 480 or higher, monitor set to 32 bit millions of colors, Quicktime 3.0 or higher, 4x CD-ROM drive or faster, sound card. System requirements for Mac: Power PC Macintosh, 16 MB RAM, monitor set at 640 x 480 or higher, monitor set to 32 bit millions of colors, Quicktime 3.0 or higher, 4x CD-ROM drive or faster. (As american as apple pie, 1999)

These requirements indicate the guest system should be set up with at least 16 MB of RAM; the preferred screen resolution is 640x480j and it should have 32-bit color. Additionally, Quicktime 3.0 should be installed on the guest system.

jNote that on the emulators, setting the screen resolution may resize the window on the host machine.

16 References

[1] List of versions - Wikipedia, the free encyclopedia. url: http:// en.wikipedia.org/w/index.php?title=List_of_Microsoft_Windows_versions& oldid=641680709. [2] Mac OS 8 - Wikipedia, the free encyclopedia. url: http://en.wikipedia.org/w/ index.php?title=Mac_OS_8&oldid=637807563. [3] Mac OS 9 - Wikipedia, the free encyclopedia. url: http://en.wikipedia.org/w/ index.php?title=Mac_OS_9&oldid=642160131 (visited on 03/19/2015). [4] System 7 - Wikipedia, the free encyclopedia. url: http://en.wikipedia.org/w/ index.php?title=System_7&oldid=638152696. [5] System 7, OS 7.6 - Wikipedia, the free encyclopedia. url: http://en.wikipedia. org/w/index.php?title=System_7&oldid=638152696#Version_history. [6] INFO: Windows NT 4.0 Setup Troubleshooting Guide. url: https : / / support . microsoft.com/en-us/kb/126690. [7] System requirements for Microsoft Windows 2000 operating systems. url: https:// support.microsoft.com/en-us/kb/304297/en-us.

17 3— General Emulator Configuration and Setup

In general, emulators—including those selected by the project team for the Goldsen artworks— include various settings and configurations. The project team noted that it is helpful to consider them in the following three categories:

1. Settings that pertain to the program’s functioning within the host system (and how events within the host system are interpreted in the guest system);

2. Options to configure the guest system within the emulator; and

3. Guest environment settings configured within the guest operating system such as dis- play resolution (within the guest system), color depth, and internet/network configu- ration.

In addition to the program itself, each emulator requires additional files to run properly. All emulators need a disk image file that has a functional operating system installed to it and a disk image of the artwork. (AppendixB andD include detailed instructions on how to create, format, and prepare a blank volume (disk image file) to install an operating system for each emulator.) Basilisk II and SheepShaver also require a ROM file that represents Macintosh firmware in order to run. More detail on creating and using these additional files, including ROM files for the Macintosh emulators, is provided in subsequent sections of this document and the appendices.

The project team found that for each of these emulators, while there are options to specify a disk image should be loaded as a CD-ROM in the guest system, it is possible to load a disc image of an artwork as if it were an additional hard drive, rather than read-only media. A user should pay special attention to this, as loading a disk image as “read-write” media in the guest system means that the disk image can be altered and, consequently, will no longer be a faithful copy of the original CD-ROM. Changes to a disk image may have unintended consequences for interacting with the work. A user can further safeguard against these effects by setting artwork disk images as read-only within the host system or verifying the disk image file’s checksum periodically, making a new clean copy if a change has been detected.

18 4— Emulating Apple/Macintosh systems with Basilisk II and SheepShaver

The project team used the following two Apple Macintosh emulators in their tests to provide access to works in the Goldsen whose system requirements indicated an Apple computer. Basilisk II [1] emulates a 680x0 Motorola-based Apple Macintosh, and can run up to Mac OS 8.1. SheepShaver [2] emulates a PowerPC Apple Macintosh and can run from System 7.5.2 through 9.0.4. Both emulators are open-source projects and can run on a variety of platforms: the project team did the majority of its testing of these programs on a machine running .

In order to run either Basilisk II and SheepShaver, the following components are needed:

1. Basilisk II or SheepShaver executables.a

2. Mac OS ROM File

3. Disk image File with installed Operating System, or disk image of retail installation media.

4. Disk image of the CD-ROM with the original artwork.

The following is an overview of general settings for the emulators, a brief description of the ROM files needed, how to load a disk image and access an artwork, and other important information to consider, drawn from the project team’s notes, observations, and testing.

aThe project team compiled these from source; the details will be outlined in AppendixA.

19 4.1 Settings

There are various settings and configuration options for Basilisk II and SheepShaver. Some settings pertain to the operation of the emulator software, while settings determine settings for the guest system (i.e., the hardware/software environment being emulated).

In Basilisk II and SheepShaver, the following program settings can be adjusted:

• Shared directory between guest and host machine

• Window Refresh Rate, and QuickDraw Acceleration (to optimize rendering)

• Host devices for Output and Mixer; Modem and Printer; Ethernet

• Width and Height of the guest display

• Behavior of the mouse wheel in guest system

• Ignore illegal memory accesses (may reduce the number of times the program crashes unexpectedly)

• Enable JIT compiler (can improve performance of program)

Basilisk II and SheepShaver offer the following guest system settings:

• Primary (and secondary) hard disk volumes to mount

• CD-ROM images to mount

• Device to boot from

• RAM (Random access memory) size

• ROM file (firmware)

20 ROM Source (Original URL) Compatible Emulator PERFORMA.ROM http://www.redundantrobot.com/ Basilisk II macemulator/1mbMacrom.zip QUAD650.ROM http://www.redundantrobot.com/ Basilisk II macemulator/Quad650.zip Quadra.rom http://www.redundantrobot.com/ Basilisk II macemulator/Quadra.zip mac oldworld rom4mb.rom http://www.redundantrobot.com/ SheepShavere macemulator/mac_oldworld_rom4mb. rom.zip newworld86.rom http://www.redundantrobot.com/ SheepShaver macemulator/newworld86.rom.zip

Table 4.1: Apple ROMs used by project team for testing and access.

4.2 ROMs for Apple/Macintosh Emulation

In order to emulate Apple hardware using Basilisk II and SheepShaver, it is necessary to obtain a ROM file. A ROM file “contains the instructions that tell the computer what to do when the power button is pressed.”b Some older tutorials suggested that it was necessary to obtain a ROM from an already-owned Macintosh, but the project team found some ROM files freely available on the web and used these for testing.c ROM files are not interchangeable; some combinations of ROMs, emulators, and operating systems are non- functional. Additionally, some ROMs work better than others. The ROM files listed in Table 4.1 included in the CULAR deposit, and have been tested extensively by the project team. Full provenance information and checksums will be in the file ingested into the Cornell University Library Archival Repository (CULAR).

Additionally, the hosts a collection of ROM files from older Macintosh models. d While these may be helpful for future access, the project team did not test these out extensively.

bSource: Ben Fino-Radin, personal correspondence. cThe CULAR deposit will include all of the ROMs that the project team tested; other ROMs, like those already available at the Internet Archive, have not been included. dhttps://archive.org/details/mac_rom_archive_-_as_of_8-19-2011 eSheepShaver can only run pre-OS 8.1 with this ROM.

21 Name of disk image file Size Operating System In- Compatible emula- (in stalled tor MB) os761 500mb 500 Mac OS 7.6.1 Basilisk II basilisk ii os80 500mb 500 Mac OS 8.0 Basilisk II basilisk ii os81 500mb 500 Mac OS 8.1 Basilisk II os761 500mb 500 Mac OS 7.6.1 SheepShaver sheepshaver os80 500mb 500 Mac OS 8.0 SheepShaver sheepshaver os81 500mb 500 Mac OS 8.1 SheepShaver sheepshaver os85 1000mb 1000 Mac OS 8.5 SheepShaver sheepshaver os90 1000mb 1000 Mac OS 9.0 SheepShaver

Table 4.2: Disk image files and corresponding installed Macintosh operating systems for Basilisk II and Sheepshaver.

4.3 Disk Image File with installed Operating System

In order to use Basilisk II and SheepShaver to emulate a Macintosh system, it is necessary to have a disk image file with an installed operating system. The project team created multiple disk image files and installed various Macintosh operating systems for use with both emulators.

Table 4.2 shows the various files created for access, identifying the name of the disk image file, the installed version of the operating system, and the compatible emulator.

22 4.4 Running the emulators and loading an artwork

The project team compiled both emulators to include a graphical to easily select configuration options and load disk images of artworks. Note that it might be necessary to manually edit a configuration file for optimal results.f

Once all of the required components have been assembled, and a suitable ROM has been chosen, the process for accessing an artwork is very similar in Basilisk II and SheepShaver. The following sections will include screenshots of the configuration options for both emulators and an overview of the process. Note that in both cases, while it is possible to add disk image of the CD-ROM of the artwork in the graphical interface, the project team recommends that it be added by editing the configuration file to ensure that the disk image will be loaded in the guest system as a CD-ROM, that is, as a read-only volume.

fNote that it is also possible to compile SheepShaver and Basilisk II so that the graphical interface is bypassed: users must manually edit a preferences file and run the emulator from the command line or from a desktop . This configuration, along with “helper” scripts might be one approach for a production system that allows users access to the artworks while minimizing the risk of unwanted changes to the emulation layer.

23 Basilisk II

Figure 4.1: Volumes tab in Basilisk II Settings.

By default, the Basilisk II graphical interface displays the Volumes tab. Once the required operating system has been identified, it can be added to the list of volumes by clicking the Add. . . button and selecting the appropriate disk image file from the file selection dialog. (Figure 4.1)

Once the appropriate operating system is added (Figure 4.2), it will be included in the list (Figure 4.3).

24 Figure 4.2: Add Volume dialog in Basilisk II.

Figure 4.3: Volumes tab in Basilisk II Settings with new disk image file selected.

25 Figure 4.4: SCSI tab in Basilisk II Settings.

The project team did not make use of SCSI hard drive images when testing out the Goldsen artworks (Figure 4.4).

The project team found that keeping the Window Refresh Rate (in the Graphics/Sound tab) set to Dynamic produced the best rendering output (Figure 4.5).

26 Figure 4.5: Graphics/Sound tab in Basilisk II Settings.

27 Figure 4.6: Keyboard/Mouse tab in Basilisk II Settings.

The project team did not adjust the default settings on the Keyboard/Mouse tab (Fig- ure 4.6).

Enter in slirp into the Ethernet Interface field if networking/internet access is needed for an artwork (Figure 4.7).

28 Figure 4.7: Serial/Network tab in Basilisk II Settings.

29 Figure 4.8: Serial/Network tab in Basilisk II Settings.

If available, use the work’s stated system requirements to determine the MacOS RAM Size. The project team found that either 64MB or 128MB was a good starting point when no other information was available.

The project team tended to use Quadra 900 (Mac OS 8.x) Mac Model ID when working with OS 8.0 and aboveg and Mac IIci (MacOS 7.x) when using OS 7.6 or System 7.5.x.

The project team suggests leaving the CPU Type set at the default value (68040) because other settings did not noticeably change the rendering of a work; however, there may be works where this setting is important to adjust.

Consult Table 4.1, which lists ROMs for Apple/Macintosh Emulation to determine which ROM File is appropriate. Note that BasilisII can only use a “512K or 1MB MacII ROM.” Even if the (i.e., MacII) isn’t known, it can be helpful to check the size of a ROM file to ensure it is exactly 512K or 1MB in size to confirm its potential to work in Basilisk II.

The project team also found that selecting the checkboxes next to Don’t Use CPU When Idle and Ignore Illegal Memory Accesses improved performance of the emulator (Fig- ure 4.8).

gNote that the last operating system Basilisk II is compatible with is Mac OS 8.1.

30 Figure 4.9: JIT Compiler tab in Basilisk II Settings.

The project team found that checking Enable JIT Compiler improved performance of the emulator. The rest of the above settings are default and were found to be adequate for testing the artworks (Figure 4.9).

31 Starting Basilisk II

The project team recommends starting the emulator once before the artwork is loaded. This saves the selected settings in the preferences file and gives the user the opportunity to preview the operating system environment to ensure that system requirements within the guest system are appropriate for the selected artwork. For instance, if the system requirements specify “requires QuickTime extensions,” the user can check to see that Quicktime is in the System:Extensions folder, and QuickTime is installed. It can also be helpful here to verify that sound is working properly. (Figures 4.10, 4.11, 4.12)

Figure 4.10: :Extensions is the general location for the “classic” Mac OS systems.

32 Figure 4.11: Selecting the Control Panel for Sound in OS 7.6.1.

33 Figure 4.12: Using the Sound dialog to confirm sound is working properly in OS 7.6.1.

34 Once system requirements have been confirmed (as best as possible), the user can shut down the guest system and prepare the preferences file to load the artwork. Instead of opening up the , edit the /.basilisk~ ii prefs file and add the following line:

cdrom /full path/artwork.isoh

Where full path is the exact path to the disk image of the artwork. Figure 4.13 is an example of a properly edited preferences file.

Figure 4.13: Properly configured configuration file to load an artwork as read-only media in Basilisk II. hExtension might be .iso, .dd, or .bin; any of these will work as long as it is a disk image.

35 After the file has been edited and saved, the user can open up the Basilisk II graphical interface and click Start to start the emulator with the artwork loaded as a CD-ROM, that is, read-only. It is important to note here that the artwork will not be listed in the Volumes tab of the graphical interface after it has been added to the preferences file as cdrom.

36 SheepShaver

Figure 4.14: Volumes tab in SheepShaver Settings.

By default, the SheepShaver GUI displays the Volumes tab. Once the required operating system has been identified, it can be added to the list of volumes by clicking the Add. . . but- ton and selecting the appropriate disk image file from the file selection dialog (Figures 4.14, 4.15, 4.16).

37 Figure 4.15: Add Volume dialog in SheepShaver.

The project team found that setting the Window Refresh Rate (on the Graphics/Sound tab) at the default of 7.5 Hz worked well for testing (Figure 4.17).

The project team found that the default settings on the Keyboard/Mouse tab worked well for testing (Figure 4.18).

To enable networking/internet access, enter slirp for the Ethernet Interface field in the Serial/Network tab (Figure 4.19).

38 Figure 4.16: Volumes tab in SheepShaver Settings with new disk image file selected.

Figure 4.17: Graphics/Sound tab in SheepShaver Settings.

39 Figure 4.18: Keyboard/Mouse tab in SheepShaver Settings.

Figure 4.19: Serial/Network tab in SheepShaver Settings.

40 Figure 4.20: Memory/Misc tab in SheepShaver Settings.

When on the Memory/Misc tab, use the work’s stated system requirements to determine the MacOS RAM Size. The project team found that either 64MB or 128MB was a good starting point when no other information was available.

Consult Table 4.1, which lists ROMs for Apple/Macintosh Emulation to determine which ROM File is appropriate. The project team found that SheepShaver worked best with an “old world” ROM for emulating systems prior to OS 9, and a “new world” ROM worked best with OS 9.

The project team also found that selecting the checkboxes next to Don’t Use CPU When Idle and Ignore Illegal Memory Accesses improved performance of the emulator (Fig- ure 4.20).

41 Figure 4.21: JIT Compiler tab in SheepShaver Settings.

The project team found that checking Enable JIT Compiler on the JIT Compiler tab improved performance. The project team did not test out the feature Enable built-in 68k DR Emulator (EXPERIMENTAL) (Figure 4.21).

42 Starting SheepShaver

The project team encountered an issue running SheepShaver on an Ubuntu-based system. The issue has a straightforward permanent fix, but a user may encounter it when running SheepShaver on a new or different system that has not yet implemented the fix. If the user receives the error message “Cannot map Low Memory Globals: Operation not permitted” it is necessary to do the following to correct the problem.

As root, edit the file in /etc/sysctl.conf and add the following line to the end of the file:

vm.mmap min addr = 0

Next, run the following command (as root or using sudo):

service procps start

It is important to note that an alternate solution to this problem is to run SheepShaver as root, but this is not recommended.i

The project team recommends starting the emulator once before the artwork is loaded. This saves the selected settings in the preferences file and gives the user the opportunity to preview the operating system environment to ensure that system requirements within the guest system are appropriate for the selected artwork. For instance, if the system requirements specify “requires QuickTime extensions,” the user can check to see that Quicktime is in the System:Extensions folder, and QuickTime is installed. It can also be helpful here to verify that sound is working properly. The previous section on Starting Basilisk II (4.4) includes several screenshots (Figures 4.11, 4.12, 4.10) to demonstrate how to examine the system’s extensions and test for sound.

Once system requirements have been confirmed (as best as possible), the user can shut down the guest system and prepare the preferences file to load the artwork. Instead of opening up the graphical user interface, edit the .sheepshaver prefs file and add the following line:

cdrom /full path/artwork.isoj

Where full path is the exact path to the disk image of the artwork. Figure 4.22 is an example of a properly edited preferences file.

iBy default, SheepShaver will share a folder with the host machine, and this is typically set to the root directory if not changed. Running SheepShaver as root means that the process has full permissions to that shared folder. jExtension might be .iso, .dd, or .bin; any of these will work as long as it is a disk image.

43 Figure 4.22: Properly configured configuration file to load an artwork as read-only media in SheepShaver.

After the file has been edited and saved, the user can open up the SheepShaver graphical interface and click Start to start the emulator with the artwork loaded as a “CD-ROM” and therefore read-only. It is important to note here that the artwork will not be listed in the Volumes tab of the graphical interface after it has been added to the preferences file as cdrom.

44 References

[1] The Official Basilisk II Home Page. url: http://basilisk.cebix.net/. [2] The Official SheepShaver Home Page. url: http://sheepshaver.cebix.net/.

45 5— Emulating PC-compatible systems with QEMU

The project team used QEMU to provide access to works in the Goldsen that required PC- compatible systems with x86 processors only, even though QEMU is capable of emulating a wide variety of systems and architectures. The project team tested QEMUa with Windows 3.1, Windows 95, and Windows 2000. This emulator is open-source and can be compiled for a variety of architectures. The project team used version 2.0.0 provided in the Ubuntu 14.04 repository; this seemed to work well enough that it did not seem necessary to compile the application from source.

In order to run QEMU, the following components are needed:

1. qemu and qemuctl, which are installable through Ubuntu’s software repository.b

2. Disk image file with installed operating system, or disk image of retail installation media.

3. Disk image of the CD-ROM with the original artwork.

The following is an overview of general settings for the emulators, how to load a disk image and access an artwork, and other important information to consider, drawn from the project team’s notes, observations, and testing.

aQEMU emulator version 2.0.0 ( 2.0.0+dfsg-2ubuntu1.9), Copyright (c) 2003-2008 Fabrice Bellard bqemuctl provides Qemu Launcher, a graphical interface that is technically not required to run the qemu binary.

46 5.1 Settings

There are various settings and configuration options for QEMU. Some settings pertain to the operation of the emulator software, while settings determine settings for the guest system (i.e., the hardware/software environment being emulated).

In QEMU, the following program settings can be adjusted:

• Shared directory between guest and host machine (SMB)

• Configuration for host handling of Network interface

• Toggle full screen for guest display

device and keyboard layout to use for guest machine

• Toggle control panel and logging (and what program behavior to log)

• Enable acceleration, process priority for QEMU on host system

• Monitor device (disabled when the control panel is on)

• Paths for data directory (typically home directory), QEMU, QEMU-img, QEMU-ctl and pre-launch command (blank by default)

QEMU offers the following guest system settings:

• Toggle on CD-ROM

• Boot device (can be CD-ROM, Floppy device, or Hard disk)

• Floppy device to mount (maximum 2)

• CD-ROM image to mount (maximum 1)

• Hard disk volumes to mount (maximum: 4; maximum 3 if CD-ROM is enabled)

• RAM (Random access memory) size

• System to emulatec

• Toggle on audio, selection for sound card

• Toggle off display, selection for

• Clock setting (toggle synchronization with host machine)

cPC, 32-bit (x86) will emulate a PC-compatible system suitable for the images in the Goldsen collection.

47 Name of disk image file Size (in MB) Operating System Installed qemu windows95 1000mb 1000 Windows 95 qemu windows2000 2000mb 2000 Windows 2000 Professional

Table 5.1: Disk image files and corresponding installed Windows operating systems for QEMU.

5.2 Disk Image File with installed Operating System

In order to use QEMU to emulate a PC-compatible system, it is necessary to have a disk image file with an installed operating system. The project team created multiple disk image files and installed various Windows operating systems for use with QEMU.

Table 5.1 shows the various files created for access, identifying the name of the disk image file and its installed version of the operating system.

48 5.3 Running the emulator and loading an artwork

The Qemu Launcher provides access to nearly all of the settings required for running the emulator and loading a disk image of a CD-ROM as a CD-ROM device. It is also possible to specify all configuration options for QEMU on the command line, and in some cases, such as specifying an alternate sound card or enabling networking, it may be necessary to launch qemu from the command line.

Once all settings are configured and a disk image file with an appropriate operating system has been selected, the process for accessing an artwork with QEMU is relatively straightfor- ward. The following sections will include screenshots of the configuration options for QEMU and an overview of the process. While it is possible to add a disk image of the CD-ROM of the artwork as a “Hard Disk,” the project teams recommends that it be added as a CD-ROM device so that the disk image will be loaded in the guest system as a CD-ROM, that is, as a read-only volume.

Figure 5.1: Configurations tab/Disks and Memory subtab in Qemu Launcher.

Disks and Memory is the default subtab within the Configurations tab; click Use CD- ROM to active the selector to load a CD-ROM image file (Figure 5.1).

49 Figure 5.2: Configurations tab/Linux boot subtab in Qemu Launcher.

The defaults for the Linux boot subtab can be left as they are (Figure 5.2).

50 Figure 5.3: Configurations tab/Network subtab in Qemu Launcher.

If the work does not need an active network connection, set the Number of network interface cards to 0 (Figure 5.3). Since older versions of Windows are no longer actively maintained by Microsoft and these operating systems had a history of vulnerabilities, the project team suggests not enabling the networking features unless absolutely required for a work.

If an active internet/network connection is needed, the project team found it easiest to launch qemu using the command line, as the default configuration settings used by the graphical interface to specify network devices do not reliably work.

When launching qemu from the command line, the following additional flags seemed to work to enable networking.

-net nic,vlan=0,model=pcnet

The project team notes that this is a deprecated method of enabling networking within QEMU, and a future revised strategy may be needed.

51 Figure 5.4: Configurations tab/Hardware subtab in Qemu Launcher.

The defaults on the Hardware subtab work well (Figure 5.4); it is important to select “Enable audio” if the work requires audio. The project team noted that when the Creative 16 sound card was set, the guest operating system often froze and was not func- tional. The ENSONIQ AudioPCI ES1370 sound card did fare better in this respect in the guest operating system, but the sound could sometimes be choppy. The project team found that additional sound card options (that worked better than the two available in the graphical interface) were available when launching qemu on the command line.d It would be advisable to test several sound options in QEMU when accessing a work to determine what produces optimal sound, if sound is critical for rendering the artwork properly.

dac97 performed quite well, though it is not an available option in Qemu Launcher. It is available when launching qemu from the command line.

52 Figure 5.5: Configurations tab/Emulator subtab in Qemu Launcher.

On the Emulator subtab, the project team found that the defaults work well. If cursor movement within the guest system is lagging, it might be helpful to set Acceleration to Full. (Figure 5.5)

53 Figure 5.6: Launcher settings tab in Qemu Launcher.

On the Launcher settings tab, the project team found it necessary to specify qemu- system-i386 as the Path to ‘qemu,’ as selecting the System type under the Hardware subtab did not auto-select the appropriate qemu binary on the testing system (Figure 5.6).

Within Qemu Launcher, settings can be saved if a particular system configuration is helpful to have as a preset.

Finally, within qemu, it is possible to “swap” out devices while the guest machine was running. This can be helpful when looking at multiple works on the “same” guest system. In order to “eject” a CD-ROM from a system and “load” a new one, it is necessary to interact with the QEMU monitor [1]. To enter into the monitor console, while the guest system is running, press Ctrl-Alt-Shift-2. This will change the screen from the guest operating system to a console window. To swap out a CD-ROM, use the info block command to determine the name of the CD-ROM device, and then the change command to specify a new ISO file to load. A screenshot of the default interface is shown below. Directions are found by typing help at the prompt or by consulting the Wikibooks manual for QEMU/Monitor [2] (Figure 5.7).

54 Figure 5.7: QEMU Monitor console.

Alternatively, if qemu is run on the command line, it is possible to specify a monitor to run on the Terminal. This is shown in Figure 5.8.

Figure 5.8: QEMU Monitor in terminal window.

55 5.4 Process-level emulation—WineHQ and QEMU user mode

The project team experimented briefly with WineHQ [3], a utility that would allow PC- compatible executable files to be run without emulating a complete Windows operating system. While some artworks did function smoothly under , the project team noted that artworks that required the user to install additional third-party plugins (e.g., QuickTime) did not fare as well under WineHQ and often crashed or failed to start. It may be a viable option for some artworks, however. Further, there may be potential in using the QEMU user mode to provide emulation for standalone executable files [4,5] but the project team did not test this out. Based on the preliminary findings from testing with WineHQ, the project team can speculate that works that require the user to install additional third-party software may be difficult to run with this method.

56 References

[1] QEMU/Monitor: eject - Wikibooks, open books for an open world. url: http://en. wikibooks.org/wiki/QEMU/Monitor#eject. [2] QEMU/Monitor - Wikibooks, open books for an open world. url: http://en.wikibooks. org/wiki/QEMU/Monitor. [3] WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X. url: https://www.winehq.org/. [4] How to use qemu - FedoraProject. url: http://fedoraproject.org/wiki/How_to_ use_qemu. [5] QemuUserEmulation - Debian Wiki. url: https://wiki.debian.org/QemuUserEmulation.

57 A— Compiling notes for Basilisk II and Sheepshaver executables

A Basilisk II or SheepShaver executable file is one of the components needed to run the emulator. The project team found it best to compile these emulators from source so that they were compatible with our preferred platform and that we could control the configuration options.

While neither project is under active development as of this writing (October 2014), a small group of volunteers continually add additional fixes to the , which is hosted on GitHub.com. Therefore, over the two years for the grant, the project team has compiled the code twice, to ensure compatibility with the updates to the project’s official workstation. The project team anticipates that this section will have future revisions when the code needs to be recompiled and offers the following structure for future curators to capture all of the pertinent information for the compiled code.

Current Basilisk and SheepShaver Executables: Revision 2, August 2014

These emulators consisted of the following:

• 64-bit executables for Basilisk II and SheepShaver

The files are named BasiliskII and SheepShaver and are executable files.

The major limitations of the emulators at the time were as follows:

• The code still needed to be compiled against an earlier version of gcc (4.4) in order to run properly. (Using a higher version of gcc would cause the SheepShaver executable to immediately segfault on launch.)

58 • The code for the PPP emulation (slirp) was still not 64-bit safe; however, a user offered some modifications to that code (that drew from a more recent version of slirp) which were available as a branch on GitHub. Since this code allowed us to compile Basilisk II and SheepShaver to have functional networking capability, we opted to use it instead of the main code branch.

Technical details

GitHub URL: https://github.com/krechert/macemu/tree/e8284b544f3c2608c8d6e869bdc8ee3983cdbccb

Compiled on: BitCurator 0.9.13 (Ubuntu 14.04LTS) Kernel name, revision, version: Linux 3.13.0-30-generic #54-Ubuntu SMP Mon Jun 9 22:45:01 UTC 2014

Packages/libraries installed:

• gcc-4.4, g++-4.4

• libsdl1.2-dev

Note: Everything else needed appeared to be already installed on the machine.

Additional configuration notes:

• The configuration flags used for Basilisk II: ./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --enable-jit-compiler --with-gtk --with-bincue

• The configuration flags used for SheepShaver: ./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --with-gtk --with-bincue

59 Revision 1, October 2013

These emulators consisted of the following:

• 32-bit executables for Basilisk II and SheepShaver.

• A folder with the necessary 32-bit libraries to run both executables (this list was obtained by running ldd on each).

• A script that added the 32-bit libraries to LD LIBRARY PATH and then ran the respective executable.

Even though our working environment (BitCurator 0.3.0) was 64-bit, we opted to compile these as 32-bit executables in order to address one of the key limitations of the emulators at the time.

The major limitations of the emulators at the time were as follows:

• Compiling against the version of gcc on the BitCurator machine (gcc-4.7) created an executable for SheepShaver that immediately segfaulted when run. So it was necessary to deliberately use gcc-4.4 so that this would not happen.

• The code for both emulators that handled PPP emulation (slirp) was not 64-bit safe. Compiling either emulator on a 64-bit machine resulted in an executable that, when set to use slirp for networking, immediately segfaulted when attempting to access the internet.

Technical details

GitHub URL: https://github.com/cebix/macemu/tree/43779be7750fea2f96bcc99136c802ddd014d70b

Compiled on: 32-bit running Debian 7 Kernel name, release, version: Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.46-1+deb7u1

Packages/libraries installed: (Note: those in parentheses might not have been required, but were installed anyway.)

• gcc-4.4, g++-4.4, (gcc-4.4-base, gcc-4.4-locales, gcc-4.4-multilib, gcc-4.4-source)

• libsdl1.2-dev, (libsdl1.2-dbg, libsdl1.2-debian)

• libgtk2.0-dev, libgnome2-dev

60 • hdparm

Additional configuration notes:

• Edit /etc/hdparm.conf to set dma=on; for the /dev/mapper device. (Note: This is necessary for the –enable-jit-compiler option, but probably only for compiling on a virtual machine.)

• The configuration flags used for Basilisk II: ./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --enable-jit-compiler --with-gtk

• The configuration flags used for SheepShaver: ./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --with-gtk

61 B— Creating a new disk image file for Basilisk II and SheepShaver and installing an operating system

In the event that the disk image files with installed operating systems become unusable or the team acquires an additional retail copy of a Macintosh operating system supported by either Basilisk II [1] or SheepShaver [2], it is rather straightforward to create a new disk image file and install an operating system on it.

If not already available, make a disk image of the original retail installation CD for the desired operating system. Any disk imaging program should be adequate for this task; the project team used Guymager to create images of the retail CDs it acquired. Next, the project team recommends making a copy of the disk image and storing it in a separate folder, along with a record of the checksum for the disk image of the installation media. Installation can proceed using one of the copies of the disk image file. In the event that the installation media disk image file is corrupted, it is straightforward to make a new copy (rather than image the media again) and confirm that an exact copy of the original media is used for the installation.

The following screenshots show, in detail, the steps involved for installing Mac OS 8.1 using SheepShaver to provide one example of the process.

Start at the Volumes tab of the SheepShaver Settings screen. Click Create. . . to create a blank file that will represent the disk image file for the hard disk (Figure B.1).

The project team recommends a size of 500MB,a which exceeds the recommended hard disk size for OS 8 [3] and the following naming convention for the file itself: the name of the emulator, followed by an underscore; the name and version of the operating system; the size and units of the file, followed by an underscore. Click OK to proceed once the name is entered. (Figures B.2, B.3)

aThe project team found that Mac OS 8 requires approximately 120 MB.

62 Figure B.1: SheepShaver Volumes tab in Settings.

63 Figure B.2: Create Hardfile dialog box in SheepShaver.

64 Figure B.3: Create Hardfile dialog box in SheepShaver with size and name entered.

65 Figure B.4: Volumes tab in SheepShaver Settings with disk image loaded.

The newly created file will be added to the list in the Volumes tab (B.4). To add the installation media, click Add and follow the prompts in the dialog box. (Figure B.5)

The default settings in Graphics/Sound should be acceptable, though increasing the Width and Height of the window may be desired (Figure B.7).

66 Figure B.5: Add Volume dialog in SheepShaver.

Figure B.6: Volumes tab in SheepShaver Settings with blank disk image file and installation media disk image file loaded.

67 Figure B.7: Graphics/Sound tab in SheepShaver Settings.

68 Figure B.8: Keyboard/Mouse tab in SheepShaver Settings.

The default settings in the Keyboard/Mouse tab should be acceptable (Figure B.8).

69 Figure B.9: Keyboard/Mouse tab in SheepShaver Settings.

If the work requires internet access, select slirp under Ethernet Interface to enable net- working. (Note that this is the same process for Basilisk II.) (Figure B.9)

70 Figure B.10: Memory/Misc tab in SheepShaver Settings.

The MacOS RAM Size can be adjusted at any point depending on the system requirements of a particular work, The project team found for this installation 64 MB was sufficient to complete this install [3,4]. Check the box for Ignore Illegal Memory Accesses and Don’t Use CPU When Idle. (The project team found the software less prone to crashing when these boxes were selected.) (Figure B.10)

71 Figure B.11: JIT Compiler tab in SheepShaver Settings.

Ensure that Enable JIT Compiler is set on the JIT Compiler tab. (Figure B.11)

72 Select Start on the Volumes tab to start the emulator.

If no valid, readable, or bootable media is available, there will be a disk image with a question mark displayed within the guest system. (Figure B.12)

Figure B.12: No valid, readable, or bootable media in SheepShaver.

73 In order to load the disk image file for the installation media, it is necessary to load it as a cdrom, rather than disk. For this, it is necessary to manually edit the preference file. The file located in the currnet user’s home directory. For SheepShaver, the file is ~/.sheepshaver prefs. (The file for Basilisk II is ~/.basilisk ii prefs.) (Figure B.13)

In line two, the installation media is referenced by the word cdrom and then the full path of the disk image file. This setting ensures that the disk image is seen as media in the CD drive, rather than another hard disk on the system. Save the preferences file, and launch the SheepShaver settings dialog again and start the emulator. Note that the installation media will not be listed in the graphical interface in the list on the Volumes tab if it is referenced using the cdrom prefix.

Figure B.13: SheepShaver Preferences file in terminal window.

74 Figure B.14: Improper system software media format in SheepShaver.

Note that if the error message, “The system software on the startup disk only functions on the original media, not if copied to another drive” Figure B.14 appears, this means that the disk image file was added using the graphical interface. It is added as a “disk” and therefore seen as “read/write” and not as the “original” CD.

75 Figure B.15: Initial startup screen for installation of Mac OS 8.1 on SheepShaver.

If the emulator successfully recognizes the operating system as being on its “original media” the operating system initial screen will appear. (Figure B.15)

76 Figure B.16: Initializing disk image file for Mac OS 8.1.

The disk image file will initially appear as “unreadable” and the first dialog should ask if you want to initialize the disk. (Figure B.16)

77 Figure B.17: Selection of files system for initializing disk on Mac OS 8.1.

Note that MacOS may provide multiple options here. Mac OS refers to an HFS formatted disk, while Mac OS Extended refers to an HFS+ formatted disk [5,6]. The project team found Mac OS Standard functioned for accessing artworks and is preferred here. Select a name for the volume and click Initialize. (Figure B.17)

78 Figure B.18: Confirming initialization of disk on SheepShaver.

Click Continue to proceed initializing the disk. (Figure B.18)

79 Figure B.19: Mac OS 8.1 disc installation contents.

After disk initialization, the contents of the installation media may be displayed. (It might be necessary to double-click on the on the desktop for this to appear.) Select Install Mac OS 8.1 (or the appropriate icon for the installation). (Figure B.19)

80 Figure B.20: Confirming install for Mac OS 8.1.

Click Continue to proceed with the installation. B.20 The Destination Disk should be selected to the disk you initialized in the previous steps. Click Select to continue. (Figure B.21)

Continue to click through the prompts during the installation process. (Figures B.22, B.23 B.24, B.25, B.26, B.27, B.28, B.29)

81 Figure B.21: Destination disk for installation of Mac OS 8.1.

82 Figure B.22: Important Information dialog in Mac OS 8.1 installation.

83 Figure B.23: Important Information dialog in Mac OS 8.1 installation.

84 Figure B.24: Agreeing to Agreement in Mac OS 8.1 installation.

85 Figure B.25: Selection of components to install in Mac OS 8.1.

The default subcomponents were typically sufficient for the project team’s needs. (Fig- ure B.25)

86 Figure B.26: Installation of basic system for Mac OS 8.1.

87 Figure B.27: Preparing to install Mac OS 8.1.

88 Figure B.28: Installation progress for Mac OS 8.1.

89 Figure B.29: Continued installation progress for Mac OS 8.1.

90 Figure B.30: Confirmation installation process has finished for Mac OS 8.1.

When the installation has finished, press Quit to finish. If there are other software compo- nents to be configured or installed here, press Continue to proceed. (Figure B.30)

Shut down the system by selecting Special from the menu and then Shut Down from the options listed. (Figure B.31)

To restart the emulator without the installation media, it is necessary to remove it from the list in Volumes. This may be done by editing the preferences file manually and removing the line that references the disk image for the installation CD.

91 Figure B.31: Shutting down system after installation of Mac OS 8.1.

92 References

[1] Basilisk II - Wikipedia, the free encyclopedia. url: http://en.wikipedia.org/w/ index.php?title=Basilisk_II&oldid=594815375. [2] SheepShaver - Wikipedia, the free encyclopedia. url: http://en.wikipedia.org/w/ index.php?title=SheepShaver&oldid=612878953. [3] Mac OS 8 and 8.1: Maximum Size, Maximum Convenience — Low End Mac. url: http://lowendmac.com/2014/mac- os- 8- and- 8- 1- maximum- size- maximum- convenience/. [4] Mac OS 9: System Requirements - Apple Support. url: http://web.archive.org/ web/20141216215425/http://support.apple.com/en-us/HT2299. [5] Hierarchical - Wikipedia, the free encyclopedia. url: http://en.wikipedia. org/w/index.php?title=Hierarchical_File_System&oldid=594424332. [6] Mac OS: About Mac OS Extended Volume Hard Drive Format or HFS+ - Apple Sup- port. url: http://web.archive.org/web/20141113142812/http:/support.apple. com/en-us/HT1604.

93 C— Installation of QEMU

The QEMU emulator suite is open-source and can be compiled for a variety of architectures. The project team used version 2.0.0a provided in the Ubuntu 14.04 repository; this seemed to work well enough that it did not seem necessary to compile the application from source. The project team also installed qemuctl, which provides Qemu Launcher, a graphical interface for configuring options and running qemu.

aQEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.9), Copyright (c) 2003-2008 Fabrice Bellard

94 D— Creating a disk image file for the hard disk for QEMU from scratch

In the event that the disk image files with installed operating systems become unusable or the team acquires an additional retail copy of a Windows operating system, it is rather straightforward to create a new disk image file and install an operating system on it.

If not already available, make a disk image of the original retail installation CD for the desired operating system. Any disk imaging program should be adequate for this task; the project team used Guymager to create images of the retail CDs it acquired. Next, the project team recommends making a copy of the disk image and storing it in a separate folder, along with a record of the checksum for the disk image of the installation media. Installation can proceed using one of the copies of the disk image file. In the event that the installation media disk image file is corrupted, it is straightforward to make a new copy (rather than image the media again) and confirm that an exact copy of the original media is used for the installation.

The following screenshots show, in detail, the steps involved for installing Windows 2000 using QEMU to provide one example of the process.

Keep the default settings when launching Qemu Launcher for the first time. Click New next to Hard disk 0. (Figure D.1)

95 Figure D.1: Configurations tab and Disks and memory subtab in Qemu Launcher.

96 Figure D.2: Create disk image dialog in Qemu Launcher.

Create empty raw image will produce an image in a form that can be mounted in other emulators. Enter in the name – the project team recommends the following naming convention for the file itself: the name of the emulator, followed by an underscore; the name and version of the operating system; the size and units of the file, followed by an underscore and select an image size. The project team used 2GB (2000 MB), as it is specified in the system requirements for Windows 2000 [1]. (Figure D.2)

97 Figure D.3: Configurations tab and Disks and memory subtab in Qemu Launcher with new disk image file loaded.

Once created, the name of the new Hard disk 0 will be entered into the corresponding field. (Figure D.3)

98 Figure D.4: Selecting Use CD-ROM in Qemu Launcher.

Select Use CD-ROM; the line for CD-ROM will no longer be greyed out. The default will be to use a physical CD-ROM in the host system, indicated by /dev/cdrom. Click on Open to select a disk image file for the operating system to load into the emulator. (Figures D.4, D.5)

99 Figure D.5: Selecting a File dialog in Qemu Launcher.

100 Figure D.6: Configurations tab and Disks and memory subtab with CD-ROM disk image file and hard disk image file loaded.

Once the the disk image for the installation media is set and the new hard disk file is created, the default settings in Qemu Launcher should be sufficient. The following screenshots will quickly review these settings. On the Configurations tab and Disks and Memory subtab, set the RAM (MB) to an appropriate size for the operating system. In this example, 128 MB exceeded the minimum requirements for Windows 2000 [1].

101 Figure D.7: Configurations tab and Linux boot subtab on Qemu Launcher.

The defaults on the Linux boot subtab do not need to be changed. (Figure D.7)

102 Figure D.8: Configurations tab and Network subtab on Qemu Launcher.

Unless the operating system specifically requires an active internet connection, Number of network interface cards can be set to zero here. Since older versions of Windows are no longer actively maintained by Microsoft and these operating systems had a history of vulnerabilities, the project team suggests not enabling the networking features unless absolutely required. (Figure D.8)

103 Figure D.9: Configurations tab and Hardware subtab on Qemu Launcher.

While it can be helpful to have audio enabled to test, it may not be required for installing the operating system. This settings selected on this screenshot should be sufficient for installation. The project team encountered some issues with the emulated Sound Blaster setting, and opted not to use it. (Figure D.9)

104 Figure D.10: Configurations tab and Hardware subtab on Qemu Launcher.

The defaults on the Configurations tab and Emulator subtab should be sufficient for installation. (Figure D.10)

105 Figure D.11: Launcher settings tab on Qemu Launcher.

Confirm that the Path to ‘qemu’ is set properly to qemu-system-i386 before launching. (Figure D.11)

106 Figure D.12: Configurations tab and Disks and memory subtab with CD-ROM selected, disk image file for CD-ROM chosen, and disk image file for Hard Disk 0 chosen.

Return to the main tab for configurations. If saving these settings is desired, click Save. To launch the QEMU, click Launch. (Figure D.12)

107 This example so far is of installation of a Windows operating system where there is only disk image file for the installation media. In the event that there are multiple disk image files (representing multiple floppy disks or CD-ROMS), it will be necessary to use the Monitor [2] to swap out disk image files.

Figure D.13: QEMU Monitor on console.

To enter into the monitor console, while the guest system is running, press Ctrl-Alt-Shift- 2. This will change the screen from the guest operating system to a console window. To swap out a CD-ROM, use the info block command to determine the name of the device corresponding to the installation media, and then the change command to specify a new file to load. A screenshot of the default interface is shown below. Directions are found by typing “help” at the prompt or by consulting the Wikibooks manual for QEMU/Monitor [3]. (Figure D.13)

Alternatively, if qemu is run on the command line, it is possible to specify a monitor to run on the Terminal. This is shown in Figure D.14.

108 Figure D.14: QEMU Monitor on console.

109 The following screenshots with onscreen documentation are of installing Windows 2000 on QEMU.

Figure D.15: Windows 2000 inspecting hardware configuration.

The first part of the installation process consists of formatting the target drive. (Figure D.16) Continue through the process by following the on screen directions. (Figures D.17, D.18, D.19)

110 Figure D.16: Windows 2000 inital setup screen.

111 Figure D.17: Windows 2000 Welcome to Setup screen.

112 Figure D.18: Windows 2000 Professional Setup screen.

Figure D.19: Windows 2000 Licensing Agreement screen.

113 Figure D.20: Windows 2000 existing partitions list screen.

Press C to create a partition on the newly created disk image on the partitions list screen (Figure D.20). Note that its size will not be displayed as the exact value you specified in the earlier step. (It should be close, however.)

114 Figure D.21: Windows 2000 partition format type screen.

115 Figure D.22: Windows 2000 format partition progress bar.

Figure D.23: Windows 2000 setup copying files progress bar.

116 Figure D.24: Windows 2000 initializing configuration screen.

117 Figure D.25: Windows 2000 initializing configuration screen.

When the first portion of the setup has finished, press Enter to continue. Once the disk has been formatted, the system will reboot to begin Windows installation. (Figure D.25)

The graphical installer will then begin. (Figures D.26, D.27)

118 Figure D.26: Windows 2000 graphical installation splash screen.

119 Figure D.27: Windows 2000 graphical setup screen.

120 Figure D.28: Windows 2000 Setup Wizard start screen.

Click through the prompts to continue the second portion of the installation process. (Fig- ure D.28) The progress bar will to the right as installation progresses. (Figure D.29) Further screens in the Wizard may offer customization options and to proceed with the installation. (Figure D.30)

121 Figure D.29: Windows 2000 Installing Devices progress bar.

122 Figure D.30: Windows 2000 Regional Settings options.

123 Figure D.31: Windows 2000 Product Key screen.

When prompted, enter the product key provided with the original installation media and click Next. (Figure D.31)

124 Figure D.32: Windows 2000 Computer Name and Administrator Password screen.

When prompted, select a name for the computer and set and confirm an Administrator password. (Figure D.32)

125 Figure D.33: Windows 2000 Date and Time settings screen.

When prompted, confirm the date, time, and time zone, and click Next to continue. (Fig- ure D.33)

126 Figure D.34: Windows 2000 Networking Settings progress bar.

The progress bar will move to the right as installation progresses. (Figures D.34, D.35, D.36)

127 Figure D.35: Windows 2000 Installing Components progress bar.

128 Figure D.36: Windows 2000 Performing Final Tasks progress bar.

129 Figure D.37: Completing the Windows 2000 Setup Wizard screen.

At the end of the installation from the CD-ROM, there is a Finish button. The system restarts once it is clicked. (Figure D.37)

130 Figure D.38: QEMU rebooting system screen.

Once restarted, the system should boot from disk, rather than from the CD-ROM at this point. If not, it may be necessary to eject the CD-ROM from the guest system. (SeeD with screenshots of QEMU/Monitor for details.) (Figure D.38)

131 Figure D.39: Windows 2000 Network Identification Wizard screen.

Windows 2000 has additional configuration once the operating system is installed. Click Next to continue when this additional configuration starts. (Figure D.39) In the Network Identification Wizard, set a username and confirm a password, then click Next. (Note that this setting may not be present on other Windows operating systems.) (Figure D.40)

132 Figure D.40: Windows 2000 Users of This Computer dialog.

133 Figure D.41: Windows 2000 Getting Started screen.

Once this configuration has completed, the initial startup screen should appear.

134 References

[1] System requirements for Microsoft Windows 2000 operating systems. url: https:// support.microsoft.com/en-us/kb/304297/en-us. [2] QEMU/Monitor: eject - Wikibooks, open books for an open world. url: http://en. wikibooks.org/wiki/QEMU/Monitor#eject. [3] QEMU/Monitor - Wikibooks, open books for an open world. url: http://en.wikibooks. org/wiki/QEMU/Monitor.

135