Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!
Vytvořit web zdarmaNa FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!
Vytvořit web zdarma17.7.2008 Po koupi novho procesoru intel E8400 jsem se rozhodl taky trochu pozvednout grafick vkon PC. 3D akcelertory se vyvj tak rychle, e bych mohl kupovat novou kartu pomalu kad plrok. Osobn si ale radji pokm na pd cen starch a osvdench model. Pod je taky u m priorita energetick nenronost a nzk hladina produkovanho hluku. Od znmho jsem vhodn sehnal grafiku Asus EN7900GT/2DHT PCI-E osazenou 256 MB rychl GDDR3 pamti Samsung K4J553230-BC14 (1,4 ns) na 256-bitov sbrnici a dvma DVI-I konektory + S-Video. Defaultn takt je 450 MHz pro GPU a 660 MHz (1320 MHz DDR) pro pamti. Grafick jdro G71 obsahuje 24 pixel pipelines a 8 vertex shader 3.0, pln akceleruje DirectX 9.0c a OpenGL 2.0. Dky 90nm vrobn technologii se spoteba dr na pijatelnch 22 / 48 W (idle / peak 3D load), co je skoro polovina oproti 110nm pedchdci 7800GT. Nicmn pro jistotu je karta vybavena pdavnm 6-pinovm 12V napjecm konektorem. Chlazen je eeno malm mdnm chladiem s velmi hlunm ventiltorem bez regulace orek. BGA pamov ipy ani VRM nemaj dn chladi.
Jeliko jsem byl u pedchoz karty GF7600GS zvykl na tich pasivn chlazen, hned jsem se pustil do hledn odpovdajc nhrady originlnho fuku. Druh den jsem koupil pasivn chladi Arctic Cooling Accelero S1 rev. 2. Ten se skld z tlust mdn zkladny, z n vychzej 4 heatpipes, na kterch je navleeno 32 hlinkovch eber. Akort je koda, e vrobce neohnul heatpipe na druhou stranu karty, aby pi monti v tower case mohl hork vzduch voln stoupat vzhru. Na nkterch MB by ale hrozila kolize s chladiem northbridge. Je tak teba potat s obsazenm sousednho slotu pod VGA (toho PCI-E x1 dn koda). Akoliv je chladi docela rozmrn (podln i na ku kartu peuhuje) je lehk a nehroz utren PCI-E slotu :) Chladi je konstruovn jako univerzln pro karty nVidia i ATI a jist si porad i se ravjmi GPU. Akort je teba dt pozor na rozte montnch dr na PCB (existuje i verze Accelero S2 pro jin roztee). V balen najdete krom velkho chladie i mal pasivky na pamti (samolepic) a VRM. V mojem ppad to na VRM nelo pout, ale nen to ani nutn.
Mont je velmi jednoduch. Sta odroubovat originln chladi, nalepit pasivy na pamti, navlknout a piroubovat Accelero. rouby to chce dotahovat rovnomrn a s citem, aby zkladna dobe sedla na jdru GPU, ale aby se karta neprohbala. Nakonec se to jet pojist nkolika plastovmi packami. Po namontovn karty do PC jsem zjistil, e nemu podn zavt bonici. Mm toti middle tower case irok jen 18 cm. Natst lo jen o milimetry a pomohlo tak sundan hornho plastovho vlisku, kter je tam beztak jen na pardu. Pak u bonice la zavt v pohod a jet nkolik mm zbv. S originlnm chladiem jsem ml teploty GPU kolem 65°C ve 2D a 75 - 80°C ve 3D. S Accelerem to kleslo na 50°C ve 2D a 65°C ve 3D, co je docela solidn na to, e jde jen o pasiv. Urit by to po pidn pomalobnho vtrku lo jet o 10 - 15°C dol, ale to u je pro m zbyten.
pravou VGA BIOSu NiBiTorem jsem potom kartu mrn petaktoval na 480 / 680 MHz (GPU / RAM), ale je to jen pr FPS navc. Crysis se na tom d v 1024 x 768 hrt taky, pokud nejsou vechny grafick blbiny na max. (zejmna kvalita stnovn a stn). Pro porovnn jsem udlal pr test s MSI GeForce 6600GT, Gainward GeForce 7300GT a Asus GeForce 7600GS v Unrel Tournamentu 2003 (botmatch-anubis.bat, 1280 x 1024 / 32) a GL Quake (demo1.dem, 1280 x 1024 / 16). Nastaven ForceWare 94.24 v ovldacch panelech: AA = 2x Q, AF = 4x, vysok kvalita, vsync = off, mipmapy = trilinear, tripple buffering = off.
VGA UT 2003 GL Quake 6600GT @500/500 MHz 132 FPS 192 FPS 7300GT @350/350 MHz 110 FPS 178 FPS 7300GT @400/400 MHz 123 FPS 208 FPS 7600GS @400/400 MHz 137 FPS 202 FPS 7600GS @500/470 MHz 143 FPS 244 FPS 7900GT @450/660 MHz 291 FPS 518 FPS 7900GT @480/680 MHz 293 FPS 539 FPS Core 2 Duo E6400 @2,4 GHz; E8400 @3,5 GHz (7900GT)
Co se te ovlada, tak ve Windows XP pouvm stle ForceWare 94.24, jen jako posledn oficiln obsahuj star layout ovldacch panel, na kter jsem si tak njak zvykl. V ppad problm s tuhnutm starch DOSovch program v NTVDM pi pepnut z okna na fullscreen je eenm patch VIDEOPRT.ZIP [13 kB] od Martina ulka (mm ho nainstalovan u od dob pouvn GF7600GS). Pod Windows 98SE pouvm neoficiln ForceWare 82.69 drivery od ZakMcKracken84 z MSFN fra, problm s vypnnm Windows petrvv. Pro Windows NT 3.x a 4.0 lze pout akort univerzln VESA driver VBEMP (u existuje i beta pro Windows 9x) od BearWindowse. Ten samozejm neum HW akceleraci 2D nato 3D funkc, ale funguje. Na bnou prci s okny to sta. Bohuel dky zmrven implementaci VBE 3.0 neumouje nastavit obnovovac frekvenci. V Linuxu pouvm posledn verzi ForceWare 173.14.12 s Xorg 7.2 bez problm. 3D akcelerace funguje tak vborn, zkouel jsem linuxov verze Quake II, Quake III a Doom 3. Obnovovac frekvenci lze nastavit v ovldacch panelech podobnch tm windowsm. Pro taktovn a tweakovn existuje program NVClock. Pro zjemce jsem udlal i DOSov port tto utility. Petaktovn pod DOSem moc nem smysl, ale naopak lze kartu podtaktovat nebo snit otky vtrku na minimum.
18.6.2009 Tak se mi znenadn zaala na VGA kazit videopam. Nejprve jsem si viml drobnho artefaktu ve 2D grafice, kdy v prohlei obas pi scrollovn text v jednom mst zstval za psmeny nesouvisl etzek pixel (vechny pixely v jednom sloupci). Nejprve jsem to povaoval za softwarov problm Mozilly/Windoze, ale pak jsem si viml dalho artefaktu v textovm reimu 80x25, kde jeden znak v horn ad ml jin atribut ne ostatn. To se projevovalo jen pi urit kombinaci barvy poped a pozad. Program Ndiags (soust Norton Utilities 8.0 pro DOS) pi testu zkladn VGA videopamti skonil chybou. Program Video Memory stress Test, kter testuje celou videopam, odhalil stovky vadnch bunk. Naped jsem zkusil snit takt GPU a pamt a na minimum, avak bez rozdlu. Take to vypadalo nejsp na njak studek u pamt (zasran bezolovnat pjky, pry s EuroEkoTerorismem!) Jako posledn monost jsem zkusil pofoukat BGA ipy pamt horkovzduchem. Pitom jsem asi njak BGA pouzdro nedopatenm pli pimknul, e se slily koule pod nm a vznikl zkrat. Kdy jsem pak nic netuc kartu zastril zpt do PC a zapnul, okamit z jednoho malho integre v oblasti VRM vylehl plamen a PC zdroj se vypnul. Trvalo to jen zlomek vteiny. Operace se zdaila, pacient je mrtev, RIP... Mu bt jet rd, e mi neodela zkladn deska. Jako nhradu jsem do PC namontoval zpt 7600GS, kterou jsem natst neprodal. Rd bych ale co nejdve podil opt 7900 nebo 7950.
Nedvno jsem se na netu doetl, e nkte "experti" se sna problmy se studeky na PCB eit zapknm cel karty v troub, typicky pi 200 - 250°C po dobu 7 minut. Takov mal domc reflow. Pi tto pedstav se asi SMT technologm je vechny chlupy na tle :) Nkter soustky vydr petaven pouze 1 pi vrob a dalm petavenm bu znan zdegraduj nebo se rovnou zni. To plat zejmna o elektrolytickch kondenztorech, kter se uva a vyfouknou. Pitom by nebyl problm je ped peenm sundat. Dle je diskutabiln i vliv na kvalitu pjench spoj. U studek sice dojde k proht a vtinou i spojen, ale dal spoje zas oxidujou a hroz jejich poruen. Pi reflow se pouv pesn dan teplotn profil, kter asi tko doma nkdo v troub dodr. Vsledkem tedy me bt opt funkn karta, otzkou vak je, na jak dlouho. Po pr mscch se to zas me odporouet do kopru. Pokud s tm dotyn pot jako s doasnm nouzovm eenm, tak to jist za pokus stoj, ne tu kartu hned hodit do koe. Ale aspo ty elyty bych ped tm odpjel...
7.7.2009 se mi podailo koupit jako nhradu VGA kartu Leadtek WinFast PX7900GT TDH, 256MB DDR3, PCI-Express. Pedchozmu ASUSu se velmi podob, stejn referenn PCB layout a chladi, stejn takt jdra a pamt. Take jsem do karty vesele nahrl svj hacknut VGA BIOS a vymnil chladi za Accelero S1 a karta je k nepoznn od t pedchoz. Snad mi vydr dle ne rok...
VESA BIOS hack na Asus EN7900GT
16.12.2009 Kdy jsem si podil nov LCD monitor NEC 2190UXp, kter jsem pochopiteln propojil s grafickou kartou pes digitln DVI-D, dokal jsem se nemilho pekvapen, nebo mi z vpisu grafickch VESA md zmizely vechny rozlien vy ne 1280 x 1024. Pitom pokud jsem monitor propojil klasickm analogovm kabelem, VESA BIOS nabzel mdy a do 2048 x 1536 / 32 bpp. NVidioti se zejm snaili do VESA BIOSu implementovat dal ochranu tupho uivatele (podobn jako vyputn kdu pro nastaven refresh rate dle spec. VBE 3.0), aby nelo nastavit vy ne nativn rozlien LCD, ale njak se jim pomotaly porovnvac opertory. Asi lo o nemyslnou programtorskou chybu (postihujc nejsp vechny nVidia karty ady 6xxx a 7xxx), protoe jak jsem pozdji zjistil, tak na novj 8800GT u tento problm nen. To m ponkud iritovalo, protoe jsem teba ve Windows NT 4.0 nebo nkterch DOSovch programech nemohl nastavit nativn rozlien LCD a tak jsem nahavil svj oblben IDA disassembler...
Veker dal popis se vztahuje k video BIOSu verze 5.71.22.38.00 pro Asus EN7900GT/2DHT 256 MB DDR3 PCI-E, PCB rev. p455h0s. Vtina vrobc grafickch karet ale pouv jen minimln upraven referenn nVidia BIOS, take by nemlo bt tk se v nm zorientovat. Stejn binrn etzce mou bt na trochu jinch offsetech. Celkem bez problm funguje zmna video BIOS na grafickch kartch rznch vrobc pro jeden typ GPU. Je akort poteba dt pozor na defaultn frekvence a volte GPU a pamt, kter jsou zapsny v inicializanch tabulkch BIOSu. Pokud by se dal teba BIOS s nastavenm vysokm taktem pamt do karty, kter je osazena pomalejmi pamovmi ipy, tak by u karta nemusela nabhnout. Avak takty a napt lze pohodln upravit NiBiTorem. Pouvm svj upraven Asus BIOS na Leadteku a nenarazil jsem na dn problm. Takty GPU a pamt jsem jen mrn zvil z 450/660 MHz na 480/680 MHz.
Nejprve jsem se pustil do hledn subrutiny blokujc zmnn VESA mdy, zde je jej zatek:
C000:4BDA ; =============== S U B R O U T I N E ======================================= C000:4BDA ; OEMIsModeAvailable - Determine if mode is available with current hardware C000:4BDA ; disable higher than native modes on LCD via DVI C000:4BDA ; some bug here caused that also native LCD modes was disabled C000:4BDA ; Entry: AL = OEM mode number C000:4BDA ; Exit: Carry flag set as follows: NC = Mode is available, CF = Mode is not available C000:4BDA ; All registers are preserved. C000:4BDA C000:4BDA OEMIsModeAvailable proc near ; CODE XREF: SetMode+68.p C000:4BDA ; FillModes+21.p ... C000:4BDA pushad ; PATCH: replace pushad by RETN, NOP to disable this routine C000:4BDC push es C000:4BDD call GetModeDescPtr ; GetModeDescPtr - Get pointer to the mode description table C000:4BDD ; Entry: AL = VGA Mode number C000:4BDD ; Exit: ES:BX = Pointer to table (If error, BX = 0) C000:4BDD ; Carry flag set as follows: C000:4BDD ; NC = Pointer is valid C000:4BDD ; CF = Error (pointer invalid) C000:4BDD ; All other registers preserved. C000:4BE0 jb OEMIsModeAvailable_exit C000:4BE4 mov dl, al C000:4BE6 mov al, cs:[bx+2] C000:4BEA mov cl, 9 C000:4BEC mul cl C000:4BEE mov si, 2D41h C000:4BF1 add si, ax C000:4BF3 call sub_C1151 C000:4BF6 jb OEMIsModeAvailable_exit C000:4BFA call isTV ; Returns Carry flag if on TV C000:4BFD jb short loc_C4C04 C000:4BFF call sub_CBA57 C000:4C02 jnb short loc_C4C26 C000:4C04 C000:4C04 loc_C4C04: ; CODE XREF: OEMIsModeAvailable+23.j C000:4C04 mov al, es:[bx+3] C000:4C08 cmp al, 0FFh C000:4C0A jnz short loc_C4C12 C000:4C0C stc C000:4C0D jmp OEMIsModeAvailable_exit C000:4C10 ; --------------------------------------------------------------------------- C000:4C10 jmp short loc_C4C26 C000:4C12 ; --------------------------------------------------------------------------- ...
Tato subrutina je volan ze subrutiny FillModes na adrese C000:8FECh, kter vytv VESA mode list na zklad poadavk voln sluby VESA BIOSu 4F00h (rutina VBE_ReturnControllerInfo na adrese C000:903Ch). Nejjednodu bylo celou rutinu vyadit z innosti pepsnm 2-Bytovho operanho kdu instrukce PUSHAD dvma 1-Bytovmi operanmi kdy instrukc RETN a NOP. Po tto prav a updejtu kontrolnho soutu ROM image jsem BIOS flashnul a skuten ve vpisu VESA md se objevily vechny jako pi pipojen pes analog. Pomoc svho progrmku VESATEST jsem otestoval oba videomdy 1600 x 1200 / 8 bpp a 1600 x 1200 / 16 bpp a fungovaly korektn, konen nativn rozlin :)
K dokonalosti u chybl jen VESA md 1600 x 1200 / 32 bpp, holt truecolor je truecolor... Musel jsem tedy najt a upravit tabulku videomd. Ta se u vtiny nVidia BIOS nachz na adrese C000:3000h:
C000:3000 ; VideoModes description table: 0-OEMMode,6-VESAVMode,8-ModeType,9-pages,A-bpp,B-RowOffset C000:3000 tblModeDescriptions C000:3000 ; Byte: 0 1 2 3 4 5 6,7 8 9 A B,C D,E F C000:3000 MODEDESC <80h,0Ch,05h,02h,00h,1,001h,0,8,4,20,2048,17h> ; 320x350/4,mode 01-80 (text) C000:3010 MODEDESC <81h,0Ch,0Ch,06h,01h,3,003h,0,8,4,40,4096,17h> ; 640x350/4,mode 03-81 (text) C000:3020 MODEDESC <82h,0Fh,03h,00h,00h,2,001h,0,8,4,20,2048,17h> ; 320x200/4,mode 01-82 (text) C000:3030 MODEDESC <83h,0Fh,0Ah,05h,01h,4,003h,0,8,4,40,4096,17h> ; 640x200/4,mode 03-83 (text) C000:3040 MODEDESC <84h,13h,07h,04h,00h,2,001h,0,8,4,20,2048,17h> ; 360x400/4,mode 01-84 (text) C000:3050 MODEDESC <85h,13h,11h,0Bh,01h,4,003h,0,8,4,40,4096,17h> ; 720x400/4,mode 03-85 (text) C000:3060 MODEDESC <04h,03h,02h,00h,02h,2,004h,2,1,2,20,16384,17h> ; 320x200/2,mode 04-04 (gfx) C000:3070 MODEDESC <05h,03h,02h,00h,02h,2,005h,2,1,2,20,16384,17h> ; 320x200/2,mode 05-05 (gfx) C000:3080 MODEDESC <06h,04h,09h,05h,03h,4,006h,2,1,1,40,16384,17h> ; 640x200/1,mode 06-06 (gfx) C000:3090 MODEDESC <87h,0Dh,10h,0Ah,01h,3,007h,1,8,0,40,4096,17h> ; 720x350/1,mode 07-87 (text) C000:30A0 MODEDESC <88h,14h,11h,0Bh,01h,4,007h,1,8,0,40,4096,17h> ; 720x400/1,mode 07-88 (text) C000:30B0 MODEDESC <0Dh,08h,02h,00h,02h,2,00Dh,5,8,4,20,8192,17h> ; 320x200/4,mode 0D-0D (gfx) C000:30C0 MODEDESC <0Eh,08h,09h,05h,03h,4,00Eh,5,4,4,40,16384,17h> ; 640x200/4,mode 0E-0E (gfx) C000:30D0 MODEDESC <0Fh,06h,0Bh,06h,03h,3,00Fh,3,2,1,40,32768,17h> ; 640x350/1,mode 0F-0F (gfx) C000:30E0 MODEDESC <10h,0Ah,0Bh,06h,03h,3,010h,5,2,4,40,32768,17h> ; 640x350/4,mode 10-10 (gfx) C000:30F0 MODEDESC <11h,07h,0Fh,09h,04h,5,011h,4,1,1,40,40960,17h> ; 640x480/1,mode 11-11 (gfx) C000:3100 MODEDESC <12h,09h,0Fh,09h,04h,5,012h,5,1,4,40,40960,17h> ; 640x480/4,mode 12-12 (gfx) C000:3110 MODEDESC <13h,05h,01h,08h,03h,4,013h,6,1,8,40,64000,17h> ; 320x200/8,mode 13-13 (gfx) C000:3120 MODEDESC <6Ah,0Bh,13h,0Ch,07h,6,102h,5,1,4,50,65535,17h> ; 800x600/4,mode 102-6A (gfx) C000:3130 MODEDESC <58h,0Bh,13h,0Ch,07h,6,102h,5,1,4,50,65535,17h> ; 800x600/4,mode 102-58 (gfx) C000:3140 MODEDESC <30h,02h,00h,00h,08h,2,130h,6,1,8,40,16384,20h> ; 320x200/8,mode 130-30 (gfx) C000:3150 MODEDESC <31h,02h,06h,03h,08h,2,131h,6,1,8,40,32768,20h> ; 320x400/8,mode 131-31 (gfx) C000:3160 MODEDESC <32h,00h,06h,03h,08h,2,132h,7,1,16,80,65535,20h> ; 320x400/16,mode 132-32 (gfx) C000:3170 MODEDESC <34h,02h,04h,01h,0Ah,0,134h,6,1,8,40,20480,20h> ; 320x240/8,mode 134-34 (gfx) C000:3180 MODEDESC <35h,00h,04h,01h,0Ah,0,135h,7,1,16,80,40960,20h> ; 320x240/16,mode 135-35 (gfx) C000:3190 MODEDESC <5Bh,02h,0Dh,07h,05h,4,100h,6,1,8,80,65535,20h> ; 640x400/8,mode 100-5B (gfx) C000:31A0 MODEDESC <3Dh,00h,0Dh,07h,05h,4,13Dh,7,1,16,160,65535,20h> ; 640x400/16,mode 13D-3D (gfx) C000:31B0 MODEDESC <44h,00h,16h,FFh,FFh,8,11Ah,7,1,16,320,65535,20h> ; 1280x1024/16,mode 11A-44 (gfx) C000:31C0 MODEDESC <5Ah,0Bh,17h,FFh,FFh,8,106h,5,1,4,80,65535,17h> ; 1280x1024/4,mode 106-5A (gfx) C000:31D0 MODEDESC <5Ch,02h,12h,0Ch,07h,6,103h,6,1,8,100,65535,20h> ; 800x600/8,mode 103-5C (gfx) C000:31E0 MODEDESC <5Dh,0Bh,15h,0Dh,0Bh,7,104h,5,1,4,64,65535,17h> ; 1024x768/4,mode 104-5D (gfx) C000:31F0 MODEDESC <5Eh,02h,14h,0Dh,0Bh,7,105h,6,1,8,128,65535,20h> ; 1024x768/8,mode 105-5E (gfx) C000:3200 MODEDESC <5Fh,02h,0Eh,09h,06h,5,101h,6,1,8,80,65535,20h> ; 640x480/8,mode 101-5F (gfx) C000:3210 MODEDESC <6Bh,02h,16h,FFh,FFh,8,107h,6,1,8,160,65535,20h> ; 1280x1024/8,mode 107-6B (gfx) C000:3220 MODEDESC <6Eh,00h,0Eh,09h,06h,5,111h,7,1,16,160,65535,20h> ; 640x480/16,mode 111-6E (gfx) C000:3230 MODEDESC <6Fh,00h,12h,0Ch,09h,6,114h,7,1,16,200,65535,20h> ; 800x600/16,mode 114-6F (gfx) C000:3240 MODEDESC <72h,00h,14h,0Dh,0Bh,7,117h,7,1,16,256,65535,20h> ; 1024x768/16,mode 117-72 (gfx) C000:3250 MODEDESC <78h,00h,00h,00h,08h,2,10Eh,7,1,16,80,65535,20h> ; 320x200/16,mode 10E-78 (gfx) C000:3260 MODEDESC <45h,02h,1Bh,FFh,FFh,0Ch,145h,6,1,8,200,65535,20h> ; 1600x1200/8,mode 145-45 (gfx) C000:3270 MODEDESC <46h,00h,1Bh,FFh,FFh,0Ch,146h,7,1,16,400,65535,20h> ; 1600x1200/16,mode 146-46 (gfx) C000:3280 MODEDESC <47h,02h,19h,FFh,FFh,0Ah,147h,6,1,8,175,65535,20h> ; 1400x1050/8,mode 146-46 (gfx) C000:3290 MODEDESC <48h,00h,19h,FFh,FFh,0Ah,148h,7,1,16,350,65535,20h> ; 1400x1050/16,mode 147-47 (gfx) C000:32A0 MODEDESC <7Ah,01h,1Eh,FFh,FFh,FFh,152h,8,1,32,1024,65535,20h> ; 2048x1536/32,mode 152-7A (gfx) C000:32A0 ; PATCH: replace it by modeline for 1600x1200/32 (4A 01 1B FF FF 0C 4A 01 08 01 20 20 03 FF FF 1C) C000:32B0 MODEDESC <20h,01h,00h,00h,08h,2,10Fh,8,1,32,160,65535,20h> ; 320x200/32,mode 10F-20 (gfx) C000:32C0 MODEDESC <21h,01h,0Eh,09h,06h,5,112h,8,1,32,320,65535,20h> ; 640x480/32,mode 112-21 (gfx) C000:32D0 MODEDESC <22h,01h,12h,0Ch,09h,6,115h,8,1,32,400,65535,20h> ; 800x600/32,mode 115-22 (gfx) C000:32E0 MODEDESC <33h,01h,06h,03h,08h,2,133h,8,1,32,160,65535,20h> ; 320x400/32,mode 133-33 (gfx) C000:32F0 MODEDESC <36h,01h,04h,01h,0Ah,0,136h,8,1,32,160,65535,20h> ; 320x240/32,mode 136-36 (gfx) C000:3300 MODEDESC <3Eh,01h,0Dh,07h,05h,4,13Eh,8,1,32,320,65535,20h> ; 640x400/32,mode 13E-3E (gfx) C000:3310 MODEDESC <3Fh,01h,14h,0Dh,0Bh,7,118h,8,1,32,512,65535,20h> ; 1024x768/32,mode 118-3F (gfx) C000:3320 MODEDESC <79h,01h,16h,FFh,FFh,8,11Bh,8,1,32,640,65535,20h> ; 1280x1024/32,mode 11B-79 (gfx) C000:3330 MODEDESC <FFh,01h,FFh,C4h,03h,0,300h,255,194,3,0,65281,0D4h> ; end of table
Kad dek tabulky o 16 Bytech mapuje jedno slo VESA mdu (Byte 6 a 7) na jedno slo nVidia OEM mdu (byte 0). Tabulku nelze jednoduchou editac zvtit (pidat dal VESA mdy), zbv tedy jen monost njak dky pepsat. V celku s klidnm svdomm mohu vypustit ob VESA md 2048 x 1536 / 32 bpp a nahradit jej potebnjm 1600 x 1200 / 32 bpp. Konkrtn hodnoty do tabulky jsem zskal na fru VOGONS od uivatele dvwjr z jeho modifikovanho BIOSu pro BFG 7950GT, kter t ctyhodnch 51 VESA md. Poskytl mi tak kompletn tabulku svch videomd:
Order Nvidia Video VGA/ Visible Visible Bits per Notes Video Mode VESA Horizontal Vertical Pixel Mode# Pixels Pixels (color) ************************************************************************************************* VGA: 1 80 01 00 320 350 4 Text - EGA: 40 column 2 81 03 00 640 350 4 Text - EGA: 80 column 3 82 01 00 320 200 4 Text - CGA: 40 column 4 83 03 00 640 200 4 Text - CGA: 80 column 5 84 01 00 360 400 4 Text - VGA: 40 column 6 85 03 00 720 400 4 Text - VGA: 80 column 7 04 04 00 320 200 2 Graphic 8 05 05 00 320 200 2 Graphic CGA, EGA, MCGA, VGA 9 06 06 00 640 200 1 Graphic CGA, EGA, MCGA, VGA 10 87 07 00 720 350 1 Text - MDA, EGA: 80 column=mono 11 88 07 00 720 400 1 Text - VGA: 80 column=mono 12 0D 0D 00 320 200 4 Graphic EGA, VGA: color 13 0E 0E 00 640 200 4 Graphic EGA, VGA: color 14 0F 0F 00 640 350 1 Graphic EGA, VGA: mono 15 10 10 00 640 350 4 Graphic EGA, VGA: color 16 11 11 00 640 480 1 Graphic MCGA,VGA: color 17 12 12 00 640 480 4 Graphic VGA: color 18 13 13 00 320 200 8 Graphic VGA: color VESA Text: 19 deprecated 08 01 80 60 4 Text - old VESA: Text mode 20 deprecated 09 01 132 25 4 Text - old VESA: Text mode 21 deprecated 0A 01 132 43 4 Text - old VESA: Text mode 22 deprecated 0B 01 132 50 4 Text - old VESA: Text mode 23 deprecated 0C 01 132 60 4 Text - old VESA: Text mode VESA Graphics: 24 20 0F 01 320 200 32 25 21 12 01 640 480 32 26 22 15 01 800 600 32 27 30 30 01 320 200 8 28 31 31 01 320 400 8 29 32 32 01 320 400 16 30 33 33 01 320 400 32 31 34 34 01 320 240 8 32 35 35 01 320 240 16 33 36 36 01 320 240 32 34 3D 3D 01 640 400 16 35 3E 3E 01 640 400 32 36 3F 18 01 1024 768 32 37 44 1A 01 1280 1024 16 38 45 45 01 1600 1200 8 39 46 46 01 1600 1200 16 40 47 47 01 1400 1050 8 41 48 48 01 1400 1050 16 42 49 49 01 1400 1050 32 43 4A 4A 01 1600 1200 32 44 53 53 01 1280 960 8 45 54 54 01 1280 960 32 46 55 55 01 2048 1556 32 @ 59.94 Hz - my special mode 47 56 56 01 2048 1556 32 @ 72 Hz - my special mode 48 57 57 01 2048 1556 32 @ 85 Hz - my special mode 49 58 02 01 800 600 4 50 5A 06 01 1280 1024 4 51 5B 00 01 640 400 8 52 5C 03 01 800 600 8 53 5D 04 01 1024 768 4 54 5E 05 01 1024 768 8 55 5F 01 01 640 480 8 56 6A 02 01 800 600 4 57 6B 07 01 1280 1024 8 58 6E 11 01 640 480 16 59 6F 14 01 800 600 16 60 72 17 01 1024 768 16 61 78 0E 01 320 200 16 62 79 1B 01 1280 1024 32 63 7A 52 01 2048 1536 32 64 60 60 01 1280 800 8 65 61 61 01 1280 800 32 66 62 62 01 768 480 8 67 64 64 01 1440 900 8 68 65 65 01 1440 900 32 69 68 68 01 1680 1050 8 70 69 69 01 1680 1050 32 71 7B 7B 01 1280 720 32 72 7C 7C 01 1920 1200 8 73 7D 7D 01 1920 1200 32
Po editaci tabulky, opravy kontrolnho soutu a dalm flashnut ROM image se objevil ken VESA md ve vpisu a normln fungoval, take jsem mohl vesele pepnout nkter programy a OSy do nativnho mdu. Akort u mojeho oblbenho modelovacho programu 3D Studio R4 nejde nastavit vy rozlien ne 1280 x 1024, protoe m tabulku videomd nkde zahardkdovanou ve svm ovladai (msto aby si je detekoval dynamicky volnm sluby VESA BIOSu 4F00h. To si vyd jet dal disassemblovn... Kadopdn bych chtl podkovat dvwjrovi a bear windowsovi za pomoc, bez kter bych se asi tak daleko nedostal.
Zde je ke staen finln podoba mho upravenho video BIOSu: my7900gt.zip [45 kB]. Flashovn jen na vlastn nebezpe. Ped flashnutm BIOSu si jej mete vyzkouet na neisto pomoc utility vgabios.exe -f!MY7900G.ROM (je soust balku). Pro flashnut BIOS image pouijte utilitu nvflash. Pokud budete flashovat na kartu 7900GT jinho vrobce s jinm board ID, bude poteba pout donucovac parametry: nvflash -4 -5 -6 !MY7900G.ROM.
14.1.2012 Stejnm zpsobem jsem tak upravil video BIOS m pedchoz karty Asus EN7600GS.
Vyblit ern na AGP VGA kartch S3
30.10.2018 Na fru VOGONS jsem se doetl o zajmavm problmu, kter trp nkter uivatele AGP grafickch karet s ipy S3 Virge, Trio 3D, Savage 3D a PCI karet s ipy S3 Trio64V+ a to sice, e zmnn karty po zapnut a v DOSu zobrazuj patnou rove ern barvy pozad, kter nen ern ale ed. Ve Windows s nainstalovanm ovladaem tento problm nen, ppadn se dl poladit pomoc S3 Color Utility. J jsem se u svch VGA karet zatm s tmto problmem nesetkal, ale teba se tyto informace budou nkomu hodit. Nejprve nebylo jasn, jestli je problm v HW nebo FW, ale pak se ukzalo, e peprogramovnm video BIOSu na problmov kart sprvnou verz, lze problm eliminovat (sprvnm nastavenm napov rovn ern a zatemnn v generovanm videosignlu). Analzou video BIOSu se zjistilo, e za toto chovn je zodpovdn nastaven extended registr sekvencru (specifick pro ipy S3), kter se programuje pes standardn VGA I/O porty 3C4h a 3C5h. Uivatel wbc pak napsal jednoduch testovac progrmek, kterm lze otestovat ob (svtl a normln) nastaven. Je t autorem komplexnj utility S3VBEFIX, kter e i dal neduhy S3 karet. Za zmnku jet stoj, e s pchodem VESA VBE 2.0 bylo poteba ve video BIOSu uvolnit trochu msta pro nov kd a tak byl vyputn font 8 x 14. Nkter DOSov programy a hry ho vak pouvaj a pak dojde k rozsypn obrazu - to e utilita FIX8X14.