Сабж

Собственно соль данного эссе в том, что мне уже давно хочется поиграть в старые игры. Ностальгия понимаете ли. Но не все старые игры, можно купить легально. А устанавливать, бесплатно купленные игры, на основную систему, как-то боязно. При этом, некоторые старые игры, могут не запуститься на новой ОСи / железе. К счастию, интернет, полон всякого … всяких полезных программ, которые (не)легко могут помочь с сабжем.

Что мне известно и про что будет в посте.

  • DOSBox,DOXBox Stagin, DOSBox-X - отлично подходят для DOS-игр. А на последнем, даже можно запустить Windows 98 и даже с 3D-ускорением (сам не пробовал). DOSBox отличная вещь, рекомендую для DOS-игр. Есть еще ScummVM, но это больше для квестов. Так же рекомендую, заглянуть сюда. Здесь можно поиграть прямо в браузере интернет обозревателе.
  • PCEm и его клон 86Box - эмуляторы старого железа. Как пишет Old-Games.ru Wiki, PCem — это эмулятор персонального компьютера на уровне регистров аппаратного обеспечения. Из-за этого (а может и нет), чтобы сэмулировать Pentium 233 MMX, понадобится хороший современный процессор. С другой стороны, из-за этого (а может и нет), устанавливаемая ОС, всает как на реальное железо. Планирую попробовать его с Windows 98. Будет отдельный пост
  • Wine - must have на Linux. Умеет старые и новые windows-игры. Конечно не все, но много. Благодаря Valve / Steam и их Proton, игр работающих в Linux, становится все больше. Есть удобные утилиты. Сам пользуюсь вот этой - Lutris. На Linux это все можно изолировать, всяческий. Например так или при помощи firejail и наверно кучей других способов. Но посто сегодня не про него. :)
  • VirtualBox - годнота. Но начиная с 6.1, отключили поддержку 3D в Windows XP 1, 2. А мне хочется именно Windows XP.
  • VMware Player - умеет как 3D, причем вплоть до Direct X11, так и Windows XP. :) Внимательный читатель спросить - а причем тут собственно SVN. И будет прав. )) Cоль в том, что VMware Player, не умеет делать снимки (snapshots) виртуальных машин. Делать их умеет VMware Workstation, которая стоит денег, в отличии от Player. А почему именно SVN, а не Git, об этом уже в посте.

Пост

Так почему SVN? Потому что я нашел статью - снимки для VMware Player. И в этой статье, про SVN. :) Я конечно же больше привык к Git, и началь искать про Git и большие двоичные файлы. Но то что нашел, не перевесило чашу весов в сторону Git.

Настройка SVN

Я немного отошел от статья, но не сильно. Все делал на Windows 10. Использовал TortoiseSVN. В качестве вирутально ОСи, использовал Windows XP. Вирутальные машины я держу в каталоге D:\VirtualPC.

  1. Создаем каталог D:\VirtualPC\WindowsXP. Вунтри создаем два подкаталога: repo и work.
  2. Внутри каталога repo создаем SVN-репозиторий. На винде, это делается через вызов контесктного меню каталога, TortoiseSVN / Create. В посте это делается через команду svnadmin create <path_to_repo>.
  3. Внутри каталога work создаем рабочую копию. Так же вызываем конектсное меню, выбираем пункт TortoiseSVN / Checkout. В появившемся диалоге, указываем путь до D:\VirtualPC\WindowsXP\repo. В посте это делается командой svn checkout file:///<path_to_repo>

Установка Windows XP

Здесь все просто - берете и ставите. :) Только в качестве каталога виртуальной машины, нужно выбрать каталог work, в моем случае это был D:\VirtualPC\WindowsXP\work.

После завершения установки, рекмоендую сразу поставить VMware Tools. Если пункт меню Player / Manage / Install VMware Tools заблокирован (серый), то попробуйте сделать как написано в этом посту, а именно:

  • выключить виртуальную машину (ВМ)
  • зайти в настрйоки ВМ
  • удалить устройство CD-ROM
  • добавить устройство CD-ROM
  • в настройках CD-ROM выбрать physical autodetect Далее в меню Player / Manage выбираем Install VMware Tools и следуем мастеру устанвки.

windows xp

Снимок

Теперь у нас есть чистая Windows XP, внутри виртуальной машины. Самое время сделать снимок (snapshot).

Добавляем отслеживаемые файлы:

svn add *.nvram, *.vmdk, *.vmsd, *.vmx, *.vmxf

На самом деле, я не выполнял этой команды, все это я сделал через конеткстное меню. В оригинальном посте, автора добавляет все файлы в рабочем каталоге. Я не стал добавлять файлы логов и катлог кэша. Их я добавил в ignore-лист.

svn propset svn:ignore "*.log" also_cache_dir

Эту команду я тоже не выполнял, а всопользовался контекстным меню.

Коммитим (commit). В посте это делается командой

svn commit -m 'Initial commit'

Теперь, для восстановления на определенный снимок, достаточно выбрать нужную ревизию в логах, и восстановить (update) рабочий каталог work на эту ревизию.

$ svn log
$ svn update -r2

Либо воспользоваться контекстным меню.

P.S.

Полезные утилиты.
WinCDEmu - бесплатный CD/DVD/BD эмулятор, с открытым исходным кодом. Работает на Windows XP - 10. Поддерживает много форматов.