ten 22 2013

Problems and Solutions: Kega Fusion is only 30 ~ 32 fps in full screen in Windows 8.1

This is a problem that affects the emulator Kega Fusion in its latest version (3.64) and possibly earlier. In my case, everything was fine in Windows 8, but to make upgrade for Windows 8.1 the problem appeared. No matter what settings are made in Kega Fusion, when switching to fullscreen mode the emulator can not display more than something between 30 and 32 frames per second.

After many failed attempts, I ended up finding the solution here. Both the first and the second method works. I reproduce here the solution, Just in case the original source end disappearing:

Microsoft uses some compatibility in Windows 8 and Windows 8.1 for all DirectDraw (DirectX 5-7) applications running in fullscreen mode.
Compatible called DisableMaxWindowedMode, because of this compatibility fullscreen mode does not work properly.

Flip flags are ignored in this mode, but the flip will still occur resulting in low FPS. Because of this, you get no more ~ 33FPS.There are 3 options how to return the normal FPS in fullscreen mode:

1. Using the Microsoft Application Compatibility Toolkit

  • Install Microsoft ACT – http://www.microsoft.com/en-us/download/details.aspx?id=7352
  • Run the Compatibility Administrator (32-bit)
  • Select New Database (1) and press Fix
  • Fill in the vendor name and the program name, as well as the location of the program. Press next.
  • Press Next again.
  • Select fix DXPrimaryEmulation
  • Click Parameters, enter: -DisableMaxWindowedMode and press OK.
  • Press Next.
  • Press Finish.
  • Press Save, select the database name and save location.
  • Press File – Install

30 FPS before fix – http://abload.de/img/psychoballs_30i3y10.png
120 FPS after fix – http://abload.de/img/psychoballs_120fmyki.png

2. Use a modified ddraw.dll

I disabled in ddraw.dll problematic compatibility DisableMaxWindowedMode

The archive contains two dll for Windows 8 and Windows 8.1 – Windows_8_8_1_DDRAW_FPS_FIX.zip (mirror link)

Installation: copy ddraw.dll in the game folder.

Note: Fraps does not seem to work with ddraw.dll proxy, use other programs to monitor FPS, such as MSI Afterburner OSD.

31 FPS before fix

http://abload.de/img/willrock_31z5yu4.png

60 FPS after fix (Vsync)

http://abload.de/img/willrock_60ymzw7.png

201 FPS after fix (No Vsync)

http://abload.de/img/willrock_201z2air.png

3. Call SetAppCompatData

If you have the source code, you must use the function – SetAppCompatData to disable DisableMaxWindowedMode.

For example:

{
HMODULE hDDraw = LoadLibrary(_T(“ddraw.dll”));
if(hDDraw)
{
SetAppCompatDataFunc SetAppCompatData = (SetAppCompatDataFunc)GetProcAddress(hDDraw, “SetAppCompatData”);
if(SetAppCompatData)
SetAppCompatData(12, 0);
FreeLibrary(hDDraw);
}
}

Function SetAppCompatData, must be used before the function SetCooperativeLevel.

Hopefully Microsoft will release an update that will fix this problem.

I hope that Microsoft really solve the problem with an update. Or that the Snake, autor do Kega Fusion, bid logo version 3.65 correcting this problem also.

Kega Fusion running Out Run, do Mega Drive
Kega Fusion running Out Run, do Mega Drive

Permanent link to this article: https://www.skooterblog.com/2013/12/22/problemas-e-solucoes-kega-fusion-nao-passa-de-3032-fps-em-tela-cheia-no-windows-8-1/

Leave a comment

11 Comments on "Problems and Solutions: Kega Fusion is only 30 ~ 32 fps in full screen in Windows 8.1"

Notify about
Avatar
Sort by:   more new | older | top rated
wpDiscuz