Forums  /  Toy Story series  /  Toy Story 2: Buzz Lightyear to the Rescue  /  How do you run the PC version on modern PC? (The famous "unable to enumerate..." error)
  FabiosekFabiosek

Hi!

I have a another problem. Toy story 2 works too slowly. I have DGVoodoo (2.4 version because the newer does not work).
The game has the correct number of FPS, but the game runs slow ;/

My system:

RAM: 3GB (DDR2)
Windows 10 (PRO) 32-bit
GPU: Nvidia Geforce 9500 GT (512MB)
CPU: Dual Core E5200

 
  XYXXYX

@Fabiosek try using more of your cpu (record or stream with OBS) for some reason my pc runs this game better when im using more CPU usage!

 
  cheeseandcerealcheeseandcereal

You can also try choosing a different rendering device in the resolution selection screen to see if that helps solve your problem. Other than that, your best bet is to mess with the dgVoodoo settings.

 
  FabiosekFabiosek

My Settings:

http://imgur.com/Q2bOUxk

http://imgur.com/e30vHVs

http://imgur.com/6CwdX1M

I tested:

Device: Nvidia Geforce 9500 GT and vodoo Wrapper (something like that)
Render: MMX Emulation and Hardware

The resolution does not matter.

 
  hdc0hdc0

It seems your graphics card is too old:

Quote

Warning: You need a strong iron hardware for dgVoodo 2 versions up to 2.2
Starting with that version I optimized a lot in the shaders so a 3-4 years old nVidia or ATI card will do in general.

http://dege.freeweb.hu/dgVoodoo2.html

 
  FabiosekFabiosek

Update:

Works version 2.52

Edit: It is already running, but too fast 😃

Thanks for the help.

 
  hdc0hdc0

PeterAfro:
Could you try this? It won't fix the bug, but it will help to narrow down where the problem is.
¤ Start Cheat Engine
¤ Click File -> Open Process -> Create process and select Toy2.exe.
¤ Don't pass any parameters.
¤ Click Tools -> Lua Engine in the Memory Viewer window.
¤ Paste the contents of http://pastebin.com/vuWr0fYP and click Execute. Keep the Lua Engine window open.
¤ Click Debug -> Run in the Memory Viewer window.
¤ Post the text that was added to Output when you clicked Run.

 
  PeterAfroPeterAfro

ExamineDDEnumCallback: DirectDrawCreate returned 0x80004005 for device #0
Found 0 suitable DirectDraw devices

 
  hdc0hdc0

Could anyone who managed to bypass the "unable to enumerate a suitable device" bug by using dgVoodoo temporarily disable dgVoodoo, start toy2.exe with the -log option and post his toy2.log?

PeterAfro:
Do you get the same output from Cheat Engine with and without dgVoodoo?

 
  cheeseandcerealcheeseandcereal

Here is a pastebin of the "unable to enumerate a suitable device" log when I disable dgVoodoo:

http://pastebin.com/P9Atjqvx

While I still had dgVoodoo disabled, I also ran your lua script via cheatengine, and these were the results (when the game gave me the "unable to enumerate a suitable device error")

ExamineDDEnumCallback: DirectDrawCreate returned 0x00000000 for device #0
ExamineDDEnumCallback: GetCaps returned 0x00000000 for device #0
Found 1 suitable DirectDraw devices

And for reference, here is a log when I enable dgVoodoo and it works properly:

http://pastebin.com/bkvMCwTn

And once again when running the lua script via cheat engine while dgVoodoo is enabled (and the game works properly) this is the output:

ExamineDDEnumCallback: DirectDrawCreate returned 0x00000000 for device #0
ExamineDDEnumCallback: GetCaps returned 0x00000000 for device #0
Found 1 suitable DirectDraw devices

 
  hdc0hdc0

Thanks for the log files.

PeterAfro:
The "unable to enumerate a suitable device" error is normally caused by a bug in the part where the amount of available graphics memory is checked. However, on your machine the game fails even before the memory check, namely when calling the WinAPI function DirectDrawCreate.
I made a small program that tests DirectDrawCreate and its DirectX 7 version, DirectDrawCreateEx, with different parameters. Could you run DirectDrawTest.bat and upload its output? You can write its output to a file by running it this way from the command prompt:
DirectDrawTest.bat > DirectDrawTest.txt

https://github.com/hdc0/DirectDrawTest/releases/download/v1.0/DirectDrawTest.zip

 
  PeterAfroPeterAfro

the command prompt closes almost immediately after I open it and does not leave a text file, or I am doing it wrong?

 
  PeterAfroPeterAfro

the command prompt just shows some text for a split second than closes, or I am doing it wrong?

 
  cheeseandcerealcheeseandcereal

Peter, open up a command prompt window (press the windows key, type "cmd" then press enter), then type:

cd "DIRECTORY OF THE DOWNLOADED BATCH FILE"
(and hit enter, obviously replacing the text inside the parentheses with the path of the folder containing the downloaded batch file, i.e.: C:\Users\Adam\Downloads\DirectDrawTest)

Then type:
DirectDrawTest.bat > DirectDrawTest.txt
(and hit enter)

This will create a DirectDrawTest.txt file in the directory with the .bat file

 
  PeterAfroPeterAfro

DirectDrawCreate returned 0x00000000 for GUID NULL
DirectDrawCreate returned 0x00000000 for GUID DDCREATE_EMULATIONONLY
DirectDrawCreate returned 0x00000000 for GUID DDCREATE_HARDWAREONLY
DirectDrawCreateEx returned 0x00000000 for GUID NULL
DirectDrawCreateEx returned 0x00000000 for GUID DDCREATE_EMULATIONONLY
DirectDrawCreateEx returned 0x00000000 for GUID DDCREATE_HARDWAREONLY

 
  hdc0hdc0

The output looks good. So DirectDrawCreate works when it's not called from toy2.exe.
Now could you move DirectDrawTest.bat and DirectDrawTest.exe to the directory that contains toy2.exe and post the results again?
After that, rename toy2.exe to something else, rename DirectDrawTest.exe to toy2.exe and in the command prompt run toy2.exe. What's the output of the command?

 
  cheeseandcerealcheeseandcereal

You need quotation marks around the path if it has spaces. i.e.
cd "C:\Program Files\Disney Interactive\Toy Story 2"

Also make sure you run cmd as an admin (if you weren't already).

 
  PeterAfroPeterAfro

After moving bat
DirectDrawCreate returned 0x80004005 for GUID NULL
DirectDrawCreate returned 0x80004005 for GUID DDCREATE_EMULATIONONLY
DirectDrawCreate returned 0x80004001 for GUID DDCREATE_HARDWAREONLY
DirectDrawCreateEx returned 0x80004005 for GUID NULL
DirectDrawCreateEx returned 0x80004005 for GUID DDCREATE_EMULATIONONLY
DirectDrawCreateEx returned 0x80004001 for GUID DDCREATE_HARDWAREONLY
After changing names
DirectDrawCreate returned 0x80004005 for GUID NULL (not missing anything, that is all it returned)