This page provides instructions and tips for installing Windows in PCem to make tool-assisted speedruns. The entirety of the main guide applies here too. To discuss this setup and its usage, please visit this thread.
These guidelines will help you make a TAS that people will be able to sync on other machines. If nobody else can sync your run, then it will probably not get accepted!
We cannot distribute a fully configured OS hard drive image like we did with the DOS configurations, so you will need to install Windows yourself. But we can provide a libTAS movie that you can run and it will automatically install Windows onto a hard drive image for you.
Be aware of our Movie Rules for libTAS movies and especially for running PCem in libTAS.
Table of contents
What you'll need
The steps for installing Windows 95 or Windows XP in PCem under libTAS are similar. You will need a number of files matched exactly by name and hashsum, and the steps below largely involve identifying the correct files and ensuring they are in the correct locations. Consult the Windows configuration page for additional details including hashsum information as well as full hardware specifications. The following elements should be in place to complete a Windows installation using a libTAS movie file:
Common files
- libTAS and PCem installed (ensure
~/.pcem/pcem.cfg
hasconfirm_on_stop_emulation = 0
set). - ROM files for PCem v17. We can't distribute them. Place all PCem ROMs in
~/.pcem/roms/
. File names are case-sensitive!- The files you'll need for Windows are:
ga686bx/6BX.F2a
,voodoo3_3000/3k12sd.rom
, andawe32.raw
. Their hashsums are provided in the Windows common configuration section.
- The files you'll need for Windows are:
- An empty 4GB hard drive image file (download link)
- If you are installing Windows 95, just rename the
windowsxp.img
file towindows95b.img
or similar.
- If you are installing Windows 95, just rename the
- Make sure
~/.pcem/roms/ga686bx/flash.bin
and~/.pcem/nvr/windowsxp.ga686bx.nvr
files do not exist! If you write to disk or use PCem outside of libTAS, delete the files again before installing.
OS dependent files
File | Windows 95 | Windows XP |
---|---|---|
Windows installation CD image | Windows 95b OSR 2 | Windows XP SP3 Home Edition |
Utilities CD with extra dependencies | Windows 95 utilities ISO | Windows XP utilities ISO |
Boot floppy (Windows 95 only) | Microsoft Windows 95 OSR2 - Boot Disk | |
Machine config file (update each /full/path/to/ ) | windows95b.cfg | windowsxp.cfg |
OS installation movie file for libTAS | Windows 95 installation .ltm | Windows XP installation .ltm |
Installing the OS
Run PCem in libTAS as follows (similar to the main PCem guide):
- Set the game executable to the full path to PCem, usually
/usr/bin/pcem
. - Set the command line to
--config /full/path/to/config.cfg
, substituting the path of your.cfg
file. Use the full path, do not shorten it with~
. - Uncheck Runtime -> Prevent writing to disk for the installation movie only (remember to check this back after the OS installation is complete).
- Play back the matching installation movie above (fast-forward should work).
- If something is missing and the process fails, delete
~/.pcem/roms/ga686bx/flash.bin
and~/.pcem/nvr/windowsxp.ga686bx.nvr
and recreate an empty 4GB hard drive image before trying again.
When the Windows installation completes successfully, you will have
flash.bin
, .nvr,
and .img
files that represent your setup. See descriptions/annotations of respective OS installation movies for their paths, names, and hashsums.
- If some hashsum does not match, you'll have to redo the installation process again, because that's the only way to ensure your actual TAS will sync for other people!
Encodes
Using Windows with libTAS
flash.bin and NVR
flash.bin
is file a created by the system, it contains the flash memory of the system. Because the ROM gets written into it, we can't distribute it. This file may also contain custom system parameters from previous configs using the chipset.
Similarly, a non-volatile memory file is created in
~/.pcem/nvr/
named after your machine config and motherboard (for example windowsxp.ga686bx.nvr
). It is also required for movie sync. It can be distributed, but it's pointless to distribute it, since the installation movie has to be run anyway, and it recreates the NVR file.
- You must always start with the
~/.pcem/roms/ga686bx/flash.bin
and~/.pcem/nvr/windowsxp.ga686bx.nvr
files that were generated from the Windows XP installation movie.- If you use a verification movie to install your game, you should start with
flash.bin
and.nvr
that were generated from that.
- If you use a verification movie to install your game, you should start with
libTAS Settings
- All settings from the main PCem guide apply
- Games that attempt to fetch the current time and date may not work correctly using the default system time in libTAS (which results in 2070-01-01). To fix this, set the system time to a date between 2000-01-01 (946684800 System time in libTAS) and 2037-12-31 (2145830400).
- 1980-01-01 (2145830400 System time in libTAS) to 1999-12-31 (946684800) should also work. However, Windows XP is known to take substantially longer to boot up using system times in this range and hence this is not recommended.
Trivia
- Double-click on the 3dfx icon in the Notification area (alternatively, right-click it and select 3dfx Voodoo 3 Board - 3dfx Hub)
- Go to 3dfx Advanced Features tab
- Go to Direct3D (or OpenGL/Glide, depending on the game) -> Speed Settings
- Change Fastest (V-Sync Disabled) to Normal (V-Sync Enabled) by double-clicking on the current option and selecting the other one in the dropdown that appears
This may reduce screen tearing in your game, but it's not guaranteed to help.
Starting time | 3dfx card BIOS | Pentium II BIOS | System Config | Windows XP | Res increase | Mouse appears | Welcome | Desktop |
---|---|---|---|---|---|---|---|---|
1 | 2.27 | 3.63 | 9.57 | 13.82 | 44.39 | 44.55 | 48.75 | 51.56 |
100000000 | Trial expiry | |||||||
300000000 | Trial expiry | |||||||
400000000 | Invalid time/date | |||||||
500000000 | Too long (300+) | |||||||
800000000 | Invalid time/date | |||||||
1000000000 | 2.27 | 3.63 | 9.57 | 13.82 | 53.42 | 55.88 | 60.63 | 68.75 |
1100000000 | 2.27 | 3.63 | 9.57 | 13.82 | 44.4 | 44.56 | 48.94 | 51.39 |
1200000000 | 2.27 | 3.63 | 9.57 | 13.82 | 44.42 | 44.58 | 48.84 | 51.49 |
1300000000 | 2.27 | 3.63 | 9.57 | 13.82 | 44.4 | 44.56 | 48.55 | 53.62 |
1400000000 | 2.27 | 3.63 | 9.57 | 13.82 | 53.42 | 55.89 | 58.36 | 68.84 |
1500000000 | 2.27 | 3.63 | 9.57 | 13.82 | 53.42 | 55.88 | 58.31 | 68.78 |
1600000000 | 2.27 | 3.63 | 9.57 | 13.82 | 53.42 | 55.88 | 59.92 | 68.72 |
1700000000 | 2.27 | 3.63 | 9.57 | 13.82 | 44.4 | 44.56 | 48.74 | 51.1 |
1800000000 | 2.27 | 3.63 | 9.57 | 13.82 | 44.4 | 44.56 | 48.91 | 51.36 |
1900000000 | 2.27 | 3.63 | 9.57 | 13.82 | 44.4 | 44.57 | 49.01 | 51.36 |
2000000000 | 2.27 | 3.63 | 9.57 | 13.82 | 53.42 | 55.88 | 59.88 | 68.75 |
2100000000 | 2.27 | 3.63 | 9.57 | 13.82 | 53.42 | 55.89 | 58.27 | 68.76 |
Legend:
- 3dfx card BIOS = first frame that the text is visible onscreen
- Pentium II BIOS = first frame that the text is visible onscreen
- System Config = frame that the window settles on its new resolution
- Windows XP = frame that the window settles on its new resolution of 640x480
- Res increase = frame that the window settles on its new resolution of 800x600
- Mouse appears = first frame that the mouse appears onscreen
- Welcome = first frame that the welcome screen (or "Windows is starting up") is fully visible
- Desktop = first frame that the desktop is fully visible