VOGONS


First post, by keropi

User metadata
Rank l33t++
Rank
l33t++

Hiya!

I am looking for an app similar to "3D Control Center" that will allow to switch D3D devices from/to primary/secondary for use with a voodoo2 card...

Here is a 3DCC to see what I mean... obviously I don't like it since it has the power-vr stuff and it always displays a startup box with the options screen...

24p9lwh.jpg

anyone remembers something similar?
thanks!

Last edited by keropi on 2011-09-07, 08:18. Edited 1 time in total.

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 1 of 20, by leileilol

User metadata
Rank l33t++
Rank
l33t++

The PowerVR option only toggles the registry setting for the PowerVR HAL to be enabled (it's exactly like going into the PowerVR tab in the Display Properties and turning it on), it's like Primary but for that weird HAL hackaround.

apsosig.png
long live PCem

Reply 2 of 20, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Also, I'm sure there must be some way to disable that startup box you're referring to.

In any case, all 3DCC really does is make one little change in the registry. If you don't want to deal with .reg files directly, you could probably knock together your own custom app in Python (or something) pretty quickly.

Reply 3 of 20, by TheLazy1

User metadata
Rank Member
Rank
Member

I have no idea if this would work:

1) Open in debugger
2) Find out which API function is used to display the window (ShowWindow()?)
3) Replace call with nop/0x90

It's not quite as simple as that and it may not even work but if you're bored it might be worth a try.

Reply 5 of 20, by batracio

User metadata
Rank Member
Rank
Member
TheLazy1 wrote:
I have no idea if this would work: […]
Show full quote

I have no idea if this would work:

1) Open in debugger
2) Find out which API function is used to display the window (ShowWindow()?)
3) Replace call with nop/0x90

It's not quite as simple as that and it may not even work but if you're bored it might be worth a try.

There will be an API call to CreateDialog(Param)/CreateWindow(ex) before ShowWindow for a modeless window display, or a single API call to DialogBox(Param) for a modal dialog display. If it is the latter, there's an even cheaper trick I have used in the past: delete the dialog resource from the executable file. With a bit of luck, the application won't complain at all.

Last edited by batracio on 2011-09-06, 15:51. Edited 1 time in total.

Reply 7 of 20, by batracio

User metadata
Rank Member
Rank
Member

Post a download link for 3DCC, please. You just want the welcome popup not to appear, but not to completely disable the options window, right?

EDIT: misspelled "lick" changed to "link". My spelling sucks... or licks.

Last edited by batracio on 2011-09-06, 19:28. Edited 1 time in total.

Reply 8 of 20, by keropi

User metadata
Rank l33t++
Rank
l33t++

nice! here is a dl link from falconfly's page: http://www.falconfly.de/downloads/3dcc.zip
and yes, I want the welcome popup to stop popping up (LOL) when the program starts... it is actually the options window, that would be nice to have enabled...
thanks in advance!

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 9 of 20, by batracio

User metadata
Rank Member
Rank
Member

I have patched 3DCC.exe and now it doesn't show the startup box. I followed TheLazy1's advice and replaced the DialogBoxParam API call with NOPs.

Reply 10 of 20, by keropi

User metadata
Rank l33t++
Rank
l33t++

Super-thanks batracio , this works perfect ! 😊

In my turn I am attaching the above batracio's version but with the PowerVR stuff disabled , you only get to choose between a primary and secondary device...

2eyymwy.jpg

hopefully someone else might also find those hacks usefull 😁

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 11 of 20, by leileilol

User metadata
Rank l33t++
Rank
l33t++

I don't find the 'no powervr' hack useful.

😀

apsosig.png
long live PCem

Reply 12 of 20, by batracio

User metadata
Rank Member
Rank
Member
leileilol wrote:

I don't find the 'no powervr' hack useful.

I have two Matrox m3D cards, so I kept the PowerVR stuff because it is useful for me too. I guess keropi does not have any PCX1 or PCX2 card.

By the way keropi, wouldn't you prefer the PowerVR option to be replaced by a Quit option? I could not find an elegant way to terminate the program.

Reply 13 of 20, by keropi

User metadata
Rank l33t++
Rank
l33t++

yeah what's up with the "no quit" option 🤣 it is strange the author did not include one... still I cannot make the addition 😁
and yep, I don't have a pcx1/2 ... the removal of the menu was just so that it doesn't display a 3rd option... call it a "cosmetic" change if you like 🤣

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 14 of 20, by swaaye

User metadata
Rank l33t++
Rank
l33t++

Yah I use this little app whenever I have a Voodoo1/2 in the box. I discovered it back in '97, I guess... 😀

Reply 15 of 20, by TheLazy1

User metadata
Rank Member
Rank
Member

No quit button?
You can probably inject some code to properly clean up and exit, maybe it's in the executable already but not linked to any buttons.

IIRC CreateRemoteThread Won't work on Win98 so you'll need to do something different, or, find a way to patch in an exit function to the executable itself.
I have no idea how/if you can though, I never played with code injection on 9x.

Reply 16 of 20, by batracio

User metadata
Rank Member
Rank
Member

I have added a quit option to menu. It works, but it was a bit hard to achieve and I may have broken something else.

I didn't use code injection, just plain old hex editing. There were only 8 unused bytes left at the end of the DialogProc code, and I needed at least 24 bytes to insert a jump address (4 bytes), a call to PostQuitMessage (8 bytes) and the return code (12 bytes). Fortunately the branch table for the WM_COMMAND switch code had 4 unused pointers due to missing resource IDs, so I got the 16 extra bytes by deleting their positions and moving the branch table. Then I had to update the ID values of menu item resources and CheckMenuItem calls to match the new branch table entries.

I think something went wrong because now the program loads a different menu with more options that should only appear when a PowerVR card is installed. Well, at least it still sort of works and doesn't hang the system.

Reply 18 of 20, by batracio

User metadata
Rank Member
Rank
Member

Yes, those are the options. When running the program, do you get the menu with PowerVR filtering modes, or the simple one with D3D HAL options only?