Jump to content

Drew Hoffman

Member
  • Posts

    16
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by Drew Hoffman

  1. My driver is is a mini-driver using the WaveCyclic miniport. ReactOS already includes Dogbert1's CMI8738 driver which works on the same miniport, though they have modified how it builds (compared to the version in the Google Code Archive) to remove the dependency on the Microsoft DDK. I would bet that CMI driver was also based heavily on DDK sample code just because the file and function layout is very similar to the two examples but I can't prove that and wouldn't want to accuse anyone of anything.
  2. The Dell Mini 9 seems to have a USB keyboard and track pad, the Acer Aspire N450 netbook has a PS/2 Keyboard but USB Track pad, the Latitude E6400 has both ps/2 keyboard and track pad which is good since I can't get the USB controller drivers to install on that. Also my driver is still not producing any sound from IDT codecs it seems. That's all the old laptops with HDA I had immediately available. On another topic, does anyone have tips on getting a driver to build without the official Microsoft DDK? I probably shouldn't be redistributing the full sample code and headers, even if Microsoft themselves have uploaded newer DDKs to Github under more permissive licenses.
  3. Fixed the page fault crash and the hang on Atom systems. https://github.com/andrew-hoffman/WDMHDA/releases/tag/Alpha-014-1 The problem I'm having installing Win98se without QuickInstall on newer hardware is not the resources crash that SweetLow mentioned and running JHRobotics' Patcher9x does not fix it. I think it is an ACPI related issue with Configmg as installing with setup /p I will allow me to at least boot in to the OS after setup, but it seems to do so in a fallback mode where no PCI devices are detected or enumerated and that is not very useful for testing a PCI device driver. I get somewhat better results copying an image of an existing install, after including the new ICH8+ machine.inf files and NUSB. As long as the machine has PS/2 ports anyway. If it's a laptop I end up with the Catch-22 of needing to install the USB drivers and being unable to click Next on the dialog box.
  4. OK I think I figured out that problem. It's a page fault, I'm zeroing some memory that doesn't need to be zeroed. Will fix today.
  5. Released Alpha-014 which ignores outputs marked as not connected by the BIOS pin configuration. https://github.com/andrew-hoffman/WDMHDA/releases/tag/Alpha-014 e: I think I broke something on Atom systems between version 12 and 13, where it hangs on a blinking cursor after the Windows splash screen, and it's annoying because it doesn't happen if i have the driver disabled, change the version and then enable it after boot. So I can't see the crash in DbgView. Does anyone happen to have an industrial embedded Atom PC with a serial port?
  6. Right now I'm trying to focus on basic Functionality and Compatibility. Eventually I do intend to connect up the input streams as well and improve everything as much as possible under the limitations imposed by Windows 9x and the HD Audio spec. There will be no EAX support or 24-bit Dolby Atmos, and I can't use the lower latency WavePCI miniport because user mode programs can't respect the required 128 byte alignment. The latest committed version on Github that ignores outputs marked as No Connection by the pin config verbs now works quite well on an Intel 915g chipset with ALC880 codec. Still have a less severe version of the garbled audio problem on a Wyse Rx0 thin client with AMD SB600 chipset and Realtek ALC272. The issue with garbled sound seems to depend more on the controller than the codec. Also I am having a very hard time getting Win98 to work without using QuickInstall on 2010 and newer motherboards for testing. Even with the memory size patches I get issues with Configmg or repeated freezes during hardware detection. Is there a guide I should be looking at besides Omores's videos?
  7. I'm trying to enable as many output paths as possible so that's why you might get sound on Line-In if there is a path in the codec from a DAC to that pin to support re-tasking as an output. For the next version I am printing the color of the connector associated with the pin in the debug output and ignoring pins disabled in the codec Pin Config registers (need to add a Registry key to control this) Also I added a (quick, hacky) way to reprint the pin config on the Debug version so it can be seen in DbgView; Open 2 copies of the Volume Control window, enable Advanced options on one and open the bass/treble controls, then move the Volume Control slider followed by the Treble slider. The garbled sound may be caused by using the Link Position in Buffer register so I should also add a config option to use the DMA Position Buffer instead. Another possibility is that newer chipsets are trying to send Message Signaled Interrupts for the HDA controller which aren't converted properly to legacy level signaled ones but if this is the issue I am not sure how I would fix this. Still need to add separate volume controls for each type of output. For Windows 98 it is not possible to change the topology dynamically so I need to create all the Kernel Streaming topology pins in the inf and then disable ones that are not used.
  8. Here is version Alpha-013 which rearranges a lot of the codec init code and tries to init all the Line Outs no matter what. https://github.com/andrew-hoffman/WDMHDA/releases/tag/Alpha-013 My SFF with an ALC887 codec now produces some sound but it is garbled; small segments will keep looping until I do something that causes hard drive activity and then it will play a bit more into the buffer. It's possible that the interrupt is not firing or is being suppressed. The problematic system has most devices sharing IRQ 11.
  9. It seems it is only working for the Realtek ALC2xx at this time, for other Realtek codecs it is not finding the correct output pathway. Will troubleshoot more when I have a chance. If anyone here is getting a resource conflict at 0000-3FFF like mskrzynski, please try the latest version of Patcher9x released a few days ago to correct the above 4gb resources bug. https://github.com/JHRobotics/patcher9x/releases/tag/v0.9.91
  10. I should build out a DeviceIOControl interface so I can send codec verbs and dump the codec state from a user-mode program and don't need to rely on the kernel debugger. Will get to that when I have time. It's busy around the holidays. Also, HDMI Display Audio is unfortunately not likely to work at this time as it seems to expose a codec with only a SPDIF output and the current codec parser is only looking for analog output pins.
  11. WDM Sound Blaster digital and MIDI emulation should work but occasionally the sound will drop out for a while if there are a few seconds when nothing is playing. I think there is a race condition bug with quickly stopping and starting the stream. The WaveCyclic port driver aggressively sets the state to Stop whenever there is nothing playing but it can be held open by having Winamp or similar open in the background and paused. The Mute check box is disabled because it was disabled in the original SB16 sample driver and I haven't changed the topology miniport much. (I also need to remove the EQ settings it has since they don't do anything but I don't think those are exposed in the volume control panel, there was originally an example cpl addon for that. )
  12. Nvidia and ULI chipsets would be the highest priority to test as I don't have any of those myself and they need some PCI Configuration Space fixes that I blindly copied from VSBHDA. Tests on as many combinations of controller and codec as possible would be appreciated. I already know there's no sound on on IDT / Sigmatel codecs yet and will continue to debug that. The driver should function without DirectX 8, at least it does in Virtualbox, with maybe the only issue being choppier MIDI playback. I'm ignoring the requested interrupt interval from ks.sys (which is always 10ms) because Virtualbox seems to require a power of 2 audio buffer size not just a multiple of 128 bytes. Haven't tested on 98FE or 95 with the USB support added yet. DirectX 8.1 updates these audio related files: Ks.sys, Stream.sys, mskssrv.sys There's also a Microsoft WDM Audio Update hotfix KB242937 which updates kmixer.sys, portcls.sys, usbaudio.sys, wdmaud.sys I do have a QIYIDA X99 motherboard I can try to test on myself, if I can figure out Omores's trick for running 98 from a USB key in legacy emulation mode.
  13. Dangit. Good catch. I'll rework all of that and get another release up tonight. Edit: Fixed stupid interrupt eating bug and other problems with the Interrupt Service Routine. https://github.com/andrew-hoffman/WDMHDA/releases/tag/Alpha-011
  14. In the ISR I am first reading the INTSTS register and returning False if it is 0 (or 0xFFFFFFFF which happens on controller shutdown sometimes ). As far as I can tell this is correct, but on the Wyse Rx0 thin client with AMD SB600 having my driver loaded slows the system down immensely and causes the USB ports to stop working suggesting that there might be an IRQ storm issue. If the driver will initialize and load and media players attempt to play sound but nothing is heard, please try all audio jacks. The codec node parser is also fairly rudimentary at the moment and I'm not going to guarantee it works with every codec or even most of them. I've had very little success getting Windows 98 installed and working on systems as new as that anyway though clearly some of the people here are able to manage it.
  15. Huh. Are you able to get kernel debug prints on that system by any methods? Try the version in the hdac\buildchk folder in the download. Does it hang on installation or just on the first reboot? If it lets you install and then hangs on restarting you might be able to get some debug output with DbgView, otherwise you really have to have a hardware serial port and the newest laptops I know with that are on Dell Latitude E series which have one on some docking stations. One possible issue is that the driver is not currently designed to be able to load for multiple devices and the PCH on that laptop will have HDMI display audio as well as the HDA bus. There might also be issues with IRQ sharing with the USB controller but if that's the case I'm not sure how to fix the problems. I know you are experienced with Windows Driver development so maybe you would have some suggestions.
  16. https://github.com/andrew-hoffman/WDMHDA This audio driver now functions well in VMWare and VirtualBox, and may work on some real hardware with an Intel controller and Realtek audio codec. More testing and work is still needed. Any compatibility reports would be appreciated.
×
×
  • Create New...