Hello!
Last night i thought about something. Can you please make a "No Tray Icon" an option in the next update?
Simple thing i want to only open the DxWnd Window from a shortcut and don´t want to have my Traybar full of icons. I have many background programs running which have icons in the tray. But all this programs have an option to hide the tray icon. Looks much cleaner. Could it be possible?
Thank you!
Edit:
By the way i just saw that there is no way to open the DxWnd Window again when it´s already open. Only can open from the tray. When you could implent the function i explained above, it should also be mentioned that you can open DxWnd again from the exe itself without the message "DxWnd is allready running", and just open the DxWnd Window instead.
Last edit: Kataah 2017-11-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you create a shortcut to DxWnd and place it to the desktop, then you get exactly what you described: no DxWnd icon in the tray and the DxWnd window opened only when you double-click the shortcut.
But maybe you mean that you want DxWnd running in the background even if without a visible icon tray?
That could be doable, as you suggested this will require a tray command to hide the tray icon and running a second instance of DxWnd to send a message to the invisible running DxWnd to wake it up and make the tray icon visible again.
It is doable, but not really easy - it takes some inter-process communication between two instances of the DxWnd process - but it seems a good idea. I'm putting it into the to-do basket.
Last edit: gho 2017-11-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I didn't want to start a new thread for one question so I added it here. Question: Does DxWnd have a choice to export all profiles? I did not find it. I know I can copy whole dxwnd.ini, but I would like that option too.
Bulk import is already here...
Last edit: huh 2022-12-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
you would think I am crazy enough: i came to sf now to say just this, I would want this option too, I have 4 different. 05.90 builds with diff profiles
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There are some problems that make this feature difficult to implement.
First one is the difficulty to handle multiple elements in a ListView component. It is surely possible, but rather complex, as far as I could detect. For sure, selecting multiple elements and handling drag & dropping would be extremely nice and user friendly, but honestly I don't really know how to do it.
The second problem is that the export filenames are by default derived from the DxWnd game title, which is not unique. So, when exporting many entries together the logic should handle the possible filename overlaps with a user interaction for each duplicated file.
Maybe it would be easier to build a quick & dirty external tool, something that reads the dxwnd.ini file and split it into many dxw exports.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, I personally don't demand it selection of games for profiles export.
All I need is an export of all profiles in list. And I don't mind if the profile export is named after the game title DxWnd. Overlaps can be solved, e.g. Nascar Legend, Nascar Legend(1), Nascar Legend(2) etc.
The exports will be for my internal needs anyway, so I'll rename them however I want if necessary.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is not as fancy as it could be, but it works and it took me less than 1 hour to complete, so please be happy with it!
Instructions:
1) drop expdump.exe in your DxWnd folder
2) open a command prompt in this folder and run expdump.exe
Each entry in the DxWnd configuration should be dumped into an export file within the newly created expdump folder. If there are duplicate entries, the pathname will have a version number attached, like (2), (3) etc.
BEWARE: there is a tweak: these exports will keep the log and debug flag values. I don't remember if they will be cleared when you import them, but it is possible that the import operation will configure entries with pre-defined log and debug options. I could easily change that, but I thought you may prefer it like this, do you?
Oh it works. The flags in Logs and Debug are preserved on import. I don't have a problem with that, possibly in the future it would be possible to make a "- parameter" with which these flags will not saved when someone will needs it.
But it works fine for my purposes at the moment, many thanks!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is a reminder for myself, things to do before the next relese with this tool:
1) an argument option to clear debug and log flags, as Huh suggested (this is easy)
2) a pathname fix like the one used in the GUI export: if the entry title contains some forbidden character like "*" or ":" the export could not be saved, I suspect something bad could happen (like infinite loops or whatever)! This is important, be cautious, do not use the tool if the entry names are not suitable as filename, I'll fix it ASAP.
3) mention the tool in the help pages?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Done, this version fixes the bad filenames using the same code used in the GUI.
P.s. before using the tool remember to save the configuration: what you see in the GUI panel may not be yet on disk:
Can you explain the national coding issue?
Currently, what the GUI and this tool do is simply eliminate any character that is not allowed in a pathname. For instance, if you name a game as
"my best config?",
since the question mark is not allowed in a file path the export file, then this forbidden character will be ripped off and the export file will be named
"my best config.dxw".
Last edit: gho 2023-01-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I didn't mean special characters, but national coding, i.e., diacritics, Cyrillic, Chinese, etc.
If a profile is named in a national encoding, will expdump try to save it in that encoding?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I too have another request, I will test this tool at night today.
Remember that you created a tweak, d3d:ForceRefDevice. The tweak only manages to force d3dref.dll, which is a D3D7 ref device.
Other apps need D3D8 and 9 ref devices, which are d3dref8.dll and d3dref9.dll. Please include them as well, in separate tweaks so that they don't conflict. You might move these tweaks to Debug section since people won't be playing games with these. The options could be a section with 3 options: Force Direct3D reference device - D3D7, D3D8 and D3D9
Last edit: BEEN_Nath_58 2023-01-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't think I have a copy of these reference dlls. It should be possible to download them with some tinkering from MS websites, but it would be easier for me if you could send me a copy. Also, the libs are supposed to be in some system folder: would it be better if we manage to link them eventually from the game folder of the DxWnd alt.dll folder?
I need to have a better picture of how these reference dlls should be used and test the scenarios.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
but it would be easier for me if you could send me a copy.
Ok.
Also, the libs are supposed to be in some system folder: would it be better if we manage to link them eventually from the game folder of the DxWnd alt.dll folder?
I am not sure where the reference dlls go. For the D3D7 ref device, all I did was put it in game folder and enable the tweak. You can add functionality to be readable and debuggable from alt.dll folder too. I will try finding where the files go in system folders once i get access to my xp machine.
I don't think you need or should use any of those obsolete dll files on modern systems.
A D3D7 reference device is created with the IDirect3D7::CreateDevice method by passing the value IID_IDirect3DRefDevice as the first parameter.
D3D8 uses IDirect3D8::CreateDevice method with D3DDEVTYPE_REF constant as the device type. And D3D9 IDirect3D9::CreateDevice with D3DDEVTYPE_REF constant.
Whats the use for this anyway?
Edit:
To answer my own questions: The reference device dll files are needed to use the software reference device. So in this way these old dll files are not really obsolete at all. However a software reference device is/was mainly used for testing and it needs to be supported by the application or else the d3dref dll files will not be loaded and used by it.
And you can get these reference device dll files for example from the old DirectX SDKs...
Last edit: dippy dipper 2023-08-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tested with some Italian accented letters like à, è, ò and it worked.
I confirm that it works here and the profile is saved and loaded with accents. I also tried Cyrillic by running DxWnd with Ntleas and creating the profile name in Cyrillic.
The profile name was exported, but it's important to also have the correct national environment set in Windows, otherwise DxWnd won't load the profile because of nonsense characters (this is more a system problem than DxWnd). However, if I rename and import the profile and run DxWnd with Ntleas again, the Cyrillic name is correct in DxWnd. So I think it works very well.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't think you need or should use any of those obsolete dll files on modern systems...
I used them at a time when I wasn't sure of a way to use the REF devices, the DX control panels had settings for it but they did nothing. However, if your method works, it should be better.
Just to be clear, does ddraw.dll have REF device configurations ?, because the three files don't exist on a system by default. Else it will become the same implementation where you have to put the file in a system folder or game folder.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think this discussion happened earlier to which gho replied that he was not too accomodated with shaders. I didn';t push the idea too much either (fot now) because other wrappers are doing what is needed just fine, and both can be used together usually.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SBK2001 does try to suppress the LoadLibrary error by calling SetErrorMode(SEM_NOOPENFILEERRORBOX) but this doesn't work on nt (https://devblogs.microsoft.com/oldnewthing/20170330-00/?p=95856). Hooking SetErrorMode and changing it to SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS) does work.
❤️
1
👍
1
Last edit: crazyc 2025-04-14
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello!
Last night i thought about something. Can you please make a "No Tray Icon" an option in the next update?
Simple thing i want to only open the DxWnd Window from a shortcut and don´t want to have my Traybar full of icons. I have many background programs running which have icons in the tray. But all this programs have an option to hide the tray icon. Looks much cleaner. Could it be possible?
Thank you!
Edit:
By the way i just saw that there is no way to open the DxWnd Window again when it´s already open. Only can open from the tray. When you could implent the function i explained above, it should also be mentioned that you can open DxWnd again from the exe itself without the message "DxWnd is allready running", and just open the DxWnd Window instead.
Last edit: Kataah 2017-11-30
If you create a shortcut to DxWnd and place it to the desktop, then you get exactly what you described: no DxWnd icon in the tray and the DxWnd window opened only when you double-click the shortcut.
But maybe you mean that you want DxWnd running in the background even if without a visible icon tray?
That could be doable, as you suggested this will require a tray command to hide the tray icon and running a second instance of DxWnd to send a message to the invisible running DxWnd to wake it up and make the tray icon visible again.
It is doable, but not really easy - it takes some inter-process communication between two instances of the DxWnd process - but it seems a good idea. I'm putting it into the to-do basket.
Last edit: gho 2017-11-30
I didn't want to start a new thread for one question so I added it here. Question: Does DxWnd have a choice to export all profiles? I did not find it. I know I can copy whole dxwnd.ini, but I would like that option too.
Bulk import is already here...
Last edit: huh 2022-12-30
you would think I am crazy enough: i came to sf now to say just this, I would want this option too, I have 4 different. 05.90 builds with diff profiles
There are some problems that make this feature difficult to implement.
First one is the difficulty to handle multiple elements in a ListView component. It is surely possible, but rather complex, as far as I could detect. For sure, selecting multiple elements and handling drag & dropping would be extremely nice and user friendly, but honestly I don't really know how to do it.
The second problem is that the export filenames are by default derived from the DxWnd game title, which is not unique. So, when exporting many entries together the logic should handle the possible filename overlaps with a user interaction for each duplicated file.
Maybe it would be easier to build a quick & dirty external tool, something that reads the dxwnd.ini file and split it into many dxw exports.
Well, I personally don't demand it selection of games for profiles export.
All I need is an export of all profiles in list. And I don't mind if the profile export is named after the game title DxWnd. Overlaps can be solved, e.g. Nascar Legend, Nascar Legend(1), Nascar Legend(2) etc.
The exports will be for my internal needs anyway, so I'll rename them however I want if necessary.
This is not as fancy as it could be, but it works and it took me less than 1 hour to complete, so please be happy with it!
Instructions:
1) drop expdump.exe in your DxWnd folder
2) open a command prompt in this folder and run expdump.exe
Each entry in the DxWnd configuration should be dumped into an export file within the newly created expdump folder. If there are duplicate entries, the pathname will have a version number attached, like (2), (3) etc.
BEWARE: there is a tweak: these exports will keep the log and debug flag values. I don't remember if they will be cleared when you import them, but it is possible that the import operation will configure entries with pre-defined log and debug options. I could easily change that, but I thought you may prefer it like this, do you?
Last edit: gho 2023-01-03
Oh it works. The flags in Logs and Debug are preserved on import. I don't have a problem with that, possibly in the future it would be possible to make a "- parameter" with which these flags will not saved when someone will needs it.
But it works fine for my purposes at the moment, many thanks!
This is a reminder for myself, things to do before the next relese with this tool:
1) an argument option to clear debug and log flags, as Huh suggested (this is easy)
2) a pathname fix like the one used in the GUI export: if the entry title contains some forbidden character like "
*" or ":" the export could not be saved, I suspect something bad could happen (like infinite loops or whatever)! This is important, be cautious, do not use the tool if the entry names are not suitable as filename, I'll fix it ASAP.3) mention the tool in the help pages?
Done, this version fixes the bad filenames using the same code used in the GUI.
P.s. before using the tool remember to save the configuration: what you see in the GUI panel may not be yet on disk:
Thanks, I'll try it tonight.
What about national coding, does that apply to the special characters you mentioned?
Can you explain the national coding issue?
Currently, what the GUI and this tool do is simply eliminate any character that is not allowed in a pathname. For instance, if you name a game as
"
my best config?",since the question mark is not allowed in a file path the export file, then this forbidden character will be ripped off and the export file will be named
"
my best config.dxw".Last edit: gho 2023-01-04
I didn't mean special characters, but national coding, i.e., diacritics, Cyrillic, Chinese, etc.
If a profile is named in a national encoding, will expdump try to save it in that encoding?
I'm not sure, but you can try. Whatever is good for an edit box and a pathname should be fine, but it's better to try before.
edit
I tested with some Italian accented letters like à, è, ò and it worked.
Last edit: gho 2023-01-04
I too have another request, I will test this tool at night today.
Remember that you created a tweak, d3d:ForceRefDevice. The tweak only manages to force d3dref.dll, which is a D3D7 ref device.
Other apps need D3D8 and 9 ref devices, which are d3dref8.dll and d3dref9.dll. Please include them as well, in separate tweaks so that they don't conflict. You might move these tweaks to Debug section since people won't be playing games with these. The options could be a section with 3 options: Force Direct3D reference device - D3D7, D3D8 and D3D9
Last edit: BEEN_Nath_58 2023-01-04
I don't think I have a copy of these reference dlls. It should be possible to download them with some tinkering from MS websites, but it would be easier for me if you could send me a copy. Also, the libs are supposed to be in some system folder: would it be better if we manage to link them eventually from the game folder of the DxWnd alt.dll folder?
I need to have a better picture of how these reference dlls should be used and test the scenarios.
Ok.
I am not sure where the reference dlls go. For the D3D7 ref device, all I did was put it in game folder and enable the tweak. You can add functionality to be readable and debuggable from alt.dll folder too. I will try finding where the files go in system folders once i get access to my xp machine.
I don't think you need or should use any of those obsolete dll files on modern systems.
A D3D7 reference device is created with the IDirect3D7::CreateDevice method by passing the value IID_IDirect3DRefDevice as the first parameter.
D3D8 uses IDirect3D8::CreateDevice method with D3DDEVTYPE_REF constant as the device type. And D3D9 IDirect3D9::CreateDevice with D3DDEVTYPE_REF constant.
Whats the use for this anyway?
Edit:
To answer my own questions: The reference device dll files are needed to use the software reference device. So in this way these old dll files are not really obsolete at all. However a software reference device is/was mainly used for testing and it needs to be supported by the application or else the d3dref dll files will not be loaded and used by it.
And you can get these reference device dll files for example from the old DirectX SDKs...
Last edit: dippy dipper 2023-08-28
I confirm that it works here and the profile is saved and loaded with accents. I also tried Cyrillic by running DxWnd with Ntleas and creating the profile name in Cyrillic.
The profile name was exported, but it's important to also have the correct national environment set in Windows, otherwise DxWnd won't load the profile because of nonsense characters (this is more a system problem than DxWnd). However, if I rename and import the profile and run DxWnd with Ntleas again, the Cyrillic name is correct in DxWnd. So I think it works very well.
I used them at a time when I wasn't sure of a way to use the REF devices, the DX control panels had settings for it but they did nothing. However, if your method works, it should be better.
Just to be clear, does ddraw.dll have REF device configurations ?, because the three files don't exist on a system by default. Else it will become the same implementation where you have to put the file in a system folder or game folder.
I don't know if you've noticed, but cnc-draw has recently started using D3D shaders. I don't know if it could be used somehow in DxWnd?
I think this discussion happened earlier to which gho replied that he was not too accomodated with shaders. I didn';t push the idea too much either (fot now) because other wrappers are doing what is needed just fine, and both can be used together usually.
@gho
I have a question, could you create/add shim:IgnoreLoadLibrary ? At least Superbike 2001 needs it, maybe another game will find it over time.
Coincidentally I was about to request this tonight later. Yes I need this too
SBK2001 does try to suppress the LoadLibrary error by calling
SetErrorMode(SEM_NOOPENFILEERRORBOX)but this doesn't work on nt (https://devblogs.microsoft.com/oldnewthing/20170330-00/?p=95856). Hooking SetErrorMode and changing it toSetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS)does work.Last edit: crazyc 2025-04-14