Drobe :: The archives
About Drobe | Contact | RSS | Twitter | Tech docs | Downloads | BBC Micro

Firefox 2 patched for the A9home

Published: 3rd Dec 2006, 17:20:50 | Permalink | Printable

Cunning coder cheats check for XScale [Updated]

A cheeky programmer has produced an unofficial patch to allow the previously Iyonix-only Firefox 2 port to run on A9home computers. The hack intercepts low level ARMv5 instructions that the Iyonix's IOP321 XScale can execute, and converts them into instructions suitable for the ARMv4 Samsung ARM920T processor in the A9home. The patch, which runs as a module, was written overnight by NetSurf GTK developer Rob Kendrick.

Joking that he was after a grand in donations for his patch work, Rob said: "I wanted to see how well Firefox 2 performed on the A9home, but Peter had decided for some reason to intentionally nobble it to run only on the Iyonix."

Rob added that some ARMv5 instructions are not properly emulated, which will lead to images being displayed incorrectly - although these bugs are expected to be fixed in later releases of the module.

He said: "I may well be incorrectly implementing SMUL, and that it's used in image decoding, which is why they're corrupted. But the performance of it is acceptable - it certainly feels just as quick, if not quicker than it did on David Ruck's Iyonix at the Midlands 2006 show, amusingly."


Click on a thumbnail for a larger picture

A9home users must download both a patched Firefox executable and the ARMv5 emulator - the Firefox application checks to make sure it is running on an XScale, which Rob also removed. The ARMv5 emulator works by hooking into the undefined instruction processor vector, catching the ARMv5 instructions before RISC OS 4.42 on the A9home traps it.

Firefox 2 port developer Peter Naulls said he would consider an official A9home version if there was sufficient financial interest. It's understood the Firefox 2 port was built with ARMv5 instructions to squeeze extra performance out of the mammoth web browser on the Iyonix.

Update at 22:26 6/12/2006
Version 0.03 of the ARMv5 emulator has been released with various big fixes and enhancements. Rob has also noted that the ARMv5 instructions in Firefox 2 afford a mere thousandth of a second speed increase in a simple test with the BBC News website.


Patched Firefox 2 A9home binary ARMv5 emulator module - source included

Previous: Iyonix-only Firefox 2 port released online
Next: RPCEmu updated to run RISC OS 6


Viewing threaded comments | View comments unthreaded, listed by date | Skip to the end

Absolutely Brilliant

Well done Rob.

 is a RISC OS UserMikeCarter on 3/12/06 6:11PM
[ Reply | Permalink | Report ]

Well done Rob.

Hopefully this allows Peter to concentrate on the Iyonix version as in the time honoured way of RISCOS someone else has added additional functionality.

I also hope that this spurs on people to contribute to Peter's port of Firefox irrespective of if they have a A9 or Iyonix as this way we all get a up to date browser. I contributed something for the initail release and now that is here I'll be contributing something for the next phase of FF2 that Peter has ststed he'll deliver.

 is a RISC OS Userbluenose on 3/12/06 6:38PM
[ Reply | Permalink | Report ]

Just need a patch for the StrongARM now!

 is a RISC OS UserAW on 3/12/06 8:57PM
[ Reply | Permalink | Report ]

Will Firefox also work on the Omega with this patch or does it require more emulation?

 is a RISC OS Usermaikl on 3/12/06 9:55PM
[ Reply | Permalink | Report ]

Why do you call it unofficial? It's opensourced anybody is allowed to work on it, so it is very much official

 is a RISC OS Userhighlandcattle on 3/12/06 10:46PM
[ Reply | Permalink | Report ]

I'd guess he's called it unofficial because he hasn't recompiled it from the sources to run on the A9Home - it's a combination of the module to emulate the ARMv5 instructions and a patch to the already compiled binary.

 is a RISC OS UserVinceH on 3/12/06 11:19PM
[ Reply | Permalink | Report ]

AW8: That's a bit more tricky. Rob's module provides in a couple of non critical missing instructions, the CLZ (clear zero) and one of the signed multiply variants. The StrongARM has a few more missing instructions, but the crucial part is the codes use of LDRH/STRH (16bit load/store) instructions which are supported by the StrongARM but not by the RisIOMD memory manager. Any 16bit accessing missing the cache, or not in Kinetic fast RAM, will not be performed correctly.

But anyway, a little patch for the A9 is ok, but anything more is a waste of time, the source needs recompiling for a StrongARM machine or it would be even slower than necessary. Peter or another developer will support the older machines (if viable), when they are good and ready.

 is a RISC OS Userdruck on 4/12/06 9:31AM
[ Reply | Permalink | Report ]

This would all be very nice if it worked. Alas I could not force it to do so.... I took a copy of FF and replaced the binary with this patched one: no joy :(

 is a RISC OS Usernervus on 4/12/06 11:33AM
[ Reply | Permalink | Report ]


Did you also download the emulator module, and double-click it (before running FF)? You will also need to make sure that you replace firefox-bin (in the original application directory) with firefox-bin,ff8 (the patched version). Rename the firefox-bin,ff8 to firefox-bin, and make sure the filetype is Absolute. Any luck?

 is a RISC OS Userlym on 4/12/06 11:43AM
[ Reply | Permalink | Report ]

In reply to lym: I just did that (seemed the most logical approach) and got: "no writeable memory at this address". BTW I am using an A9home withh the latest patches.

 is a RISC OS Usernervus on 4/12/06 11:56AM
[ Reply | Permalink | Report ]

Hmm. My A9 seems to be running 4.42 (March 2006): as far as I know it's had all the patches applied, and no trouble here. Have you tried relaxing the compatibility conditions? Otherwise, I'm not sure what the issue is - sorry. :(

 is a RISC OS Userlym on 4/12/06 12:07PM
[ Reply | Permalink | Report ]

Well just tried it once more with more lax compatbility :P Did not make any difference... I guess I will have to ask PN to make an A9home variant of FF :)

 is a RISC OS Usernervus on 4/12/06 12:29PM
[ Reply | Permalink | Report ]

nervus: check the dutch support site for some more info :)

 is a RISC OS UserEasyKees on 4/12/06 2:41PM
[ Reply | Permalink | Report ]

Firefox does not work on the A9home if Minidisc is loaded or has been loaded. This was also the same with FF1.5. It simply starts then closes straight away.

 is a RISC OS Usersa110 on 4/12/06 9:34PM
[ Reply | Permalink | Report ]

AW, maikl: No, this patch will not work on earlier machines. For reasons druck has already outlined, those machines are missing even more instructions, and in the case of the RiscPC, does implement two instructions, but they don't work reliably. (The same may be true for the Omega, I don't know.)

highlandcattle: It's not offical. At all. I have nothing to do with the Firefox/Mozilla project, and I am not involved in Peter's efforts to port Firefox to RISC OS. Just because it's open source does not mean that it's "official".

nervus: Make sure that you have unzipped the new firefox-bin file from the Zip file, change its filetype to Absolute (or ff8) if it isn't already, and then copy it over the original in your !Firefox directory. Then double-click on !Firefox, having first run the v5Emulator module.

sa110: I've just downloaded Minidisc, and hacked it to work on the A9 Home I have here (it tries to load CallASWI when it really doesn't need to). Both with it seen by the Filer, and with it running, Firefox still works for me. (Downloaded the lastest version available from minidisc.iconbar.com this evening.)

 is a RISC OS Userrjek on 5/12/06 12:39AM
[ Reply | Permalink | Report ]

in reply to EasyKees: Did as you indicated on the dutch site: still no joy :(

in reply to rjek:

did just all that (as I wrote in my post of 4/12/06 11:56AM), tried it once more with the solution of EasyKees (a prefab patched FF2) and it really doesn't work.... back to the workbench??? ;) Luckily I have also other means to access the Net (on my Macs), the A9home is a hobby IT-project for my son (an IT bachelor) and me.

 is a RISC OS Usernervus on 5/12/06 7:03PM
[ Reply | Permalink | Report ]

Firefox 2 does not work on my A9 - I get the error 'no writeable memory at this address'. I replaced the firefox-bin with the new file, filetyped absolute and put the emulator in PreDesk (and double clicked it).

 is a RISC OS UserCKH2 on 7/12/06 6:31PM
[ Reply | Permalink | Report ]

nervus: CKH2: I suspect these errors might be due to you not having at least 32MB of memory free before you try running it. Firefox 2 requires a 20MB WIMP slot - it may be that *WimpSlot cannot allocate that much memory. Other than trying to quit all other applications and such before trying to run Firefox 2, I don't know what to suggest. "It works for me" etc.

 is a RISC OS Userrjek on 7/12/06 7:44PM
[ Reply | Permalink | Report ]

Also, can either of you try [link] instead?

 is a RISC OS Userrjek on 7/12/06 8:25PM
[ Reply | Permalink | Report ]

in reply to rjek:

I tried your solution today. What happened is shown by this screenshot:


 is a RISC OS Usernervus on 8/12/06 8:08PM
[ Reply | Permalink | Report ]

In replyto nervus:

Is that Aemulor I see loaded on your iconbar. If so I believe that maybe the cause of your memory problems. Quit Aemulor (the module not just the front end). Try FF2 agaiin.

 is a RISC OS Usersa110 on 8/12/06 8:38PM
[ Reply | Permalink | Report ]

in reply to sa110:

Just checked it once more without Aemulor (killed frontend and module). The ffault message has disappeared now, there is somme harddiscc activity and then: nothing... The bugger is not loading... Some more hounds to call in for this Fox-hunt?? ;)

 is a RISC OS Usernervus on 8/12/06 9:30PM
[ Reply | Permalink | Report ]

In reply to nervus:

Go into your !UnixHome.home folder and delete /mozilla

Try to load FF2 again.

 is a RISC OS Usersa110 on 8/12/06 10:48PM
[ Reply | Permalink | Report ]

in reply to sa110:

well tried everything today: .... and it still won't work <sigh>

Ah well, at least I tried :D

Tnx for all the help! :)

 is a RISC OS Usernervus on 9/12/06 8:18PM
[ Reply | Permalink | Report ]

Please login before posting a comment. Use the form on the right to do so or create a free account.

Search the archives

Today's featured article

  • Oregano future undecided
    Meanwhile, TV Browser reaches version 3
     39 comments, latest by nex on 09/12/04 2:46PM. Published: 25 Nov 2004

  • Random article

  • BOFH and PFY do RISC OS
    All publicity is good publicity, right?
     8 comments, latest by druck on 8/10/07 1:40PM. Published: 28 Sep 2007

  • Useful links

    News and media:

    Top developers:
    RISCOS LtdRISC OS OpenMW SoftwareR-CompAdvantage SixVirtualAcorn

    CJE MicrosAPDLCastlea4X-AmpleLiquid SiliconWebmonster


    RISCOS.org.ukRISCOS.orgRISCOS.infoFilebaseChris Why's Acorn/RISC OS collectionNetSurf

    Non-RISC OS:
    The RegisterThe InquirerApple InsiderBBC NewsSky NewsGoogle Newsxkcddiodesign

    © 1999-2009 The Drobe Team. Some rights reserved, click here for more information
    Powered by MiniDrobeCMS, based on J4U | Statistics
    "Contrary to some RISC OS news sites who don't bother to check the facts before they run a story..."
    Page generated in 0.1716 seconds.