VOGONS

Common searches


First post, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

Different programs can log operation on Windows NT now. However I don't know of any solution, specifically to log wave operations a program performs.

Is there a program that can do that on Windows 98?

previously known as Discrete_BOB_058

Reply 1 of 6, by doshea

User metadata
Rank Member
Rank
Member

I imagine you wanted something that runs inside Windows but I know of something you can do at the emulator level. If you meet the narrow criteria of running under emulation and willing to use either Sound Blaster 16 or ES1370, then.. this still might not be very good, I don't know! Under Bochs 2.7, when I set "loglevel=5" for the sb16 device, I get a fairly verbose log file with output including stuff like this:

00035845661 (3) Read access to 0x0226: unsupported port!
00035845681 (4) DSP Reset port write value 0
00035845681 (4) DSP resetting...
00035845717 (4) DSP output status read, result ff
00035845744 (4) DSP Data port read, result = aa
00035845793 (4) DSP Buffer status read, result 7f
00035845813 (4) DSP Data port write, value e1
00035845813 (4) DSP command e1 with 0 arg bytes
00035845845 (4) DSP output status read, result ff
00035845865 (4) DSP Data port read, result = 4
00035845895 (4) DSP output status read, result ff
00035845915 (4) DSP Data port read, result = 5
00035845966 (4) DSP Buffer status read, result 7f
00035845986 (4) DSP Data port write, value e1
00035845986 (4) DSP command e1 with 0 arg bytes
00035846019 (4) DSP output status read, result ff
00035846039 (4) DSP Data port read, result = 4
00035846070 (4) DSP output status read, result ff
00035846090 (4) DSP Data port read, result = 5
00035846145 (4) DSP Buffer status read, result 7f
00035846165 (4) DSP Data port write, value e3
00035846165 (4) DSP command e3 with 0 arg bytes
00035846198 (4) DSP output status read, result ff
...
00035849605 (4) DSP Data port write, value 0
00035849605 (4) DSP command 5 with 2 arg bytes
00035849656 (4) DSP Buffer status read, result 7f
00035849676 (4) DSP Data port write, value 4
00035849729 (4) DSP Buffer status read, result 7f
00035849749 (4) DSP Data port write, value fc
00035849749 (4) DSP command 4 with 1 arg bytes
00035849798 (4) DSP Buffer status read, result 7f
...
00066922309 (1) Resources set to I5 D1 H5
00066964603 (4) read from mixer register ff returns ff
00066964774 (4) read from mixer register ff returns ff
00066964943 (4) read from mixer register ff returns ff
00066965029 (4) read from mixer register fe returns 06
00067366942 (4) read from mixer register 82 returns 40
...
00204010022 (4) 8-bit DMA or SBMIDI IRQ acknowledged
00204010022 (4) DSP output status read, result 7f
00204147303 (5) Received 8-bit DMA: 0x88, 1375 remaining
00204286601 (5) Received 8-bit DMA: 0x81, 863 remaining
00204425907 (5) Received 8-bit DMA: 0x81, 351 remaining
00204425907 (4) DMA transfer done, triggering IRQ
00204425907 (4) auto-DMA reinitializing to length 1375
...
00573463924 (4) DMA initialized. Cmd c6, mode 00, length 1375, comp 0
00573463924 (5) DMA is 8b, 22050Hz, mono, output, mode 2, unsigned, normal speed, 22050 bps, 13931 usec/DMA
...

You can get it to write samples to a file too. I suppose lots of other emulators probably do the same kind of thing. Perhaps it's far too low-level for what you're after though. It might be necessary to read the Bochs source code to figure out which register numbers the different messages refer to if they're not the conventional names.

Reply 2 of 6, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
doshea wrote on 2023-03-13, 05:38:
I imagine you wanted something that runs inside Windows but I know of something you can do at the emulator level. If you meet t […]
Show full quote

I imagine you wanted something that runs inside Windows but I know of something you can do at the emulator level. If you meet the narrow criteria of running under emulation and willing to use either Sound Blaster 16 or ES1370, then.. this still might not be very good, I don't know! Under Bochs 2.7, when I set "loglevel=5" for the sb16 device, I get a fairly verbose log file with output including stuff like this:

00035845661 (3) Read access to 0x0226: unsupported port!
00035845681 (4) DSP Reset port write value 0
00035845681 (4) DSP resetting...
00035845717 (4) DSP output status read, result ff
00035845744 (4) DSP Data port read, result = aa
00035845793 (4) DSP Buffer status read, result 7f
00035845813 (4) DSP Data port write, value e1
00035845813 (4) DSP command e1 with 0 arg bytes
00035845845 (4) DSP output status read, result ff
00035845865 (4) DSP Data port read, result = 4
00035845895 (4) DSP output status read, result ff
00035845915 (4) DSP Data port read, result = 5
00035845966 (4) DSP Buffer status read, result 7f
00035845986 (4) DSP Data port write, value e1
00035845986 (4) DSP command e1 with 0 arg bytes
00035846019 (4) DSP output status read, result ff
00035846039 (4) DSP Data port read, result = 4
00035846070 (4) DSP output status read, result ff
00035846090 (4) DSP Data port read, result = 5
00035846145 (4) DSP Buffer status read, result 7f
00035846165 (4) DSP Data port write, value e3
00035846165 (4) DSP command e3 with 0 arg bytes
00035846198 (4) DSP output status read, result ff
...
00035849605 (4) DSP Data port write, value 0
00035849605 (4) DSP command 5 with 2 arg bytes
00035849656 (4) DSP Buffer status read, result 7f
00035849676 (4) DSP Data port write, value 4
00035849729 (4) DSP Buffer status read, result 7f
00035849749 (4) DSP Data port write, value fc
00035849749 (4) DSP command 4 with 1 arg bytes
00035849798 (4) DSP Buffer status read, result 7f
...
00066922309 (1) Resources set to I5 D1 H5
00066964603 (4) read from mixer register ff returns ff
00066964774 (4) read from mixer register ff returns ff
00066964943 (4) read from mixer register ff returns ff
00066965029 (4) read from mixer register fe returns 06
00067366942 (4) read from mixer register 82 returns 40
...
00204010022 (4) 8-bit DMA or SBMIDI IRQ acknowledged
00204010022 (4) DSP output status read, result 7f
00204147303 (5) Received 8-bit DMA: 0x88, 1375 remaining
00204286601 (5) Received 8-bit DMA: 0x81, 863 remaining
00204425907 (5) Received 8-bit DMA: 0x81, 351 remaining
00204425907 (4) DMA transfer done, triggering IRQ
00204425907 (4) auto-DMA reinitializing to length 1375
...
00573463924 (4) DMA initialized. Cmd c6, mode 00, length 1375, comp 0
00573463924 (5) DMA is 8b, 22050Hz, mono, output, mode 2, unsigned, normal speed, 22050 bps, 13931 usec/DMA
...

You can get it to write samples to a file too. I suppose lots of other emulators probably do the same kind of thing. Perhaps it's far too low-level for what you're after though. It might be necessary to read the Bochs source code to figure out which register numbers the different messages refer to if they're not the conventional names.

Thanks. So apparently this is one way to get what I want. But it is too convoluted for me, and will output more than what I need. I shall ask around if anyone would have the patience to intercept whatever is needed. I would be helped if there is an even easier technique, but still it is better than nothing.

previously known as Discrete_BOB_058

Reply 3 of 6, by doshea

User metadata
Rank Member
Rank
Member

What kind of information do you want to get?

Have you looked into any generic Win32 API monitoring/tracing/spying tools? I'm fairly sure that it was possible to perform Windows API tracing in Windows 3.x, so I'd like to think it could be done for Win32 API in 9x/Me too.

Reply 4 of 6, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
doshea wrote on 2023-03-14, 11:07:

What kind of information do you want to get?

Have you looked into any generic Win32 API monitoring/tracing/spying tools? I'm fairly sure that it was possible to perform Windows API tracing in Windows 3.x, so I'd like to think it could be done for Win32 API in 9x/Me too.

A certain application crashes on Windows NT when it is set to play sound on "PCM Audio" instead of "DirectSound Audio". I am Interested to see what operation goes successfully on Win9x. The application has a chatacter voice option which also causes the same issue.

I never did API tracing on Win3.x so I can't know.

previously known as Discrete_BOB_058

Reply 5 of 6, by doshea

User metadata
Rank Member
Rank
Member

PC Magazine 14 Jun 1994 page 340 talks about some relevant tools under the heading "Spying Tools". On page 341 it mentions Nu-Mega Bounds-Checker32. From Wikipedia I guessed that version 3 might have supported Windows 9x and so I did a Google search for "Bounds Checker 3.0" which revealed that there was apparently a thing called "Bounds Checker 3.0 SE for Windows 95/NT", although I don't know for sure that it was the one from Nu-Mega - from some other searching I did I think I found other tools called "Bounds Checker" too.

Also I suppose there is a chance that DirectX APIs aren't hooked, or are only hooked in newer versions or something.

If you find one of these tools and find it useful I'd be very interested to hear about it! I am interested in similar things for Windows 9x and 3.x but have never had time to pursue it.

Reply 6 of 6, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
doshea wrote on 2023-03-18, 00:46:

PC Magazine 14 Jun 1994 page 340 talks about some relevant tools under the heading "Spying Tools". On page 341 it mentions Nu-Mega Bounds-Checker32. From Wikipedia I guessed that version 3 might have supported Windows 9x and so I did a Google search for "Bounds Checker 3.0" which revealed that there was apparently a thing called "Bounds Checker 3.0 SE for Windows 95/NT", although I don't know for sure that it was the one from Nu-Mega - from some other searching I did I think I found other tools called "Bounds Checker" too.

Also I suppose there is a chance that DirectX APIs aren't hooked, or are only hooked in newer versions or something.

If you find one of these tools and find it useful I'd be very interested to hear about it! I am interested in similar things for Windows 9x and 3.x but have never had time to pursue it.

It looks interesting. I am trying to find the aforementioned application, but I can't find it anywhere. I didn't even find Bounds Checker 3.0 SE for Win95/NT

The program I am trying to log might not be using just DirectX in sound, it may well be running without DirectX. The application hanged when run without the DirectSound setting, so if Bounds-Checker32 works, will be interesting to see what's happening in the application.

previously known as Discrete_BOB_058