What's new

Dolphin (SVN) discussion thread

Cyberman

Moderator
Moderator
I take it support for anything prior to XP is not going to happen for Dolphin? the emulator crashes when it attempts to probe for a 64bit process even though it's a 32 bit version. This seems a bit backwards if the app is built for 32bit OS why is it probing for 64bit application operation? The specific error
error_dolphin_32bit.png


I suppose if I had the time I could look into the cause, I don't however (too many other projects to be honest).

I just think it a bit odd to look for 64bit ness when it's not supposed to be a 64bit app.

Cyb
 

p_025

Voted Least Likely to Succeed
Yeah, I doubt any Windows releases before WinXP will be supported. However, I have succeeded in getting it to run on Win7 x64. I guess it's sort of an "out with the old, in with the new" thing, though I don't appreciate that sort of mentality. I think backwards compatibility is a good thing, but this might just be too dependent on newer OSes. On the other hand, if it can work on XP, Vista and 7, as well as Linux and OS X, then why not on 98 at least?
 

Cyberman

Moderator
Moderator
Well I believe win2K is a good minimum. The problem I really have is that is a 64bit OS querry that is supported by XP (but why that's what I really want to know). Perhaps this type of behavior should be more encapsulated?

I'm not sure how many win98 machines are out there. The problem with supporting it is DX and OGL support might be lacking and more importantly memory might be at issue (win98se did weird things with large memory).

Cyb
 

Xtreme2damax

New member
It probably uses os features that Windows 98 lacks. Anyways Windows 98 is quite old now, it would be like trying to get Dolphin working on Windows 95, Windows 3.1 and Dos..
 

Xtreme2damax

New member
But if the operating system lacks the features to run Dolphin, then you can't really support it can you? Just like games that use shaders can't run on a Geforce MX and Intel Graphics accelerators before the 9xxx series...

I'm not sure what Dolphin requires other than what is already common knowledge..

Dolphin requires the latest DirectX and Visual C++ Redistributable, so unless these are able to be installed and function properly on older operating systems like Windows 98 then it won't work..

Dolphin might require other operating system features, libraries, and/or runtimes that aren't available on or won't work on older operating systems.

Even the Linux and Mac versions aren't really usable yet, and the Windows version is just starting to get there. You can't really expect it to run on outdated software like Windows 98 and below. I suppose it should run on a Commodore 64, Apple 2, Dos shell/Dos as well?

Most developers are starting to already move away from Windows XP now that Vista is out and soon to be Windows 7. They can still support it if they choose, however it doesn't mean they have to develop anything for it.

Just like Microsoft is still supporting Windows 98/2k for the time being, but no longer develops anything for them..
 

Cyberman

Moderator
Moderator
I believe Vista is not common enough to justify such a standpoint. Despite MS claims of installations they are also including XP downgrades in there numbers. In addition quite a few people simply didn't upgrade to Vista. Most places I've talked with aren't running Vista because it is STILL a major anoyance even after all this time after there introduction.

Bottom line is, there is no clear and obvious OS to support. Vista is not the latest and definately not the greatest. Right now I wish I could get XP64. I think there are too many issues really with the mindset of "well it's old", old to who? I'm running win2K on a machine that it isn't supposed to support (oddly XP drivers work fine in it).

Granted I am going to upgrade this machine to XP sooner or later I just need to find a way to support all my expensive software otherwise I would need to reinstall. (I'll have to see if I can run the install as Upgrade instead of wipe out).

The biggest problem with older OS support obviously is DX or OGL support. Because Nvidia has dumped XP support pretty much for DX10 or (whatever). Nvidia OGL support is quite good though on Linux. Looks too me the core is where there might be issues supporting more than just one OS. Is the 32bit version just for Vista32 or is it supposed to be for XP?

Cyb

PS:
If you wish to go by market share etc.
Vista gains...
As you can see XP is dominent. Not that it matters per sea, but if you wish to go by who is most likely to use the thing... only 1.36% for win2K (LOL I'm a minority).
Anyhow this is q digression, I'm just wondering why there is no check for compatibility before issuing a potentially incompatible OS query.

Further it's VERY easy to avoid this problem from MS:
For compatibility with operating systems that do not support this function, call GetProcAddress to detect whether IsWow64Process is implemented in Kernel32.dll. If GetProcAddress succeeds, it is safe to call this function. Otherwise, WOW64 is not present. Note that this technique is not a reliable way to detect whether the operating system is a 64-bit version of Windows because the Kernel32.dll in current versions of 32-bit Windows also contains this function.
It actually recommends to do this.

I can't make the changes (I don't have the tool chain that's being used) however I suppose I can hunt down the code that does it. It will have to be later (IE after I am done doing real work).

Cyb

PPS:
Ok found the offending code, the problem is that it assumes there will not be an error. Module source/msw/utils.cpp is where it exists (line 1179)
Original code
Code:
bool wxIsPlatform64Bit()
{
#if defined(_WIN64)
    return true;  // 64-bit programs run only on Win64
#else // Win32
    // 32-bit programs run on both 32-bit and 64-bit Windows so check
    typedef BOOL (WINAPI *IsWow64Process_t)(HANDLE, BOOL *);

    wxDynamicLibrary dllKernel32(_T("kernel32.dll"));
    IsWow64Process_t pfnIsWow64Process =
        (IsWow64Process_t)dllKernel32.RawGetSymbol(_T("IsWow64Process"));

    BOOL wow64 = FALSE;
    if ( pfnIsWow64Process )
    {
        pfnIsWow64Process(::GetCurrentProcess(), &wow64);
    }
    //else: running under a system without Win64 support

    return wow64 != FALSE;
#endif // Win64/Win32
}
Suggested new code (based on Microsoft recommendation).
Code:
BOOL wxIsPlatform64Bit()
{
#if defined(_WIN64)
    return true;  // 64-bit programs run only on Win64
#else // Win32
    typedef BOOL (WINAPI *IsWow64Process_t)(HANDLE, BOOL *);
    LPFN_ISWOW64PROCESS pfnIsWow64Process;
    BOOL wow64 = FALSE;

    pfnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(GetModuleHandle(TEXT("kernel32")),"IsWow64Process");
  
    if (NULL != fnIsWow64Process)
    {
        if (!pfnIsWow64Process(GetCurrentProcess(),&wow64))
        {
            // handle error
        }
    }
    return wow64;
#endif // Win64/Win32
}
Since I am not a windows programmer handling the error may or may not be necessary. Microsoft recommended this method for OS's that do not support the function. The original code assumes the function exists this is what is causing it to throw an exception in win2k.

Cyb
 
Last edited:

Xtreme2damax

New member
I've uploaded revision 2740, you may download them from here as usual.

I've uploaded x86, x64, and x86 JITIL builds. :)

On topic:

Dolphin likely utilizes features not present in older operating systems, even if you did replace that code with the new code, there is likely other things that will prevent Dolphin from running or running properly.

Dolphin requires both the latest DirectX redistributable and Visual C++ Redistributable. Dolphin also requires a minimum of 1 GB of ram and likely utilizes other libraries and os functions not present on anything older than XP.

Also Windows 98 and possibly 2k can't utilize dual core processors, which Dolphin uses to increase performance and speed in many games, so only one core will be usable from the start.

There's also other libraries involved for things like the Wiimote, OpenGL among other things that aren't available on anything older than Windows XP.

Also the 5GB file limit of Windows 98/2k kills the possibility of any dual layer Wii games.

There may be more than that, a Dolphin developer could probably provide more insight as to why Dolphin isn't usable on anything below Windows XP..
 

Cyberman

Moderator
Moderator
I've uploaded revision 2740, you may download them from here as usual.

I've uploaded x86, x64, and x86 JITIL builds. :)

On topic:

Dolphin likely utilizes features not present in older operating systems, even if you did replace that code with the new code, there is likely other things that will prevent Dolphin from running or running properly.

Dolphin requires both the latest DirectX redistributable and Visual C++ Redistributable. Dolphin also requires a minimum of 1 GB of ram and likely utilizes other libraries and os functions not present on anything older than XP.

Also Windows 98 and possibly 2k can't utilize dual core processors, which Dolphin uses to increase performance and speed in many games, so only one core will be usable from the start.

There's also other libraries involved for things like the Wiimote, OpenGL among other things that aren't available on anything older than Windows XP.

Also the 5GB file limit of Windows 98/2k kills the possibility of any dual layer Wii games.

There may be more than that, a Dolphin developer could probably provide more insight as to why Dolphin isn't usable on anything below Windows XP..
They don't have that much time, and a simple change like that is also necessary because the current method is actually advised against by Microsoft.
As for weather it's possible or not, I suspect it's possible, it really depends on what features are needed. Likely NO special features of winXP are needed other than to tell if it's a 32bit/64bit application. However until one checks, one won't know. It took me a whole 5 minutes. Now I have to finish doing other work before I can examine the possibility.

Instead of saying "It's not likely ..." etc. why not just say "I don't know if it can be done or not", right now this is mere speculation either way. I suspect there are a few problems, namely with the graphics system if it was designed to rely on D3D being > 9 especially. It doesn't seem that big of deal either way for me.

Cyb
 

Xtreme2damax

New member
I've compiled and uploaded revision 3074, I've provided the x86, x64, and x86 JITIL builds. I've excluded the plugin_njoy_test.dll from my builds since it doesn't work correctly according to reports.

You may download this build and all my builds from here or use the link in my signature.
 

Xtreme2damax

New member
I've uploaded Revision 3095, the x86, x64, and JITIL x86 builds are included. You may download these builds from the link located in my signature.

It seem that according to a few people including a Dolphin developer that the NTSC-U version of Smash Brothers Brawl is fixed in the latest revisions.
 

p_025

Voted Least Likely to Succeed
Those of you with ATI cards:
Please check out r3145 or later, a new version of NVidia CG has been implemented that may break shaders with ATI cards.

I've started compiling and uploading my own builds, mostly for my own benefit but I also upload them to a host for download. The links are in my signature.
 

DjPong

New member
Those of you with ATI cards:
Please check out r3145 or later, a new version of NVidia CG has been implemented that may break shaders with ATI cards.
K, downloading it right away from your signature and see if it's broken or not.

EDIT:
Seems good to me, didn't notice any corrupted textures in the following games:
-Zelda Twilight.
-Zelda Wind waker.
-Smash Brothers.

Ati Radeon x1950 GT
 
Last edited:

Top