home *** CD-ROM | disk | FTP | other *** search
- Linux XFree-to-XInside mini-HOWTO
- by Marco Melgazzi, s64912@athena.polito.it
- version 1.0 / 1996 May
-
- How to convert an XFree86 modeline into an XInside one
-
- 1. Introduction
-
- During the past few months I've seen a lot of posts in comp.os.linux.x
- asking how to convert video modes between XFree86 and one of its
- commercial alternatives: XInside.
-
- I had evaluated before the product and had this evaluation version
- still floating on my hard disk: since I like problem solving, I've
- decided to give it a try and, after a couple of hours of fiddling and
- calculating, I came up with an informative article that was promptly
- posted.
-
- The discussions about how to convert suddendly vanished and I received
- 1 (one) mail thanking me for the article so, since maybe somebody else
- could need this information in the future, I decided to transform that
- post in the mini-HOWTO you are reading.
-
- Let me state something first: I do NOT work for XInside and I only had
- access to the evaluation 1.2 version for Linux. Fiddling with monitor
- timings can be hazardous and, for this reason, I absolutely make no
- guarantees. If it works for you , fine, if you blow up your computer I
- shall not be held responsible for it.
-
- As you may have noticed from may name, I'm not a native speaker of
- English so you will probably find some errors here and there, I
- apologize for them and I ask you to please avoid flooding my mailbox
- with language-related flames. Thanks !
-
- 2. Why should I need it ?
-
- I think that the Xinside policy of not giving you an utility to tweak
- your video modes ( like xvidtune ) and/or to import your existing
- XFree ones in the evaluation ( and AFAIK commercial ) version is
- incomprehensible. I've spent about three hours putting this together
- ( hint: I've compared the VESA 1024x768@70Hz entry in the two
- formats... and, besides, I'm nearly an electronic engineer ;-) while
- an Xinside programmer could have written it in a fraction of this
- time...
-
- I haven't downloaded the 1.3 evaluation version and I really hope they
- have fixed this. Well, if they have, this mini-HOWTO could be
- considered useless but, alas, if you read it you will learn something
- more about how everything works...
-
- 3. Let's go
-
- Let's say that you have your oh-so-tweaked XFree86 mode and you want
- to evaluate Xinside in the same conditions: we wil use my 'normal'
- video mode as an example and I will explain what you will have to do
- to convert it.
-
- An Xfree86 entry looks like this:
-
- Modeline "blahblah" DOTCLK A B C D a b c d
-
- Every one of the A-B and 1-4 numbers has a meaning: RTFM ! Anyway you
- don't need to know the theory behind all this to do a succesful
- conversion...
-
- My modeline in /usr/lib/X11/XF86Config for example is:
-
- Modeline "1168x876" 105 1168 1256 1544 1640 876 877 891 900
- | | | | | | | | |
- DOT_CLK A B C D a b c d
-
- In Xinside you have to add an entry in the Xtimings file wich should
- be located in etc/ ( from now on we suppose you are in the top Xaccel
- directory, or /usr/X11/lib/X11/AcceleratedX )
-
- ! Somewhere in the file, put here the name you want
-
- [PREADJUSTED_TIMING]
- PreadjustedTimingName = "1168x876 @ 72Hz";
-
- !
- ! These four are obvious
- !
- HorPixel = 1168; // pixels
- VerPixel = 876; // lines
- PixelWidthRatio = 4;
- PixelHeightRatio = 3;
-
- !
- ! hsync: DOT_CLK / D * 1000 [KHz]
- !
- ! hsync = 105 / 1640 * 1000 = 64.024 KHz
- !
- ! vsync: ( 1 / (( D / DOT_CLK ) * d) ) * 1,000,000 [Hz]
- !
- ! vsync: ( 1 / (( 1640 / 105 ) * 900) ) * 1,000,000
- ! ( 1 / 14057.1428571 ) * 1,000,000 = 71.138 Hz
- !
-
- HorFrequency = 64.180; // kHz
- VerFrequency = 71.138; // Hz
-
- ! Obvious
-
- ScanType = NONINTERLACED;
-
- !
- ! Put here the +/-hsync +/-vsync XFree86 options
- !
- HorSyncPolarity = POSITIVE;
- VerSyncPolarity = POSITIVE;
-
- ! Shouldn't change
-
- CharacterWidth = 8; // pixels
-
- ! DOT_CLK here
-
- PixelClock = 105.000; // MHz
- !
- !
- ! horizontal timings section: [usec]
- !
- HorTotalTime = D / DOT_CLK = 15.619;
- HorAddrTime = A / DOT_CLK = 11.124;
- HorBlankStart = A / DOT_CLK = 11.124;
- HorBlankTime = HorTotalTime - HorBlankStart = 4.495;
- HorSyncStart = B / DOT_CLK = 11.962;
- HorSyncTime = C / DOT_CLK - HorSyncStart = 2.743;
-
- !
- ! vertical timings section: [msec]
- !
-
- VerTotalTime = ( HorTotalTime * d ) / 1000 = 14.057;
- VerAddrTime = ( HorTotalTime * a ) / 1000 = 13.682;
- VerBlankStart = ( HorTotalTime * a ) / 1000 = 13.682;
- VerBlankTime = VerTotalTime - VerBlankStart = 0.375;
- VerSyncStart = ( HorTotalTime * b ) / 1000 = 13.698;
- VerSyncTime = ( HorTotalTime * ( c - b ) ) / 1000
- = 0.219
- ! Finished !
-
- Now you have to put this newly created mode in the files shown below
- in the appropriate place.
-
- 4. Fixing up things
-
- In the excerpts shown below the -> sign tells you what was modified:
- do NOT include it in your files!
-
- Monitor entry ( mine is monitors/mfreq/mfreq64.vda)
-
- [ESTABLISHED_TIMINGS]
- "640x480 @ 60Hz",
- "640x480 @ 72Hz",
- "640x480 @ 75Hz",
- "800x600 @ 56Hz",
- "800x600 @ 60Hz",
- "800x600 @ 72Hz",
- "800x600 @ 75Hz",
- "1024x768 Interlaced",
- "1024x768 @ 60Hz",
- "1024x768 @ 70Hz",
- "1024x768 @ 75Hz",
- "1152x900 Interlaced",
- "1152x900 @ 60Hz",
- "1152x900 @ 67Hz",
- -> "1168x876 @ 72Hz",
- "1280x1024 Interlaced",
- "1280x1024 @ 60Hz",
- "1600x1200 Interlaced";
-
- Board info file ( mine is boards/s3/764-2.xqa , I wonder why they have
- nearly all the Hercules boards but not MINE: Terminator 64/Dram )
-
- [VISUAL]
- BitsPerPixel = 8;
- MemoryModel = Packed;
- ColorModel = Indexed;
- BitsRGB = 6;
- NumberOfColors = 256;
-
- [RESOLUTIONS]
- 640x480,
- 800x600,
- 1024x768,
- -> 1168x876,
- 1152x900,
- 1280x1024
-
- [DESKTOPS]
- 640x480,
- 800x600,
- 1024x768,
- 1152x900,
- -> 1168x876,
- 1280x1024,
- 1600x1200
-
- If the dot clock is low enough ( NOT in this case for my board ) you
- can put the entry even in the 16bpp and 32bpp sec- tions.
-
- The /etc/Xaccel.ini will look something like this
-
- --------------------------------------------------------------
- Board = "s3/764-2.xqa";
- Monitor = "mfreq/mfreq64.vda";
- Depth = 8;
- -> Desktop = 1168x876;
-
- [RESOLUTIONS]
- -> 1168x876,
- 1024x768;
-
- The actual Xinside mode entry in etc/Xtimings
-
- --------------------------------------------------------------
- [PREADJUSTED_TIMING]
- PreadjustedTimingName = "1168x876 @ 72Hz";
-
- HorPixel = 1168; // pixels
- VerPixel = 876; // lines
- PixelWidthRatio = 4;
- PixelHeightRatio = 3;
- HorFrequency = 64.180; // kHz
- VerFrequency = 71.138; // Hz
- ScanType = NONINTERLACED;
- HorSyncPolarity = POSITIVE;
- VerSyncPolarity = POSITIVE;
- CharacterWidth = 8; // pixels
- PixelClock = 105.000; // MHz
- HorTotalTime = 15.619; // (usec) = 205 chars
- HorAddrTime = 11.124; // (usec) = 146 chars
- HorBlankStart = 11.124; // (usec) = 146 chars
- HorBlankTime = 4.495; // (usec) = 59 chars
- HorSyncStart = 11.962; // (usec) = 157 chars
- HorSyncTime = 2.743; // (usec) = 36 chars
- VerTotalTime = 14.057; // (msec) = 900 lines
- VerAddrTime = 13.682; // (msec) = 876 lines
- VerBlankStart = 13.682; // (msec) = 876 lines
- VerBlankTime = 0.375; // (msec) = 24 lines
- VerSyncStart = 13.698; // (msec) = 877 lines
- VerSyncTime = 0.219; // (msec) = 14 lines
-
- You can check your conversion by running the vgaset program with no
- parameters while running the Xinside serrver: it will output an XFree-
- like line and, if everything went OK, this line will be equal to the
- line you started from ( except if b and c are equal, I haven't been
- able to reproduce this situation in Xinside: the best case was c=b+1
- ).
-
- 5. The end...
-
- That's all folks ! I hope this will be useful to you. I don't know if
- I'll buy Xinside: it's quite good and the text speed is really
- unbelievable compared to XFree ( try to move xteddy over an xterm
- window to understand what I mean ) but I'm only a student and I don't
- have a lot of money to spend...
-
- Of course, if somebody at XInside thinks that this mini-HOWTO is worth
- some support, I wouldn't really mind an 1.3 complete server to 'test'.
-
- 6. copyright/legalese
-
- (c)opyright 1996 by Marco Melgazzi (s64912@athena.polito.it) - the GPL
- (Gnu Public License) applies. To obtain a copy of the GPL write to the
- Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
- USA.
-
- Trademarks are owned by their owners. There is no warranty on the
- accuracy and/or the usefulness of the information given in this
- document.
-
-