Я пытаюсь настроить игровую виртуальную машину, потому что не хочу, чтобы весь этот «хлам» был на моей основной системе.
У меня уже есть VMware Workstation 7, я решил создать новую виртуальную машину с Windows 7 и Windows XP.
Я установил Unreal Tournament 2004 на обе виртуальные машины. Он не запустился на Windows XP, ничего страшного, потому что он все еще работает на моем образе Windows 7. Когда я запускаю эту игру, я получаю сообщение, что звуковое устройство не может быть использовано, потому что deviceID находится вне диапазона
Звуковое устройство по умолчанию не может быть открыто:
Использован идентификатор устройства, который находится вне диапазона вашей системы. Звук будет отключен.
Звуки Windows работают, также есть звуки в некоторых других играх (например, Warcraft II). Я подозреваю, что это как-то связано со звуками DirectX или Direct3D. Если я правильно помню, в Half-Life (CS1.6) звук тоже не включен из-за той же ошибки. В Counterstrike Source звук есть в меню, но после запуска игры он пропадает с той же ошибкой.
Есть ли у вас какие-нибудь советы или предложения?
Я уже нашел несколько сайтов, которые говорят мне, что мне следуетизмените звуковое устройство на Soundblaster, но это применимо только к старым играм DOS.
Редактировать
Я сейчас играю в Doom 3 на VM, и там есть звук. Я почти уверен, что там есть поддержка DirectX. С другой стороны, похоже, что там не используется DirectSound.
Warcraft 2, Warcraft 3, Unreal Tournament (classic), Quake 3 также имели звук во время игры.
Я сегодня пробую UT2003, и там тоже включен звук, я все слышу. В программном 3D, аппаратном 3D и безопасном режиме.
По запросу мои файлы VMX. Сначала моя машина Windows 7:
.encoding = "windows-1252"
config.version = "8"
virtualHW.version = "7"
numvcpus = "4"
cpuid.coresPerSocket = "2"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsisas1068"
memsize = "2048"
mem.hotadd = "TRUE"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "Game 7.vmdk"
ide1:0.present = "TRUE"
ide1:0.autodetect = "FALSE"
ide1:0.deviceType = "cdrom-raw"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
ethernet0.virtualDev = "e1000"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
usb.present = "TRUE"
ehci.present = "TRUE"
sound.present = "TRUE"
sound.fileName = "-1"
sound.autodetect = "TRUE"
mks.enable3d = "TRUE"
serial0.present = "TRUE"
serial0.startConnected = "FALSE"
serial0.fileType = "thinprint"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
roamingVM.exitBehavior = "go"
displayName = "Game 7"
guestOS = "windows7-64"
nvram = "Game 7.nvram"
virtualHW.productCompatibility = "hosted"
extendedConfigFile = "Game 7.vmxf"
ide1:0.fileName = "D:"
floppy0.present = "FALSE"
ide1:0.startConnected = "TRUE"
ethernet0.generatedAddress = "00:0c:29:e8:85:9e"
tools.syncTime = "FALSE"
uuid.location = "56 4d 8f 49 68 58 4f 4e-0e f0 f5 31 4e e8 85 9e"
uuid.bios = "56 4d 8f 49 68 58 4f 4e-0e f0 f5 31 4e e8 85 9e"
cleanShutdown = "FALSE"
replay.supported = "FALSE"
unity.wasCapable = "TRUE"
replay.filename = ""
scsi0:0.redo = ""
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "160"
usb.pciSlotNumber = "32"
ethernet0.pciSlotNumber = "33"
sound.pciSlotNumber = "34"
ehci.pciSlotNumber = "35"
vmci0.pciSlotNumber = "36"
scsi0.sasWWID = "50 05 05 69 68 58 4f 40"
vmotion.checkpointFBSize = "134217728"
usb:0.present = "TRUE"
usb:1.present = "TRUE"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "1323861406"
usb:1.deviceType = "hub"
usb:0.deviceType = "mouse"
hgfs.mapRootShare = "TRUE"
isolation.tools.hgfs.disable = "FALSE"
sharedFolder.maxNum = "1"
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "F:\Temp\VMShare"
sharedFolder0.guestName = "VMShare"
sharedFolder0.expiration = "never"
Мой компьютер с Windows XP выглядит так:
.encoding = "windows-1252"
config.version = "8"
virtualHW.version = "7"
memsize = "2048"
ide0:0.present = "TRUE"
ide0:0.fileName = "UML.vhd"
ide1:0.present = "TRUE"
ide1:0.autodetect = "TRUE"
ide1:0.deviceType = "cdrom-raw"
floppy0.startConnected = "FALSE"
floppy0.fileName = ""
floppy0.autodetect = "TRUE"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
usb.present = "TRUE"
ehci.present = "TRUE"
sound.present = "TRUE"
sound.fileName = "-1"
mks.enable3d = "TRUE"
serial0.present = "TRUE"
serial0.fileType = "thinprint"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
roamingVM.exitBehavior = "go"
displayName = "UML Machine"
guestOS = "winxppro"
nvram = "UML Machine.nvram"
virtualHW.productCompatibility = "hosted"
printers.enabled = "TRUE"
extendedConfigFile = "UML Machine.vmxf"
sound.virtualDev = "es1371"
ethernet0.generatedAddress = "00:0c:29:10:10:79"
sound.autodetect = "TRUE"
uuid.location = "56 4d 32 87 54 f5 1b df-46 45 83 91 b9 10 10 79"
uuid.bios = "56 4d 32 87 54 f5 1b df-46 45 83 91 b9 10 10 79"
cleanShutdown = "TRUE"
replay.supported = "FALSE"
replay.filename = ""
scsi0:0.redo = ""
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "-1"
usb.pciSlotNumber = "32"
ethernet0.pciSlotNumber = "33"
sound.pciSlotNumber = "34"
ehci.pciSlotNumber = "35"
vmci0.pciSlotNumber = "36"
vmotion.checkpointFBSize = "134217728"
usb:0.present = "TRUE"
usb:1.present = "TRUE"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "-1190129543"
usb:1.deviceType = "hub"
usb:0.deviceType = "mouse"
ide0:0.redo = ""
ide1:0.startConnected = "TRUE"
tools.syncTime = "FALSE"
unity.wasCapable = "FALSE"
ide1:0.fileName = "auto detect"
debugStub.winOffsets.version = "7"
debugStub.winOffsets.value = "0x88,0x84,0x18,0x190,0x174,16,416,0x22c,0x228,0x1f0,0x224,0x20,0x18,0x18,0x20,0x24,4,0x11c,0x8,0x0,0x14,0x100000,0x1b0,0xc,0xc,0x18,0x13c,0x1f4"
решение1
Вы можете попробовать настроитьnumvcpusосновано наcpuid.coresPerSocketзначение в вашем vmx.
Некоторые пользователи VMWare обнаружили, что«VMware может работать только с оригинальными ядрами».
Вы можете попробовать, установив
numvcpus
ктакой жеценность, чем
cpuid.coresPerSocket
в вашем vmx-файле, т.е.
numvcpus = "2"
cpuid.coresPerSocket = "2"
Имейте в виду, что в любом случае придется
"Ensure that the number of vCPUs is divisible by the number of cpuid.coresPerSocket
in the virtual machine. That is, when you divide the number of vCPUs by the number
of cpuid.coresPerSocket , it must return an integer value. For example, if your
virtual machine is created with 8 vCPUs, coresPerSocket can only be 1, 2, 4, or 8."
(источник)