Getting GRE Powerprep to work under Wine
From WhyNotWiki
Contents |
[edit] wine-0.9.45
The installer worked perfectly. However, running the app itself, I ran into many obstacles.
[edit] { ModeSwap Windows App...: "Could not switch display mode!"
When I tried to run it I got this error in a little popup window.
Following this suggestion...
http://www.urch.com/forums/gmat/40093-powerprep-not-working-gives-modeswap-error.html.
Bronco...search for the file 'modeswap.exe' on your system and rename it to something else like 'modewapXX.exe' and then try running PP. Looks like some kind of a display driver issue...
... I did this:
~/.wine/drive_c/Program Files$ mv 'GRE Powerprep/PPGRE/PPREP/modeswap.exe' 'GRE Powerprep/PPGRE/PPREP/modeswap.xexe'
[edit] }
[edit] { Missing DLLs
~/.wine/drive_c/Program Files/GRE Powerprep/PPGRE/PPREP$ wine PPREP.EXE Could not load 'MFC250.DLL' required by 'PPGRE', error=2
I followed the suggestion found here: http://www.winehq.org/pipermail/wine-users/2006-May/021834.html.
> I have such a problem: Could not load 'MFC250.DLL' required by 'PPGRE', > error=2 > > but there is the file MFC250.DLL in drive_c/windows/system > > Does anybody have any suggestions ??Copy the file to the directory the .exe is in. Run the .exe from within this directory.
$ cp /home/tyler/.wine/drive_c/windows/system/MFC250.DLL '/home/tyler/.wine/drive_c/Program Files/GRE Powerprep/PPGRE/'
~/.wine/drive_c/Program Files/GRE Powerprep/PPGRE/PPGRE$ wine PPGRE.EXE Could not load 'PPOSA.DLL' required by 'PPGRE', error=2
~/.wine/drive_c/Program Files/GRE Powerprep/PPGRE/PPGRE$ cp ../PPREP/*.DLL ./
[edit] }
Now I could start up the program okay. But when I tried to start a practice test or even practice questions, it complained about not being able to find or start TDA or something.
[edit] { Can't find TDA
~/.wine/drive_c/Program Files$ ffind TDA ./GRE Powerprep/PPGRE/PPGRE/TDAREF.DLL ./GRE Powerprep/PPGRE/PPGRE/TDAHELP.DLL ./GRE Powerprep/PPGRE/PPGRE/TDAIQ.DLL ./GRE Powerprep/PPGRE/PPGRE/TDABKOBJ.DLL ./GRE Powerprep/PPGRE/PPREP/TDACAT.EXE ./GRE Powerprep/PPGRE/PPREP/TDAREF.DLL ./GRE Powerprep/PPGRE/PPREP/TDAHELP.DLL ./GRE Powerprep/PPGRE/PPREP/TDA.EXE ./GRE Powerprep/PPGRE/PPREP/TDAIQ.DLL ./GRE Powerprep/PPGRE/PPREP/TDABKOBJ.DLL ~/.wine/drive_c/Program Files/GRE Powerprep/PPGRE/PPGRE$ cp ../PPREP/TDA.EXE ./
[edit] }
Now what I try the same thing, I get one of these behaviors (it alternates randomly each time I restart the program):
- When I try to start a practice question, it flashes a "Please wait" message on a gray box briefly, and the main Powerprep window flashes, but then it returns me to the menu I was just at, as if I had not just told it to give me a practice question.
- When I try to start a practice question, it shows a "Please wait" message and hangs there. (I had to kill the process:
winevdm.exe --app-name C:\Program Files\GRE Powerprep\PPGRE\PPREP\PPREP.EXE)
http://www.winehq.org/pipermail/wine-users/2005-May/018119.html.
it will pop up a window giving you various choices you can select from to study for the GRE -- choose "practice tests" and then either "practice test 1" or "practice test 2." At this point it will try to run a new executable (TDA.exe, I think), and that is when the error handler message comes up and it crashes.
Looks like they never found the solution either.
Tried this:
~/.wine/drive_c/Program Files/GRE Powerprep/PPGRE/PPGRE$ cp ../PPREP/TDA* ./
Same result.
Curious what it actually was and whether I could use it independently from Powerprep, I tried this...
$ ./TDA.EXE
It showed a popup that said: "Fatal" "No Command Line".
I wasn't sure if this would work (having a Windows app launch a shell script), but I decided to try this to see if I could see just what arguments were being passed to tda.exe:
I temporarily renamed TDA.EXE and created this script as the new TDA.EXE:
#!/bin/bash echo $@ >> evidence
A test:
$ ./TDA.EXE arg1 /arg2 -arg3 ; cat evidence ; rm evidence arg1 /arg2 -arg3
Now, the real thing... I started up the program again and clicked on "practice questions" from the menu. It showed "Please wait" for a second and then the message disappeared and I was still at the menu.
Here's what the arguments to TDA.EXE were, apparently:
$ cat evidence C:\PROG~FBU\GRE_~OXT\PPGRE\PPGRE\EPR\cbtparam -pp < C:\PROG~FBU\GRE_~OXT\PPGRE\PPGRE\EPR\00000000.ERR
I would have guessed that cbtparam is a Win32 program, but apparently not (?)...
$ file PPGRE.EXE EPR/cbtparam PPGRE.EXE: MS-DOS executable, NE for MS Windows 3.x EPR/cbtparam: data
EPR\00000000.ERR is this:
Mon 1-28-08 at 21:23:43 Fatal... OSADRM errCode 9: Failed to invoke OsaDrm.Exe:LPVNXX01:C:\PROG~FBU\GRE_~OXT\PPGRE\PPGRE\EPR\:::InitDrm: Mon 1-28-08 at 21:23:48 Fatal... Problem registering - review class.Review Subsystem ...
Whoa! DRM?? On a program that they send to you free to everyone who registers for the GRE!?
$ cp ../PPREP/OSADRM.EXE ./
Still no luck.
$ rm evidence $ rm EPR/00000000.ERR $ wine PPGRE.EXE ... $ cat evidence C:\PROG~FBU\GRE_~OXT\PPGRE\PPGRE\EPR\cbtparam -pp < C:\PROG~FBU\GRE_~OXT\PPGRE\PPGRE\EPR\00000000.ERR
But now EPR\00000000.ERR wasn't even there! That, and the dates mentioned in EPR\00000000.ERR remained the same (and an hour old) after each attempt, seemed to indicate that it wasn't even trying any more, that it was just showing an old error message.
So I deleted the directory and re-installed the software. (Used the default target path this time.)
It shall be noted that the EPR directory is empty after doing a fresh install...
~/.wine/drive_c/Program Files/ETS/PPGRE/PPGRE$ ls EPR
~/.wine/drive_c/Program Files/ETS/PPGRE/PPGRE$ ruby -e 'Dir.new("../PPREP/").each {|a| unless Dir.new(".").include?(a); `cp ../PPREP/#{a} ./`; end }'
With my fake TDA.EXE...
As soon as I requested the Verbal Practice Questions, it invoked TDM.EXE C:\PROG~FBU\ETS\PPGRE\PPGRE\EPR\cbtparam -pp H C:\PROG~FBU\ETS\PPGRE\PPGRE\EPR\00000000.ERR and created EPR/cbtparam . It did not, however, create EPR\00000000.ERR. I wonder when that is supposed to get created?
:~/.wine/drive_c/Program Files/ETS/PPGRE/PPGRE$ ./OSADRM.EXE Could not load 'MFCOLEUI.DLL' required by 'OSADRM', error=2 tyler@tyler-desktop:~/.wine/drive_c/Program Files/ETS/PPGRE/PPGRE$ cp ~/.wine/drive_c/windows/system/MFCOLEUI.DLL ./ tyler@tyler-desktop:~/.wine/drive_c/Program Files/ETS/PPGRE/PPGRE$ ./OSADRM.EXE fixme:ole:CoRegisterMessageFilter16 (0x40e9bc,(nil)),stub!
With the real TDA.EXE...
It shows "Please wait..." but then hangs. On the console, I saw:
~/.wine/drive_c/Program Files/ETS/PPGRE/PPGRE$ wine PPGRE.EXE
fixme:user:EnableHardwareInput16 (0) - stub
fixme:user:EnableHardwareInput16 (1) - stub
wine: Unhandled page fault on read access to 0x00000002 at address 0x7b86a8c2 (thread 001b), starting debugger...
Unhandled exception: page fault on read access to 0x00000002 in 32-bit code (0x7b86a8c2).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:7b86a8c2 ESP:7a5164e0 EBP:7a516638 EFLAGS:00010256( - 00 RIZAP1)
EAX:00000000 EBX:7b8b0888 ECX:00000000 EDX:00000020
ESI:f7f4dd40 EDI:00ab2810
Stack dump:
0x7a5164e0: 00001537 0000002e 007e9459 00000020
0x7a5164f0: 7a516520 00000000 00000000 00000000
0x7a516500: 00000006 007fae8e 007eb630 00000000
0x7a516510: 06131550 7a516524 0035306c 7bc8443c
0x7a516520: 00131540 4461734f 45006d72 7b006578
0x7a516530: 00110000 7bc8443c 7a516578 7bc40947
Backtrace:
=>1 0x7b86a8c2 LoadModule16+0x302(name=<is not available>, paramBlock=0x7fae8e) [/build/buildd/wine-0.9.46/dlls/kernel32/ne_module.c:1158] in kernel32 (0x7a516638)
2 0x7b82f941 in kernel32 (+0xf941) (0x7a516658)
3 0x7b8a064a __wine_call_from_16+0x76() in kernel32 (0x7a516688)
4 0x160f:0x08fb (0x17cf:0xae98)
5 0x1597:0x0511 (0x17cf:0xaeac)
6 0x1657:0x02a7 (0x17cf:0xaec0)
7 0x1687:0x1536 (0x17cf:0xb818)
8 0x16ff:0x2e6b (0x17cf:0xb82a)
9 0x16ff:0x00c8 (0x17cf:0x0000)
0x7b86a8c2 LoadModule16+0x302 [/build/buildd/wine-0.9.46/dlls/kernel32/ne_module.c:1158] in kernel32: movzwl 0x2(%eax,%ecx,1),%eax
Unable to open file '/build/buildd/wine-0.9.46/dlls/kernel32/ne_module.c'
Modules:
Module Address Debug info Name (72 modules)
ELF 7a518000-7a52b000 Deferred libresolv.so.2
ELF 7a52b000-7a584000 Deferred rpcrt4<elf>
\-PE 7a540000-7a584000 \ rpcrt4
ELF 7a584000-7a625000 Deferred ole32<elf>
\-PE 7a590000-7a625000 \ ole32
ELF 7a6af000-7a6e3000 Deferred winspool<elf>
\-PE 7a6c0000-7a6e3000 \ winspool
ELF 7a6e3000-7a7a1000 Deferred comctl32<elf>
\-PE 7a6f0000-7a7a1000 \ comctl32
ELF 7a7a1000-7a7fa000 Deferred shlwapi<elf>
\-PE 7a7b0000-7a7fa000 \ shlwapi
ELF 7a7fa000-7a8fd000 Deferred shell32<elf>
\-PE 7a810000-7a8fd000 \ shell32
ELF 7b800000-7b929000 Dwarf kernel32<elf>
\-PE 7b820000-7b929000 \ kernel32
ELF 7b94e000-7b9ef000 Deferred comdlg32<elf>
\-PE 7b960000-7b9ef000 \ comdlg32
ELF 7bc00000-7bca0000 Deferred ntdll<elf>
\-PE 7bc10000-7bca0000 \ ntdll
ELF 7bca0000-7bcbe000 Deferred iphlpapi<elf>
\-PE 7bcb0000-7bcbe000 \ iphlpapi
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7bf04000-7bf36000 Deferred uxtheme<elf>
\-PE 7bf10000-7bf36000 \ uxtheme
ELF 7bf36000-7bf4b000 Deferred midimap<elf>
\-PE 7bf40000-7bf4b000 \ midimap
ELF 7bf4b000-7bf72000 Deferred msacm32<elf>
\-PE 7bf50000-7bf72000 \ msacm32
ELF 7bf72000-7c000000 Deferred winmm<elf>
\-PE 7bf80000-7c000000 \ winmm
ELF 7d376000-7d3b0000 Deferred wineoss<elf>
\-PE 7d380000-7d3b0000 \ wineoss
ELF 7d3b0000-7d410000 Deferred winedos<elf>
\-PE 7d3c0000-7d410000 \ winedos
ELF 7d410000-7d415000 Deferred libxfixes.so.3
ELF 7d415000-7d41e000 Deferred libxcursor.so.1
ELF 7d41e000-7d43b000 Deferred imm32<elf>
\-PE 7d430000-7d43b000 \ imm32
ELF 7d43b000-7d441000 Deferred libxrandr.so.2
ELF 7d441000-7d449000 Deferred libxrender.so.1
ELF 7d449000-7d44c000 Deferred libxinerama.so.1
ELF 7df21000-7e8b9000 Deferred libglcore.so.1
ELF 7e8b9000-7e94f000 Deferred libgl.so.1
ELF 7e94f000-7e954000 Deferred libxdmcp.so.6
ELF 7e954000-7ea45000 Deferred libx11.so.6
ELF 7ea45000-7ea53000 Deferred libxext.so.6
ELF 7ea69000-7eaf8000 Deferred winex11<elf>
\-PE 7ea80000-7eaf8000 \ winex11
ELF 7eb7d000-7eb9d000 Deferred libexpat.so.1
ELF 7eb9d000-7ebc8000 Deferred libfontconfig.so.1
ELF 7ebc8000-7ebdd000 Deferred libz.so.1
ELF 7ebdd000-7ec4d000 Deferred libfreetype.so.6
ELF 7ec4d000-7ec96000 Deferred advapi32<elf>
\-PE 7ec60000-7ec96000 \ advapi32
ELF 7ec96000-7ed31000 Deferred gdi32<elf>
\-PE 7ecb0000-7ed31000 \ gdi32
ELF 7ed31000-7ee6f000 Deferred user32<elf>
\-PE 7ed50000-7ee6f000 \ user32
ELF 7ee6f000-7ee87000 Deferred libnsl.so.1
ELF 7ee87000-7ee90000 Deferred libnss_compat.so.2
ELF 7efc5000-7efea000 Deferred libm.so.6
ELF 7efeb000-7f000000 Deferred winevdm<elf>
\-PE 7eff0000-7f000000 \ winevdm
ELF f7cc0000-f7cc3000 Deferred libxau.so.6
ELF f7cc3000-f7cce000 Deferred libnss_files.so.2
ELF f7ccf000-f7cd3000 Deferred libdl.so.2
ELF f7cd3000-f7e1d000 Deferred libc.so.6
ELF f7e1e000-f7e36000 Deferred libpthread.so.0
ELF f7e36000-f7e38000 Deferred libnvidia-tls.so.1
ELF f7e38000-f7e42000 Deferred libnss_nis.so.2
ELF f7e4c000-f7f60000 Deferred libwine.so.1
ELF f7f62000-f7f80000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
0000001e (D) c:\windows\system32\winevdm.exe
0000001b 0 <==
00000024 0
00000022 0
0000000d
0000000e 0
0000000a
0000000c 0
0000000b 0
err:ntdll:RtlpWaitForCriticalSection section 0x7b9274c0 "syslevel.c: Win16Mutex" wait timed out in thread 0024, blocked by 001b, retrying (60 sec)
cerr:syslevel:_LeaveSysLevel (0x7b9274c0, level 1): Invalid state: count 0 mutex (nil).
http://www.urch.com/forums/toefl/23067-toefl-powerprep-software.html.
I remember that two signs showed up. One said that there was a mistake in a program (TDA, Test Delivery Application ) and then I had two choices, either two close the running progress or to ignore it. No matter which choice I took another sign showed up. This one said that there was an error in the program and something like I had no application. [...]
I tried to start the second test as well, but this one doesn't work either. Its the same but with another program (OSADRM, OSADRM MFC Application). You can find this program in the PPREP file.
Here's the bug ticket: http://bugs.winehq.org/show_bug.cgi?id=3766
[edit] wine-0.9.54
Used regedit to change PATH (under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment).
Here's what the path looks like now:
$ wine cmd CMD Version 0.9.54 C:\Program Files\ETS\PPGRE\PPGRE>path PATH=c:\windows\system32;c:\windows\system;c:\windows;c:\Prog~FBU\ETS\PPGRE\PPREP
But now when I do wine PPGRE.EXE, it just hangs there.
$ WINEDEBUG=+tid,+relay,+seh,warn+all wine PPGRE.EXE 2>backtrace
http://bugs.winehq.org/show_bug.cgi?id=3766
[edit] Other people who have had problems getting Powerprep to work under Wine
http://www.winehq.org/pipermail/wine-users/2004-July/014359.html
