Improving RISC PC Video
Stephen Morton continues improving his RiscPC
Improving RiscPC video
If you followed my article in the last issue of RISC World you should now have a heatsink attached to your VIDC chip on your RiscPC motherboard. If you did not follow my previous article then in order to take advantage of the suggestions offered below you will need to add the heatsink as discussed. For those that have fitted a heatsink let us see what it allows us to do.
Before making any new monitor definition files or taking any other action we need to tell the RiscPC that it can use a higher bandwidth on the VIDC chip. The RiscPC gets the information on how much bandwidth the VIDC can cope with from the BandLimit settings inside the PreDesk section of the RISC OS boot sequence. You will need to increase the values set by BandLimit before continuing.
For RISC OS 3.7x
What you need to do is go into the directory called:
Now hold down SHIFT and double click on the file called BandLimit, this will load the file into a text editor (which on most machines would be Edit). You will normally see the following:
VIDCBandwidthLimit XXXX XXXX XXXX XXXX
Where XXXX represents a number. You may find you have four sets of numbers, or you may find you have three sets, it does not matter. For a default vanilla RISC OS 3.7 build the numbers would be:
VIDCBandwidthLimit 38000000 76000000 152000000
These numbers represent the bandwidth of the VIDC depending on the VRAM fitted to the machine:
If you have a fourth set of numbers then you can ignore them, the only numbers that matter are the third ones, those for a machine with 2MB of VRAM. You need to increase this number, say to
For RISC OS 4.x
Here the principle is exactly the same, but the BandLimit is set up in a slightly different place. Go into the directory:
Now hold down SHIFT and double click on the file called !Run, this will load the file into your text editor. You will normally see the following:
/<Obey$Dir>.Bandlimit 38000 76000 152000 80000 /<Obey$Dir>.SetPreDesk /BootResources:Configure.ClrMonitor /<PreDesk$Configure>
As you can see these figures are actually the same as the RISC OS 3.7 figures but with three of the trailing zeros removed. Alter the the third figure to say
Now you have made the changes you need, save any work and reboot the computer, you should not notice any change at this point. If you get any errors on startup then you should re-check the file that sets the BandLimit in case you have made a mistake. Provided all is well you can continue.
At this point I should make it clear that producing screen modes that operate beyond the abilities of your monitor could damage your monitor. If you are not sure what the maximum resolutions, horizontal and vertical refresh rates of your monitor are then now is the time to find out and write then down on a piece of paper and keep this to hand.
You also need to know where you Monitor Defintion Files (MDFs) are stored. They are all stored in directories inside:
If you have a look inside this directory you will normally find one directory for each monitor manufacturer, on many machines you will only find one Directory called Acorn. Each of the Monitors will be supplied with one MDF as shown below:
The default RISC OS 3.7 Acorn MDFs
If you hold down SHIFT and double click on one of these files then it will load into a text editor and you will be able to see that it is human readable:
The MDF for an Acorn AKF85
A couple of small notes of caution should be sounded at this point. Firstly before editing any of these files you should take a backup just in case something goes wrong. Secondly you should be aware of how the RISC OS Configure program works out what MDFs are available on a machine. It would make sense for the Configure program to scan the directory looking at the file names and construct a list based on the files that are available. However what it actually does is scan the directory looking for MDF files. Whenever it finds on it loads it and then uses the name found in the
Making a copy of an MDF
What you should now do is find what monitor your machine is configured to use. You can do this from the RISC OS Configure application. To activate this all you have to do is double click on !Boot and the configure program will be loaded.
Configure on RISC OS 3.7
Now click on the monitor icon and the monitor configuration window will open:
The current monitor settings
I suggest you write the name of the current MDF in use on the piece of paper we used earlier. You can now close the configure windows. Now go back into
and SHIFT double click on your particular MDF to load it into a text editor. Change the name in the
and then save the file back into the Acorn directory with the name
An example new file
You are now ready to start editing your MDF.
Editing your MDF with MakeModes
You can now load your copy of MakeModes, it is also worth mentioning at this point that MakeModes does come with a useful manual which you would be well advised to read (I have HTMLified it and have included it in this issue of RISC World - ED).
Take note of the warning window that appears when MakeModes loads. Now close the Window. Find your new MDF (in the example above we called it
The MakeModes window
Now you can select a mode from the Current Mode menu button, for example try selecting 1024 x 768 (75Hz). The mode will now be shown. You can now increase the refresh rate of this mode to 78Hz simply by altering the Pixel Rate to 86000. Click on Test Mode to see if the mode works, if you get a blank screen press Escape to return to your normal screen mode.
If you get a weird shimmering effect when trying a screen mode then you have gone too far and the VIDC simply cannot push around the amount of data required, try reducing the Pixel Rate.
Making a new mode
This is the main point of the exercise, to add new modes with higher refresh rates than can normally be produced by a RiscPC. As an example I will show how you can make a mode bigger than 1024 x 768 that can still display 32,000 colours.
The maximum size of a screen mode is determined by the VRAM inside the RiscPC. With 2Mb of VRAM any screen mode must fit inside this 2Mb limit. So since 2Mn is 2048K our screen mode can only be a maximum of 2048K in size. Since each pixel in a 32,000 colour screen mode takes up 2 bytes we have a possible limit of 1048576 pixels. If we make a screen mode of 1152 x 900 pixels this will contain 1036800 pixels and will therefore fit inside our size limit. We need to ensure that the X resolution (in this case 1152) is divisible by 32. This is because in a 24bit colour mode each pixel takes up 4 bytes, and 4 bytes is 32 bits. You can make odd size modes such as 1400 x 1050 that do not fit this requirement, but I do not recommend this until you have a good deal of experience with RISC OS Monitor Defintion Files).
To make the new screen mode take the following steps:
making a 1152 x 900 screen mode
Now we come to the reason why a heatsink is so useful. We need to increase the refresh rate above the current 59Hz as shown in the MakeModes window. Gradually increase the value of the Pixel Rate by a few hundred each time. As you do this the Frame Rate will increase. If you start getting a shimmering effect then you have gone too far, reduce the figure until the shimmering stops. The maximum frame rate for each machine will be slightly different, indeed if you try this without a heatsink you may find that 1152 x 900 doesn't even work at all.
Now you understand the basics of MDF creation read the MakeModes manual. Don't forget that once you have made a new MDF you need to tell the computer to use it by using the Configure application.
Adding a heatsink and making your own MDF will allow you get the most out of your RiscPC and monitor. It certainly isn't anywhere near the same as adding a ViewFinder, or indeed buying a new machine, but it can get a little bit more out of your existing equipment for no real outlay.