Jump to content

sweaterfish

Member
  • Posts

    13
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by sweaterfish

  1. I can't say I've got any good ideas why you're seeing this crashing. You should probably be installing the HDA driver into as bare a 98SE environment as possible, with nothing else in AUTOEXEC.BAT other than the HDATSR.EXE, no startup programs in Windows, no special drivers to get other hardware working, etc. Later you shoul dbe able to add that stuff, but again for troubleshooting, it's best to keep everything simple. Also, what method are you using to manage your memory in this Windows installation? What's your config.sys file look like?
  2. HDAcfg.ini and HDAICOUT.HDA go in C:\WINDOWS, but to isolate whatever was causing your system to crash, maybe you should just work without them for now. The HDA driver will create its own HDAcfg.ini file when you first boot with it. You should also make a [vcache] section in SYSTEM.INI and set MinFileCache=4096 and MaxFileCache=4096 there if you haven't already done that. You can definitely get crashes without those settings. Once you confirm that your system is stable (though you still won't have sound), then add the X61-specific HDAcfg.ini and HDAICOUT.HDA files to C:\WINDOWS and boot again. Here's the current HDAcfg.ini and HDAICOUT.HDA I use on my X61, which are updated slightly from the ones I posted before (PC speaker beep is now working). HDACFG.INI HDAICOUT.HDA
  3. Yep, setting the widgets to $FF in HDAcfg.ini and powering them on and configuring them in HDAICOUT.HDA does produce audio. WAVEOUT.EXE does not control the volume, though. Sound quality is low with the settings you provided, but changing $00420014 > $00424014 gives regular quality. Line $011707C0 isn't needed since the default of 0x40 seems to work properly, though I do see that the Linux source sometimes sets it to 0xC0 and that works as well. Your PC Beep code is also working for me. I was just not powering on the Analog Mixer ($19), which does seem to be required. So the PC Speaker is working fine now. I assume similar code would allow other inputs to at least be passed through. Would just connecting them to an ADC Selector and powering on the corresponding ADC allow for recording? I haven't tested anything with that yet. I hoped that having the PC Speaker working would solve a stability issue I've had where keyboard key rollovers sometimes cause Windows to crash (ocassionally with the message "Runtime error 202 at 0003:01BE"). It does not happen if HDA2.DLL isn't installed and key rollovers are supposed to make the speaker beep, so I thought the non-working beeper might be causing the problem, but still happens even when the beep is working. It only crashes when you do a bunch of rollovers in a row, though, so it pretty much won't happen unless you're trying to make it happen.
  4. No, and in fact the physical volume buttons don't work unfortunately. This is odd because I always thought they were hardware controls, not software, but I guess I'm wrong. The mute button that's alongside them still works, though, and when the system is muted pressing volume up or down (or mute again) will bring the sound back, but they just won't make it louder or quieter. No, I only removed it from my trimmed down HDAICOUT.HDA because it didn't seem to be necessary, but audio still works fine with it in. Same for all the other verbs I commented out. None of them break the audio, but they don't seem to have any effect. Let me know if you think there's some reasons to include some of them, though. I haven't tested everything yet. Yes, that's all working just as expected. I did spend some time trying to get the PC Speaker (Beep) working again (it works without the HDA2.DLL driver installed, like I mentioned before), but couldn't seem to figure it out. From what could gather by looking at other AD datasheets, it seems like there's two separate Beep capabilities, one is a direct Digital Beep generator ($10) and the other is an analog input ($1A) that can be connected to a port. I think the second one is the traditional PC Speaker that's controlled by the motherboard, so I tried setting up a stream by unmuting and setting volume to inputs and outputs as seemed appropriate, but never got any beeps from it. I probably won't spend any mor etime on it since I basically realized that any game I'd want to play that relies on the PC Speaker, is better off being run from pure DOS without starting Windows anyway, so it's not really an issue. Yes, WAVEOUT.EXE works and now that you mention it, that's a quick way to test the volume limit on the device. I tried it and audio seems to stop playing at $CE00. However, there's no actual change in volume once I move the slider above $4F00 (which is equivalent to the default 0x27) even though audio still plays. So it seems like the default volume setting at power up is already the actual maximum. $0000 is indeed silent, so all the actual volume control is in the range between $0000 and $4F00. Yes, attached. This is with all the verbs uncommented so that you can see everything working. All the verbs seem to work just the same even if some of the others are commented out. I set the wait timers so low in my working HDAcfg.ini (there seems to be no issues at $20) that the responses in my HDAICIN.TXT become mostly zeros, so the file I'm attaching is with wait1 and wait2 set back up to $100. As far as I can tell, the same HDAICOUT.HDA that works on my X61 should work with little or no change on other Thinkpads from the same generation, like the T61, R61, etc. These are pretty popular models with Thinkpadders, so I'll spread the word and as long as I'm not the only one wanting to run Windows 98SE on a Thinkpad, I bet there'll probably be some testers for those models. HDAICIN.ALL.TXT HDALOG.ALL.TXT
  5. We got 'em! I'm here listening to MP3s on my X61 in Windows 98SE right now! This is awesome. Thanks so much, deomsh! The issue seems to have been that the AD1984 cannot handle volume set to the mx value and just shuts down the sound. I haven't tested the upper limit yet, but even the default of 0x27 is a bit too loud. I had actually tried changing that volume value in the HDAICOUT.HDA already, but there was still a separate volume setting in HDAcfg.ini causing the problem. Simply not setting a volume in HDAICOUT.HDA and setting it at $42004200 in HDAcfg.ini is working great, though. I also found that DAC_1 (widget $04) has to be used to get audio from the internal speakers. This makes sense now that I know what to look for in the AD1984 datasheet. Port D (line out/speakers) is only connected to $04 while port A (headphones) is connected to $22 which selects between either $03 or $04. A custom HDAICOUT.HDA is still needed, but with only a few verbs. unmute input on port A's mixer unmute output on port A select DAC_1 for port A unmute input on port D's mixer unmute output on port D enable EAPD on port D I think HDA2.DLL itself powers on and sets up the required DAC, so no verbs for $04 seem to be necessary in HDAICOUT.HDA. I'm attaching my working HDAICOUT.HDA and HDAcfg.ini files here. I left all the unneeded lines in HDAICOUT.HDA in case they're needed for future troubleshooting. Thanks again for all your help and explanations. This has made my day! HDAcfg.X61.ini HDAICOUT.X61.HDA
  6. @Deomsh Thanks for your explanations and the link to the ALSA source. I think it's beginning to make more sense and now at least I understand the format of the lines in the HDAICOUT.HDA file, addressing widgets with verbs and an object to the verb, and how this configures the sound codec. Still plenty of mysteries, but I can understand some things at least. I tested the X61 HDAICOUT.HDA file and while there is still no sound, there are a few differences. First, it no longer seems to matter whether I have the modem enabled or disabled in BIOS or installed or uninstalled in the system. All combinations give exactly the same results, with a properly populated HDAcfg.ini and the same responses in HDAICIN.TXT. Second, there's some more promising crackles during boot, sounding very much like an audio connection being made. I confirmed that this is due to including the AC_VERB_SET_EAPD_BTLENABLE verb, which I gather is a peculiarity of this Thinkpad board. I did test with and without setting pcipatchB=$7900 and there was no effect. All the log files are identical, so I'm just posting the ones with pcipatch=$0000. I also tried modifying your HDAICOUT.HDA to set up DAC_1 and mixer $0A since that seems to be the one they chose to use in Linux for whatever reason. No difference, though. The only thing I don't understand in the HDAICIN.TXT is the AC_VERB_GET_POWER_STATE responses and why some of them don't seem to change. After the system is up, if I check with INTELHDA.EXE, the widgets that returned 0x30 at boot are all returning 0x00. I can't find info on what 0x30 means anyway, though, so maybe it's not important and it's only the last bit that matters. HDAICIN.0000.txtHDALOG.0000.txtHDAcfg.0000.txt
  7. Indeed I have. However, I'm still in the dark about what all this stuff is about, so I'm finding the process sort of frustrating. Could I ask you to take a minute and explain what the goal of the HDAICOUT.HDA file is? Like what is it attempting to do exactly? Same for the pcipatchb lines in the HDAcfg.ini file. What is the point of this line and where are you getting the values you're suggesting to use?
  8. Yes, with pcipatchB=$7900, W3C/w1 in INTELHDA is $0000. There does not seem to be any other differences.
  9. It seems to be exactly the same. The Codec Index line gets overwritten. Since the modem in the X61 is on a daughter card, though, I was just able to physically remove it. Now with the modem enabled in the BIOS, but physically removed, the HDA driver does correctly identify the AD1984 upon initial boot in 98SE. Restarting in MS-DOS mode is no longer necessary. So that problem is solved at least, but there's still no sound. Just the same single pop through headphones at boot. I'm pretty sure the result is exactly the same as the files I posted initially from after a DOS restart, but here they are for posterity's sake along with INTELHDA screenshots. This is with no HDAICOUT.HDA file, but I have tried several of them including the universal 000 one you posted previously, the one that comes with the HDADRV9J archive, and all the other ones I've seen in this thread. No effect from any of them. HDAcfg.002.txt HDALOG.002.TXT
  10. Ah, I did have the modem disabled and enabling it has changed some things, but there's still no sound. Now some of the HDAcfg.ini codec lines get populated even after a cold boot and restarting in MS-DOS and coming back does not change anything. However, I think the new info in the HDAcfg.ini is wrong, it seems to be returning the Vendor and Device IDs of the modem instead of the audio codec. So I tried disabling all power management options in the BIOS, but also keeping the modem disabled. Everything was the same as before, though. The codec lines of the HDAcfg.ini are zeros initially and get populated with what looks like the right info only after a DOS reboot. Feeling like this means my audio hardware might be slow to respond for some reason, I did try playing with the wait times in the HDAcfg.ini. I tried 200 and 500, but no change either with or without the modem enabled. With the modem enabled there's no difference between before and after restarting in MS-DOS mode, but I'm attaching both sets of files just in case. Two sets of screenshots (000a, 000b and 001a,001b) because of the 640x480 resolution. HDAcfg.000.txt HDAcfg.001.txt HDALOG.000.TXT HDALOG.001.TXT
  11. Oh yeah, I'm definitely willing to keep playing around with this. It would be great to get sound working. No, the HDAcfg.ini always looks the same, with or without HDAICOUT.HDA. I've tried a half dozen different versions as well. Never seen any difference in the HDAcfg.ini. Should there be some? I'm not at all clear what HDAICOUT.HDA is doing. I thought it was just querying registers in the soundcard, but is it actually cofiguring the driver? I mean the regular PC speaker sounds. I have tried using the Windows 3.1 driver that plays sound through the PC speaker, but I removed it from the SYSTEM.INI since it wasn't that great. Yes, I'm using VBEMP. I tried reverting to the built-in driver, but it didn't have any effect on the sound or HDAcfg.ini file. Still a lot of instability when trying to launch a DOS prompt, too, but it goes away completely when I don't load HDA2.DLL. I'll continue using the standard driver for testing, though. Hopefully it's only temporary because I don't know if having sound would be worth having to use 640x480 16 color mode.
  12. Okay, I tried $03 for the widgets as well as trying $07 for the mixer. I also tried $04 and $0A since I wasn't sure if there could be an y difference between DAC_0 and DAC_1. None of these seemed to yield any sound. In fact, I've probably tried all possible combinations of the $03, $04, $07, $0A, $11, and $12 nodes, as well as $0C, $0D and some others. All of them come out exactly the same. The uneditable parts of the HDALOG.TXT and HDAcfg.ini files are always exactly the same as the ones in my last post. Listening closely with headphones, I hear a single very quiet pop before the 98SE desktop appears. I hear this same pop with any node values at all for the widgets in HDAcfg.ini. It's not there at all if I uninstall the driver, though. In other OSes like later Windows or Linux flavors, there's a series of crackles before reacing the desktop. I also noticed that there's a series of crackles through the headphones at the BIOS screen before any OSes even begin to load. I wonder if this means that my BIOS is taking some kind of control of the sound hardware and that's leading to a problem in Windows 98? Could be a conflict with my ACPI BIOS even though there's no actualy conflicts reported? Something else is that, with the HDA driver installed, my PC speaker no longer works. Maybe this is expected since the speaker is also run through the AD1984, but with the driver uninstalled the PC speaker does work fine in Windows 98SE (or in various DOS versions I've installed). I also find that going to DOS through the MS-DOS Prompt icon in 98SE is very unstable with the HDA driver installed. Sometimes I'll get a blue screen or a hard freeze. It's more likely to be okay if I run the DOS prompt in fullscreen instead of windowed and even better if I disable Direct Memory Allocation for the shortcut, but never totally reliable. Anyway, just throwing info out there in case it's useful to anybody. I'm thinking that I might be at a dead end with getting my setup working, though I'm always open to ideas. Thanks.
  13. I'm trying to set up Windows 98SE on a Thinkpad X61 and as I now gather is to be expected, I'm not getting any sound. This thread seems like the most promising thing I've seen anywhere, so I want to see if we can generalize this success a little. From what I understand at this point, though, every single audio device could potentially require unique troubleshooting. Is there any chance we can come up with some step-by-steps in this thread that allow people to do it themselves? My Thinkpad X61 has an Analog Devices AD1984 sound device running on Intel HDA (there's a datasheet for the AD1984 available here). Using the GENHDA16.INF deomsh posted on the first page of this thread, I've installed HDA2.DLL from HDADRV9J and added HDATSR.EXE to my autoexec. This seems to work okay. One of my unidentified PCI Cards in Device Manager becomes a High Definition Audio Controller and an HDA Sound playback option appears under Multimedia Properties. HDALOG.TXT and HDAcfg.ini are also generated and so is HDAICIN.TXT if HDAICOUT.HDA is present. See my attached files for what these look like on my system. I can open WAV files in mplayer or sndrec32 and they appear to play, but I get no sound. Not through the laptop's internal speaker or through the headphone jack. I think this is "The Sound of Silence" as deomsh calls it, so I tried changing the volume or playback widgets listed in the HDAcfg.ini. I don't really understand what I should be changing them to, though. According to the datasheet for the AD1984, I have Audio Output widgets on nodes $02 (S/PDIF DAC), $03 (DAC_0), and $04 (DAC_1). Are these what I want to put into HDAcfg.ini? Or do I actually want to use the "Pin Complexes," which are $11 (headphone jack), $12 (line out), and so on? Or something else altogether? I've also tried using INTELHDA.EXE from this post, which seems like it should be a super useful program if only I could understand it. At least it confirms most of the widget info from the datasheet and I can also use it to see that node $12 is my laptop's internal speakers and that node $11 sees headphones when I connect them. INTELHDA.EXE also suggests that maybe (?) there's another Audio Output on $01. So all I've been doing so far is just testing all sorts of combinations of these node values in the HDAcfg.ini, but I haven't come across anything that produces any sort of sound. I definitely don't actually know what I'm doing, though, and there's lots of combinations to try. Some advice about what these widgets are supposed to be and how to identify the right nodes from either a datasheet or the "widgets" tab from INTELHDA.EXE might be useful and allow more people to troubleshoot their setups. One other oddity I've noticed on my system is that when I cold boot Windows, HDALOG.TXT shows nothing is returning and the CODEC section of HDAcfg.ini is all zeroes, but if I "Restart in MS-DOS mode" and then return to Windows using an EXIT or WIN command HDAcfg.ini does seem to populate correctly. The log and cfg files I'm attaching here are what I get after doing that. With a cold boot, HDAcfg.ini has CODEC BITMAP=00000011, CODEC Index=$1, and all the other CODEC lines are zeros. This seems to be some sort of failure, I think, right? I'm actually "cold booting" Windows 98SE from GRUB4DOS, so I don't know if that's part of the issue or what. Any advice or feedback would be much appreciated. It would be amazing to get sound working in my 98SE install, especially since it's otherwise working very well. HDALOG.TXT HDAcfg.ini HDAICIN.TXT
×
×
  • Create New...