Musus Umbra's JPEGRender Patch

This is a quick little patch that fixes a bug in the JPEGRender module.

It's aimed at pre-RiscPC users, but non-StrongARM RPC users may find it useful as it allows slow dithering of JPEGs to be disabled, speeding up screen redraw by a factor of about 3 in 256 colour modes (at the expense of a little quality, of course :-)

The Bug

It seems that the JPEGRender module suffers from the same bug as RiscOS 3.6's SpriteExtend: if the module is asked to render a JPEG when there is less than 24K of memory assigned to the 'Next' slot in the task manager, an address exception occurs.

Installation

This patch is essentially the same as David Thomas' patch for SpriteExtend 0. 99, but implemented as a little application to be put in your boot sequence (!Boot.Choices.Boot.Tasks would be a good place).

You can run it at any time if you want to just test it...

I recommend that you test the patch in this way whilst there's nothing important loaded - it might all go horribly wrong :(

Extra Features

Whilst I was fixing this up, I thought it might be nice if it was possible to disable the error-diffused dithering the module is capable of using (it's about a third to a quarter the speed of the normal dithering :-)

The new browser uses error-diffused dithering which is slow, even on my RPC :-( so I dread to think what it's like on ARM3 machines.

I've made the patched module supply a *Configure keyword JPEG_FastDithering.

By default, the full error-diffused dithering is enabled.

To disable the slow error-diffused dithering, press f12 (or start a taskwindow, or whatever) and type:
*Configure JPEG_FastDithering 0
To enable slow error-diffused dithering, the command is:
*Configure JPEG_FastDithering 1

NB: This setting is not stored in the machine's CMOS RAM. If you want to have slow dithering turned off every time you boot up, add the *command to !JPEGPatch.!Run

Download

    !JPEGptch Version 1.00 (9 Nov 1997)

Disclaimer

As usual with freeware, there is no warranty of any kind. The author cannot be help responsible for any loss/damage arising from the use/inability to use this software. It is the user's responsibility to determine the fitness of this software for any purpose they put it to.
(But if it doesn't work, I will try to help :-)
To my home page