HardwareHeaven.com
Looking for the skin chooser?
 
 
  • Home

  • Reviews

  • Articles

  • News

  • Tools

  • GamingHeaven

  • Forums

  • Network

 

Go Back   HardwareHeaven.com > Forums > Hardware and Related Topics > kX Project Audio Driver Support Forum > General Discussion


Reply
 
Thread Tools
Old Dec 27, 2008, 12:19 AM   #1
Tail Razer
 
Maddogg6's Avatar
 
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 50
Maddogg6 will become famous soon enoughMaddogg6 will become famous soon enough

AC97 Registers...

Has anyone mapped them?

I made simple little program to query all the ac97 registers via kxctrl.exe -gac97 x
and heres the output.
Code:
AC97[reg=0]=1990
AC97[reg=1]=0
AC97[reg=2]=0
AC97[reg=3]=0
AC97[reg=4]=8000
AC97[reg=5]=0
AC97[reg=6]=801f
AC97[reg=7]=0
AC97[reg=8]=0
AC97[reg=9]=0
AC97[reg=a]=801e
AC97[reg=b]=0
AC97[reg=c]=8008
AC97[reg=d]=0
AC97[reg=e]=8008
AC97[reg=f]=0
AC97[reg=10]=8808
AC97[reg=11]=0
AC97[reg=12]=8808
AC97[reg=13]=0
AC97[reg=14]=8808
AC97[reg=15]=0
AC97[reg=16]=8808
AC97[reg=17]=0
AC97[reg=18]=808
AC97[reg=19]=0
AC97[reg=1a]=0
AC97[reg=1b]=0
AC97[reg=1c]=0
AC97[reg=1d]=0
AC97[reg=1e]=0
AC97[reg=1f]=0
AC97[reg=20]=200
AC97[reg=21]=0
AC97[reg=22]=0
AC97[reg=23]=0
AC97[reg=24]=0
AC97[reg=25]=0
AC97[reg=26]=f
AC97[reg=27]=0
AC97[reg=28]=200
AC97[reg=29]=0
AC97[reg=2a]=0
AC97[reg=2b]=0
AC97[reg=2c]=bb80
AC97[reg=2d]=0
AC97[reg=2e]=0
AC97[reg=2f]=0
AC97[reg=30]=0
AC97[reg=31]=0
AC97[reg=32]=bb80
AC97[reg=33]=0
AC97[reg=34]=0
AC97[reg=35]=0
AC97[reg=36]=0
AC97[reg=37]=0
AC97[reg=38]=0
AC97[reg=39]=0
AC97[reg=3a]=0
AC97[reg=3b]=0
AC97[reg=3c]=0
AC97[reg=3d]=0
AC97[reg=3e]=0
AC97[reg=3f]=0
AC97[reg=40]=0
AC97[reg=41]=0
AC97[reg=42]=0
AC97[reg=43]=0
AC97[reg=44]=0
AC97[reg=45]=0
AC97[reg=46]=0
AC97[reg=47]=0
AC97[reg=48]=0
AC97[reg=49]=0
AC97[reg=4a]=0
AC97[reg=4b]=0
AC97[reg=4c]=0
AC97[reg=4d]=0
AC97[reg=4e]=0
AC97[reg=4f]=0
AC97[reg=50]=0
AC97[reg=51]=0
AC97[reg=52]=0
AC97[reg=53]=0
AC97[reg=54]=0
AC97[reg=55]=0
AC97[reg=56]=0
AC97[reg=57]=0
AC97[reg=58]=0
AC97[reg=59]=0
AC97[reg=5a]=302
AC97[reg=5b]=0
AC97[reg=5c]=0
AC97[reg=5d]=0
AC97[reg=5e]=80
AC97[reg=5f]=0
AC97[reg=60]=22
AC97[reg=61]=0
AC97[reg=62]=0
AC97[reg=63]=0
AC97[reg=64]=0
AC97[reg=65]=0
AC97[reg=66]=0
AC97[reg=67]=0
AC97[reg=68]=0
AC97[reg=69]=0
AC97[reg=6a]=0
AC97[reg=6b]=0
AC97[reg=6c]=0
AC97[reg=6d]=0
AC97[reg=6e]=0
AC97[reg=6f]=0
AC97[reg=70]=0
AC97[reg=71]=0
AC97[reg=72]=0
AC97[reg=73]=0
AC97[reg=74]=0
AC97[reg=75]=0
AC97[reg=76]=0
AC97[reg=77]=0
AC97[reg=78]=3e
AC97[reg=79]=0
AC97[reg=7a]=0
AC97[reg=7b]=0
AC97[reg=7c]=4352
AC97[reg=7d]=0
AC97[reg=7e]=5913
AC97[reg=7f]=0
AC97[reg=80]=1990
AC97[reg=81]=0
AC97[reg=82]=0
AC97[reg=83]=0
AC97[reg=84]=8000
AC97[reg=85]=0
AC97[reg=86]=801f
AC97[reg=87]=0
AC97[reg=88]=0
AC97[reg=89]=0
AC97[reg=8a]=801e
AC97[reg=8b]=0
AC97[reg=8c]=8008
AC97[reg=8d]=0
AC97[reg=8e]=8008
AC97[reg=8f]=0
AC97[reg=90]=8808
AC97[reg=91]=0
AC97[reg=92]=8808
AC97[reg=93]=0
AC97[reg=94]=8808
AC97[reg=95]=0
AC97[reg=96]=8808
AC97[reg=97]=0
AC97[reg=98]=808
AC97[reg=99]=0
AC97[reg=9a]=0
AC97[reg=9b]=0
AC97[reg=9c]=0
AC97[reg=9d]=0
AC97[reg=9e]=0
AC97[reg=9f]=0
AC97[reg=a0]=200
AC97[reg=a1]=0
AC97[reg=a2]=0
AC97[reg=a3]=0
AC97[reg=a4]=0
AC97[reg=a5]=0
AC97[reg=a6]=f
AC97[reg=a7]=0
AC97[reg=a8]=200
AC97[reg=a9]=0
AC97[reg=aa]=0
AC97[reg=ab]=0
AC97[reg=ac]=bb80
AC97[reg=ad]=0
AC97[reg=ae]=0
AC97[reg=af]=0
AC97[reg=b0]=0
AC97[reg=b1]=0
AC97[reg=b2]=bb80
AC97[reg=b3]=0
AC97[reg=b4]=0
AC97[reg=b5]=0
AC97[reg=b6]=0
AC97[reg=b7]=0
AC97[reg=b8]=0
AC97[reg=b9]=0
AC97[reg=ba]=0
AC97[reg=bb]=0
AC97[reg=bc]=0
AC97[reg=bd]=0
AC97[reg=be]=0
AC97[reg=bf]=0
AC97[reg=c0]=0
AC97[reg=c1]=0
AC97[reg=c2]=0
AC97[reg=c3]=0
AC97[reg=c4]=0
AC97[reg=c5]=0
AC97[reg=c6]=0
AC97[reg=c7]=0
AC97[reg=c8]=0
AC97[reg=c9]=0
AC97[reg=ca]=0
AC97[reg=cb]=0
AC97[reg=cc]=0
AC97[reg=cd]=0
AC97[reg=ce]=0
AC97[reg=cf]=0
AC97[reg=d0]=0
AC97[reg=d1]=0
AC97[reg=d2]=0
AC97[reg=d3]=0
AC97[reg=d4]=0
AC97[reg=d5]=0
AC97[reg=d6]=0
AC97[reg=d7]=0
AC97[reg=d8]=0
AC97[reg=d9]=0
AC97[reg=da]=302
AC97[reg=db]=0
AC97[reg=dc]=0
AC97[reg=dd]=0
AC97[reg=de]=80
AC97[reg=df]=0
AC97[reg=e0]=22
AC97[reg=e1]=0
AC97[reg=e2]=0
AC97[reg=e3]=0
AC97[reg=e4]=0
AC97[reg=e5]=0
AC97[reg=e6]=0
AC97[reg=e7]=0
AC97[reg=e8]=0
AC97[reg=e9]=0
AC97[reg=ea]=0
AC97[reg=eb]=0
AC97[reg=ec]=0
AC97[reg=ed]=0
AC97[reg=ee]=0
AC97[reg=ef]=0
AC97[reg=f0]=0
AC97[reg=f1]=0
AC97[reg=f2]=0
AC97[reg=f3]=0
AC97[reg=f4]=0
AC97[reg=f5]=0
AC97[reg=f6]=0
AC97[reg=f7]=0
AC97[reg=f8]=3e
AC97[reg=f9]=0
AC97[reg=fa]=0
AC97[reg=fb]=0
AC97[reg=fc]=4352
AC97[reg=fd]=0
AC97[reg=fe]=5913
AC97[reg=ff]=0
AC97[reg=0]=1990
AC97[reg=1]=0
AC97[reg=2]=0
AC97[reg=3]=0
AC97[reg=4]=8000
AC97[reg=5]=0
AC97[reg=6]=801f
AC97[reg=7]=0
AC97[reg=8]=0
AC97[reg=9]=0
AC97[reg=a]=801e
AC97[reg=b]=0
AC97[reg=c]=8008
AC97[reg=d]=0
AC97[reg=e]=8008
AC97[reg=f]=0
AC97[reg=10]=8808
AC97[reg=11]=0
AC97[reg=12]=8808
AC97[reg=13]=0
AC97[reg=14]=8808
AC97[reg=15]=0
AC97[reg=16]=8808
AC97[reg=17]=0
AC97[reg=18]=808
AC97[reg=19]=0
AC97[reg=1a]=0
AC97[reg=1b]=0
AC97[reg=1c]=0
AC97[reg=1d]=0
AC97[reg=1e]=0
AC97[reg=1f]=0
AC97[reg=20]=200
AC97[reg=21]=0
AC97[reg=22]=0
AC97[reg=23]=0
AC97[reg=24]=0
AC97[reg=25]=0
AC97[reg=26]=f
AC97[reg=27]=0
AC97[reg=28]=200
AC97[reg=29]=0
AC97[reg=2a]=0
AC97[reg=2b]=0
AC97[reg=2c]=bb80
AC97[reg=2d]=0
AC97[reg=2e]=0
AC97[reg=2f]=0
AC97[reg=30]=0
AC97[reg=31]=0
AC97[reg=32]=bb80
AC97[reg=33]=0
AC97[reg=34]=0
AC97[reg=35]=0
AC97[reg=36]=0
AC97[reg=37]=0
AC97[reg=38]=0
AC97[reg=39]=0
AC97[reg=3a]=0
AC97[reg=3b]=0
AC97[reg=3c]=0
AC97[reg=3d]=0
AC97[reg=3e]=0
AC97[reg=3f]=0
AC97[reg=40]=0
AC97[reg=41]=0
AC97[reg=42]=0
AC97[reg=43]=0
AC97[reg=44]=0
AC97[reg=45]=0
AC97[reg=46]=0
AC97[reg=47]=0
AC97[reg=48]=0
AC97[reg=49]=0
AC97[reg=4a]=0
AC97[reg=4b]=0
AC97[reg=4c]=0
AC97[reg=4d]=0
AC97[reg=4e]=0
AC97[reg=4f]=0
AC97[reg=50]=0
AC97[reg=51]=0
AC97[reg=52]=0
AC97[reg=53]=0
AC97[reg=54]=0
AC97[reg=55]=0
AC97[reg=56]=0
AC97[reg=57]=0
AC97[reg=58]=0
AC97[reg=59]=0
AC97[reg=5a]=302
AC97[reg=5b]=0
AC97[reg=5c]=0
AC97[reg=5d]=0
AC97[reg=5e]=80
AC97[reg=5f]=0
AC97[reg=60]=22
AC97[reg=61]=0
AC97[reg=62]=0
AC97[reg=63]=0
AC97[reg=64]=0
AC97[reg=65]=0
AC97[reg=66]=0
AC97[reg=67]=0
AC97[reg=68]=0
AC97[reg=69]=0
AC97[reg=6a]=0
AC97[reg=6b]=0
AC97[reg=6c]=0
AC97[reg=6d]=0
AC97[reg=6e]=0
AC97[reg=6f]=0
AC97[reg=70]=0
AC97[reg=71]=0
AC97[reg=72]=0
AC97[reg=73]=0
AC97[reg=74]=0
AC97[reg=75]=0
AC97[reg=76]=0
AC97[reg=77]=0
AC97[reg=78]=3e
AC97[reg=79]=0
AC97[reg=7a]=0
AC97[reg=7b]=0
AC97[reg=7c]=4352
AC97[reg=7d]=0
AC97[reg=7e]=5913
AC97[reg=7f]=0
AC97[reg=80]=1990
AC97[reg=81]=0
AC97[reg=82]=0
AC97[reg=83]=0
AC97[reg=84]=8000
AC97[reg=85]=0
AC97[reg=86]=801f
AC97[reg=87]=0
AC97[reg=88]=0
AC97[reg=89]=0
AC97[reg=8a]=801e
AC97[reg=8b]=0
AC97[reg=8c]=8008
AC97[reg=8d]=0
AC97[reg=8e]=8008
AC97[reg=8f]=0
AC97[reg=90]=8808
I did try searching for what they mean - but didnt get very far at all, other than the hw\ac97.h.

Anyway - all that aside - am I re-inventing the wheel? Are these registers mapped out somewhere - I will host them on a web page for easy reference, even if I have to map them my self. But any info on known ones will be a great help.

Also, am I to assume than various AC97 codecs will have different registers?
Like, are there some registers on some codecs that are not on others?

My card shows up as;
Quote:
Card HAS AC97 codec
Codec name: Unk AC97-codec [83847650]
3D Extension: SigmaTel 3D Enhancement
Codec is 2.0 compliant
Capabilities[6a90] : -headphone out-
DAC resolutions : -16-bit- -20-bit-
ADC resolutions : -16-bit- -20-bit-
Ext Capabilities [605]: -var rate PCM audio-
Perhaps I could make a table of card model / ac97 registers?

Opinions expressed are welcome.

p.s. I was attempting to answer this post:
http://www.hardwareheaven.com/general-...ml#post1206168

When I came up with my hair brained idea.... I simply automated making a batch file to query kxctrl.exe like..

Continued next post....
Maddogg6 is offline   Reply With Quote


Old Dec 27, 2008, 12:20 AM Threadstarter Thread Starter   #2
Tail Razer
 
Maddogg6's Avatar
 
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 50
Maddogg6 will become famous soon enoughMaddogg6 will become famous soon enough

Re: AC97 Registers...

test.bat contains
Code:
kxctrl.exe -gac97 0 >> Results.txt
kxctrl.exe -gac97 1 >> Results.txt
kxctrl.exe -gac97 2 >> Results.txt
kxctrl.exe -gac97 3 >> Results.txt
kxctrl.exe -gac97 4 >> Results.txt
kxctrl.exe -gac97 5 >> Results.txt
kxctrl.exe -gac97 6 >> Results.txt
kxctrl.exe -gac97 7 >> Results.txt
kxctrl.exe -gac97 8 >> Results.txt
kxctrl.exe -gac97 9 >> Results.txt
kxctrl.exe -gac97 A >> Results.txt
kxctrl.exe -gac97 B >> Results.txt
kxctrl.exe -gac97 C >> Results.txt
kxctrl.exe -gac97 D >> Results.txt
kxctrl.exe -gac97 E >> Results.txt
kxctrl.exe -gac97 F >> Results.txt
kxctrl.exe -gac97 10 >> Results.txt
kxctrl.exe -gac97 11 >> Results.txt
kxctrl.exe -gac97 12 >> Results.txt
kxctrl.exe -gac97 13 >> Results.txt
kxctrl.exe -gac97 14 >> Results.txt
kxctrl.exe -gac97 15 >> Results.txt
kxctrl.exe -gac97 16 >> Results.txt
kxctrl.exe -gac97 17 >> Results.txt
kxctrl.exe -gac97 18 >> Results.txt
kxctrl.exe -gac97 19 >> Results.txt
kxctrl.exe -gac97 1A >> Results.txt
kxctrl.exe -gac97 1B >> Results.txt
kxctrl.exe -gac97 1C >> Results.txt
kxctrl.exe -gac97 1D >> Results.txt
kxctrl.exe -gac97 1E >> Results.txt
kxctrl.exe -gac97 1F >> Results.txt
kxctrl.exe -gac97 20 >> Results.txt
kxctrl.exe -gac97 21 >> Results.txt
kxctrl.exe -gac97 22 >> Results.txt
kxctrl.exe -gac97 23 >> Results.txt
kxctrl.exe -gac97 24 >> Results.txt
kxctrl.exe -gac97 25 >> Results.txt
kxctrl.exe -gac97 26 >> Results.txt
kxctrl.exe -gac97 27 >> Results.txt
kxctrl.exe -gac97 28 >> Results.txt
kxctrl.exe -gac97 29 >> Results.txt
kxctrl.exe -gac97 2A >> Results.txt
kxctrl.exe -gac97 2B >> Results.txt
kxctrl.exe -gac97 2C >> Results.txt
kxctrl.exe -gac97 2D >> Results.txt
kxctrl.exe -gac97 2E >> Results.txt
kxctrl.exe -gac97 2F >> Results.txt
kxctrl.exe -gac97 30 >> Results.txt
kxctrl.exe -gac97 31 >> Results.txt
kxctrl.exe -gac97 32 >> Results.txt
kxctrl.exe -gac97 33 >> Results.txt
kxctrl.exe -gac97 34 >> Results.txt
kxctrl.exe -gac97 35 >> Results.txt
kxctrl.exe -gac97 36 >> Results.txt
kxctrl.exe -gac97 37 >> Results.txt
kxctrl.exe -gac97 38 >> Results.txt
kxctrl.exe -gac97 39 >> Results.txt
kxctrl.exe -gac97 3A >> Results.txt
kxctrl.exe -gac97 3B >> Results.txt
kxctrl.exe -gac97 3C >> Results.txt
kxctrl.exe -gac97 3D >> Results.txt
kxctrl.exe -gac97 3E >> Results.txt
kxctrl.exe -gac97 3F >> Results.txt
kxctrl.exe -gac97 40 >> Results.txt
kxctrl.exe -gac97 41 >> Results.txt
kxctrl.exe -gac97 42 >> Results.txt
kxctrl.exe -gac97 43 >> Results.txt
kxctrl.exe -gac97 44 >> Results.txt
kxctrl.exe -gac97 45 >> Results.txt
kxctrl.exe -gac97 46 >> Results.txt
kxctrl.exe -gac97 47 >> Results.txt
kxctrl.exe -gac97 48 >> Results.txt
kxctrl.exe -gac97 49 >> Results.txt
kxctrl.exe -gac97 4A >> Results.txt
kxctrl.exe -gac97 4B >> Results.txt
kxctrl.exe -gac97 4C >> Results.txt
kxctrl.exe -gac97 4D >> Results.txt
kxctrl.exe -gac97 4E >> Results.txt
kxctrl.exe -gac97 4F >> Results.txt
kxctrl.exe -gac97 50 >> Results.txt
kxctrl.exe -gac97 51 >> Results.txt
kxctrl.exe -gac97 52 >> Results.txt
kxctrl.exe -gac97 53 >> Results.txt
kxctrl.exe -gac97 54 >> Results.txt
kxctrl.exe -gac97 55 >> Results.txt
kxctrl.exe -gac97 56 >> Results.txt
kxctrl.exe -gac97 57 >> Results.txt
kxctrl.exe -gac97 58 >> Results.txt
kxctrl.exe -gac97 59 >> Results.txt
kxctrl.exe -gac97 5A >> Results.txt
kxctrl.exe -gac97 5B >> Results.txt
kxctrl.exe -gac97 5C >> Results.txt
kxctrl.exe -gac97 5D >> Results.txt
kxctrl.exe -gac97 5E >> Results.txt
kxctrl.exe -gac97 5F >> Results.txt
kxctrl.exe -gac97 60 >> Results.txt
kxctrl.exe -gac97 61 >> Results.txt
kxctrl.exe -gac97 62 >> Results.txt
kxctrl.exe -gac97 63 >> Results.txt
kxctrl.exe -gac97 64 >> Results.txt
kxctrl.exe -gac97 65 >> Results.txt
kxctrl.exe -gac97 66 >> Results.txt
kxctrl.exe -gac97 67 >> Results.txt
kxctrl.exe -gac97 68 >> Results.txt
kxctrl.exe -gac97 69 >> Results.txt
kxctrl.exe -gac97 6A >> Results.txt
kxctrl.exe -gac97 6B >> Results.txt
kxctrl.exe -gac97 6C >> Results.txt
kxctrl.exe -gac97 6D >> Results.txt
kxctrl.exe -gac97 6E >> Results.txt
kxctrl.exe -gac97 6F >> Results.txt
kxctrl.exe -gac97 70 >> Results.txt
kxctrl.exe -gac97 71 >> Results.txt
kxctrl.exe -gac97 72 >> Results.txt
kxctrl.exe -gac97 73 >> Results.txt
kxctrl.exe -gac97 74 >> Results.txt
kxctrl.exe -gac97 75 >> Results.txt
kxctrl.exe -gac97 76 >> Results.txt
kxctrl.exe -gac97 77 >> Results.txt
kxctrl.exe -gac97 78 >> Results.txt
kxctrl.exe -gac97 79 >> Results.txt
kxctrl.exe -gac97 7A >> Results.txt
kxctrl.exe -gac97 7B >> Results.txt
kxctrl.exe -gac97 7C >> Results.txt
kxctrl.exe -gac97 7D >> Results.txt
kxctrl.exe -gac97 7E >> Results.txt
kxctrl.exe -gac97 7F >> Results.txt
kxctrl.exe -gac97 80 >> Results.txt# seems to start over here
kxctrl.exe -gac97 81 >> Results.txt
kxctrl.exe -gac97 82 >> Results.txt
kxctrl.exe -gac97 83 >> Results.txt
kxctrl.exe -gac97 84 >> Results.txt
kxctrl.exe -gac97 85 >> Results.txt
kxctrl.exe -gac97 86 >> Results.txt
kxctrl.exe -gac97 87 >> Results.txt
kxctrl.exe -gac97 88 >> Results.txt
kxctrl.exe -gac97 89 >> Results.txt
kxctrl.exe -gac97 8A >> Results.txt
kxctrl.exe -gac97 8B >> Results.txt
kxctrl.exe -gac97 8C >> Results.txt
kxctrl.exe -gac97 8D >> Results.txt
kxctrl.exe -gac97 8E >> Results.txt
kxctrl.exe -gac97 8F >> Results.txt
kxctrl.exe -gac97 90 >> Results.txt 
kxctrl.exe -gac97 91 >> Results.txt #seems to end here
kxctrl.exe -gac97 92 >> Results.txt
kxctrl.exe -gac97 93 >> Results.txt
kxctrl.exe -gac97 94 >> Results.txt
kxctrl.exe -gac97 95 >> Results.txt
kxctrl.exe -gac97 96 >> Results.txt
kxctrl.exe -gac97 97 >> Results.txt
kxctrl.exe -gac97 98 >> Results.txt
kxctrl.exe -gac97 99 >> Results.txt
kxctrl.exe -gac97 9A >> Results.txt
kxctrl.exe -gac97 9B >> Results.txt
kxctrl.exe -gac97 9C >> Results.txt
kxctrl.exe -gac97 9D >> Results.txt
kxctrl.exe -gac97 9E >> Results.txt
kxctrl.exe -gac97 9F >> Results.txt
Continued next post....
Maddogg6 is offline   Reply With Quote
Old Dec 27, 2008, 12:21 AM Threadstarter Thread Starter   #3
Tail Razer
 
Maddogg6's Avatar
 
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 50
Maddogg6 will become famous soon enoughMaddogg6 will become famous soon enough

Re: AC97 Registers...

kX API hw\ac97.h shows...
Code:
#define AC97_REG_RESET              0x00

#define AC97_REG_MASTER_VOL         0x02    // line control
#define AC97_REG_SURROUND_DAC_VOL   0x04    // in Live! 5.1: Center/Subwoofer -> routing somewhere?
#define AC97_REG_MONO_VOL           0x06    // play control; TAD OUT
// #define AC97_REG_MASTER_TONE        0x08    // bass(4)+treble(4)
#define AC97_REG_PC_BEEP_VOL        0x0A
#define AC97_REG_PHONE_VOL          0x0C	// TAD IN
#define AC97_REG_MIC_VOL            0x0E
#define AC97_REG_LINE_VOL           0x10
#define AC97_REG_CD_VOL             0x12
#define AC97_REG_VIDEO_VOL          0x14	// FIXME: is changed in crea'beta7 on master change
#define AC97_REG_AUX_VOL            0x16
#define AC97_REG_PCM_VOL            0x18

#define AC97_REG_REC_SELECT         0x1A
#define AC97_REG_REC_GAIN           0x1C	// analog gain
#define AC97_REG_REC_GAIN_MIC       0x1E
#define AC97_REG_GENERAL            0x20
#define AC97_REG_3D_CTRL            0x22
// #define AC97_REG_MODEM_RATE         0x24   // Reserved in 2.1?
#define AC97_REG_PWR_DWN_CTRL       0x26
#define AC97_REG_PWR_DWN_STAT       0x26

#define AC97_REG_EXTENDED_ID		0x28	/* Extended Audio ID */
#define AC97_REG_EXTENDED_STATUS	0x2a	/* Extended Audio Status */
#define AC97_PCM_FRONT_DAC_RATE 	0x2c	/* PCM Front DAC Rate */
//#define AC97_REG_PCM_SURR_DAC_RATE	0x2e	/* PCM Surround DAC Rate */
//#define AC97_REG_PCM_LFE_DAC_RATE	0x30	/* PCM LFE DAC Rate */
//#define AC97_REG_PCM_LR_DAC_RATE	0x32	/* PCM LR DAC Rate */
//#define AC97_REG_PCM_MIC_ADC_RATE	0x34	/* PCM MIC ADC Rate */
#define AC97_REG_CENTER_LFE_MASTER	0x36	/* Center + LFE Master Volume */
#define AC97_REG_SURROUND_MASTER	0x38	/* Surround (Rear) or Center/Subwoofer Master Volume */

#define AC97_REG_MULTICHANNEL_SELECT	0x74	// Vendor-specific: ST AC9708
#define AC97_SIGMATEL_ANALOG	0x6c	/* Analog Special */
#define AC97_SIGMATEL_DAC2INVERT 0x6e
#define AC97_SIGMATEL_BIAS1	0x70
#define AC97_SIGMATEL_BIAS2	0x72
#define AC97_SIGMATEL_CIC1	0x76
#define AC97_SIGMATEL_CIC2	0x78

#define AC97_REG_VENDOR_ID1         0x7C
#define AC97_REG_VENDOR_ID2         0x7E
Seems like some registers are multiple bytes, but I am confused why I dont simply see 1 byte for each register.... I obviously am over my head with understanding these registers.

Any help/tips/opinions are welcome.
Maddogg6 is offline   Reply With Quote
Old Dec 27, 2008, 06:21 AM   #4
h/h member-shmember
 
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,606
Rep Power: 66
Max M. is a name known to allMax M. is a name known to allMax M. is a name known to allMax M. is a name known to allMax M. is a name known to allMax M. is a name known to all

Ответ: AC97 Registers...

>Seems like some registers are multiple bytes
>but I am confused why I dont simply see 1 byte for each register....

all registers are of 2 bytes size actually
-gac97 command takes a memory address not really a register index
(and same you see in the ac97.h, all registers have an even address)
e.g. it doesn't make sense to read -gac97 3 for example - as there's no register there
(well, logically "register" at address 3 is a half of register @2 and half of register @4 , but kxctrl just returns a dummy value for it (0 in this case))

>Has anyone mapped them?

What (if i may ask) for? (yes, there're certain vendor specific registers here and there, but i doubt if ac97 can have anything interesting - just by definition and max's spoiling the fun again!)

Speaking of information, one starts with inventor's specification (http://download.intel.com/support/mo...b/ac97_r23.pdf)
and goes further with vendor-specific docs (for example Integrated Device Technology, your codec seems to be "stac9750")

(btw. it's something wrong with the dump above, registers [7c, 7e] should return [8384, 7650] (e.g. the values shown in kX's "about")

P.S. >I was attempting to answer this post: ...

ah, i see now. i suppose writing something like 0808 to reg10 should help
__________________

Last edited by Max M.; Dec 27, 2008 at 12:04 PM.
Max M. is offline   Reply With Quote
Old Dec 27, 2008, 04:48 PM Threadstarter Thread Starter   #5
Tail Razer
 
Maddogg6's Avatar
 
Join Date: Jun 2005
Location: Bernyurass, AZ - USA
Posts: 4,027
Rep Power: 50
Maddogg6 will become famous soon enoughMaddogg6 will become famous soon enough

Re: AC97 Registers...

Thanks Max, your explanation made much sense to me...
Quote:
(yes, there're certain vendor specific registers here and there, but i doubt if ac97 can have anything interesting - just by definition
Well, as a for instance, and what I was thinking of, was something like this...
the 3d control register (h22) the ac97 spec shows more then the (edited) 4 states that kx mixer supports. And is shows 16 levels of 'effect depth' - I dunno, I think is somewhat interesting.

Then I also see some EQ control register too... but for some reason (I imagine has to do with compatibility) not implemented in kX at all.

Ok, not *really* interesting - but not completely worthless either.
Quote:
(btw. it's something wrong with the dump above, registers [7c, 7e] should return [8384, 7650] (e.g. the values shown in kX's "about")
Yes that is strange, when I query those registers running the console - they appear normal
Perhaps doing all them queries like I did in that batch file causes some errors?
Edit: When running the batch file - kxctrl.exe will open my first card, which is a CT4832. While, opening kX console will use the currently selected device. So, those dumps are of a different card. /edit


Thanks again for the links and info.

Last edited by Maddogg6; Dec 28, 2008 at 06:25 PM.
Maddogg6 is offline   Reply With Quote
Reply

Bookmarks

Thread Tools