Vanhan PC:n näytönohjaimessa on ilmeisesti vain 1 mebitavu muistia (= 1048576 tavua ).
Mahdollisia näyttötiloja siis:
1024x768, 256 väriä.
Muistitarve: 1024*768*1 = 786432 tavua
800*600, 65536 väriä:
Muistitarve: 800*600*2 = 960000 tavua
Tuo 1024x768, 256 väriä vaikuttaisi loistavalta, mutta ilmeisesti tuo käyttää jotain paletteja, ja jos ajetaan ohjelmaa, joka ei ymmärrä käyttää paletteja oikein, värit näyttävät kaameilta ja tekevät ohjelman näytön vaikeaselkoiseksi (esim. teksti ja taustaväri liian samansävyisiä).
Miten saisi tuon 1024x768, 256 väriä toimimaan ilman paletteja, mahdollisesti jonkinlaisella "RGB -lukituksella", tässä toki kelpaa mainiosti se, että olisikin vain 216 väriä, eli 40 mahdollista väriä jätetään käyttämättä.
Miksikö juuri 216?
Siksi, että 6^3 = 216.
Eli:
R (Punainen) = 0..5
G (Vihreä) = 0..5
B (Sininen) = 0..5
Kun jokaisen värikomponentin arvo on luku väliltä 0..5, eli 6 vaihtoehtoa, niin mahdollisten kombinaatioiden määrä on silloin 6^3 = 6*6*6 = 216 väriä.
Saako XFree86:n jotenkin pakotettua tuollaiseen tilaan, jossa resoluutiona on 1024*768, mutta värikäytäntönä EI ole 256 väriä palettien kanssa, vaan 216 kiinteää väriä ilman paletteja.
Jos ei muuten onnistu, niin sitten niin, että ohjelmat luulevat tilaa 24-bittiseksi, mutta kunkin osavärin arvo 0..255 muunnetaan lennossa välille 0..5, joten tarpeeksi lähellä olevat värit toki tässäkin päätyvät samaksi, mutta kokeilemani perusteella oletuksena tuo 256 -väritila toimii ainakin joidenkin ohjelmien osalta vielä hölmömmin.
Kokeilussa käytetty omatekoista Kylix3:lla käännettyä GUI -ohjelmaa, eli käyttää siis QT2:sta.
Ikkunamanagerina IceWm ja käyttiksenä Debian Sarge, XWindow -systeeminä siis XFree86.
Tässä siis ohjelma on käännetty koneella 1, jossa moderni näytönohjain, mutta sitä haluttaisiin ajaa koneella 2, jonka emolle integroidussa näytönohjaimessa on ilmeisesti vain 1 mega muistia (CirrusLogicin ohjain, Compaq PC 120-133 MHz).
Olisi tietysti hyvä, jos olisi jokin keino jo tuossa koneessa 1 testata, miten näyttö muuttuu, kun ikkunan sisällöstä tehdään kopio, jolle suoritetaan tuo 24-bit täysvärit -> 216 väriä -muunnos...
Mahdollisia näyttötiloja siis:
1024x768, 256 väriä.
Muistitarve: 1024*768*1 = 786432 tavua
800*600, 65536 väriä:
Muistitarve: 800*600*2 = 960000 tavua
Tuo 1024x768, 256 väriä vaikuttaisi loistavalta, mutta ilmeisesti tuo käyttää jotain paletteja, ja jos ajetaan ohjelmaa, joka ei ymmärrä käyttää paletteja oikein, värit näyttävät kaameilta ja tekevät ohjelman näytön vaikeaselkoiseksi (esim. teksti ja taustaväri liian samansävyisiä).
Miten saisi tuon 1024x768, 256 väriä toimimaan ilman paletteja, mahdollisesti jonkinlaisella "RGB -lukituksella", tässä toki kelpaa mainiosti se, että olisikin vain 216 väriä, eli 40 mahdollista väriä jätetään käyttämättä.
Miksikö juuri 216?
Siksi, että 6^3 = 216.
Eli:
R (Punainen) = 0..5
G (Vihreä) = 0..5
B (Sininen) = 0..5
Kun jokaisen värikomponentin arvo on luku väliltä 0..5, eli 6 vaihtoehtoa, niin mahdollisten kombinaatioiden määrä on silloin 6^3 = 6*6*6 = 216 väriä.
Saako XFree86:n jotenkin pakotettua tuollaiseen tilaan, jossa resoluutiona on 1024*768, mutta värikäytäntönä EI ole 256 väriä palettien kanssa, vaan 216 kiinteää väriä ilman paletteja.
Jos ei muuten onnistu, niin sitten niin, että ohjelmat luulevat tilaa 24-bittiseksi, mutta kunkin osavärin arvo 0..255 muunnetaan lennossa välille 0..5, joten tarpeeksi lähellä olevat värit toki tässäkin päätyvät samaksi, mutta kokeilemani perusteella oletuksena tuo 256 -väritila toimii ainakin joidenkin ohjelmien osalta vielä hölmömmin.
Kokeilussa käytetty omatekoista Kylix3:lla käännettyä GUI -ohjelmaa, eli käyttää siis QT2:sta.
Ikkunamanagerina IceWm ja käyttiksenä Debian Sarge, XWindow -systeeminä siis XFree86.
Tässä siis ohjelma on käännetty koneella 1, jossa moderni näytönohjain, mutta sitä haluttaisiin ajaa koneella 2, jonka emolle integroidussa näytönohjaimessa on ilmeisesti vain 1 mega muistia (CirrusLogicin ohjain, Compaq PC 120-133 MHz).
Olisi tietysti hyvä, jos olisi jokin keino jo tuossa koneessa 1 testata, miten näyttö muuttuu, kun ikkunan sisällöstä tehdään kopio, jolle suoritetaan tuo 24-bit täysvärit -> 216 väriä -muunnos...
Vastaukset 4
Vanhimmat
Homma voisi toimia siten että käytössä olisi esim 16 bittinen RGB tila, jonka perusteella luotaisiin lennossa paletti joka vastaisi mahdollisimman hyvin käytössä olevia väreja, ja sieltä sitten haettaisiin tuon RGB arvon perusteella oikea väri. Ja tätä palettia muokattaisiin lennossa koska 256 väriä ei muuten pitkälle riitä. Eli eräänlainen palettitilan päälle rakennettu feikki RGB tila, tuskinpa tuollaista on valmiina..
Onko pakko turvautua toiselta Linux -koneelta tähän:
ssh -X [email protected]
Eli siis muita vaihtoehtoja voisivat olla seuraavat:
1. Miten saisi itse päättää, mitkä 256 väriä kuuluvat käytettävissä olevaan palettiin. Tämä olisi paras ratkaisu, saisihan siinä 1024x768 näytttötilan 256 värillä @ 60 Hz, mikä on täysin riittävä.
2. Jos edelläoleva ei ole mahdollinen, niin kun voisi edes saada tarkat tiedot (RGB -arvot) niistä 256 väristä, joita oletuksena on käytettävissä 256 värin tilassa. Ongelma ei ole värien määrä, vaan se, ettei niitä voi valita, eikä ole edes tietoa, mitkä nuo värit ovat!
3. Jos kumpikaan (1-2) ei ole mahdollinen, miten saisi ohjaimen toimimaan 800x600 tarkkuudella 65536 värillä? Knoppixilla tuo toimiikin, mutta tällä kertaa Knoppixin XF86Config-4 -tiedoston kopiointi Debian Sargeen ei ratkaisekaan ongelmaa!
XWindow kun ei suostu edes käynnistymään!
Eli, voiko jonkin noista 3:sta toteuuttaa jotenkin (miten?) vai jääkö ainoaksi mahdollisuudeksi ajaa X -ohjelmia etänä toisen koneen näytölle ?
Näytönohjaimena:
0000:00:0a.0 VGA compatible controller: Cirrus Logic GD 5434-8 [Alpine] (rev fc)
Itse näytönohjainpiirissä lukee:
"Cirrus Logic CL- GD 5434-J-QC-F"
Muistia näytönohjaimessa ilmeisesti (?) 1 mega, muuten kai tuo suostuisi toimimaan myös 1024x768, 65536 väriä -tilassa, mutta kun ei toimi.
eikö koneessa ole fyysistä tilaa, että saisi hieman paremman näytönohjaimen tilalle? 4 megan muistilla pääsis jo pitkälle ja käytettynä hinta liikkeessä ~5 eur tai alle.
jos tilaa on, niin miksi alkaa tuollaista kikkailua tekemään?
Kyseessä Compaq Prolinea, jossa 4 korttipaikkaa, joihin voi laittaa 0-4 ISA -korttia ja 0-2 PCI -korttia, yhteensä enintään 4 kpl.
Tuossa on kaikki 4 paikkaa käytössä:
PCI: USB -porttikortti (1995 vuodelta olevassa emossa EI ole USB -liittimiä)
PCI: sarjaporttikortti, 2 porttia kortilla ja...
___: pelkkä kortin takaripa, jossa toiset 2 sarjaporttia, liitetty edelliseen, vie yhden "vain ISA" -paikan
ISA: Verkkokortti, 10 Mbps, 3COM
eli kaikki 4 korttipaikkaa, ja erityisesti molemmat PCI -paikat ovat varattuja. Koneessa oli joku ATI PCI -näytönohjain, mutta poistin sen saadakseni lisätilaa muille PCI -korteille.