Just had a look at the US 'Revo' site to see what they currently offer - and it might interest some that they have a sale on at the moment. Still not cheap and the dollar/pound rate is not that good at the moment but there you go...
Anyway - as Gavin has already indicated, there are plenty of powerful 'platforms' capable of doing what Doddy wants, it is simply that someone has to sit down and write the software for them. I think my view is that any 'proprietary' system can only cover the basics of what Doddy wants - although it may well provide some 'hooks' to enable customisation (which Revo appears to do). However, to get a fully tailored system that emulates the real thing, I think it would require a level of custom programming by the builder. I suspect that by their very nature (being proprietary) this is less likely to come from a commercial source (such as Revo) than an 'open' one.
Now in software terms, what I've been describing is a High Level Language (HLL) - in that much of the low-level operation is invisible to the user (programmer) who only needs to worry abut the logic involved.
As a fictitious (e.g.made up HLL) example: "IF Motor1 <15 THEN Sound<15" - the user/programmer has a library of functions and links them logically to give the effect required. He doesn't need to know how (or what) 'Motor1' does - just that it 'knows' the motor speed. Likewise, he doesn't need to know what 'Sound<15' does - just that it plays a specific sound file.
So going back to my comment about there being plenty of powerful hardware platforms around that can do this - I think the challenge is to come up with equally powerful (and application specific) software that doesn't frighten people away. Gavin see's the Arduino as this platform - and he may well be right (there is a lot of general support for it) but I'm not sure it's quite as friendly (to G3 railway modellers) as it needs to be.
Personally, I think Micromite Basic would be a much better HLL choice for many here (and I did cheat a little - as I could almost write my 'fictitious' example in MMB). I could also change it interactively, editing any on-board software to debug or modify behaviour as required. Aurduino was devloped to encourage young programmers and naturally uses 'C' - but BASIC was developed to be a simple beginners language - which I suspect would be easier for many 'non-professionals'. However, whatever the platform chosen, it does need someone to do all the neccessary grunt work to develop it - and basically - whoever decides to do that - will also decide what platform and tools to use... :-)
For my part, I have several CBus units built, with three more to do. I have a very simple (IR based) 'DC' engine controller that is awaiting an 3.5A H-Bridge motor driver (currently on a slow boat from China) and I've even managed to solder-flow the tiny DRV chip to an adaptor board, so I can try to drive low-cost BLDC motors. Both of these will use Micromite based controllers - and both will use the same core "logic". I'm afraid I'm past the stage where I want to commit to community projects these days - but assuming I get them working - I'll be happy to share any outcomes from these projects with others here if they are interested.
Lot's of things to do, so little time to do them all! :-)
Have a great Christmas everyone...Grandchildren arriving soon - so goodbye relaxing coffee breaks!!
Regards,
IanT