log in | register | forums
Show:
Go:
Forums
Username:

Password:

User accounts
Register new account
Forgot password
Forum stats
List of members
Search the forums

Advanced search
Recent discussions
- R-Comp releases Genealogy v2 (News:)
- Will we see 5.30 released at Wakefield show? (News:1)
- Sine Nomine updates RiscOSM and Impact (News:)
- Netfetch version 5.55 released (News:)
- Prizes for Wakefield Show announced (News:)
- Heretic update from R-Comp (News:)
- Wakefield Show 2024 is next Saturday (News:)
- Git client updated to 0.07 (News:2)
- Archive Edition 27:1 reviewed (News:)
- Rougol April 2024 meeting on monday is Anniversary time (News:1)
Latest postings RSS Feeds
RSS 2.0 | 1.0 | 0.9
Atom 0.3
Misc RDF | CDF
 
View on Mastodon
@www.iconbar.com@rss-parrot.net
Site Search
 
Article archives
The Icon Bar: Programming: VNC server
 
  VNC server
  adrianl (13:53 30/5/2007)
  Phlamethrower (14:10 30/5/2007)
    adrianl (10:12 3/6/2007)
      nervus (12:54 3/6/2007)
        krisa (12:49 17/11/2007)
        filecore (10:53 2/10/2008)
      JGZimmerle (03:52 12/12/2007)
  monkeyson2 (14:19 30/5/2007)
    adrianl (14:41 30/5/2007)
      monkeyson2 (15:13 30/5/2007)
  richcheng (18:53 30/5/2007)
  adrianl (18:23 15/3/2010)
    adrianl (02:10 26/3/2010)
      filecore (06:09 26/3/2010)
 
Adrian Lees Message #102528, posted by adrianl at 12:53, 30/5/2007
Member
Posts: 1637
In case anyone's interested, I'm building a VNC server for RO >= 3.5 that should give considerably better performance and stability than the current one (with a bit of luck). Apologies to anyone who feels this is a duplication of effort but I've never had any real luck with the current implementation, its performance is dire on the Iyonix because it relies upon reading back from the screen memory, and the latest RealVNC Win32 client doesn't connect (or at least I couldn't make it connect).

So... the plan is to intercept the graphics acceleration hooks available on later RO versions, and use a Geminus-style interception of direct screen accesses (and probably special-case sprite plots too, ie. grab the write data before it goes anywhere near the screen; for lower depth sprites we can even send the sprite data directly in palettized form rather than incur the expense of re-palettizing the rendered pixel data), to avoid screen reads as much as possible, send only the changes and use the features of the latest protocol (3.8 ) to get better performance.

Status currently is that multiple clients can connect/disconnect, it runs on IX and A9home, supports password protected access (VNCauth/D3Des challenge key), has basic handling of mouse clicks and key presses, and sends the full frame back using ZRLE (Zlib-compressed RLE encoding). It sends the 5MB (1280x1024x32bpp) screen of my ix over a wireless connection to the Win32 client in a couple of seconds, at least half of which is the full screen read being performed on the Iyonix.

Still a lot of work to do, just thought a few of you might be interested/want to provide some ideas if it'd be useful to you too. Myself, I want it so that I can use my RO boxes from anywhere in the house, which means using an XP laptop as a dumb terminal - something that itself provides a certain amusement value for me wink

[Edited by adrianl at 01:58, 31/5/2007]
  ^[ Log in to reply ]
 
Jeffrey Lee Message #102529, posted by Phlamethrower at 13:10, 30/5/2007, in reply to message #102528
PhlamethrowerHot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot Hot stuff

Posts: 15100
Yay!

Feel free to steal any bits of code from the bits I was doing on the old VNC server, like how to do the DesktopSize pseudo encoding. (Not that it's particularly hard to support, but just in case you get stuck tongue). I think I was messing around with custom mouse cursors at one point as well, but judging by my website that code hasn't been released yet (Probably because it was broken, or something).

[edit]

Also, hurry up and write/release that A9/Iyonix DMA module smile

[Edited by Phlamethrower at 13:12, 30/5/2007]
  ^[ Log in to reply ]
 
Phil Mellor Message #102531, posted by monkeyson2 at 13:19, 30/5/2007, in reply to message #102528
monkeyson2Please don't let them make me be a monkey butler

Posts: 12380
Sounds rather fab. And familiar! tongue
  ^[ Log in to reply ]
 
Adrian Lees Message #102533, posted by adrianl at 13:41, 30/5/2007, in reply to message #102531
Member
Posts: 1637
Sounds rather fab. And familiar! tongue
Yes, I hadn't forgotten.
  ^[ Log in to reply ]
 
Phil Mellor Message #102534, posted by monkeyson2 at 14:13, 30/5/2007, in reply to message #102533
monkeyson2Please don't let them make me be a monkey butler

Posts: 12380
Sounds rather fab. And familiar! tongue
Yes, I hadn't forgotten.
I had, until you started this thread. wink
  ^[ Log in to reply ]
 
richard cheng Message #102537, posted by richcheng at 17:53, 30/5/2007, in reply to message #102528

Posts: 655
This is excellent news, if you can get it any faster/more stable than the previous efforts. Having to change my resolution before using it made them all little more than curiousity-pieces.

Are you going to release it as a Geminus plugin, like all your other projects? wink
  ^[ Log in to reply ]
 
Adrian Lees Message #102643, posted by adrianl at 09:12, 3/6/2007, in reply to message #102529
Member
Posts: 1637
Well, DesktopSize and Cursor support is basically working now (not difficult really), though there are a few 't's to cross. I'll do a first code drop onto some webspace soon-ish but at the moment, because it's still making no effort to detect which screen areas have actually changed, its performance is not representative and would probably disappoint.

Richard: Re Geminus, I'm not really sure tbh. My VNC server is currently implemented as a separate module but there is a strong argument for merging it into Geminus because of the significant amount of code that is common and also because making them coexist peacefully could be tricky. Either way, I really don't see any point charging for this software; my experience over the past few years is that software development on RO does not come close to paying for itself, and though it galls me somewhat that users almost expect software to be free, I guess I'd rather have a few dozen users of my server if it's released as free (as in beer) software versus 5 paid-up users.


*adrianl ignores mention of DMA module and quickly scurries away. stupid thing is that it's really quite trivial*

[Edited by adrianl at 09:15, 3/6/2007]
  ^[ Log in to reply ]
 
nervus Message #102647, posted by nervus at 11:54, 3/6/2007, in reply to message #102643
Member
Posts: 13
Either way, I really don't see any point charging for this software; my experience over the past few years is that software development on RO does not come close to paying for itself, and though it galls me somewhat that users almost expect software to be free, I guess I'd rather have a few dozen users of my server if it's released as free (as in beer) software versus 5 paid-up users.
To me it would not be a problem to pay a fee for a good-working VNC-server. There are limits of course wink .
I can't really understand the people that expect everything to be free. You put time and effort in these things; they can't do it themselves; so why not pay??? If YOU choose to give it away: kudos to you.
Back on topic: a good VNC-server would enable me to use my RPC and A9home over my 1 Gb-network from my Apple desktop. That would be really nice: using Draw and TechWriter and the results imported on my desktop. I still like those 2 programs a lot better than their Mac-counterparts smile
  ^[ Log in to reply ]
 
Kris Adcock Message #105301, posted by krisa at 12:49, 17/11/2007, in reply to message #102647
Member
Posts: 62
Sorry to resurrect an old thread ... but does anyone have (or know of) a VNC server module for RISC OS? I need a module that will let me regularly (about once a second) grab a frame from an Iyonix and distribute it over a network, and VNC seems a nifty way of doing it. It needs to work when a single-tasking program is running, but I don't need any of the other VNC aspects (like keyboard or mouse actions, clipboard transfer, and so on).

Can anyone help?
  ^[ Log in to reply ]
 
Julian "Jules" Zimmerle Message #105647, posted by JGZimmerle at 03:52, 12/12/2007, in reply to message #102643
Member
Posts: 4
Hi Adrian!

Any news on your VNC server? I'm looking into getting my a9home out of the loft and using it via VNC, because it won't work properly with my LCD monitor and I don't want to have several keyboards/mice on my desk.

TIA,
Julian
  ^[ Log in to reply ]
 
Jason Togneri Message #108450, posted by filecore at 09:53, 2/10/2008, in reply to message #102647

Posts: 3867
Back on topic: a good VNC-server would enable me to use my RPC and A9home over my 1 Gb-network from my Apple desktop.
Hmm, don't think they made gigabit cards for RiscPCs, so you'll be stuck with (at best) 10/100 speeds.

On topic: any progress with this to date?
  ^[ Log in to reply ]
 
Adrian Lees Message #113720, posted by adrianl at 18:23, 15/3/2010, in reply to message #102528
Member
Posts: 1637
Years have passed - *sigh* - but I've recently picked up this project again and started to turn it into an useful program. Some of the features are IYONIX pc-only at the moment, but it's now sending incremental updates and catching the hardware-accelerated operations (copy/fill rect) making it a good deal more usable.

It also copes with mode changes, and sends the cursor sprites to the client for display, so in some ways it's already an improvement on the other offerings.

I intend to upload incremental alpha versions soon, to guard against me losing interest/getting distracted again wink
  ^[ Log in to reply ]
 
Adrian Lees Message #113795, posted by adrianl at 02:10, 26/3/2010, in reply to message #113720
Member
Posts: 1637
Anyway, if you're bored....prototypes available from here


[Edited by adrianl at 02:13, 26/3/2010]
  ^[ Log in to reply ]
 
Jason Togneri Message #113796, posted by filecore at 06:09, 26/3/2010, in reply to message #113795

Posts: 3867
Woo!
  ^[ Log in to reply ]
 

The Icon Bar: Programming: VNC server