Displaymanager finetunen
door Henri Derksen

Oftewel, hoe de frame rate tevoorschijn te toveren.

Voor RISCOS 3.50, 3.60 en 3.70 en in mindere mate voor 4.02, 4.03, 5.03 en Select. Maak een Obey bestandje ~DispTempl en plaats dat in:

$.!BOOT.Choices.Boot.PreDesk

De inhoud van die obeyfile ~DispTempl is echt heel simpel:

| Added to use template showing Framerate. 2003-02-22 *Set DisplayManager$Path ADFS::4.$.!Boot.Resources.Configure.Display.

Copieer de bestanden:

Resources:$.Resources.Display.Messages
Resources:$.Resources.Display.Templates

naar ons nieuwe pad:

$.!Boot.Resources.Configure.Display 

Dit is dus een directory of map!

Je kunt nu met een zogenaamde Template-editor een nieuw vakje met de zogenaamde Frame rate en de waarde 00 Hz aanbrengen. Er circuleert hier en daar een reeds aangepaste versie van deze templates, of men neme die uit RISC OS 4.xx van je andere machine. Voor eigen gebruik mag dat, aan derden vragen/ geven niet. Zie de bijgevoegde voorbeeldplaatjes en je snapt wat ik bedoel.

Het leuke is namelijk dat het bestaande messages bestand en ook de in modulevorm in de RISC OS rom aanwezige Displaymanager al reeds voorbereid zijn op het weergeven van de Frame rate in Hertz. Alleen helaas zonder de tussenliggende spatie.

In feite zijn we nu bijna klaar. Maar ook dit storende foutje in alle versies van de Displaymanager in alle RISC OS versies, dus ook 4.02, 4.03, 5.03 en Select willen we natuurlijk even verhelpen als dat kan. En als we dan toch bezig zijn kunnen we ook wel even die Displaymanager finetunen voor een nettere weergave. Immers tussen het aantal kleuren en het woord colours staat ook netjes een spatie. Bij de Frame rate in Hz ontbreekt deze spatie helaas, en dat in echt alle versies van RISC OS 3.50 en hoger inclusief RISC OS 4.xx, 5.xx en Select ;-(.

Hoe dit aan te pakken?
Start een editor als !Zap en click op de middelste muis-menu-toets. Kies daar Create en Get module, selecteer de Displaymanager en save die module dan op b.v. je ramdisc. Zet de editor in de zogenaamde byte mode.

Zoek naar Hz. Je ziet dan dat die lettercombinatie inderdaad 2 x voorkomt in deze module. Erachter staan gelukkig zogenaamde nul-bytes. De truc is nu dat we voor die Hz de ascii-waarde voor de spatie = hex 20 plaatsen en een nul-byte erachter verwijderen, zodat de module in totaal niet in lengte verandert. We schuiven die Hz dus als het ware een positie op. Bij de volgende verschijning van Hz doen we hetzelfde.

Nu saven we de module opnieuw naar onze RamDisc en verplaatsen hem vervolgens naar $.!BOOT.Choices.Boot.PreDesk, zodat bij een volgende start "onze" Displaymanager geladen wordt, in plaats van die uit de RISC OS Rom. Je kan het ook al even van te voren testen, door op onze zojuist gemaakte obey-bestandje te dubbelklikken, om daarmee het pad goed te zetten naar onze nieuwe template-plaats. Vervolgens dubbelklikken we op onze gesavede Display-manager-module.

En je ziet als resultaat dat de bestaande diplaymanager van je balk verdwijnt, met tevens een errormelding. Maar geen nood, zo'n manager hebben we zo weer terug, maar dan wel de onze ;-). Click met je middelste-muis-menu-toets op het TaskSwitcher icon helemaal rechts op de taakbalk, en kies voor New task. Vul daar Desktop in en ziedaar je Displaymanager is weer terug, maar nu aangepast aan onze wensen, d.w.z. MET Frame rate en netjes een spatie na het getal voor de Hz.

Hou er wel rekening mee dat je bij elke update van je RISC OS Roms je ook weer deze Displaymanger wederom moet aanpassen. Dus als je RISC OS 3.50 vervangt door 3.70 dan behalve een nieuwe !Boot structuur op harddisc ook even de Displaymanager opnieuw uit de Rom saven, Hz met spatie aanpassen en wederom in Predesk plaatsen. Anders zou je met een manager uit RO 3.50 blijven werken, terwijl de rest al wel RO 3.70 is. Hetzelfde gaat op voor een upgrade naar RISC OS 4.02 en/of zelfs naar Select.

Wat is nu het grote voordeel van wel en goed de Frame rate laten weergeven?
O.a. dat je nu ook veel makkelijker van frequentie kunt veranderen, of als je eens op de club b.v. een monitor treft die wel 60 Hz maar geen 70 Hz aankan, je die kunt selecteren.
Dat kon overigens toch al wel met het handige commando:

*WimpMode X1024 Y768 C256 F60

Die toevoeging F60 kennen niet zo veel mensen helaas, nu wel hoop ik? Vooral de lagere resoluties zoals 800 x 600 kennen vaak meerdere Frame rates. Standaard wordt dan de hoogste (75 Hz) gepakt, maar die wordt niet door elke monitor ondersteund. Kies bij oudere analoge monitoren voor de hoogst mogelijke framerate en bij LCD-schermen maakt het niet uit. Lager kost minder processortijd.

Veel succes met de juiste weergave op elk scherm.

Met een vriendelijke groet van Henri Derksen.