IEMGD EDITOR: Basic GUIDE


Questa guida ha come scopo quello di fornirvi le "BASI" per generare un driver IEMGD sulla suite per MS Windows 7 ma non si sostituisce alla documentazione ufficiale!
L'esempio qui sotto è sviluppato per ASUS 1101HA\1201HA (per gli altri modelli di device il procedimento è simile).
Nota.Qui utilizzeremo i profili già disponibili
Iniziamo:
1.Installate da questo sito il compiler Watcom (eseguite un'installazione full)
2.Installate il Kit Sviluppo EMGD per Windows 7 (la versione del programma per xp è leggermente diversa)
3.Avviamo e familiarizziamo col programma (gode di un'ottima grafica semplice e con poche opzioni):

4.Selezioniamo la Configurazione 6x4.cnfg (quella per il monitor del nostro netbook)
-LVDS (Low-voltage differential signaling) è la voce che si riferisce al nostro monitor
-Aggiungiamo alla lista di destra la voce sDVO (Serial Digital Video Out) per aggiungere il supporto all'uscita VGA e selezioniamo "Next"
5.Selezioniamo da Custom Display Timing la risoluzione massima con quale il driver si avvierà (dipende dal vostro monitor su Asus 1101-1201HA è 1366x768)
6.Selezionamo Attribute Settings (per molti netbook saltare questo punto)
Possiamo vagliare diverse opzioni ma quella che interessa a noi è la frequenza dell'inverter che è calcolata in Hz (dipende dal vostro computer), immettiamo il valore desiderato e selezioniamo Finish
7.Passiamo alla configurazione uscita VGA\HDMI\Ect
Selezioniamo il Chip dedicato, che per ASUS 1101HA è il Chrontel CH7317A, e  Use driver built in timing + Use EDID Display if avaiable

8.Ora andiamo alla voce Package
Eliminiamo la voce Video BioS e aggiungiamo Windows7 per la creazione dei driver
9.A questo punto selezioniamo il pacchetto che dobbiamo creare e clickiamo Generate Installation
Il Driver è nella cartella IEMGD\Workspace\Installation\multiPB.pkg_installation\
Basta scompattare l'archivio zip e sarete pronti a installare il vostro driver ;)

                                        -Complimenti! Adesso leggete le guide sul sito intel!!!!-
Tavola dall'User Guide:
_______________________________________________________________________________
DEVELOPERs:

1)Generic: Multipackage; Freq:0
2)Asus: 6x4 profile;1366x768; CH7317; Freq:20300
3)Sony Vaio P: Add DTD 1600x768; CH7317; Freq:300
4)Dell Mini 1010: HDMI Silicon 1392; Freq:0
5)Acer 751H: CH7317; Freq:20300
6)Viliv N5: 10x6Sam Profile; 1024x600; no video output
7)Viliv S5: 10x6Sam Profile

-  Panning Mode:  Use resolution that is larger than the native resolution of the display
-  Dither
-  OpenLDI

DTD Page: This page requires specific values basing on your Monitor Panel DataSheet
For this reason generic drivers can't be 100% setted for your device,without  EDID, because it's impossible to know which kind of panel uses Asus,Dell or Sony ect. in every product and also in the same line product: for ex. not all Asus 1101HA have the same Monitor Panel).
Anyway if you don't see any artifacts on the display can use generic settings.
Generic Pixel clock frequency = HTOTAL * VTOTAL * Vertical Refresh Rate / 1000000
HTOTAL = HACTIVE + HBLANK_BACK PORCH + HBLANK_FRONT PORCH
VTOTAL = VACTIVE + VBLANK_BACK PORCH + VBLANK_FRONT PORCH

Output names based on informations available on http://notebookschematic.com/
Supporto video output IEMGD:
CH7022 SDTV-HDTV Encoder
CH7307 DVI
CH7308 LVDS
CH7315 HDMI
CH7317 VGA
CH7319-CH7320 Dual Port DVI
Silicon Image SII 1362
Silicon Image SII 1364
Lapis Semiconductor ML7213
STM IOH ConneXt
Display Attributes:
Read your model's name with AIDA64 and after search datasheet on google
Asus 1101HA LCD: Chi Mei N116B6-L02 Rev.C2
VideoBIOS: (Introdution to vBios)

Primary Dislay Mode:
Standard Modes on Asus 1101HA: Use Default (better) or set a 16bpp value like 800x600.
Primary Non-standard Modes: Should be 1366x768 but on datasheet there isn't any value for this res.
Secondary Display Mode on Asus 1101HA: Leave Default
Power On Self Test: First screen after power on your device. Write anything you want (i usually leave it blank
5F Function: Select which your device support (ASUS 1101HA not support it)
Common to port: Allow the vBios to get port informations from Bios 

VideoBios flash on AMI BIOS for US15 Platform (Vendor ID:8086 Device ID:8108) 
Ingredients: MMTool; system BIOS; video BIOS; Bios flasher; Pendrive

1)Open with MMTool your bios (Load ROM)
2)Select Replace Tab
3)Select ID20 Option Rom as in picture (be sure that ID is GPU)
4)Select Browse (path of  VGA.bin compiled with CED) and after Replace
5)Save ROM or save ROM as...
6)Flash with your BIOS utility  (on Asus 1101HA series copy modded rom into a pendrive and change name in 1101HA.ROM. Restart PC and on boot press ALT+F2)

Driver Package for Windows 7:
e6xxdispext.inf   NOT for US15
e6xxdispext.sys NOT for US15
hccutils.dll
hkcmd.exe     Intel Tool (hotkey)
igd_XA.cpa
igd_XA.vp   
igd_XC.vp
igd_XO.vp
igdkmd32.sys  Main Driver File
igdkmd32.vp Kernel Module
igdlh32.inf        Installer Configuration 
igdogl32.exp    OpenGL file (useless?)
igdogl32.lib      OpenGL file (useless?)
igdogl32.dll      Main OpenGL 2.0 File
igdsgl32.dll      Main OpenGL 2.0 File
igdumd32.dll    WDDM directly linked to sys file
igfxcfg.exe        Intel Tool 
igfxcpl.cpl         Intel Tool (Control Panel File)
igfxdo.dll
IgfxExt.exe      Intel Tool
IgfxExtps.dll    Intel Tool
igfxpph.dll
igfxrENU.lrc       English Intel Tool
igfxres.dll            (useless?)
igfxress.dll          (useless?)
igfxressENU.lrc   English Intel Tool
igfxsrvc.dll           Intel Tool
igfxsrvc.exe         Intel Tool
igfxtray.exe         Intel Tool Tray Icon
libmfxhw32.dll    NOT for US15: Intel MediaSDK library

Driver Package for Windows XP:
ch7036.sys  video-output driver for Chrontel model 7036
ch7036.vp Voucher file for COPP
iegd.inf Driver Configuration File
iegd3dga.dll Direct3D support Dynamic Link Library
iegdcagt.cpa Agent for COPP
iegdcagt.vp  Voucher file for COPP
iegdckey.vp Voucher file for COPP
iegddis.dll Display Driver
iegdglga.dll OpenGL
iegdmini.sys Main Driver File
iegdmsys.vp Voucher file for COPP
libGLES_CM.dll OpenGL ES 2.0
libGLES_CM.lib (OpenGL ES useless file?)
libGLESv2.dll OpenGL ES 2.0
libGLESv2.lib (OpenGL ES useless file?)
lvds.sys Port driver for Internal (GMCH) LVDS
lvds.vp Voucher file for COPP
sdvo.sys Port driver for SDVO devices
sdvo.vp Voucher file for COPP
softpd.sys Port driver for VCH devices
softpd.vp Voucher file for COPP


INF Parameters:
Useless: Memory and max devices connected not working on US15, FeatureScore (this key tells to windows if a driver is designed for an OS and if is better than an other),Pcf version default 700 (the other value is 400) don't change it!

_________________________________________________________________________________
Extras:
UEFI\EFI  ENG - ITA - VIDEO
Overlay function for Windows XP: (a technique to hold the decoded video frame only for XP,linux and Meego):
1)Intel ® EMGD offers a video overlay feature to speed up video display
2)Framebuffer blending of 3D graphics with overlay does not cause any significant increase in CPU or GPU usage compare to other methods such as compositing and works with OpenGL,OpenGL ES,Direct3D.
3)The media application needs to play the video using the overlay plane. Most applications, by default, play video in overlay
4)This feature reduces the amount of CPU cycles to achieve video and the 3D blending effect compared to programming on a standard operating system API.
5)Problem: Black corruption in some display element
Under windows xp is fixable with 2D Alpha Override Feature but:
A)Minor increase in CPU usage due to the overriding operation
B)Windows XP display must be set to 32 bits (I hope no one is using 16 bits)
C)Microsoft WHQL may fail if it is tested when this feature is turned on
D)This feature will slow down 2D operation slightly. Most of the time it is not noticeable to the user
How to translate Installation Package: Add Lang Package to Driver's Archive Path\Lang\LPCO\

Windows Registry Driver Initialization Keys:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\Configuration\CMO11000_09_07D9_65^7C5B51B4D1A3124A0D6C4D020E28B7E6\00\00
-> Hexadecimal values are in (VALUE) and as you can see are for 1366x768 display
To update the new value just disable gpu and then renable it from Device Manager (should be sufficient also a  Windows restart).
PS. If you find something useful to edit post HERE!

VGA\HDMI Port AutoDetection:
HotPlug Function:Sometimes reading of EDID may fail, especially when the user wiggles the connectorwhile attaching the display. You can try to fine tune the  HotPlugDelay timing to suit
your usage, within the range from 100ms to 1000ms with stepping of 10ms. Note that
setting the  HotPlugDelay value too low may prevent the monitor from being
detected, while having the value too high will lock the system longer before detecting
the monitor. Recommended default value is 550ms.
The hot plug feature is supported for single sDVO or dual display setup; however, note
that the hot plug feature does not apply for the LVDS transmitter.
This parameter is used to enable or disable the
hot plug feature for an sDVO port. Default 550ms
Unit in ms Range 100-1000ms

PortHotOverride: The  PortHotOverride control is used to keep a specified display port constantly on,
irrespective of whether the specified display monitor is connected.
Note: There is a potential risk in enabling this registry key. The default driver is designed to
have unused ports closed rather than open/hot; in some rare cases it can do damage to
the hardware. This is not a substitute for hot plugging and should not be used as such;
repeated removals and connections will cause stress to the card.

Test fails: This entries key works but doesn't change the autodection situation. No other idea to fix this little bug. Workaround to open VGA port are: Simple Right click on intel trayicon or open Intel tray icon or press win+P and select an option or run c:\windows\system32\igfxcfg.exe
Other possibility is to enable porthotoverride and enable igfxcfg.exe system autorun manually (but this solution isn't a cool )

Upscaling\Downscaling\Panning:
While XP driver supports upscaling feature seems that 7 edition don't. Anyway on Win 7 datasheet there is the possibility to upscale CH7308 LVDS Trasmitters and the procedure should be also compatible with EDID-less pannel
In Windows 7, upscaling is supported through the CH7308 LVDS transmitter. When a
lower resolution (compared to native resolution) is selected, the panel will be scaled to
fit the panel while maintaining the aspect ratio.
The Intel ® EMGD can upscale lower-resolution modes (those smaller than the size of
the respective panel) to the native size of the panel connected to a Chrontel CH7308*
LVDS transmitter.
The Intel ® EMGD uses a user-supplied DTD with the native flag set (also known as
native DTD) as native timing for the panel connected to a CH7308 transmitter.
If the user does not supply a native DTD, Intel ® EMGD uses 1024x768 as the default
native timing and 800x600 and 640x480 as built-in standard timings.
To support upscaling, the LVDS transmitters require setting the pipe to native timing of
the panel despite the user-selected resolution. It also requires finding the native timing
(also known as native DTD) of the panel based on user-supplied configuration
information.
The CH7308 (sDVO) port drivers limit the list of supported modes to the size of panel.
The port drivers also mark one of the timings as native DTD as follows (it goes to the
next step only if native DTD is not found in the current step).
1. It finds the timing with the user-defined DTD with the native DTD flag set. This
becomes the native DTD for the panel.
2. If the panel is an EDID panel and user selected to use EDID DTDs, then the port
driver marks the EDID DTD as native DTD.
3. If the user supplies a DTD without the native DTD flag set, then the port driver
marks this one as the native DTD.
4. If none of the above steps works, the driver uses 1024x768 as the default native
timing and 800x600 and 640x480 as built-in standard timings.
The Internal LVDS connected to an EDID Panel supports scaling of modes other than
native mode. To support this, the port driver exports information to the EDID parser
that it can scale. The EDID parser does not remove other modes (that is, non-native
modes) from the mode table. It only marks the native mode. When the Intel ® EMGD
queries the port driver on which modes are supported, the port driver then removes
any modes that cannot be scaled (up or down depending on the port's hardware
capability). When mode-setting occurs, the second display in Clone mode can indeed
support non-native modes even though the panel had EDID. This occurs only if a native
mode can be found the port driver can scale. Otherwise, the port driver ignores the
scaling information and the Intel ® EMGD proceeds normally.
The driver also supports Internal LVDS Scaling on EDID-less panels. The steps that
enable this are the same as those described for the scaling of Chrontel LVDS

Panning Mode: I don't know if can be usefull for someone but this feature isn't upscaling is only a zoom.  The panning mode allows you to set a resolution that is larger than the native
resolution of the display panel.

Registry keys for Scaling Mode:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\%display Key%\00\00\
"Scaling"=dword:3
There must be multi %display Key% exist, you should find out the one you are using. This is easy, you can delete all keys first, and then change your current monitor's setting. There will be a new key automatically created and that's your display. Below is the scaling value options:
2: Center Image
3: Full Screen should be set
4: Maitain Aspect Ratio

What i think about 1024x600 display at 1024x768 (downscaling):
While IEMGD XP version and Intel Official Win 7 support this feature. I'm a littlebit confused with IEMGD 7\8\10 edition. I will try to check if is possible but this an hobby not my work :D
Possible solution: Read Up or Panning+Scaling?
Other GMA GPUs support this feature via downscaling registry key editing (applicable also with Change Netbook Resolution application) or via INI editing (before the installion of the driver)

Intel Video Decoding Dll
This source are not available for not Intel premium account but is available from Sony servers or in this blog
Package:
• mpeg2_dec_filter.dll
• mpeg2_spl_filter.dll
• mpeg4_dec_filter.dll
• mp3_dec_filter.dll
• mpeg4_spl_filter.dll
• h264_dec_filter.dll
• aac_dec_filter.dll
• ac3_dec_filter.dll
--------------------------------------------------
Some cheats: Exported from EeeCtl and are replicable also with RWeverithing program
/* kiwidrew's work */
#define EC_ST00                         0xF451 // ACPI: Temperature of CPU (C)
#define EC_SC02                         0xF463 // ACPI: Fan PWM duty cycle (%)
#define EC_SC05                         0xF466 // ACPI: High byte of fan speed (RPM)
#define EC_SC06                         0xF467 // ACPI: Low byte of fan speed (RPM)
#define EC_SFB3                         0xF4D3 // ACPI: Flag byte containing SF25 (FANctrl)

#define GPIO_PIN_VOLTAGE        0x0066 //

#define EC_FPWMH1                       0xFE26
#define EC_FPWML1                       0xFE27

1)Legacy Backlight,WORKS ONLY ON WINDOWS XP
This info was present also in intel documents
Path: Bus 0 Device 2 (Intel VGA Card)
Path where insert Brightness Level:  0xF4
Value Setted by EeeCtl:
UltraBright: FF the maximum value for brightness
Bright: B2
Medium: 7F
Low: 4C
Lowest: 19

Accepted values: 1-99 (1-15=really low values) and combination 0;1;2;3;4;5;6;7;8;9; A;B;C;D;E;F

2)Registry Settings for Win 8-10 that I have to test: (i reported here to remember them)
(Because newer Os uses DWM and should be a problem for GMA500)
-RTL_REGISTRY_CONTROL\GraphicsDrivers\Scheduler\VsyncIdleTimeout 
REG_DWORD 10 = default ;  0 = disable VSync control
RTL_REGISTRY_CONTROL is the same as HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl
-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration 
DWORD value 1=Disabled Hardware acceleration ; 0=Enable Hardware acceleration
-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\MaxMultisampleType
DWORD Value min0 max16
Default: 4 

Link:
DTD Calculator
Graphics Rendering Registry
BCEdit Settings

13 commenti:

  1. Volevo fare dei test ma non trovo più l'editor. Potresti upparlo da qualche parte?

    RispondiElimina
  2. Ecco a te la versione win7 1.18: https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=22715
    Buon Test!

    RispondiElimina
  3. Hola. ¿Es posible hacer un controlador para gma 500 vaio vgn-p39vrl para que la luz de fondo de la pantalla funcione aproximadamente?

    RispondiElimina
    Risposte
    1. hola, did you try IEMGD Addon to install the driver? there is standard profile or alternative profile for vaio x or custom section to edit display settings

      Elimina
    2. where to get this program if all the links that lead to intel are not working?

      Elimina
  4. one driver shows ripples at 1024 and the other black screen

    RispondiElimina
    Risposte
    1. hi, no backup in my servers. I saw that Intel removed EMGD so you can try to ask directly at Intel or use my tiny tool IEMGD add-on(will not generate custom vbios but isn't a problem cause it's for standard embedded devices). So what kind of laptop are you using? tha profile 1024 is working?

      Elimina
    2. profile 1024 works but ripples and half screen doesn't work. sony vaio p 39

      Elimina
    3. try to select 1024 profile than, in IEMGD add-on, go to custom section and edit 1024 profile with your max display resolution, then change also inverter frequency (with 0 or 300 or 1000 or 20300), just to check it. With Aida64 display part is complete?

      Elimina
  5. Can you make a Windows 98 or ME Millenium driver?
    It is possible to port the Windows 2000 driver to Windows ME/98 ?

    Windows 2000 compatible version:
    http://blog.livedoor.jp/blackwingcat/archives/08995.html
    download link http://pub.idisk-just.com/fview/n0cu2sxdcImBPWXDJQRR0YYTRexvvOfwPC98kgz0dfCFkK10LXJeinl-P7rM9oD6fEHGKtw11vds_xUzs6bOeg.lzh

    9.0.1.1200
    %Intel% %i900G0% = iegd_plb, PCI\VEN_8086&DEV_8108
    i900G0="Poulsbo Embedded Graphics Chipset Function 0"
    __

    This is the info I have recompiled about previous iegd.inf versions:

    http://ftp.emacinc.com/SBC/PCM-1812/Driver/VGA/IEGD/DRIVER/IEGD.INF



    Previous versions can be found as a "ssigd.inf" file instead of iegd.inf

    I found it after I search for "915G/915GV/910GL Embedded Graphics Controller Function 1 ssigd.inf":

    ; Filename: ssigd.inf
    ; $Revision: 1.481.2.37 $
    ; $Id: ssigd.inf,v 1.481.2.37 2006/06/05 02:55:26 anthill Exp $
    ; $Source: /nfs/fm/proj/eia/cvsroot/ssigd/ial/dx/install/ssigd.inf,v $
    ;
    ; Copyright (c) 2003 Intel Corporation. All rights reserved.

    DriverVer = 06/04/2006,5.1.0.838



    So maybe instead I'll need to know in which previous driver it's based Intel GMA500

    And version 6.0 info can be found here:

    http://eesprit.free.fr/27404111.pdf

    DriverVer = 08/06/2006,6.0.0.865



    and 4.0 version

    ;----------------------------------------------------------------------
    ; Filename: ssigd.inf
    ;----------------------------------------------------------------------
    ; Signature:
    ; $Windows NT$ - Nt-based OS
    ; $Windows 95$ - Windows 9x/Me
    ; $Chicago$ - All Windows OS
    ; Class:
    ; Display - Display drivers
    ; ClassGUID: - Ms...
    ; Provider: - Intel
    ; CatalogFile:
    ; Provided by MS after WHQL

    DriverVer = 05/29/2005,4.0.0.635

    https://vainol.kehtna.edu.ee/tehdokum/vbios.pdf

    RispondiElimina
  6. Maybe this one can be used for GMA500?

    https://www.bluestarinc.com/techsupport/RMS/Drivers/Trillium/VGA/Win9x/Win9x/

    https://www.bluestarinc.com/techsupport/RMS/Drivers/Trillium/VGA/Win9x/Win9x/ialm9x.inf


    * Production Version Releases
    *
    *
    * Microsoft Windows* 95 (all versions)
    * Microsoft Windows* 98
    * Microsoft Windows* 98 Second Edition
    * Microsoft Windows* Millennium
    * Driver Revision: 4.14.10.3732
    *
    * Production Version 13.6.1.3732
    *
    *
    * December 31, 2003

    RispondiElimina
  7. I know it's maybe a different chipset but how are they using a NT Windows 2000 driver in Windows 98 for GMA graphics?

    https://retrosystemsrevival.blogspot.com/2019/06/intel-945gm-display-driver-for-windows.html

    download https://icedrive.net/s/aeFO1FAxuf

    download option 2 https://disk.yandex.ru/d/ipr1c7i1NUvdSg

    You can read: "You must install the driver manually from device manager and directed into the Windows 2000 folder because the driver installer's program has an artificial OS block for Windows 9x!"

    RispondiElimina
  8. The question is why :D there are so several xp light editions. GMA500 has 2 drivers XPDM (XP compatible with xp-vista-7) and WDDM 1.1 (compatible with vista -7-8-10-11).
    for windows me\98 you can use software render

    RispondiElimina