Menu

v2.04.50 is out. If you don't like it ...

gho
2017-10-25
2017-11-18
1 2 > >> (Page 1 of 2)
  • gho

    gho - 2017-10-25

    DxWnd v2.04.50 has, as usual, some new features and fixes and also some unfinished business inside, not to mention the possibility of new bugs to fix.
    But this time there's also a major GUI twist, a iconized listwiew style that resembles the one of D3DWindower (let's be honest, my is a little nicer, isn't it?) with a program's icon auto-extraction and serialization on the configuration and exported files. That means that no matter what you do with your executables, even if you don't have the program or you just deleted it, its icon will stay.
    I hope you will like it, but if you prefer the old, simpler and clearer style (the icon view eliminates the colored bullet that is telling the program category) just head to View->List->Detail menu command and the old GUI style is back again.
    P.s. Icon mode is the new default, but the chosed style is saved in the DxWnd configuration, so whatever you select will stay until you change it or the configuration is deleted.

     

    Last edit: gho 2017-10-25
  • Anonymous

    Anonymous - 2017-10-26
     

    Last edit: Anonymous 2018-10-20
    • gho

      gho - 2017-10-26

      It's not really a bug, let's call it a "known problem" ...
      The matter is when DxWnd imports a game icon it shows a nice 32bit colored icon, but when it saves it to the config file the image is 256 colors only (maybe even less: if you count them you never see more than 16!). This depends on the particular saving schema (a source code that I duly copied from a web example), there is an alternative way to make that operation preserving 32bit colors, but it has two problems:
      1) generates a hex string 4 times longer
      2) it doesn't work
      So, my plan is to try to fix the new schema, but I'm unsure some better colored icons are worth such a bigger (and maybe slower) processing.
      Next releases, anyway.

       

      Last edit: gho 2017-10-26
      • Anonymous

        Anonymous - 2017-10-26
         

        Last edit: Anonymous 2018-10-20
  • Riitaoja

    Riitaoja - 2017-10-26

    One trick could be to have Dxwnd use the saved 16 color icon pictures only when the executable is not found. In other cases use the high color icon directly from the executable. This way the user could tell at a glance which games are present and which are missing or have incorrect path.

    Of course some executables only have a 16 color icon. But in general this would provide a similar function to the detailed views green and gray indicators.

    edit:
    Additionally or alternatively the icon text could also be grayed out when the executable is not found.

     

    Last edit: Riitaoja 2017-10-26
    • gho

      gho - 2017-10-27

      I agree. But using an ico extracted on the fly from the executable could bring delays (it could be repeated up to 256 times!), I should measure some performances. In addition, this solution would erase any custom icon you may select (this is not such a trifling thing: some games may have no icon on the game executable and a better icon somewhere else).
      I was also thinking to a setup option to save icons with 4, 8, 16, 32 bit color depth.
      But before anything else I must learn how to extract and reproduce decent icons: the task seems much more difficult than expected!

      About status encoded in the text color or style (bold vs. italic vs. underlined) or text background, the problem here is that MFC component has no capability for doing that, I should find some working (and possibly open-source) listbox extended class.

       
  • arqarq

    arqarq - 2017-10-27

    New icon GUI is simply great. Something in DxWnd's look was missing for me but I didn't know what. Now I know.
    But I keep ini file clean from "iconX" entries to have full color icons for games with exe's path configured correctly. Each time 'dxwnd.ini' is saved icon entries apear again, but this is not a problem for already configured games. I think storing simplified icon is ok for not present games, but full color for active ones is a must and it looks very good.
    The problem is still here for 16 color icons, to distinguish active and disabled game configs.

     
    • gho

      gho - 2017-10-27

      Wow! I missed the opportunity to give an answer to you both arqarq and Riitaoja for only 25 seconds!!!
      See my previous post and concerns. In any case, I'm well aware that the thing isn't finished here. When I'll learn how to manage icons a little better, hopefully some new functionalities (like a "select icon" command) and some additional setup flags should keep everyone happy!

       

      Last edit: gho 2017-10-27
  • gho

    gho - 2017-10-27

    Try this new GUI, it behaves quite better, and seems fast enough though there's some optimization work to be done. But, please, don't look inside dxwnd.ini!!!!

     

    Last edit: gho 2017-10-27
    • arqarq

      arqarq - 2017-10-27

      It's ok, but you can just put icon storage in another amorphous type indexed file like 'dxwnd_icon.db' or something like that. For now it is some brute force approach for storing binary in text ini. But for me it's also not a problem with bigger ini.
      It also would make refreshing icons storage simple - by just deleting .db file. Something like known 'thumbs.db' file in XP or 'IconCache.db' in Win7.

      For non active game profiles I suggest greying them out somehow.

       
      • Anonymous

        Anonymous - 2017-10-28
         

        Last edit: Anonymous 2018-10-20
  • gho

    gho - 2017-10-28

    Experimental release: go to "Global Settings" and chose 32 bit icons if you like them better. Default is 16 colors only. The nice thing is that 16 color icons and 32 bit icons can happily coexist in the same dxwnd.ini file. While you make up your minds, I'm trying to gray out programmatically an existing icon....

     
  • gho

    gho - 2017-10-29

    Making the icons grayed is possible, on 16 color icons you just have to replace with 0x77 every not NULL byte in the icon's bitmap data. But the result is not so exciting, I think I'll pass this one.

     
    • Anonymous

      Anonymous - 2017-10-29
       

      Last edit: Anonymous 2018-10-20
  • Riitaoja

    Riitaoja - 2017-10-29

    Making the icons grayed is possible, on 16 color icons you just have to replace with 0x77 every not NULL byte in the icon's bitmap data. But the result is not so exciting, I think I'll pass this one.

    Maybe the grayed out icons do not look visually appealing but they are functional and definitely show which games can not find the executable.

     
  • gho

    gho - 2017-10-29

    Here it is, grayed if target not found.
    Only problem, the grayed icon is currently "static": if you change the path field or remove the target, nothing changes until DxWnd is started again. But I think it could be enough ...

     

    Last edit: gho 2017-10-29
    • Riitaoja

      Riitaoja - 2017-10-29

      I think this is fine.

       
  • Major Mess

    Major Mess - 2017-10-29

    I think you guys are spending too much time on this subject.

    MM

     
    • Anonymous

      Anonymous - 2017-10-30
       

      Last edit: Anonymous 2018-10-20
  • gho

    gho - 2017-10-29

    I start to agree, but when you start something, sadly you have to finish it, or dismantle everything.
    This in attach could be the last release (excluding bug fixes), equipped with:

    • option for 4 or 32 bit icons
    • option for grayed icons for unreacheable paths
    • pretty dynamic gray color (if you update the path, now the icon reflects the current status)
    • fully grayed icon (previous version was leaving color trails ...)
    • grayed icon also for programs with no icon resources

    The nice thing is that if you don't like this all, it is sufficient to leave the View->List mode to "Detail" and you can forget all the rest!

     

    Last edit: gho 2017-10-29
    • Riitaoja

      Riitaoja - 2017-10-30

      Firstly very nice work with the icons GHO.

      However what have you done with v2.04.50 in general? It seems that V-Rally 3 is no longer starting. It worked with all prior versions including v2.04.49.

      Now I just get a 640x480 black window and Dxwnd freezes. I then need to close vrally3.exe using the task manager to regain control. Log is not showing anything useful.

      EDIT
      Here is the log:

      *** DxWnd v2.04.50 log BEGIN: 30-10-2017 15:30:47 ***
      *** Flags= MODIFYMOUSE USERGB565 CLIENTREMAPPING LOCKWINPOS WINDOWIZE SETCOMPATIBILITY HOOKDLLS HOOKENABLED FIXREFCOUNTER SUPPORTSVGA ENABLEHOTKEYS AEROBOOST REMAPMCI FLIPEMULATION IATWORDALIGNED EMULATEMAXIMIZE HOOKWGLCONTEXT OUTTRACE OUTDDRAWTRACE OUTDEBUG OUTD3DTRACE OUTDXWINTRACE ERASELOGFILE ***
      Virtual Desktop: monitors=1 area=(0,0)-(1680,1050)
      keymapping[9](altf4)=73
      HookInit: window size check (0,0)
      HookInit: path="d:\vrally3\vrally3.exe" module="" dxversion=Automatic pos=(50,50) size=(800,600) init-max=(800,600) monitor=-1 renderer=3("primary surface") filter="none" scale=(0x0)
      OS=(6.1) build=2 platform=2 service pack=Service Pack 1
      HookInit: base hmodule=400000
      InitModuleHooks: lib=kernel32 hmodule=74ab0000
      InitModuleHooks: lib=USER32 hmodule=75ad0000
      InitModuleHooks: lib=GDI32 hmodule=75db0000
      InitModuleHooks: lib=ADVAPI32 hmodule=76b20000
      InitModuleHooks: lib=ole32 hmodule=754f0000
      InitModuleHooks: lib=oleaut32 hmodule=75ca0000
      InitModuleHooks: lib=setupapi hmodule=74ce0000
      InitModuleHooks: lib=dwmapi hmodule=71700000
      InitModuleHooks: lib=d3d8 hmodule=6b900000
      InitModuleHooks: lib=dsound hmodule=6ba10000
      InitModuleHooks: lib=winmm hmodule=71a40000
      InitModuleHooks: lib=imm32 hmodule=76bd0000
      InitModuleHooks: lib=dinput8 hmodule=73e40000
      HotPatch: api=SetWindowsHookExA addr=75af8f4c->758f0fe0 hook=100621f0
      HotPatch: api=SetWindowsHookExW addr=75af81f5->758f0fc0 hook=10062210
      HotPatch: api=UnhookWindowsHookEx addr=75af392d->758f0fa0 hook=10062230
      HotPatch: api=mouse_event addr=75b4030f->758f0f80 hook=10062c80
      SetWindowsHookEx: id=4(CALLWNDPROC) threadid=0
      SetWindowsHookEx: hhk=1b705a1
      
       

      Last edit: Riitaoja 2017-10-30
      • gho

        gho - 2017-10-30

        Looking at the release notes, I'd say just few but important changes, though nothing that (in theory) could affect a 3D game like V-Rally 3.
        The only sensible area could be the surface stack, a delicate thing that after the intervention should be much more robust, but you never know. Then, there's the possibility of some bug.
        I'd better double check and test the game.

         
        • gho

          gho - 2017-10-30

          Uhm... in the new surface stack there's a smaller limit to the numbero of surfaces per type. If V-Rally 3 uses many surfaces of the same type, that could be a problem.
          Now I don't have the game ready available, could you make a quick try with this experimental version that has the limits simply enlarged to the previous figures?

           
  • Riitaoja

    Riitaoja - 2017-10-30

    Interesting... Here is a comparison log using v2.04.49:

    *** DxWnd v2.04.49 log BEGIN: 30-10-2017 15:50:07 ***
    *** Flags= MODIFYMOUSE USERGB565 CLIENTREMAPPING LOCKWINPOS WINDOWIZE SETCOMPATIBILITY HOOKDLLS HOOKENABLED FIXREFCOUNTER SUPPORTSVGA ENABLEHOTKEYS AEROBOOST REMAPMCI FLIPEMULATION IATWORDALIGNED EMULATEMAXIMIZE HOOKWGLCONTEXT OUTTRACE OUTDDRAWTRACE OUTDEBUG OUTD3DTRACE OUTDXWINTRACE ERASELOGFILE ***
    Virtual Desktop: monitors=1 area=(0,0)-(1680,1050)
    keymapping[9](altf4)=73
    HookInit: window size check (0,0)
    HookInit: path="d:\vrally3\vrally3.exe" module="" dxversion=Automatic pos=(50,50) size=(800,600) init-max=(800,600) monitor=-1 renderer=3("primary surface") filter="none" scale=(0x0)
    OS=(6.1) build=2 platform=2 service pack=Service Pack 1
    HookInit: base hmodule=400000
    InitModuleHooks: lib=kernel32 hmodule=74ab0000
    InitModuleHooks: lib=USER32 hmodule=75ad0000
    InitModuleHooks: lib=GDI32 hmodule=75db0000
    InitModuleHooks: lib=ADVAPI32 hmodule=76b20000
    InitModuleHooks: lib=ole32 hmodule=754f0000
    InitModuleHooks: lib=oleaut32 hmodule=75ca0000
    InitModuleHooks: lib=setupapi hmodule=74ce0000
    InitModuleHooks: lib=dwmapi hmodule=71700000
    InitModuleHooks: lib=d3d8 hmodule=6b0a0000
    InitModuleHooks: lib=dsound hmodule=6b2f0000
    InitModuleHooks: lib=winmm hmodule=71a40000
    InitModuleHooks: lib=imm32 hmodule=76bd0000
    InitModuleHooks: lib=dinput8 hmodule=6c3a0000
    HotPatch: api=SetWindowsHookExA addr=75af8f4c->758f0fe0 hook=10061de0
    HotPatch: api=SetWindowsHookExW addr=75af81f5->758f0fc0 hook=10061e00
    HotPatch: api=UnhookWindowsHookEx addr=75af392d->758f0fa0 hook=10061e20
    HotPatch: api=mouse_event addr=75b4030f->758f0f80 hook=10062870
    HookDirectDraw: SetAppCompatData(2,0) ret=0(DD_OK)
    HookDirectDraw version=0
    HookDirect3D: module=400000 version=0
    HookDirect3D7: module=400000 version=0
    HookDlls: base=400000
    Registered DLL FileName=DSOUND.dll
    Registered DLL FileName=KERNEL32.dll
    Registered DLL FileName=USER32.dll
    Registered DLL FileName=ole32.dll
    Registered DLL FileName=d3d8.dll
    Registered DLL FileName=GDI32.dll
    Registered DLL FileName=WINMM.dll
    Registered DLL FileName=DINPUT8.dll
    Registered DLL FileName=ADVAPI32.dll
    DXWND: Initial display mode WxH=(1680x1050) BitsPerPel=32
    DXWND: set screen size=(800,600)
    InitScreenParameters: dxversion=0 RGBBitCount=32
    SetBltTransformations: colors=32->32 renderer=3("primary surface") filter=0(none) scaling=(0,0) supported=YES
    UpdateWindow: hwnd=670526
    ShowWindow: hwnd=670526, CmdShow=a(SW_SHOWDEFAULT)
    DEBUG: StartupInfo dwFlags=0 ShowWindow=0
    ShowWindow: res=0
    Direct3DCreate8: sdkversion=dc
    Direct3DCreate8: d3d=2be2e0
    IDirect3D8::Release: ref=0
    SetForegroundWindow: hwnd=670526
    SetPriorityClass: hProcess=400000 class=100
    SetWindowsHookEx: id=4(CALLWNDPROC) threadid=aa4
    SetWindowsHookEx: hhk=400503
    

    As can be seen in v2.04.50 it seems to jump directly from "HotPatch:" to "SetWindowsHookEx" missing a lot of steps in between.

     
  • gho

    gho - 2017-10-30

    Uhm, looking at the code, that should not happen.
    Please, read my post above (it was written while you were writing yours)

     

    Last edit: gho 2017-10-30
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.